聶慧+彭嬌
摘 要:該文分析了軟件測試技術課程的特點及列舉了一些該課程的基本概念,得出軟件測試技術是一門基礎概念較難理解的課程。為了讓學生更形象地理解軟件測試基本概念,該文提出引入郎中治病案例可將課程變得生動易理解。
關鍵詞:軟件測試 教學 案例
中圖分類號:G642 文獻標識碼:A 文章編號:1672-3791(2016)09(b)-0102-02
隨著國內軟件技術的不斷發展,軟件測試人才缺口越來越大,為了滿足市場需求,很多高校陸續開設了“軟件測試技術”課程。該課程的教學目的是讓學生掌握軟件測試基本理論和方法,體會設計測試用例的技巧,學會使用測試工具進行軟件的測試等,為軟件測試工程師崗位及軟件開發崗位打下堅實的基礎。
1 軟件測試技術課程的特點
軟件測試技術作為計算機相關專業特別是軟件工程專業的核心課程,具有以下一些特點:
(1)基本概念多:軟件測試技術課程的基本概念較多、較抽象,掌握基本概念是后續學習的基礎。
(2)實踐性強:軟件測試技術要求學生掌握流行的軟件測試工具,熟練使用工具進行軟件測試。
(3)技巧性高:學會設計測試用例是軟件測試的重點及難點,而如何設計出高質量的測試用例需要測試經驗和技巧。
2 軟件測試技術課程的重點概念
理解軟件測試基本概念是該課程的重點及難點,如何有效地讓學生理解掌握基本概念是教學過程中的一大難題,該文將列舉一些重要概念。
(1)軟件:軟件=程序+文檔+數據。軟件不再是單一的程序代碼,隨著程序功能愈加復雜,規模愈加增大,軟件還包括其生命周期中的相關文檔及用戶使用后產生的相關數據。其相關文檔有:需求規格說明書,測試計劃書,測試用例,測試結論,產品使用說明書,維修記錄等;其相關數據有:用戶的賬號,密碼,使用過程發送的信息,接收的文件等。
(2)軟件測試:軟件測試的對象是軟件,方法有手工和自動化,自動化工具主要有LoadRunner和QTP,目標是找問題,終極目標是保證軟件質量。因此軟件測試是指為提高軟件質量,主要利用自動化測試工具偶爾采用手工方式,結合測試用例反復對軟件找問題及評估軟件質量的過程。
(3)軟件缺陷:軟件缺陷也叫軟件bug,指軟件存在的問題,這些bug會阻礙軟件功能的正常實現,導致軟件質量低下。若交付給客戶使用,可能會帶來不可挽回的損失。
(4)測試用例:測試用例是為測試特定功能開發的一組測試輸入、執行條件和預期結果的數據集合。當測試人員完成測試后,還需給測試用例加上一組測試后的數據,該測試后的數據也稱實際結果。
(5)軟件測試與軟件開發的并行性:國內企業,軟件測試與軟件開發在時間上大部分是同步的,從軟件生命周期開始,軟件測試也將介入工作。軟件開發的每一個步驟,軟件測試均有對應的流程,如此來提高軟件質量。
綜上所述,軟件測試基本概念比較理論抽象,對于很多軟件工程專業的學生來說,只是停留在片面的將軟件理解為程序,更無法理解軟件測試及測試用例相關概念。因此,在現實中尋找案例幫助學生理解以上重要概念意義非凡。
3 郎中治病
眾所周知,郎中通過望、聞、問、切等人工方式甚至采用醫療器械來診斷病人,同時可能會根據病人之前的病歷來確診病人存在的問題。郎中診斷后會在病人的病歷上做記錄,寫明發病癥狀及結論,最后給病人提出治病方案。
郎中治病的對象是病人,方法有人工和工具方式,目標是給病人找毛病,終極目標是恢復病人的健康。從這個層面看,郎中治病與軟件測試是相通的,它們有相同之處。作為現實中最普遍的案例,且同學們自己本身都有經歷,對于其流程有過深刻體會,因此將郎中治病作為軟件測試教學的引入案例是可取的。
4 郎中治病在軟件測試教學的應用
在軟件測試教學中,適當的引入郎中治病可較好地引導學生理解以下基本概念:
(1)郎中治病的對象是病人,軟件測試的對象是軟件。
(2)郎中通過望、聞、問、切等方式了解病人病情,屬于人工方式的診斷,測試人員評審需求規格文檔,檢查程序數據結構算法等則屬于人工方式的測試;若郎中借助醫療器械診斷病人,那么類似于測試人員借助工具尋找軟件問題,屬于自動化方式。
(3)有些病情采用自動化工具無法診斷,必須通過人工方式,比如中醫,因此工具無法代替人工。有些軟件也必須人工測試才可找到問題,工具不是萬能的,不能取代手工。
(4)郎中治病可提高病人的身體素質即保證病人的身體健康,測試人員測試軟件則可提高軟件質量。
(5)病人不舒服叫生病,軟件不正常則叫bug,或有缺陷。病人生病無法正常生活、工作,類似于軟件有缺陷則無法正常運行。
(6)郎中診斷病人后,將病人的病情與健康標準對比,若不一致說明病人此處生病了,若一致則說明此處是健康的。類似于測試人員將測試后的結果與需求規格上的標準對比,若一致說明此處無bug,若不一致則說明此處有問題。這是衡量是否為bug的方法。
(7)大部分人一旦有些不舒服,比如感冒,一般會馬上去找郎中診斷治病,而不會等到感冒發展成大病才重視,生病與治病并行。類似于軟件一旦開發就進行測試,不會等到軟件交付給用戶使用出現了損失才補救,因此大部分國內企業主要采用的是開發與測試同步。雖然預防人生病是最好的,但大部分人因技術不夠無法做好預防,類似于預防軟件出問題是最好的選擇,但因測試技術跟不上,同樣無法做到測試早于開發。
(8)郎中診斷病人,最終不能保證病人不存在一點點亞健康,完完全全健康的人很少,類似于軟件測試反復給軟件找問題,但最終軟件還是會存在缺陷,沒有錯誤的軟件世間難求。
5 結語
郎中治病是現實生活中普遍的案例,由于其具有和軟件測試相通的流程,故可將該案例帶入課堂。教學中將郎中治病與軟件測試進行比較分析,不僅形象生動,還易于理解。因此,郎中治病是一個較成功的案例,可在軟件測試教學中廣泛應用。
參考文獻
[1] 楊勝利.軟件測試技術[M].廣東高等教育出版社,2015.
[2] 王蓁蓁.軟件測試理論初步框架[J].計算機科學,2014,41(3):12-16.
[3] 聶長海.關于軟件測試的幾點思考[J].計算機科學,2011,38(2):1-3.
[4] 丁智國,呂振洪.軟件測試課程實驗教學探索[J].計算機教育,2012(3):102-105.
[5] 胡宏銀.軟件測試課程教學方法探討與實踐[J].計算機教育,2007(12):11-13.