• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    以賽促學,實戰(zhàn)演練,全面提升學生軟件工程綜合素質

    2019-08-11 23:52:35李志博周剛楊奎武侯雪梅廖琪
    大學教育 2019年8期
    關鍵詞:以賽促學

    李志博 周剛 楊奎武 侯雪梅 廖琪

    [摘 要]軟件工程學科課程體系建設需要保證學生知識結構完整性與課程知識體系先進性,兼顧學科發(fā)展與學生綜合素質能力的培養(yǎng)。文章探討結合軟件工程學科課程理論抽象、實踐性強的特點,在實施全方位教學方法改革的同時,督促學生積極參與學科相關競賽,以賽促學,實戰(zhàn)演練,全面提升學生軟件工程綜合素質能力。

    [關鍵詞]軟件工程學科建設;以賽促學;實戰(zhàn)演練;專題培訓;軟件測試大賽

    [中圖分類號] G642 [文獻標識碼] A [文章編號] 2095-3437(2019)08-0066-03

    軟件工程學科是一門綜合性、實踐性強的學科,對培養(yǎng)學生的工程思維能力、實踐能力、創(chuàng)新能力、溝通能力和團隊合作精神具有重要作用[1-2]。軟件工程學科課程具有以下特點[3]:(1)理論抽象。因為軟件工程中的核心技術和開發(fā)原理均來源于實際軟件開發(fā),經(jīng)提煉形成原理和方法并引入課程。(2)實踐性強。因為軟件工程是從工程的角度講述軟件開發(fā)與維護的原理、技術和方法。實踐和理解相結合的融會貫通對于學好此類課程非常重要[4]。

    一、軟件測試課程的教學現(xiàn)狀

    軟件測試是軟件工程課程中的一個部分,內容涉及的知識點多而繁雜且概念抽象,測試標準和規(guī)范類的教學內容偏多[5]。由于缺乏軟件測試經(jīng)驗,學生普遍認為課程內容抽象枯燥,因而學習興趣不濃[6]。

    1.教學內容理論性較強,難以調動學生學習主動性

    課程內容抽象,包含大量軟件測試的概念、方法、技術和規(guī)范,大多數(shù)學生沒有軟件項目的實際開發(fā)經(jīng)驗,課程內容的概括性與抽象性增加了學生對課程內容的理解難度。

    2.傳統(tǒng)教學方法不能充分激發(fā)學生的求知欲

    基于多媒體的概念、理論和測試方法的講授會讓學生缺乏對課程內容的感性認識[6],從而難以積極思考如何在學習中將理論知識運用到實踐當中,這就影響到其學習興趣。

    3.缺乏測試方法和技術案例的應用

    軟件測試課程具有很強的實踐性和靈活性,學生只有充分參與實踐才能熟練掌握軟件測試的基本方法,了解軟件測試的具體流程,鍛煉靈活應用知識來解決問題的能力[7]。實踐教學在整個課程中占一定比例,內容是較簡單的教學案例,但這些實踐案例是理想化的,與實際的項目案例相比,在復雜性和規(guī)模上還存在很大的差距。

    筆者針對教學過程中發(fā)現(xiàn)的問題,對軟件測試的教學內容及教學方法等方面進行了較為深入的探索與研究,在實施全方位教學方法改革的同時,督促學生積極參與學科相關競賽,將軟件測試理論教學與全國大學生軟件測試大賽相結合,以賽促學,實戰(zhàn)演練,通過理論強化、大賽專題培訓、實戰(zhàn)演練等方式,激發(fā)學生的學習興趣,全面提升學生的軟件工程綜合素質。

    二、構建具有完整性與先進性的軟件工程課程體系

    要系統(tǒng)、規(guī)范地培養(yǎng)軟件工程人才,首先要保證軟件工程課程體系的完整性與先進性。由ACM和IEEE/CS聯(lián)合工作組制定的“軟件工程知識體”SWEBOK(Software Engineering Body of Knowledge)[8],吸引了來自世界七十多個國家和地區(qū)的著名大學、軟件企業(yè)和研究院所參加,集中了軟件工程領域眾多科學家、教授的智慧和期望。

    軟件工程知識體把軟件工程劃分為軟件需求、軟件設計、軟件構造、軟件測試、軟件配置管理、軟件工程管理、軟件工程過程、軟件工程模型和方法、軟件質量和軟件工程職業(yè)實踐等知識域。

    軟件工程知識體同時給出了作為軟件工程學科知識領域的相關學科,包括認知科學和人的因素、計算機科學、計算機工程、管理和管理科學、項目管理、系統(tǒng)工程和數(shù)學。軟件工程知識體為確定軟件工程的學科地位打下基礎,是軟件工程教育的里程碑。制定課程體系時遵循軟件工程知識體,才能保證課程體系的完整性與先進性,引導學生構建合理、全面的專業(yè)知識結構。

    三、采取靈活有效的教學方法,打牢學生的理論知識基礎

    筆者根據(jù)軟件工程學科特點,對多種教學方法進行了探索,包括研討分析教學法、項目驅動教學法、激勵教學法、崗位實踐教學法。

    1.研討分析教學法

    為促進學生對專業(yè)知識的掌握和深入了解當前國內外專業(yè)領域的學術研究情況,教師在實際教學過程中,可在對基本教學內容進行講解后,在課堂內開展討論式、分析式教學[8]。教師提前安排學生查找相關研究方向的國內外學術論文和其他資料,學生制作課件并在課堂上講解,教師和其他學生對學生的講解內容和過程提出質疑并進行集體討論。這種研討式的教學模式,充分調動了學生的主動性和積極性,有利于培養(yǎng)學生發(fā)現(xiàn)問題、提出問題、解決問題的能力。

    2.項目驅動教學法

    為了進一步促進學生對知識的掌握并提升為崗位適應能力,可開展項目驅動教學[9-10]。根據(jù)學生的基本情況和個人特點進行分組,各組學生自主選擇創(chuàng)新型題目開展實踐活動。學生要提交項目實施計劃、實施方案及最終的作品。教師對學生項目進行全程跟蹤和方向性指導,最后根據(jù)成果和組織過程給予評分。項目驅動教學法能夠有效促進學生在項目中的交流、合作,培養(yǎng)團隊合作能力,提升實踐能力和未來崗位的任職能力。

    3.激勵教學法

    教師在教學過程中,請來相關專業(yè)的高年級研究生、業(yè)務人員開展專題講座,在職業(yè)規(guī)劃、特長培養(yǎng)、未來發(fā)展、行業(yè)現(xiàn)狀等方面與學生交流,提前為學生講解單位、生活、工作中遇到的問題和解決方法,對學生學習和能力培養(yǎng)進行激勵,傳遞正能量,促進學生對自身的認知和對未來的把握。激勵教學法有助于學生合理剖析自我,提升責任意識、集體意識以及愛崗敬業(yè)的主動性,為其走上工作崗位奠定良好的心理基礎。

    4.崗位實踐教學法

    在教學過程中,教師可積極鼓勵學生到專業(yè)對口的用人單位進行實踐學習和課題攻關[11],由業(yè)務單位的指導老師對學生進行與業(yè)務相關的專業(yè)指導。通過面向用人單位的崗位實踐教學方法,讓學生提前適應今后的崗位要求,提升崗位任職能力。在業(yè)務單位指導老師的幫助下,學生將理論知識轉化成實踐能力,填補理論和實踐之間的鴻溝,完成從校園學習到崗位工作的平穩(wěn)過渡。

    四、以賽促學,實戰(zhàn)演練,全面提升學生軟件工程綜合素質的實踐性探索

    軟件工程學科課程理論抽象、枯燥,僅通過理論知識的講授,難以調動學生的學習積極性。通過鼓勵學生參與相關學科競賽[12],用理論知識指導實踐應用,讓競賽激發(fā)學生的興趣和挑戰(zhàn)其斗志,使其學習由被動變?yōu)橹鲃覽13]。

    我院教師積極組織學生參與學科相關競賽,如ACM國際大學生程序設計競賽、全國大學生軟件測試大賽、“泰迪杯”全國數(shù)據(jù)挖掘挑戰(zhàn)賽、CCF大數(shù)據(jù)與計算智能大賽等,通過以賽促學、實戰(zhàn)演練的方式,全面提升學生的軟件工程綜合素質。

    隨著軟件規(guī)模的增大、復雜性的增加,軟件質量已經(jīng)成為軟件工程行業(yè)中的關注點。軟件測試是軟件質量檢測手段。軟件測試涉及的內容煩瑣,既包括軟件測試方法和技術,又包含軟件測試規(guī)范和體系,而且課程知識抽象,內容覆蓋面廣,理論知識較枯燥[14]。通過將其與全國大學生軟件測試大賽緊密結合,使學生掌握軟件測試中的基本理論、方法和技術的同時,培養(yǎng)學生較強的實踐動手能力,激發(fā)學生學習軟件測試的興趣,增強學生的軟件質量意識。

    1.軟件測試大賽

    2016年首屆“全國大學生軟件測試大賽”[15]由教育部軟件工程專業(yè)教學指導委員會、中國計算機學會軟件工程專業(yè)委員會、中國軟件測評機構聯(lián)盟、中國計算機學會系統(tǒng)軟件專業(yè)委員會和中國計算機學會容錯計算專業(yè)委員會在南京大學聯(lián)合舉辦。大賽旨在提高大學生的軟件質量意識,增強其軟件測試能力,深化軟件工程實踐教學改革。大賽個人賽分為以下四個分項賽。

    (1)開發(fā)者測試:大賽組委會提供來自開源社區(qū)的Java程序代碼,在慕測WebIDE或者Eclipse客戶端完成JUnit測試腳本。以分支覆蓋率和Bug檢測率作為評分標準。

    (2)移動應用測試:大賽組委會提供來自企業(yè)的待測移動應用和測試需求,在慕測的WebIDE或者Eclipse客戶端完成Appium測試腳本。Appium腳本的測試需求對象覆蓋率和眾包測試的Bug檢測率為評分標準。

    (3)嵌入式測試:大賽組委會提供基于互聯(lián)網(wǎng)的模擬嵌入式測試任務,對模擬嵌入式應用程序進行基于工具的自動化黑盒測試,在慕測WebIDE或者客戶端完成ETest測試腳本。使用ETest作為測試環(huán)境,被測件為嵌入式教學工具箱中的嵌入式軟件。

    (4)Web安全測試:大賽組委會提供一系列不同知識點的Web安全測試靶機,參賽選手通過解題獲得相應題目中的flag(旗標文件),并提交至評分系統(tǒng),評分系統(tǒng)審核確認flag正確后自動將積分傳遞給選手,選手以此獲得相應的分值。根據(jù)賽題的得分點和得分時間綜合計算比賽成績。

    軟件測試大賽雖然以軟件測試為主題,但僅以軟件工程課程中所涉及的軟件測試內容來備戰(zhàn)是遠遠不夠的。傳統(tǒng)課程教學重點在于傳授理論知識,是基礎部分,比賽考查的是專項的實戰(zhàn)能力,是升華部分。因此,要結合學生特點以及軟件工程課程的實施情況,制訂緊貼競賽實戰(zhàn)、提升學生全面測試能力的方案。可分別從理論強化、專題培訓、實戰(zhàn)演練等方面開展針對軟件測試大賽的專項能力培養(yǎng),將基礎理論與實際比賽案例相結合,以此調動學生對課程的學習興趣和學習積極性。

    2.強化理論

    軟件測試大賽雖然注重對學生測試實踐能力的考查,但軟件測試理論知識是基礎,因此要強化理論基礎,具體包括以下幾方面。

    (1)基礎理論:軟件測試基本原理、軟件質量模型、驗證與確認、錯誤、失效、缺陷、軟件測試、軟件調試、測試用例、測試用例集、測試充分性、測試腳本、測試流程(單元測試、集成測試、系統(tǒng)測試、驗收測試)。

    (2)測試用例設計方法:黑盒測試(等價類劃分、邊界值分析、錯誤推測法、場景分析法、因果圖法、判定表法、正交試驗法、功能圖法)、白盒測試(基本路徑法、邏輯覆蓋法、循環(huán)覆蓋、Z路徑覆蓋、控制流覆蓋、數(shù)據(jù)流覆蓋)、靜態(tài)測試、動態(tài)測試等。

    (3)測試用例編寫:測試用例標識、測試用例類別、前置條件、測試步驟、測試輸入、預期輸出結果等。

    軟件測試基礎理論部分以相應的測試案例為授課背景,增加學生對軟件測試的感性認識和學習興趣,讓學生形成分析測試需求、設計測試用例、發(fā)現(xiàn)缺陷、分析缺陷并提交內容明確且有效的缺陷報告的思考模式。

    3.專題培訓

    由于軟件測試大賽的個人賽由4個分項賽組成,每個分項賽有各自考查的測試類型及對應的測試工具,因此在學生掌握基礎的測試理論之后,便可進行每個分項賽的專項練習。每個分項專題主要包含以下知識點。

    (1)開發(fā)者測試:java基礎、junit測試、單元測試、測試用例設計、邏輯覆蓋準則、變異測試(用于評估測試用例集測試充分性)、mujava變異測試、PITest變異測試。

    (2)移動應用測試:Selenium、Appium自動化測試框架、UIAutomation、眾包測試。

    (3)嵌入式測試:Python基礎、嵌入式操作系統(tǒng)基礎、嵌入式硬件基礎、嵌入式軟件測試基礎、ETest測試實戰(zhàn)演練——測試環(huán)境搭建(新建測試方案、構建仿真模型、編寫接口協(xié)議、配置規(guī)劃目錄、設計測試腳本、設計測試監(jiān)控、測試執(zhí)行及結果分析)、測試需求分析、測試用例設計、測試腳本編寫、測試運行與調試、bug報告。

    (4)Web安全測試:Web漏洞掃描、SQL注入、程序逆向、漏洞挖掘、Web滲透、加密解密、數(shù)據(jù)隱藏、遠程利用、Appscan、Wvs、Bursuite等。

    4.實戰(zhàn)演練

    軟件測試大賽的選題都是來源于真實的企業(yè)案例,充分利用大賽預賽及往年賽題,學生可以熟悉比賽環(huán)境及賽點,并通過分析賽題測試需求,在慕測平臺[15]用慕測WebIDE模擬參賽,進行實戰(zhàn)演練。這種實戰(zhàn)演練的方式更能激發(fā)學生的求知欲,鍛煉其測試實戰(zhàn)能力。

    借助慕測平臺的練習題功能,教師從題庫中選擇相應的分項賽練習題(題庫中包含有往屆的分區(qū)賽與總決賽題目),建立不同分項賽的練習群。學生選擇進入對應分項賽的練習群,自主模擬練習。同時,教師可以分析學生的練習情況,并對其中的常見失分點進行分析講解。

    慕測平臺可以針對每個分項賽的學生進行模擬出卷,學生需要在模擬答卷時間內下載模擬案例題目,分析測試需求、配置測試環(huán)境、設計測試用例、編寫測試腳本、執(zhí)行測試、針對需求判定測試結果、及時發(fā)現(xiàn)缺陷,最后還需提交詳盡的測試用例設計報告及缺陷報告。學生通過模擬比賽,完整體驗了比賽的全部流程,提高了綜合測試能力,增強了參賽信心。

    五、結語

    構建具備完整性與先進性的軟件工程課程體系,能使學生建立合理、全面的專業(yè)知識結構。根據(jù)軟件工程學科課程理論抽象、實踐性強的特點,提出了全方位教學法,打牢學生軟件工程學科課程基礎。以賽促學方法,從理論強化、專題培訓、實戰(zhàn)演練等方面開展針對專項能力的培養(yǎng),有利于全面提升學生的軟件工程綜合素質。

    軟件工程課程體系中的軟件測試課程內容豐富、知識量大、實踐性強,可結合全國大學生軟件測試大賽,將軟件測試基礎知識靈活應用于比賽項目中。學生通過參賽獲得了對軟件測試的深層次理解,學習效果顯著。

    [參考文獻]

    [1] 王秀珍,汪群山.關于軟件工程學科建設的思考[J].中國校外教育,2012(21):157+168.

    [2] 羅鐘鉉.把準雙一流建設坐標 推進軟件工程學科發(fā)展:大連理工大學校長助理羅鐘鉉教授專訪[J].計算機教育,2016(11):1-7.

    [3] 岑宇森,熊芳敏.軟件工程課程項目教學法研究[J].計算機教育,2009(21):83-85.

    [4] 涂飛,張小川,王森.軟件工程專業(yè)學生職業(yè)素養(yǎng)培養(yǎng)研究與實踐[J].教育教學論壇,2018(11):136-138.

    [5] 鄭煒,王文鵬,胡德生,等.基于MOOC的軟件測試課程教學建設[J].計算機教育,2017(1):31-37.

    [6] 王法勝,熊耀華,康玲,等.TOPCARES-CDIO引導的軟件測試課程設計[J].軟件工程,2016(10):60-62.

    [7] Software Engineering Body of Knowledge(SWEBOK) | IEEE

    Computer Society[EB/OL].[2018-09-13].https://www.computer.org/education/bodies-of-knowledge/software-engineering#__NO_LINK_PROXY__.

    [8] 李雯睿,張鵬程,楊種學.基于主動學習策略的軟件測試教學方法初探[J]. 教育與教學研究,2012(8):54-57.

    [9] 林若欽.項目驅動軟件測試實驗教學改革的意義與方案探討[J].價值工程,2017(3):226-228.

    [10] 陳翔,鞠小林.卓越計劃驅動下的軟件測試技術課程教學改革[J].計算機教育,2013(13):14-17+21.

    [11] 楊秋輝,洪玫,郭兵,等.軟件測試課程實踐教學改革研究[J].計算機教育,2016(2):106-109.

    [12] 蔣湘濤,辛動軍,黃輝,等.學科競賽促進軟件工程專業(yè)實踐教學模式探索[J].軟件工程,2018(4):58-60.

    [13] 卜令瑞,陳靜.基于技能大賽的《軟件測試》課程設計[J].信息技術與信息化,2017(11):32-34.

    [14] 李繪卓,唐峻,范勇.基于敏捷測試的軟件測試實踐教學[J].計算機教育,2017(3):155-159.

    [15] 2018全國大學生軟件測試大賽[EB/OL].[2018-09-13]http://www.mooctest.org.

    [責任編輯:龐丹丹]

    猜你喜歡
    以賽促學
    高職院校Android課程教學實踐及思考
    以賽促學 以學促效
    體育教學(2017年1期)2017-02-28 17:10:49
    以賽促教、以賽促學教學模式探討
    敢拼才會贏
    以賽促教,以賽促學,改革藝術院校計算機基礎課程
    軟件人才培養(yǎng)“以賽促學”教學模式研究
    高職學生對“雙證融通”和“以賽促學”認知度與參與度的現(xiàn)狀研究
    大學教育(2016年5期)2016-06-20 23:54:52
    以賽促學導向下,關于提高護生綜合能力的探討
    “以賽促學,以賽促教”的教學模式改革探索
    求知導刊(2016年2期)2016-03-05 22:21:28
    教師介入在高職英語“以賽促學”中的應用
    福泉市| 衢州市| 海晏县| 曲沃县| 南汇区| 中方县| 皋兰县| 东乌珠穆沁旗| 沙雅县| 永嘉县| 梁山县| 胶州市| 江孜县| 中西区| 根河市| 甘泉县| 太原市| 沙湾县| 宽甸| 丁青县| 剑川县| 江西省| 青阳县| 铅山县| 汉阴县| 南乐县| 漳州市| 高邮市| 武乡县| 都江堰市| 同德县| 龙门县| 平顺县| 林州市| 台北县| 宁远县| 乐清市| 富民县| 囊谦县| 泰州市| 通化县|