孫晉永 蔡國永 汪華登 趙響
[摘 要] 該文分析當前軟件測試課教學的現狀,提出了以學生為中心的教學改革方案。明確以學生為中心的教學理念,設計培養學生解決軟件系統測試問題能力的教學內容;重點培養學生的測試需求分析與計劃能力、測試計劃執行能力和結果分析能力。教學實踐證明,該方案提高了學生的軟件系統測試能力,對培養滿足IT企業需求的軟件測試人才有積極推進作用。
[關鍵詞] 軟件測試;以學生為中心;能力培養
[基金項目] 2018年度廣西壯族自治區高等教育本科教學改革工程項目(2018JGB186,2018JGB180)
[作者簡介] 孫晉永(1978—),男,博士,山東棗莊人,桂林電子科技大學計算機與信息安全學院副教授,主要從事業務過程管理研究。
[中圖分類號] G642? ? [文獻標識碼] A? ? [文章編號] 1674-9324(2020)38-0160-02? ? [收稿日期] 2020-02-17
一、引言
軟件測試是保障軟件質量的唯一手段。目前所有高校的計算機相關專業都開設了軟件測試課程。然而,培養出的軟件測試人才與IT企業的實際需求還有一定差距。主要原因是目前軟件測試課教學主要講授軟件測試基本理論和方法,對學生的實踐訓練不足,影響了學生軟件系統測試能力的培養。因此,有必要對目前軟件測試教學模式進行改進。
二、目前軟件測試課程教學存在的問題
1.目前計算機相關專業的培養方案普遍“重開發、輕測試”,一般把軟件測試安排為限選或任選課,學時較少。授課教師不夠重視;學生把這門課作為了解性知識,積極性不高。
2.理論課教師主要講授軟件測試的基本理論和方法,以講解軟件測試知識點為主,各知識點間的關聯不多。實踐課基本上是軟件測試基本方法的驗證、較小軟件單元的模擬測試、測試工具的簡單使用,較少涉及軟件系統的測試需求分析和測試計劃。
3.軟件測試的實踐性很強,但授課教師大多沒有接受過專門的軟件測試技術訓練;軟件測試工程實踐經驗不足。
4.授課教師一般按教學計劃授課、考試和評定成績,而對學生在教學過程中的知識掌握程度缺少了解,也不夠重視。
基于產出的教育(Outcomes-based Education,OBE)模式理念,作者提出了“以學生為中心”的課程教學改革方案。“以學生為中心”,即任何有關教學的決策與措施應該把學生作為第一受益者來考慮。第一步,明確以培養學生解決軟件系統測試問題的能力作為教學計劃制定、內容設計和課堂教學的直接目標。第二步,努力把課堂教學從“軟件測試基本理論和方法的知識傳遞”轉變為“軟件系統的測試能力培養”。
三、以學生為中心的課程教學改革方案
1.明確課程培養目標,制定教學計劃。課程培養目標為:學生具備解決軟件系統測試問題的能力,包括:測試需求分析與計劃、計劃執行和結果分析能力。教學目標1:理解軟件測試基本理論,掌握基本測試方法,并開展測試設計,熟悉常見測試工具;教學目標2:能針對軟件系統的功能、性能要求等設計測試方案,選用適當的測試方法或工具進行測試,采集測試結果,對預期結果和實際結果進行比較、分析和解釋,得出有效結論。以32學時為例,制定教學計劃如下。
(1)理論課。i.軟件測試背景與基本概念,2學時,講授法,課堂考勤評估。ii.軟件需求評審,2學時,問題驅動討論法,課后作業和課堂演講評估。iii.軟件測試基本方法,4學時,案例法,課堂測試評估。iv.軟件測試流程、過程模型與標準規范,2學時,講授法,課堂演講評估。v.單元測試、功能測試與性能測試,6學時,案例法,課堂測試和課堂演講評估。vi.自動化測試及工具,2學時,講授法和體驗學習法,課堂演講評估。vii.測試用例設計、維護與測試報告,2學時,講授法和案例法,課后作業和課堂演講評估。viii.軟件測試報告、測試評估和軟件質量保障,2學時,案例法,課程報告評估。
(2)實驗課。內容:單元測試及工具JUnit應用,Web自動化測試及性能測試,測試用例設計與測試管理,隨機測試,共8學時。現場指導教學,采用實驗驗收和分析報告方式評估。
理論課的第i-iii,v-vii部分和實驗課主要培養測試計劃執行能力;第ii,iv部分培養測試需求分析與計劃能力;第viii部分培養測試結果分析能力。
2.改進理論課教學方法,提高教學效果。(1)采用Bloom學習分類法,減少講授記憶型的軟件測試基礎理論內容,增加講授理解和應用型的軟件測試技術內容。結合多種教學方法引導學生進行探索性學習,同時評估學生的軟件測試能力水平。(2)提高課后作業復雜度,部分保留現有分析和計算題,把從基礎概念題改為有挑戰性的分析或應用題。如:學會使用某測試工具,如代碼靜態分析工具PMD、單元和集成測試框架TestNG等,在課堂講解;針對某軟件單元模塊,分析測試需求,設計測試計劃和用例進行測試,在課堂講解等。這樣可以加深對軟件測試方法的理解,提高測試計劃執行能力。(3)在課程的每2-3章內容結束時進行一次開卷課堂測試。測試一般使用2-3個題目,耗時約30分鐘。這樣可以了解學生的知識掌握程度,據此調整教學內容。測試內容是需靈活運用教材中的基礎知識才可以解決的問題。具體類型有:使用黑盒/白盒方法進行單元測試、測試場景分析、具體軟件模塊的測試需求分析和計劃、測試用例設計等。這種形式可以培養學生的測試需求分析與計劃,以及測試計劃執行能力。
3.跟蹤軟件測試技術發展更新實驗課教學內容,提高學生的測試計劃執行能力。實驗課教師需要跟蹤軟件測試技術和工具的發展,更新教學內容,如增加代碼靜態分析工具FindBugs,TestNG框架,移動APP測試,Web網站安全性測試工具,隨機測試等。在實驗教學過程中,還要求學生在慕測網(www.mooctest.net)上完成二個題目。這樣提高了學生的測試計劃執行能力,也提高了測試結果分析能力。
4.開展多種形式的課外實踐活動,提高軟件測試技術自學習能力。為了擴大學生的軟件測試技術知識面和開闊眼界,邀請知名IT企業的測試工程師來校做專題報告,介紹軟件測試工程師的必備素質。這樣不但可以讓學生了解軟件測試方法在實際軟件項目測試中的應用,還可以對學生關心的測試工程師的招聘條件及待遇問題進行解答。教師還鼓勵學生考取軟件測試工程師職業資格證書,以考促學;參加軟件測試比賽,以賽促學,以此提高學習軟件測試的興趣和成就感,同時也提高軟件測試技術自學習能力。
筆者在2019年秋季學期的軟件測試課中實施了本方案。與2019年春季學期的軟件測試課進行對比,在課程考核的復雜度基本不變,實驗課內容的復雜度反而提高的前提下,秋季學期的軟件測試課的學生總評平均成績提高了17.8%;課程目標達成度從69提高到77,提高了11.6%。成績優良率從8.9%提高到37%,不及格率從28.5%下降到15.8%。以上數據說明了“以學生為中心”的軟件測試課程教學改革方案的有效性。
四、結論
本文從軟件測試教學的現狀出發,探討了“以學生為中心”的軟件測試課程教學改革方案。該方案可以較好地把課程從軟件測試知識傳遞轉變為軟件測試技術和能力培養,提高了教學效果,較好地培養了學生的軟件系統測試能力,對培養滿足IT企業需求的軟件測試人才有積極推動作用。今后,授課教師還需要加強自身的軟件測試工程實踐訓練,探索和嘗試時下流行的線下線上混合的教學模式,以更好地培養學生解決復雜軟件系統測試問題的潛力。
參考文獻
[1]張愛玲,周世生.新工科背景下軟件工程人才培養的研究與實踐[J].計算機教育,2018(06):29-32.
[2]張艷梅,王榮存,薛猛,等.專業認證背景下的“軟件測試技術”課程教學改革探索[J].計算機教育,2019(09):155-158.
[3]鞠小林,陳翔,文萬志,等.“互聯網+”背景下的軟件測試課程教學體系構建[J].計算機教育,2017(05):112-116.
[4]趙翀,高鵬.軟件測試課程工程實踐教學模式的探索與實施[J].計算機工程與科學,2014,36(S1):51-55.
Teaching Reform and Practice in Student-centered Software Testing Course
SUN Jin-yonga,CAI Guo-yonga,WANG Hua-denga,ZHAO Xiangb
(a.College of Computer and Information Security,b.College of Information and Communication,Guilin University of Electronic Science and Technology,Guilin,Guangxi 541004,China)
Abstract:Based on the analysis of Software Testing teaching,the paper presents the student-centered reform program.It holds on the student-centered concept,and designs teaching content of cultivating students' ability to solve software system testing problems.It focuses on cultivating students' ability of testing requirements analysis and planning,testing plan execution,and testing result analysis.Teaching practice shows that the program improves the students' ability of software system testing,and has a positive role in promoting software testing talents to meet IT enterprises' requirements.
Key words:Software Testing;student-centered;ability cultivation