国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

結(jié)合缺陷預(yù)防的軟件測(cè)試教學(xué)改革探索

2014-03-20 16:45:43張戰(zhàn)成陸衛(wèi)忠任建平付保川
關(guān)鍵詞:質(zhì)量保證測(cè)試用例軟件測(cè)試

張戰(zhàn)成,陸衛(wèi)忠,任建平,付保川

(蘇州科技學(xué)院 電子與信息工程學(xué)院,江蘇 蘇州 215009)

隨著軟件規(guī)模和復(fù)雜性的增長(zhǎng),軟件產(chǎn)品的質(zhì)量逐步引起了客戶和軟件公司的重視,向用戶交付高質(zhì)量的軟件產(chǎn)品已成為各方的共識(shí)。一套清晰嚴(yán)格受控的軟件過程是高質(zhì)量軟件產(chǎn)品的基本保障,其中軟件測(cè)試是軟件質(zhì)量保證中最重要的一個(gè)環(huán)節(jié)。企業(yè)對(duì)軟件測(cè)試工程師的需求也與日俱增,為滿足企業(yè)對(duì)人才的需求,高校的課程設(shè)置、教學(xué)內(nèi)容也需要與時(shí)俱進(jìn)[1]。

傳統(tǒng)的軟件測(cè)試的教學(xué)內(nèi)容是軟件工程課程的一個(gè)章節(jié),在一門60課時(shí)的課程中一般占4~6個(gè)課時(shí),這么短的課時(shí)僅夠介紹軟件測(cè)試的概貌,其教學(xué)內(nèi)容的深度和廣度距離企業(yè)期待的既掌握扎實(shí)的軟件測(cè)試基本理論和測(cè)試方法,又具有一定的軟件測(cè)試經(jīng)驗(yàn)的測(cè)試人才的需求還有較大的差距[2]。為加強(qiáng)軟件測(cè)試人才的培養(yǎng),各個(gè)高校開設(shè)了軟件測(cè)試課程,甚至單獨(dú)的軟件測(cè)試培養(yǎng)方向。

通過軟件缺陷的統(tǒng)計(jì)發(fā)現(xiàn),不同的項(xiàng)目,不同的開發(fā)人員重復(fù)著同樣的Bug,甚至同一個(gè)人也重復(fù)相同的Bug,每一位新手都在重復(fù)前人走過的彎路,重復(fù)同樣的錯(cuò)誤[3]。將這些共性的錯(cuò)誤總結(jié)出來,提前學(xué)習(xí)和預(yù)防是軟件質(zhì)量保證中重要的一個(gè)環(huán)節(jié),與測(cè)試、缺陷定位修改、回歸測(cè)試的過程相比,其人力成本消耗低很多,是一種高效的軟件質(zhì)量保證措施。國外已有相關(guān)的教材[4-6]對(duì)這類缺陷進(jìn)行了很好的總結(jié),并被列入業(yè)界的經(jīng)典推薦書目。而國內(nèi)現(xiàn)有的計(jì)算機(jī)程序設(shè)計(jì)的教學(xué)中僅僅注重編程語言自身的功能和特性,對(duì)于編程語言中存在的一些“陷阱”較少涉及。筆者從軟件質(zhì)量保證的角度,嘗試在軟件測(cè)試課程的教學(xué)活動(dòng)中,引入缺陷預(yù)防的內(nèi)容,探索提高學(xué)生軟件綜合技能的教學(xué)新方法,以期為高素質(zhì)的軟件人才培養(yǎng)起到促進(jìn)作用。

1 軟件測(cè)試課程的教學(xué)現(xiàn)狀

軟件測(cè)試課程和軟件工程、軟件能力成熟度模型、設(shè)計(jì)模式、程序設(shè)計(jì)等課程有緊密的聯(lián)系。在傳統(tǒng)的V字型模型中,軟件測(cè)試過程伴隨著軟件的整個(gè)生命周期,在不同的階段有不同的側(cè)重點(diǎn),例如:詳細(xì)設(shè)計(jì)和編碼階段引入的錯(cuò)誤可以通過單元測(cè)試來發(fā)現(xiàn),軟件進(jìn)入維護(hù)期后,比較關(guān)注回歸測(cè)試和自動(dòng)化測(cè)試。現(xiàn)有的軟件測(cè)試教材基本按照黑盒測(cè)試、白盒測(cè)試技術(shù),V字形模型的各個(gè)測(cè)試階段來組織,這種教學(xué)方式使得學(xué)生“只見樹木,不見森林”。實(shí)際上在學(xué)習(xí)軟件測(cè)試計(jì)劃的制訂和管理的時(shí)候用的是軟件工程中項(xiàng)目管理的相關(guān)知識(shí),針對(duì)不同的軟件規(guī)模,一些測(cè)試過程是可以裁減和合并的,這需要學(xué)生了解軟件能力成熟度模型的相關(guān)知識(shí);每個(gè)階段需重點(diǎn)關(guān)注那一類缺陷實(shí)際上又需要有設(shè)計(jì)模式和程序設(shè)計(jì)的相關(guān)基礎(chǔ)知識(shí)。所以軟件測(cè)試一般安排在大學(xué)三年級(jí)開設(shè),以保證學(xué)生能夠?qū)⑾惹暗闹R(shí)融會(huì)貫通,學(xué)好軟件測(cè)試。

