qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          基于需求的軟件測試

          ● 目的:保證需求質(zhì)量

            ● 手段:針對需求開展測試設(shè)計(jì)

            ● 測試設(shè)計(jì)面臨的挑戰(zhàn):

            1、測試準(zhǔn)則不確定(測試是比較預(yù)期結(jié)果與實(shí)際結(jié)果的過程,預(yù)期結(jié)果最了解的人群是開發(fā)、需求人員還是客戶?答案未知,但是如果需求的質(zhì)量更高些的話,會更利于更準(zhǔn)確的知道預(yù)期結(jié)果)

            2、測試無窮盡:要用少的用例覆蓋盡可能多的需求,如何挑選合適的用例顯得尤其重要

            3、用例執(zhí)行pass是否真正代表對應(yīng)場景或功能就pass =>缺陷隱藏效應(yīng)證明不一定,那么在挑選用例時(shí)如何做到,RBT會有所考慮

            RBT是如何實(shí)現(xiàn)上面所提挑戰(zhàn)的?

            ● 為什么要基于需求來開展測試?

            1、導(dǎo)致軟件失敗的原因如下:

            a)需求不完整

            b)需求多變

            c)需求缺少來自用戶的實(shí)際輸入

            從而導(dǎo)致僅有60%~70%的需求交付量,且此其中50%左右的需求未被使用過,而開發(fā)團(tuán)隊(duì)針對這些未使用過的需求,投入了大量精力,存在一定程度的浪費(fèi)。

            2、BUG分析缺陷來自哪個(gè)階段?=>60%來源于需求階段(怎么有效區(qū)分BUG是哪個(gè)階段?)

            ● RBT解決的是偏重型的測試問題(考慮項(xiàng)目的可適用性),是針對每條需求進(jìn)行分析設(shè)計(jì)

            ● RBT倡導(dǎo)的思維是先測試,再構(gòu)建

            ● RBT過程兩大步:需求模糊度分析、因果圖方法進(jìn)行測試設(shè)計(jì)

            1、需求模糊度分析

            實(shí)際是分析需求是可測試的、可觀察可觸發(fā)的、結(jié)果是確定的(結(jié)果是確定的指:給定輸入后,能準(zhǔn)確得出其唯一的結(jié)果,對于輸入A,結(jié)果為C,再次輸入A,結(jié)果為B的情況則是不符合“結(jié)果是確定的”原則。當(dāng)出現(xiàn)這種情況,則需求是肯定有問題的)

            2、因果圖方法進(jìn)行測試設(shè)計(jì),以下是幾類設(shè)計(jì)方法的對比分析

            a)根據(jù)用戶實(shí)際使用場景、環(huán)境參數(shù)來設(shè)計(jì)用例的情況:30%左右的覆蓋不樂觀,且異常考慮不充分,依賴時(shí)間的場景無法覆蓋

            b)依據(jù)直覺進(jìn)行設(shè)計(jì)的情況:依賴測試者經(jīng)驗(yàn),覆蓋不確定,只能代表執(zhí)行過的是OK,不能證明其完整覆蓋度

            c)組合測試設(shè)計(jì)的情況:所有場景組合全部覆蓋,量太大

            d)因果圖方法設(shè)計(jì)的情況:借鑒了硬件領(lǐng)域的一些工程算法,覆蓋率高

            ● RBT方法選擇用例的標(biāo)準(zhǔn):

            1、體現(xiàn)變量間的各種邏輯關(guān)系

            2、體現(xiàn)每個(gè)變量各種狀態(tài)間的約束

            3、考慮各節(jié)點(diǎn)的可觀察性,如下面的例子

            例子:

            A、B、D、E全為T,C、F、G均為True,假定當(dāng)A恒為False的缺陷存在時(shí),直接通過對G的觀察是無法發(fā)現(xiàn)此缺陷的,因?yàn)镃、F是不可觀察的

            4、需測試哪些功能塊


           ● RBT過程12步驟(12步記錄不全)

            1、分析為什么要做這個(gè)需求?(如同敏捷測試中要求一樣,即:需求來自于哪里?用戶是什么樣的群體?基于什么原因提出這樣的需求?要解決什么樣的問題?有無其它可替代方案來解決?是否一定要做這樣的需求?

            2、用場景分析方法來分析需求的應(yīng)用情況

            3、進(jìn)行模糊度分析,即:識別不清晰、不完整、疑惑點(diǎn)的地方(此點(diǎn)更期望是不了解需求的人來做,而非專家)

            4、領(lǐng)域?qū)<疫M(jìn)行更深層次的審視

            5、針對需求建模,理出所有業(yè)務(wù)邏輯,采用因果圖方法

            6、用工具檢查邏輯不一致問題,可能是需求本身的問題,也可能是建模的問題

            7、工具自動生成用例(此處的用例可以理解為是測試驗(yàn)證點(diǎn),而非具體的測試數(shù)據(jù))

            8、確認(rèn)生成的用例是否正確(此處有一個(gè)個(gè)人問題:既然自動生成的用例已經(jīng)是很精簡了,再進(jìn)行評審怎么保證評審出的問題是否需要補(bǔ)充到用例的?=>答案:評審的目的一是確認(rèn)是否正確理解了規(guī)則與需求,二是通過評審問題反向識別出需求遺漏的場景(如果可能,要求客戶對需求進(jìn)行review是最合適的)

            9、設(shè)計(jì)編碼階段,用生成的用例進(jìn)行驗(yàn)證

            ● RBT工具用途(記錄了一些,不全)

            1、自動生成測試用例

            2、自動生成兩張表單:因與果清單、規(guī)則VS用例覆蓋率的對照表(“X”表示多個(gè)用例覆蓋此規(guī)則,“#”表示1個(gè)用例覆蓋此規(guī)則)

            3、生成測試統(tǒng)計(jì)數(shù)據(jù)

            4、自動反向生成較規(guī)范的需求文檔,適用場景:a、review需求時(shí)發(fā)現(xiàn)的問題確認(rèn)后,不會更新需求,通過自動生成更新得到全集;b、敏捷項(xiàng)目中適用,項(xiàng)目結(jié)束后形成需求與用例的匹配

            5、生成用例過程中自動進(jìn)行功能邏輯一致性校驗(yàn),并給出提示,如同開發(fā)程序編譯時(shí)的錯(cuò)誤提示

            6、維護(hù)過程會考慮對原有用例的最大程度復(fù)用

            7、告訴你可優(yōu)先執(zhí)行哪些用例

            8、支持快速設(shè)計(jì)(推薦在配置測試中使用,如移動領(lǐng)域測試環(huán)境支持驗(yàn)證,可生成基礎(chǔ)用例)

            9、可定義節(jié)點(diǎn)間的狀態(tài)、約束,以便生成的用例是可執(zhí)行或真實(shí)的組合,對于不可執(zhí)行的用例前面會有“I”標(biāo)識,點(diǎn)擊后會顯示原因

          posted on 2013-06-04 10:28 順其自然EVO 閱讀(501) 評論(0)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄defalut managerment system 缺陷管理系統(tǒng)

          <2013年6月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 客服| 吴川市| 文山县| 吴桥县| 定兴县| 阜平县| 田林县| 阳泉市| 孟津县| 新津县| 云霄县| 确山县| 华池县| 阿拉善右旗| 奉贤区| 乳山市| 惠东县| 屯昌县| 禹州市| 如皋市| 乡宁县| 行唐县| 乌恰县| 海兴县| 平塘县| 自治县| 兴海县| 都昌县| 冀州市| 勐海县| 龙南县| 民和| 泾阳县| 泰州市| 溆浦县| 罗城| 义乌市| 济阳县| 荔波县| 巴青县| 财经|