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