學(xué)生認(rèn)識(shí)上的誤區(qū)。傳統(tǒng)的認(rèn)識(shí)將測(cè)試看成是“低等”的工作,沒有技術(shù)含量,認(rèn)為畢業(yè)后從事軟件測(cè)試是沒有出息的工作,多數(shù)學(xué)生認(rèn)為只有軟件開發(fā)才是計(jì)算機(jī)專業(yè)的主要工作。糾正學(xué)生的這些錯(cuò)誤認(rèn)識(shí),一方面通過業(yè)界的一些行業(yè)調(diào)查數(shù)據(jù)來舉例說明軟件測(cè)試的重要性,另一方面,采取“以其人之道,還治其人之身”的策略,通過在測(cè)試的每個(gè)階段列舉一些軟件開發(fā)中容易犯的錯(cuò)誤,并通過設(shè)計(jì)測(cè)試用例來發(fā)現(xiàn)這些缺陷,通過這些實(shí)例使得學(xué)生對(duì)軟件測(cè)試的重要性“心服口服”,增加自主學(xué)習(xí)的動(dòng)力。

現(xiàn)有的測(cè)試案例缺少對(duì)缺陷預(yù)防的關(guān)注。軟件測(cè)試教材中經(jīng)典的三角形測(cè)試、NextDate測(cè)試、保險(xiǎn)金計(jì)算程序測(cè)試等經(jīng)典案例主要訓(xùn)練學(xué)生掌握邊界法、等價(jià)劃分法、決策表法等黑盒測(cè)試用例的設(shè)計(jì)方法。對(duì)于如何預(yù)防缺陷,雖然有些教材在測(cè)試概述章節(jié)提到了靜態(tài)測(cè)試和代碼評(píng)審,這部分內(nèi)容如果單獨(dú)的介紹確實(shí)比較枯燥,但是如果將其穿插在軟件測(cè)試的具體案例中,則讓學(xué)生即學(xué)習(xí)了測(cè)試技能又提高了編程技能。

2 缺陷預(yù)防在軟件測(cè)試課程中的教學(xué)實(shí)踐

缺陷預(yù)防就是將缺陷消滅在萌芽狀態(tài)。按照凈室軟件工程的哲學(xué):“通過在第一次正確地書寫代碼增量并在測(cè)試前驗(yàn)證它們的正確性來避免對(duì)成本很高的錯(cuò)誤消除過程的依賴”。而軟件測(cè)試屬于后來彌補(bǔ)型,產(chǎn)生缺陷之后再來修改,但是缺陷發(fā)現(xiàn)越晚,修改缺陷花費(fèi)也就越大,所以軟件缺陷預(yù)防技術(shù)既是項(xiàng)目生命周期的早期消滅缺陷的一項(xiàng)重要措施,也是軟件測(cè)試所追求的最高境界。

根據(jù)軟件生命周期不同階段的特點(diǎn),每個(gè)階段關(guān)注的預(yù)防內(nèi)容也不同:需求階段重點(diǎn)關(guān)注需求理解的偏差、需求的遺漏;設(shè)計(jì)階段重點(diǎn)關(guān)注模塊接口消息的傳遞,資源的申請(qǐng)和釋放以及并發(fā)訪問;編碼階段重點(diǎn)關(guān)注函數(shù)內(nèi)部邏輯判斷和編程語言自身的一些的陷阱。這些內(nèi)容涉及軟件工程、設(shè)計(jì)模式、程序設(shè)計(jì)等課程,在這些課程的教學(xué)過程中,通常僅僅講授“正向”的內(nèi)容,對(duì)于各階段容易犯的錯(cuò)誤和相應(yīng)的預(yù)防措施甚少涉及,而這部分內(nèi)容正是從書本知識(shí)上升實(shí)戰(zhàn)技能必須掌握的知識(shí)。因?yàn)檫@個(gè)環(huán)節(jié)的缺失,軟件企業(yè)會(huì)抱怨剛從校園邁入職場(chǎng)的新人開發(fā)的軟件產(chǎn)品中缺陷率比較高,尤其是編碼階段引入的缺陷比較多,企業(yè)通常需要通過編程規(guī)范培訓(xùn)、技術(shù)評(píng)審和代碼走讀等措施才能減少他們所犯的錯(cuò)誤,在一定程度上增加了企業(yè)的人力成本,同時(shí)也造成了新員工的挫折感,影響開發(fā)團(tuán)隊(duì)的士氣。

