基于需求的軟件測試
● 目的:保證需求質(zhì)量
● 手段:針對需求開展測試設(shè)計
● 測試設(shè)計面臨的挑戰(zhàn):
1、測試準則不確定(測試是比較預(yù)期結(jié)果與實際結(jié)果的過程,預(yù)期結(jié)果最了解的人群是開發(fā)、需求人員還是客戶?答案未知,但是如果需求的質(zhì)量更高些的話,會更利于更準確的知道預(yù)期結(jié)果)
2、測試無窮盡:要用少的用例覆蓋盡可能多的需求,如何挑選合適的用例顯得尤其重要
3、用例執(zhí)行pass是否真正代表對應(yīng)場景或功能就pass =>缺陷隱藏效應(yīng)證明不一定,那么在挑選用例時如何做到,RBT會有所考慮
RBT是如何實現(xiàn)上面所提挑戰(zhàn)的?
● 為什么要基于需求來開展測試?
1、導(dǎo)致軟件失敗的原因如下:
a)需求不完整
b)需求多變
c)需求缺少來自用戶的實際輸入
從而導(dǎo)致僅有60%~70%的需求交付量,且此其中50%左右的需求未被使用過,而開發(fā)團隊針對這些未使用過的需求,投入了大量精力,存在一定程度的浪費。
2、BUG分析缺陷來自哪個階段?=>60%來源于需求階段(怎么有效區(qū)分BUG是哪個階段?)
● RBT解決的是偏重型的測試問題(考慮項目的可適用性),是針對每條需求進行分析設(shè)計
● RBT倡導(dǎo)的思維是先測試,再構(gòu)建
● RBT過程兩大步:需求模糊度分析、因果圖方法進行測試設(shè)計
1、需求模糊度分析
實際是分析需求是可測試的、可觀察可觸發(fā)的、結(jié)果是確定的(結(jié)果是確定的指:給定輸入后,能準確得出其唯一的結(jié)果,對于輸入A,結(jié)果為C,再次輸入A,結(jié)果為B的情況則是不符合“結(jié)果是確定的”原則。當出現(xiàn)這種情況,則需求是肯定有問題的)
2、因果圖方法進行測試設(shè)計,以下是幾類設(shè)計方法的對比分析
a)根據(jù)用戶實際使用場景、環(huán)境參數(shù)來設(shè)計用例的情況:30%左右的覆蓋不樂觀,且異常考慮不充分,依賴時間的場景無法覆蓋
b)依據(jù)直覺進行設(shè)計的情況:依賴測試者經(jīng)驗,覆蓋不確定,只能代表執(zhí)行過的是OK,不能證明其完整覆蓋度
c)組合測試設(shè)計的情況:所有場景組合全部覆蓋,量太大
d)因果圖方法設(shè)計的情況:借鑒了硬件領(lǐng)域的一些工程算法,覆蓋率高
● RBT方法選擇用例的標準:
1、體現(xiàn)變量間的各種邏輯關(guān)系
2、體現(xiàn)每個變量各種狀態(tài)間的約束
3、考慮各節(jié)點的可觀察性,如下面的例子
例子:
A、B、D、E全為T,C、F、G均為True,假定當A恒為False的缺陷存在時,直接通過對G的觀察是無法發(fā)現(xiàn)此缺陷的,因為C、F是不可觀察的
4、需測試哪些功能塊
● RBT過程12步驟(12步記錄不全)
1、分析為什么要做這個需求?(如同敏捷測試中要求一樣,即:需求來自于哪里?用戶是什么樣的群體?基于什么原因提出這樣的需求?要解決什么樣的問題?有無其它可替代方案來解決?是否一定要做這樣的需求?
2、用場景分析方法來分析需求的應(yīng)用情況
3、進行模糊度分析,即:識別不清晰、不完整、疑惑點的地方(此點更期望是不了解需求的人來做,而非專家)
4、領(lǐng)域?qū)<疫M行更深層次的審視
5、針對需求建模,理出所有業(yè)務(wù)邏輯,采用因果圖方法
6、用工具檢查邏輯不一致問題,可能是需求本身的問題,也可能是建模的問題
7、工具自動生成用例(此處的用例可以理解為是測試驗證點,而非具體的測試數(shù)據(jù))
8、確認生成的用例是否正確(此處有一個個人問題:既然自動生成的用例已經(jīng)是很精簡了,再進行評審怎么保證評審出的問題是否需要補充到用例的?=>答案:評審的目的一是確認是否正確理解了規(guī)則與需求,二是通過評審問題反向識別出需求遺漏的場景(如果可能,要求客戶對需求進行review是最合適的)
9、設(shè)計編碼階段,用生成的用例進行驗證
● RBT工具用途(記錄了一些,不全)
1、自動生成測試用例
2、自動生成兩張表單:因與果清單、規(guī)則VS用例覆蓋率的對照表(“X”表示多個用例覆蓋此規(guī)則,“#”表示1個用例覆蓋此規(guī)則)
3、生成測試統(tǒng)計數(shù)據(jù)
4、自動反向生成較規(guī)范的需求文檔,適用場景:a、review需求時發(fā)現(xiàn)的問題確認后,不會更新需求,通過自動生成更新得到全集;b、敏捷項目中適用,項目結(jié)束后形成需求與用例的匹配
5、生成用例過程中自動進行功能邏輯一致性校驗,并給出提示,如同開發(fā)程序編譯時的錯誤提示
6、維護過程會考慮對原有用例的最大程度復(fù)用
7、告訴你可優(yōu)先執(zhí)行哪些用例
8、支持快速設(shè)計(推薦在配置測試中使用,如移動領(lǐng)域測試環(huán)境支持驗證,可生成基礎(chǔ)用例)
9、可定義節(jié)點間的狀態(tài)、約束,以便生成的用例是可執(zhí)行或真實的組合,對于不可執(zhí)行的用例前面會有“I”標識,點擊后會顯示原因
posted on 2013-06-04 10:28 順其自然EVO 閱讀(501) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄 、defalut managerment system 缺陷管理系統(tǒng)