摘 要:嚴(yán)重性和優(yōu)先級是軟件缺陷的兩個重要屬性,在軟件測試過程中如果對兩者的概念、劃分方法和關(guān)聯(lián)性理解的不夠準(zhǔn)確,不但對缺陷的統(tǒng)計(jì)結(jié)果、缺陷報(bào)告的質(zhì)量造成影響,而且還會延誤軟件的正常發(fā)布期限。本文就如何正確區(qū)分和處理缺陷的嚴(yán)重性和優(yōu)先級展開討論,旨在提高軟件質(zhì)量、降低研發(fā)風(fēng)險(xiǎn)。
關(guān)鍵詞:軟件測試;缺陷;嚴(yán)重性
缺陷的嚴(yán)重性是指缺陷對被測試系統(tǒng)造成的破壞程度的大小,這種破壞既包括缺陷對被測系統(tǒng)的影響程度,也包括缺陷妨礙系統(tǒng)使用的程度。在軟件測試中,判斷缺陷的嚴(yán)重性應(yīng)該從軟件最終用戶的角度出發(fā),評估缺陷給用戶造成的惡劣后果和產(chǎn)生的損失。
缺陷的優(yōu)先級是指處理和修正軟件缺陷先后順序的指標(biāo),即哪些缺陷需要優(yōu)先修正,哪些缺陷可以稍后修正。確定軟件缺陷優(yōu)先級,更多的是站在軟件開發(fā)工程師的角度考慮問題,因?yàn)槿毕莸男拚樞蚴莻€復(fù)雜的過程,不純粹是技術(shù)問題,而且開發(fā)人員更熟悉軟件代碼,能夠比測試工程師更清楚修正缺陷的難度和風(fēng)險(xiǎn)。
1 四種錯誤和輕重緩急
1.1 判斷缺陷的4種錯誤
正確處理和區(qū)分缺陷的嚴(yán)重性和優(yōu)先級,是包括軟件測試人員和開發(fā)人員在內(nèi)的全體項(xiàng)目組成員的一件大事,對于經(jīng)驗(yàn)不很豐富的項(xiàng)目組成員來說,經(jīng)常會犯下述4種錯誤:①把低嚴(yán)重性的缺陷當(dāng)作高嚴(yán)重性來處理。②把高嚴(yán)重性的缺陷當(dāng)作低嚴(yán)重性來處理。③把低優(yōu)先級的缺陷當(dāng)作高優(yōu)先級來處理。④把高優(yōu)先級的缺陷當(dāng)作低優(yōu)先級來處理。在此,可以將這4種錯誤歸結(jié)為2類,在測試工作中,犯了前2種錯誤說明在缺陷的判斷上“不分輕重”,出現(xiàn)后2種錯誤則表示在缺陷的判斷上“不分緩急”。如果要在測試工作中準(zhǔn)確判斷缺陷的嚴(yán)重性與優(yōu)先級,應(yīng)該合理區(qū)分輕重緩急,這既是保證軟件質(zhì)量的重要環(huán)節(jié),也是項(xiàng)目組成員能力與經(jīng)驗(yàn)的最好體現(xiàn)。
1.2 何為缺陷的輕重緩急
測試工作也正是如此,要避免在缺陷的嚴(yán)重性和優(yōu)先級上判斷失誤,必須分清缺陷的輕重緩急?!拜p”,指的是相對重要但不緊急的缺陷;“重”,是指最重要也是最緊急的缺陷;“緩”,指的是不重要也不緊急的缺陷;“急”,則是指不是最重要但卻最為緊急的缺陷。理清這種關(guān)系之后,就算同時(shí)測試許多不同類型的缺陷,也會很快弄清楚哪些缺陷是必須馬上完成的,哪些缺陷可以暫時(shí)緩一緩,這樣也就不會被堆積如山的Bug所壓垮,缺陷修復(fù)和回歸測試的效率自然也會得到很大的提高。當(dāng)然,要做到這一點(diǎn)必須明白嚴(yán)重性與優(yōu)先級的等級劃分和其間的關(guān)聯(lián)性,并借助相關(guān)的評估技術(shù)工具才能實(shí)現(xiàn)。
2 如何劃分嚴(yán)重性和優(yōu)先級的等級
將缺陷的嚴(yán)重性和優(yōu)先級作等級分類,對于IT企業(yè)來說是一項(xiàng)非常重要的任務(wù),因?yàn)橛辛说燃壏诸惒拍軈f(xié)調(diào)企業(yè)各部門處理事務(wù)的排程。銷售、客服和項(xiàng)目經(jīng)理都需要知道缺陷發(fā)生時(shí)對交貨期的影響,QA也需要知道軟件目前的品質(zhì)狀況。
確定嚴(yán)重性和優(yōu)先級的等級必須全面了解和深刻的體會缺陷的特征,要從用戶和開發(fā)人員以及市場等因素綜合考慮。從項(xiàng)目組分工來看,應(yīng)由軟件測試人員確定缺陷的嚴(yán)重性,由軟件開發(fā)人員確定缺陷的優(yōu)先級。往往在實(shí)際測試中,通常都是由軟件測試人員在缺陷報(bào)告中同時(shí)確定嚴(yán)重性和優(yōu)先級。
3 嚴(yán)重性與優(yōu)先級的關(guān)聯(lián)性
缺陷的嚴(yán)重性和優(yōu)先級是含義不同但相互聯(lián)系密切的兩個概念。它們都從不同的側(cè)面描述了軟件缺陷對軟件質(zhì)量和最終用戶的影響程度和處理方式。一般情況下,缺陷的嚴(yán)重性和優(yōu)先級之間是存在密切關(guān)聯(lián)的,即嚴(yán)重性越高,處理優(yōu)先級別越高。然而,嚴(yán)重性和優(yōu)先級并不總是一一對應(yīng)的。
3.1 高嚴(yán)重性,低優(yōu)先級
當(dāng)某個Bug的發(fā)生概率非常低(如執(zhí)行測試用例出現(xiàn)該缺陷的幾率低于5%),或僅在極端條件下才引發(fā)該缺陷時(shí),可能將其優(yōu)先級定得很低。這里其實(shí)包含了一個風(fēng)險(xiǎn)評估的思想,當(dāng)缺陷具有高嚴(yán)重性時(shí),缺陷對系統(tǒng)造成的破壞力是很強(qiáng)的,但因?yàn)榘l(fā)生概率很低,開發(fā)方會認(rèn)為該缺陷被用戶發(fā)現(xiàn)的概率非常低,在產(chǎn)品遇到發(fā)布壓力的時(shí)候,開發(fā)方會選擇將缺陷留在下一個發(fā)布版本之前再進(jìn)行修復(fù)。例如,“當(dāng)上傳附件超過50G時(shí),傳輸過程中出現(xiàn)網(wǎng)站崩潰現(xiàn)象”。從在傳輸過程中出現(xiàn)網(wǎng)站崩潰的現(xiàn)象上看,這是一個嚴(yán)重級別最高的Bug,但觸發(fā)它的條件是用戶上傳了一個超過50G的附件。通常,在實(shí)際應(yīng)用中很少有用戶會去刻意上傳一個超過50G的文件,這種極端特殊事件發(fā)生概率是相當(dāng)?shù)偷?。?dāng)一個軟件版本即將發(fā)布,而又來不及修改時(shí),可把這個Bug設(shè)成低優(yōu)先級,留到下一次版本發(fā)布前修改掉。
為了保證報(bào)告缺陷的嚴(yán)重性和優(yōu)先級的一致性,QA需要經(jīng)常檢查測試和開發(fā)人員對于這兩個指標(biāo)的分配和處理情況,及時(shí)發(fā)現(xiàn)問題,及時(shí)反饋給項(xiàng)目負(fù)責(zé)人,盡早解決問題。當(dāng)然,比較規(guī)范的軟件測試,還需要使用軟件缺陷管理工具(如Bugzilla、Quality Center等)進(jìn)行缺陷報(bào)告和處理,開始使用前應(yīng)對全體測試人員和開發(fā)人員進(jìn)行培訓(xùn),對缺陷嚴(yán)重性和優(yōu)先級的表示和劃分方法統(tǒng)一規(guī)定和遵守。在測試項(xiàng)目進(jìn)行過程中,充分利用評估技術(shù)法則統(tǒng)計(jì)缺陷的嚴(yán)重性,確定軟件模塊的開發(fā)質(zhì)量,評估軟件項(xiàng)目實(shí)施進(jìn)度;統(tǒng)計(jì)優(yōu)先級的分布情況,控制開發(fā)進(jìn)度,盡快處理缺陷,使開發(fā)按照項(xiàng)目進(jìn)度有效進(jìn)行,從而達(dá)到提高軟件的質(zhì)量、降低風(fēng)險(xiǎn)與成本的目的。
[參考文獻(xiàn)]
[1]肖利瓊.軟件測試之魂:核心測試設(shè)計(jì)精解(第2版)[M].電子工業(yè)出版社,2013.
[2]郁蓮.軟件測試方法與實(shí)踐[M].清華大學(xué)出版社,2008.
[3]王青,伍書劍,李明樹.軟件缺陷預(yù)測技術(shù)[J].軟件學(xué)報(bào).2008(07).