高質(zhì)量的軟件開發(fā)和軟件測(cè)試是軟件質(zhì)量保證的兩個(gè)方面。盡早發(fā)現(xiàn)和預(yù)防缺陷,并對(duì)這些缺陷分類統(tǒng)計(jì)和分析,不僅可以提高軟件質(zhì)量,還可以為軟件過程的持續(xù)改進(jìn)提供可靠的參考。所以,在軟件測(cè)試的教學(xué)活動(dòng)中,除了介紹軟件測(cè)試的基本原理外,在每個(gè)測(cè)試階段介紹典型的缺陷,如編碼階段的缺陷有:數(shù)據(jù)引用錯(cuò)誤、數(shù)據(jù)聲明錯(cuò)誤、運(yùn)算錯(cuò)誤、比較錯(cuò)誤、控制流程錯(cuò)誤、接口錯(cuò)誤、輸入/輸出錯(cuò)誤等。針對(duì)每類缺陷,寫出一段含有這類缺陷的程序,結(jié)合具體的測(cè)試原理,設(shè)計(jì)對(duì)應(yīng)的測(cè)試用例來發(fā)現(xiàn)這些缺陷。例如:數(shù)組越界和變量未初始化是新手編碼是容易犯的錯(cuò)誤,先給出如下一段子程序:

1:int getCount(int*p,int n)/*返回?cái)?shù)組p中n個(gè)元素的累加值 */

2:{

3:int sum; /* 定義整型循環(huán)變量 */

4:for(int i=0;i<=n;i++) /* 循環(huán)條件 */

5:{

6: sum+=p[i]; /* 不斷累加 */

7:}

8:return sum;

9:}

在這個(gè)短短的9行程序中,隱藏了兩個(gè)Bug(第3行sum未初始化,第4行i=n時(shí)數(shù)組訪問越界)。在課堂上,首先讓學(xué)生閱讀這段程序,啟發(fā)學(xué)生通過靜態(tài)分析代碼來發(fā)現(xiàn)程序中的Bug,這相當(dāng)于代碼評(píng)審的過程,即靜態(tài)測(cè)試的過程,這個(gè)過程也是軟件質(zhì)量保證一個(gè)重要的環(huán)節(jié)。然后老師和學(xué)生一起分析,如何設(shè)計(jì)測(cè)試用例才可以發(fā)現(xiàn)這些Bug,并進(jìn)一步分析和總結(jié)設(shè)計(jì)測(cè)試用例的一般方法和理論。最后,老師和學(xué)生再一起反思,通過什么措施可以避免重復(fù)犯這類錯(cuò)誤,從而引出編程規(guī)范、代碼Lint檢查等相關(guān)知識(shí),本例中,第3行的Bug實(shí)際上違反了“禁止使用未經(jīng)初始化的變量”的編程規(guī)范;第4行的Bug也可以通過PC-Lint工具檢查發(fā)現(xiàn)。

軟件代碼評(píng)審是一種靜態(tài)白盒測(cè)試方法,按照V字形模型,這個(gè)質(zhì)量保證活動(dòng)發(fā)生在代碼編寫完成之后,單元測(cè)試之前,是一種高效的缺陷預(yù)防方法。在教學(xué)過程中,也穿插的介紹代碼評(píng)審的組織流程和規(guī)范,逐步讓學(xué)生認(rèn)識(shí)到軟件開發(fā)是有組織、有規(guī)范的團(tuán)隊(duì)活動(dòng),而不僅僅是個(gè)人活動(dòng)。

通過這種教學(xué)方式,學(xué)生認(rèn)識(shí)到了軟件測(cè)試“從哪里來,到哪里去”?!皬哪睦飦怼笔紫然卮鹆藶槭裁匆M(jìn)行軟件測(cè)試,也明白了軟件缺陷的來源:編程技能、個(gè)人疏忽、交流不暢、配置管理等?!暗侥抢锶ァ被卮鹆塑浖y(cè)試的目的,即提高軟件的質(zhì)量。軟件工程課程中的各種軟件過程和管理措施,設(shè)計(jì)模式中的各種架構(gòu)模式都是圍繞這一目標(biāo)進(jìn)行的,這樣將軟件測(cè)試課程放在整個(gè)軟件生命周期中結(jié)合其他課程的內(nèi)容學(xué)習(xí),使得學(xué)生對(duì)高質(zhì)量軟件開發(fā)有了全面的認(rèn)識(shí),將學(xué)生學(xué)習(xí)到的零散的課程知識(shí)轉(zhuǎn)化為高質(zhì)量軟件開發(fā)的技能。

