摘要:基于開源的軟件測試實踐教學方案是軟件測試實踐教學的一種大膽嘗試,具有示范性和推廣性,北京工業(yè)大學軟件學院在這方面開展了多年的實踐活動。文章介紹了開源軟件測試實踐教學的方案、對應的大綱和具體實施情況。
關鍵詞:開源軟件;軟件測試;實踐教學
軟件測試是軟件工程的一個重要分支,是軟件質量保證的重要基礎?,F代軟件測試與傳統(tǒng)的軟件測試不一樣,它貫穿軟件工程整個生命周期(從需求分析、軟件設計、代碼開發(fā),一直到最后測試、驗收和維護),涉及各種軟件開發(fā)技術、應用技術以及測試技術,覆蓋軟件各種應用領域(如桌面軟件、網絡應用、信息系統(tǒng)、電子服務、嵌入式系統(tǒng)、數字娛樂等),面臨不同的專業(yè)領域知識,所要求的投入與軟件開發(fā)相比規(guī)模同等甚至更高。另外,軟件測試是一項需具備較強專業(yè)技術、學習和創(chuàng)新能力的工作,軟件測試人員除了需要有一定的軟件測試實踐經驗外,必須要具有縝密的邏輯思維能力、全面的技術能力、各種測試工具的使用能力、敢想敢干的創(chuàng)新能力,要有較強的責任心和團隊合作精神以及出色的溝通能力等專業(yè)素質。要成為一名合格的軟件測試人才需要經過嚴格系統(tǒng)化的專業(yè)培養(yǎng),并且在專業(yè)培養(yǎng)過程中一定要結合軟件測試專業(yè)化的特殊要求,強調軟件測試人員的工程實踐能力。最后,要真正實現軟件測試的工程化,其基礎之一就是要有一大批支持軟件測試工程化的工具,軟件測試工具對于實現軟件測試的工程化是至關重要的。
終上所述,我們得出結論:軟件測試是一門對工程實踐要求極高,對學生動手能力要求極強的軟件工程核心課程。目前許多高校不同學歷教育的計算機專業(yè)或軟件工程專業(yè)均開設了這門課程,并配套有大量學時的實驗課程和課程設計課程。社會上許多培訓機構針對軟件測試人才短缺、職業(yè)穩(wěn)定等因素產生的就業(yè)需求,競相開展軟件測試的職業(yè)培訓/職業(yè)實訓。在這種前提或背景下,軟件測試實踐教學的實驗方案設計、實驗大綱制定、實驗室建設,測試工具配備、以及測試活動開展等就成了高等學校和培訓機構非常重視和亟待解決的問題。
1基于開源的軟件測試實驗方案
如何開展軟件測試的實驗,不同學校、不同培訓機構、不同授課老師或實驗指導老師都有著各自的方法和實驗內容,但他們都有著大致同樣的感受。這是因為:
1) 軟件測試貫穿軟件工程整個軟件生命周期,涉及各種軟件開發(fā)技術、應用技術以及測試技術,覆蓋軟件各種應用領域,需要用到多種測試技術、方法和測試類型。
2) 要建設能夠讓學生或受訓人員全面參與這些實驗或實踐的軟件測試實驗室,特別是全面配置商用軟件測試工具,這幾乎是不可能的。除一次性投入滿足數十位學生同時上機進行實驗或實踐的要求外,經常性的升級維護費用就會讓條件優(yōu)越的高?;蚺嘤枡C構難以承受,更不要說大多數條件不優(yōu)越的高等院校。
3) 如果我們完全依靠商用軟件測試工具開展軟件測試的實踐教學,除了面太窄、投入太高外,主要是很難對在這方面取得的實踐教學成果進行推廣和普及。
基于以上原因,我們就要考慮是否利用
l3YKp01+sNDo5hOnN5EJPRNuA5IdzVFuUOEqQSY9gc8=開源軟件資源進行軟件測試實驗室的建設,開源軟件資源能否支持軟件測試實驗室的建設,基于開源的軟件測試實驗室能否很好地支持軟件測試課程的實驗教學,以及是否有配套的實驗教程支持測試課程實驗教學的開展。
1.1軟件測試課程的系列教材建設情況
北京工業(yè)大學軟件學院作為第一批國家示范性軟件學院,積極面向IT產業(yè),努力為北京服務。近幾年來,學院結合北京市及學校大力開展的質量工程,以教育部特色專業(yè)建設、國家人才培養(yǎng)模式創(chuàng)新試驗區(qū)建設以及北京市軟件工程實踐教學示范中心建設為契機,將課程建設、教材建設(包括實驗教材)作為學院的一項重要工作來抓,并對精品課程建設以及配套的教材建設進行規(guī)劃。結合學院的師資隊伍情況,以軟件工程核心課程建設為突破口,開展軟件測試的精品課程建設,并與清華大學出版社合作,陸續(xù)推出軟件測試系列教材——《軟件測試大學教程》、《軟件測試實驗指導教程》以及《嵌入式軟件測試實用技術》。
1.2基于實驗教材的軟件測試實驗方案
《軟件測試實驗指導教程》是一個很好的基于開源軟件測試工具的軟件測試實驗開展解決方案。盡管該教材是《軟件測試大學教程》配套的實驗教材,但實際上是一本獨立的軟件測試實驗教材,覆蓋了軟件評測的各個環(huán)節(jié)和知識點。
該教材最突出的特點有如下幾個方面:
1) 以主流的開源軟件測試工具應用為基礎,以實戰(zhàn)能力培養(yǎng)為目的,為高等院校不同學歷教育的軟件工程專業(yè)和計算機相近專業(yè)開設軟件測試課程提供了全方位的、并且可行或可用的實踐教學方案和實踐教學平臺,并提供了配套的實踐教學案例。
2) 該教材在設計實驗教學重點和實踐能力要求時,充分考慮了國內大多數院校實驗教學經費有限,無法全方位引進商用軟件測試工具,無法開展軟件測試實驗室建設的實際情況,對國內外主流的開源軟件測試工具進行全面分析、研究和優(yōu)選,并經過北京工業(yè)大學軟件學院6輪實踐教學的檢驗。
3) 該書的實驗內容廣,涉及的軟件測試知識多,全面介紹開源軟件測試工具。無論是教師進行實驗指導,還是培訓機構進行實戰(zhàn)訓練或者學生進行自學自練,都是不可多得的實驗教材。
4) 該教材與國內常見的軟件測試實踐教材重點講授某個或某幾個商用軟件測試工具的方法不同,它是以現代IT企業(yè)軟件測試需求為背景,以主流的軟件測試技術和方法為基礎,以當前的軟件測試應用為實例,全面介紹了支持各種軟件測試類型的開源軟件測試工具的主要功能、應用流程及實際案例,涉及到測試管理、缺陷管理、代碼分析、單元測試、系統(tǒng)測試、性能測試以及軟件綜合評測等重要實踐內容,所選擇的開源測試軟件工具覆蓋軟件測試的各個測試階段和各種測試類型,保證了國內許多院校在辦學條件不足,實驗教學經費有限,無法全方位引進商用軟件測試工具的情況下,仍然能夠開設出軟件測試實踐類課程[1]。
2基于開源的軟件測試實驗大綱設計
盡管各個院校軟件測試課程的設置不一樣(如理論課或理論課+實驗課,學時、學分等),但由于《軟件測試實驗指導教程》的實驗內容相當豐富、齊全和完整,且難度不一,軟件測試實驗大綱完全可以依據該教材中的實驗內容來制定。下面我們以北京工業(yè)大學軟件學院的軟件測試課程為例介紹軟件測試實驗大綱。
北京工業(yè)大學軟件學院的軟件測試課程包括理論課及課程設計兩部分。理論課32學時,16周完成,每周2學時,最后參加學??荚囍艿拈]卷考試。課程設計是期末小學期2周集中進行,共60學時。
無論是理論課實驗還是課程設計,都是以軟件測試工具為核心,結合精心設計的測試案例,使學生從測試需求、測試環(huán)境建立、測試策略、測試技術應用、測試用例設計、測試用例執(zhí)行和測試結果分析以及缺陷跟蹤管理與測試報告文檔撰寫等方面完成實驗內容和課程設計內容。
2.1理論課程的實驗大綱
軟件測試理論課中安排了6個學時的實驗內容,包括三個方面的內容(每部分內容2學時):代碼靜態(tài)檢測、Java單元測試、Gtk+界面測試。其實驗內容如表1、表2和表3所示。
2.2課程設計大綱
軟件測試課程設計按照《軟件測試實驗指導教程》開設了6大類型的軟件測試項目,每個類型的測試項目要求學生同時使用主流的開源測試工具,體會先進和成熟的軟件測試技術,提高學生的實戰(zhàn)能力。
類型1:以測試過程管理為主,實驗重點是缺陷管理、測試管理以及缺陷管理與測試管理的集成。涉及到的開源工具主要有Mantis、Bugzilla、Testlink、Testopia等。
類型2:以程序的靜態(tài)分析為主,實驗內容是程序理解、代碼靜態(tài)分析。涉及到的開源工具主要有O