馬竟鋒 李曉旭 孫岐峰 祁鑫
摘要 針對當前軟件測試課程中,偏重知識點介紹而忽視知識點實際應用環境介紹及缺乏對業界領先的軟件測試軟件介紹的特點,本文在闡述及分析了當前測試教學現狀利弊的基礎上,提出了以實例化教學為主,以掌握業界領先的軟件測試工具為輔,密切配合軟件開發過程,以實際開發過程帶動各知識點的介紹等一系列的方法,本方法在實際的實踐教學中取得了良好的教學效果。
關鍵詞 軟件測試 實踐教學 測試工具
中圖分類號:TP311.53文獻標識碼:A
1 軟件測試課程教學現狀及分析
1.1 軟件測試課程教學現狀介紹
軟件測試是軟件工程專業本科生的一門重要的必修課程。在本校的課程設置中為56學時,其中理論教學為32學時,上機實踐為24學時,由于軟件測試的各個環節分別對應于軟件工程的相應環節,使得軟件測試課程的內容龐雜,而其實踐環節也相應地具有內容雜,任務重的特點。
軟件測試的教學目標是通過理論及實踐教學,讓本科生熟悉軟件測試的工作流程、常用軟件測試方法及常用工具的使用及軟件測試過程管理。
教學過程中的主要參考書目為機械工業出版社出版,原著為Paul C.Jorgensen,韓柯等譯的《軟件測試(原書第2版)》,原書的英文名為《Software Testing A Craftsman''s Approach(Second Edition》。授課基本流程基本也是依據以上教材的流程,首先介紹軟件測試的概論,介紹什么是軟件測試,軟件測試的意義、軟件測試的基本流程和基本概念等內容。接著介紹貫穿全書的軟件測試需要的示例以及軟件測試所需要的基本理論知識,包括測試人員使用的離散數學及圖論相關知識。介紹完以上知識以后,按照軟件測試流程依次介紹單元測試、集成測試和系統測試的測試用例開發方法和技術。其中在單元測試部分分別介紹單元測試部分的黑盒測試和白盒測試內容,黑盒測試部分包括邊界值測試、等價類測試和基于決策表的測試,在白盒測試部分介紹路徑測試、數據流測試等結構性測試方法的測試用例開發技術。介紹完以上內容以后,又介紹了面向對象的軟件測試方法。
課程的上機實踐基本上也是配合上課的流程進行安排,在相應的知識點介紹以后,安排學生按照指定的技術開發測試用例以進行測試活動,附帶掌握相應的軟件測試的各種管理和自動化工具。
1.2 軟件測試課程教學現狀分析
通過以上教學流程的描述結合以往畢業生工作以后反饋,可以總結其教學過程的特點為:通過系統的學習,同學們基本上能掌握軟件測試用例開發的各種技術要點,對所有的知識點都有所觸及,通過學習同學們基本上能夠掌握各種實用的軟件測試用例的開發方法,也能將各種方法應用于實際軟件測試中。
而在實際軟件測試實踐中,軟件測試工作具有以下特點:
首先,依據測試工作越早開展越有利的原則,軟件測試一般從開發的初期就開始介入。例如在開發初期,需要編制測試計劃進行時間人員和物力上的計劃;在需求分析階段需要進行軟件測試的系統測試用例的開發;在設計階段需要進行集成測試用例的開發,隨著設計粒度越來越細,相應的路徑及數據流集成測試用例也向下擴展;到達軟件編碼階段,主要依據相應白盒技術進行單元測試用例的開發。其次,現代化的測試管理技術需要利用軟件全面管理軟件測試過程中的環節,包括測試計劃的建立及管理、測試用例的管理、測試過程評價管理等。最后,因為人力資源成本的提高及各種技術限制,各種自動化的軟件用例的運行軟件的使用越來越多等。
通過比較教學過程及實際軟件測試的開發過程很容易發現以往教學過程具有以下限制:
首先,沒有將軟件測試作為軟件開發的有機部分進行介紹,而是將軟件測試過程從軟件開發過程中割裂開來。知識點沒有按照實際應用過程展開,容易造成同學們掌握各個知識點,卻無法形成知識實際應用能力。其次,缺少相應的測試管理軟件的介紹和實踐,影響了同學們對軟件測試管理的重要性的認識。最后,教學課程缺乏同學們比較感興趣的各種軟件測試自動化工具的介紹。降低了同學們的學習興趣。
2 軟件測試課程教學改革方法探討
通過上文的現狀介紹和分析,針對以上教學方法進行改造,同時本著揚長避短的原則,在中國石油大學(華東)軟件工程專業2009級軟件測試課程教學過程中進行了教學改革。
教學改革的契機為本校軟件工程專業和IBM公司開展教材合作編寫項目,軟件測試作為軟件開發的重要部分獲得了空前的發展良機。
具體的有利因素可以概括為:首先,學校向IBM公司購買JAZZ開發平臺及相應的專業軟件測試管理軟件。通過和業界領先的最新的軟件測試管理軟件接觸,了解了最新的軟件測試管理理念;其次,通過IBM公司對教工的業務培訓,了解了IBM公司的各種軟件測試工具的使用情況;最后,通過本文作者共同努力,將平時用于開發的實際應用軟件例如體育公共課管理軟件等進行整合,用于軟件測試用例的案例教學。
有了以上基礎前提以后,結合以上有利條件,教改的主要做法如下:首先進行案例化教學,通過自己開發的軟件這樣生動的實例向同學們介紹軟件開發過程中的軟件測試的重要性和各種原則,避免了介紹知識的空洞和乏味,提高了同學們的學習興趣;其次,在案例化教學的指導思想下,重新安排各個教學點的教學順序,主要脈絡為依照軟件開發的實際流程,首先介紹系統用例開發技術,然后介紹繼承測試用例開發,到最后介紹單元測試用例開發方法。在運行測試用例的過程中,充分結合IBM公司提供的各種軟件測試用例運行工具,使得學生能夠活學活用。最后,充分利用IBM的軟件平臺,介紹業界領先的軟件管理工具的使用,使得學生學習興趣得到極大提高。
通過以上的教學改革,理順了教學和實踐的關系,使得教學過程緊密聯系實際軟件的開發過程,同學們對軟件測試課程的理解得到了加深。
3 結論及下一步工作
通過上文對教學現狀的總結,以及針對教學現狀的利弊進行分析,本文充分利用外部優勢大膽進行了軟件測試的教學改革,取得了預期的改革目標。同時也注意到改革工作才剛剛開始,還有很多需要完善的地方。接下來的工作主要包括:進一步豐富用于軟件測試教學的案例及密切關注業界測試技術的最新發展以用于教學。總之,本文的教改工作達到了預期的目標,使得同學們對于軟件測試的理解較之以前更加條理化、系統化和實用化。
參考文獻
[1] 匡青.高職院校軟件測試課程教學改革探索[J].現代商貿工業,2010.3.
[2] 施瑤.軟件測試課程開設初探[J].福建電腦,2010.2.
[3] 聶靜.探索“工作過程導向”的軟件測試課程開發[J].中國科教創新導刊,2012,7.