通過典型缺陷的學(xué)習(xí),學(xué)生對(duì)測(cè)試的重要性有了直觀和深刻的認(rèn)識(shí),從而愿意積極主動(dòng)地學(xué)習(xí)軟件測(cè)試的相關(guān)理論和方法。同時(shí),學(xué)生的編程規(guī)范水平、編程技能也得到了提高,并且在以后編寫程序的時(shí)候,有了缺陷預(yù)防的意識(shí),更能滿足實(shí)際生產(chǎn)環(huán)境軟件質(zhì)量的要求。

在學(xué)習(xí)過程中,學(xué)生不僅學(xué)習(xí)了測(cè)試用例設(shè)計(jì)的相關(guān)內(nèi)容,還學(xué)習(xí)了代碼評(píng)審、測(cè)試用例評(píng)審的、缺陷總結(jié)的規(guī)范,使學(xué)生認(rèn)識(shí)到軟件開發(fā)不僅是個(gè)人活動(dòng),更是一項(xiàng)團(tuán)隊(duì)活動(dòng)。通過這些活動(dòng)也訓(xùn)練了學(xué)生團(tuán)隊(duì)協(xié)作的能力,有利于學(xué)生在實(shí)習(xí)階段更好地融入職場(chǎng)。

3 結(jié)束語

軟件測(cè)試是一門綜合性很強(qiáng)的課程,軟件測(cè)試的最終目的是提高軟件質(zhì)量。在教學(xué)過程中,結(jié)合典型缺陷案例分析,按照代碼評(píng)審、測(cè)試用例設(shè)計(jì)和缺陷分析和預(yù)防的流程剖析各個(gè)案例,使學(xué)生加深了對(duì)軟件測(cè)試的理論和方法的理解,并進(jìn)一步將軟件工程、設(shè)計(jì)模式和程序設(shè)計(jì)等課程的相關(guān)內(nèi)容融會(huì)貫通,為今后從事高質(zhì)量的實(shí)際項(xiàng)目開發(fā)奠定堅(jiān)實(shí)的基礎(chǔ)。

[1] 李靜,趙志升.軟件測(cè)試專業(yè)課程體系建設(shè)和教學(xué)改革[J].教育與職業(yè),2014(2):135-137.

[2] 周元哲.“軟件測(cè)試”教學(xué)改革的探索和實(shí)踐[J].計(jì)算機(jī)教育,2008(22):14-15.

[3] 劉新浙,劉玲,王超,等.從缺陷中學(xué)習(xí)C/C++[M].北京:人民郵電出版社,2013:1-2.

[4] Andrew Koenig.C Traps and Pitfalls[M].Addison-Wesley Professional.1989.

[5] Andrew Koenig.Ruminations on C++:A Decade of Programming Insight and Experience[M].Addison-Wesley Professional,1996.

[6] Bruce Eckel.Thinking in Java (4th Edition)[M].Prentice Hall,2006.

猜你喜歡
質(zhì)量保證測(cè)試用例軟件測(cè)試
田灣核電站運(yùn)行階段質(zhì)量保證分級(jí)管理
焊接技能評(píng)定過程中的質(zhì)量保證要求
關(guān)于如何做好水質(zhì)環(huán)境監(jiān)測(cè)的質(zhì)量保證研究
基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
基于OBE的軟件測(cè)試課程教學(xué)改革探索
EXCEL和VBA實(shí)現(xiàn)軟件測(cè)試記錄管理
電子制作(2018年16期)2018-09-26 03:27:18
基于混合遺傳算法的回歸測(cè)試用例集最小化研究
關(guān)于軟件測(cè)試技術(shù)應(yīng)用與發(fā)展趨勢(shì)研究
軟件測(cè)試工程化模型及應(yīng)用研究
質(zhì)量保證監(jiān)查在AP1000依托項(xiàng)目中的應(yīng)用
马鞍山市| 天等县| 茌平县| 肥东县| 铁力市| 和田县| 康平县| 沂南县| 晋州市| 饶河县| 和平县| 安西县| 中阳县| 唐山市| 无极县| 汉阴县| 建阳市| 普宁市| 荥经县| 色达县| 济源市| 汝阳县| 静安区| 肇源县| 都匀市| 大同市| 武冈市| 昌乐县| 淮安市| 城固县| 浠水县| 波密县| 二连浩特市| 华亭县| 普陀区| 南溪县| 柞水县| 东乡族自治县| 齐河县| 普兰店市| 化隆|