劉進 亢艷芹 王勇 劉濤 張新楊


摘要:“學生為中心、產出為導向和持續改進”工程教育認證理念,為傳統的軟件測試技術課程教學提供了改革的指導性方向。為此,該文分別從課程定位、理論教學內容、實驗教學內容、考核方式四個角度對工程認證教育理念下的軟件測試技術課程進行研究,并提出一些改革思路和方法。
關鍵詞:工程教育認證;軟件測試技術;教學內容
中圖分類號:G642.4 文獻標識碼:A
文章編號:1009-3044(2020)11-0047-02
1研究背景
隨著我國計算機技術、信息技術及軟件產業的迅速崛起,軟件測試工程師在諸多領域中越來越受到重視,培養軟件測試專業技術人才的軟件測試技術課程,顯得尤為重要。工程教育認證最終是以輸出評價為依據,針對軟件測試技術這門課程,以產業應用為導向的培養人才模式是教學的核心思想,不僅需要具有扎實理論沉淀及豐富實踐積累的一線教師,還應能充分發揮教師在專業技能傳授中的主導作用,關鍵就是如何結合工程教育理念及實際產業需求對課程進行深化改革。
2課程定位分析
《軟件測試技術》課程是軟件工程專業學生的必修課程。通過本門課程的系統學習后,要求學生能夠掌握軟件測試的基本理論,熟練掌握軟件測試基本方法及運用相關技術對軟件項目進行測試,并能設計軟件測試用例和撰寫測試報告,熟悉相關自動化測試工具的使用。課程的學習能夠為本專業學生從事軟件開發及測試工作和進一步計算機領域深入研究提供基礎理論知識和基本實踐技能。
課程目標對學生能力要求如下:
課程目標1:掌握軟件測試的基本方法及充分陛度量準則,掌握基于單元測試、集成測試等方法,能夠使用一種框架,選擇合適的測試方法對給定軟件進行測試的能力。
課程目標2:具備給定一種待測軟件,評估和分析測試任務、明確測試計劃、設計測試用例及運行測試用例的能力,并對該軟件的工程和社會影像進行分析和評價。
課程目標3:能夠針對軟件相關領域中的復雜工程問題與相關領域技術人員及社會公眾進行交流,掌握相關的測試報告和測試文檔撰寫方法,能清晰表述及分析軟件中存在的缺陷。
在學生素質提高、能力培養和知識獲取3個方面工程教育認證都有對應的明確任務,專業所培養的學生在畢業時需要達到相對應的12項要求。而本門軟件測試技術課程為專業核心課程,要求在12項畢業要求中能突出體現第5、6和10項要求,具體如表1所示。
3基于工程教育認證的課程教學內容研究
3.1理論教學內容
1)教學內容不夠合理
傳統教學中,教師更關注理論性知識點的講授,學生難以通過實踐做一個完整的軟件工程項目。目前,現有一些優秀的軟件測試相關教學資源中,也僅包括專業教師所設計一些單一有限的測試示例,或者從相關學習網站(如討論論壇或開源社區等)中下載的一些簡單測試項目,這些教學資源之間往往是孤立的,并不能從根本上發揮培養學生實踐技能的作用。
2)能力培養目標不達標
軟件測試技術課程,在培養學生解決一定復雜工程問題能力中具有重要的地位。通過該課程的學習,學生應具有以下能力:獲取項目相關信息的能力、解決工程實際問題的能力、在具體的軟件工程項目中鍛煉測試技術、能利用團隊合作的優勢高效解決工程復雜問題、可持續發展的學習能力。但傳統教學重理論輕實踐,內容陳舊,學生學習興趣不高,主動分析思考啟發不足,缺乏解決問題的內在動力,最終導致工程應用能力和創新能力的欠缺。
對軟件測試技術課程進行工程教育認證改革,需要轉變思想,更新教學理念,進一步修改完善課程教學大綱,調整課程教學模式和內容。作者所在高校結合軟件工程專業工程教育認證建設要求和人才培養需要,對課程教學內容進行整合優化,并引入翻轉課堂教學模式,通過軟件測試工程項目案例講授基本理論知識,采用智慧教學平臺“雨課堂”課前發布課程資源,課中開展主題討論,課堂測驗等,課后在線互動答疑,實現線上線下相結合。
理論教學內容及要求如下:
1)軟件測試概述:了解軟件測試工程師的工作;掌握軟件測試過程;掌握軟件測試的基本思想;了解構造測試用例的方法。
2)邊界值測試:掌握軟件測試中的邊界值分析方法;掌握圖模型進行軟件測試的內涵;理解邊界值分析,邊界值測試測試、健壯性邊界值測試等相關方法的選取及意義;掌握邊界值測試的基本原則。
3)等價類測試:掌握等價類的劃分;掌握傳統的等價類測試方法;掌握改進的等價類測試方法;熟練運用等價類測試的方法實現實際程序的測試;了解邊緣測試;掌握等價類測試原則和注意事項。
4)基于決策表的測試:掌握決策表的定義;掌握決策表測試過程及策略;掌握因果圖法與輸入域劃分約束之間的關系;掌握決策表測試技巧;掌握決策表測試原則和注意事項。
5)路徑測試:了解程序圖;掌握DD路徑的劃分;掌握基路徑測試的基本步驟;掌握路徑測試的基本原則和注意事項。
6)數據流測試:掌握數據流測試的定義和使用方法;掌握基于程序切片的測試;掌握部分程序切片工具;了解基于程序切片的測試用例選擇算法。
7)集成測試:掌握軟件測試充分性度量的意義;熟悉測試中的樁及驅動程序的意義;掌握不同覆蓋的測試充分性;了解不同覆蓋標準之間的區別和聯系。
8)系統測試:掌握系統測試里面線索的意義;掌握基于模型的線索;系統測試的覆蓋指標;了解長用例與短用例測試的區別;了解系統測試的相關方法。
9)面向對象測試:了解關于面向對象測試的概念及基本方法;理解面向對象測試與傳統測試的不同,熟悉面向對象測試中不同層次的測試方法。
3.2實驗教學內容
在工程教育認證理念的指導下,為配合理論課程學習,單獨開設《軟件測試技術實驗》課程。本課程包括1個驗證類實驗課題、5個設計類實驗課題和1個綜合類實驗課題。其中,驗證型課題側重于靜態測試,使學生理解完整的項目文檔以及邏輯嚴謹的程序代碼對于軟件質量的重要性。設計型實驗課題能夠讓學生快速掌握測試的基本方法。綜合型實驗課題其目的是提高學生解決一定軟件復雜工程問題的能力,培養軟件測試技能的同時更側重于分析解決問題的能力。針對實驗內容和實驗題目的設計其出發點要以本專業學生為中心,合理安排難易程度,能夠讓大部分學生得到充分鍛煉,從而提高學生對本專業課程學習認識度。
3.3改革考核方式
改革后課程最終考核包括30%平時評分和70%期末考試評分,其中平時評分又由50%作業和50%課內討論兩部分組成,課堂作業部分對應完成軟件測試技術課程目標1和2兩部分,課內討論部分包括課堂情況、小組溝通、問題表達、回答問題,學習態度等,對應課程目標1和3。期末考核內容改革為簡答題、分析題和綜合設計題,對應完成軟件測試課程目標1和2兩部分。在整個課程的考核結束后,課程教師將按照預定的課程目標達成度進行統計和分析,對該課程的教學效果進行總結和評價,最后做到持續改進的效果。
4結束語
本文以工程教育認證為導向對軟件測試技術課程進行教學改革研究,將軟件測試技術課堂教學內容整合為基礎知識,實用技術和實踐解決問題三大模塊,完善實驗實踐學習內容,增大學生實踐動手環節,更重要的是改革了教學方法,采用了從演示工程實例,抽象出測試模型到理論知識分析,再到創設軟件項目測試場景,學生分組討論形成總結,完成專業知識理解,有目的地培養軟件專業學生的工程實踐能力。