在一個暖暖的午后,我收到一位美女的口頭邀請,請我給她講講如何進行有效的軟件測試。
雖然我當(dāng)時就能根據(jù)自己對測試的此話認(rèn)知,隨口就能說出個一二三四、子丑寅卯來,但畢竟還不夠系統(tǒng)化;況且美女也只向我拋出了橄欖枝,并未要求馬上開講。所以我沒有馬上給美女講,決定做足功課之后再說。
但我的心里已經(jīng)裝下了這件事。當(dāng)我看到《軟件測試的有效方法》,豁然開朗。
書中介紹了6種常用的軟件測試指導(dǎo)原則,如果遵循這些指導(dǎo)原則,可以極大地改進軟件測試過程。
我想,如果美女這時讓我講解“有效的軟件測試”,我會以這6條原則作為開場白。
這6條測試指導(dǎo)原則如下:
(1)降低風(fēng)險
降低風(fēng)險,指的是軟件測試應(yīng)該降低軟件開發(fā)風(fēng)險。如何降低軟件開發(fā)的風(fēng)險呢?軟件開發(fā)的風(fēng)險在于沒有實現(xiàn)需求方的業(yè)務(wù)目標(biāo)。所以測試人員必須了解業(yè)務(wù)目標(biāo),根據(jù)這些目標(biāo)制定測試策略,并對重點業(yè)務(wù)目標(biāo)傾斜資源,這樣才能真正地實現(xiàn)軟件測試降低軟件開發(fā)風(fēng)險的目標(biāo)。
(2)追求有效
有效性意味著以最小的資源投入獲取最大的利益。對于軟件測試來說,一個穩(wěn)定的測試過程可以消除掉慢慢摸索合理的測試活動中的不必要的資源消耗。而且,測試人員可以邊測試邊優(yōu)化測試過程,這種無意義的消耗會越來越少。當(dāng)前,前提是追求有效是每一個測試人員和管理人員的目標(biāo)。
(3)發(fā)現(xiàn)缺陷
不以發(fā)現(xiàn)缺陷為目的的測試不是好測試。但是,發(fā)現(xiàn)缺陷卻并不容易。也許了解一下軟件缺陷形成的原因,對測試人員發(fā)現(xiàn)缺陷會有一定積極的幫助。
軟件缺陷可能在以下的環(huán)境下產(chǎn)生:
開發(fā)人員錯誤地理解需求。
用戶指定了錯誤的需求。
開發(fā)人員錯誤地記錄需求。
錯誤地設(shè)計。
錯誤地實現(xiàn)。
不遵循編碼規(guī)范。
輸入錯誤的數(shù)據(jù)。
無效測試。
沒有正確地糾正錯誤。
糾正引發(fā)新的錯誤。
(4)業(yè)務(wù)測試
測試的對象不僅是代碼,也包括業(yè)務(wù)需求。當(dāng)代碼還未產(chǎn)生之前,對需求進行驗證和確認(rèn),消除需求中的錯誤,對于測試來說,絕對是事半功倍!
(5)貫穿過程
要使軟件測試獲得最大的利益,軟件測試應(yīng)當(dāng)貫穿整個軟件生命周期。項目一啟動,開發(fā)過程和測試過程就同時開始,開發(fā)過程對需求進行開發(fā)和確認(rèn),測試過程以需求作為測試目標(biāo),并隨之發(fā)起一致性測試。這樣的全生命周期的測試,可以及時地發(fā)現(xiàn)缺陷,降低風(fēng)險,并且“有效”。
(6)黑白合一
軟件測試分為黑盒測試和白盒測試。前者主測功能,后者主測邏輯。兩種測試方法各有優(yōu)缺點:
測試方法 | 優(yōu)點 | 缺點 |
---|---|---|
黑盒測試 | 模仿實際系統(tǒng)應(yīng)用;沒有進行任何系統(tǒng)結(jié)構(gòu)假設(shè) | 可能會忽略軟件中的邏輯錯誤;可能會產(chǎn)生冗余測試 |
白盒測試 | 可以測試軟件的邏輯;可以測試結(jié)構(gòu)化屬性 | 不能確保滿足用戶需求;不能模仿真實環(huán)境 |
所以,對于傳統(tǒng)開發(fā)的軟件來說,軟件測試應(yīng)該兩種方法都要用,優(yōu)勢互補,才能獲取最大收益。
以上就是軟件有效測試的6項指導(dǎo)原則。
我在心里問美女,這樣的開場白應(yīng)該還可以吧?
我輕擊發(fā)送按鈕,biu的一下,“郵件已發(fā)送”至美女郵箱!
下一刻,我的手機鈴聲響起……
這正是:
美女有約記心上,孜孜以求覓方向
降低風(fēng)險求有效,六項原則指導(dǎo)強。
參考書目:《軟件測試的有效方法》,William E. Perry著,高猛 馮飛 徐璐譯
聯(lián)系客服