第一部分 瓶頸:軟件測試工程師該如何進行職業(yè)規(guī)劃
第1章 軟件測試工程師的“三年之癢”
1.1 軟件測試發(fā)展簡史:調(diào)試--證實--證偽--預防--模型--全周期;
1.2 中國的軟件測試行業(yè):起點高;困境和迷局(不了解返干、不理解、外包);迷茫(門檻低菠剩、深入難)
1.3 認識軟件測試的優(yōu)勢和劣勢:優(yōu)勢是入門容易汽煮、理解產(chǎn)品搏熄、理解用戶、多面手暇赤;劣勢是認可度低心例、發(fā)展受限;
第2章 軟件測試工程師的職業(yè)規(guī)劃
2.1 軟件測試的職業(yè)發(fā)展方向:管理(初級管理者鞋囊、中級管理者止后、高級管理者);技術(shù)(產(chǎn)品測試專家溜腐、專項測試工程師)译株;角色和段位;質(zhì)量領(lǐng)域發(fā)展(產(chǎn)品流程設(shè)計挺益、企業(yè)質(zhì)量管理者歉糜、客戶滿意度管理專家);
2.2 軟件測試工程師的職業(yè)規(guī)劃建議:技術(shù)或管理望众;跳槽的建議匪补;軟件測試創(chuàng)業(yè);
第二部分 突破:向軟件測試架構(gòu)師的目標邁進(測試技術(shù)+軟能力)
軟件測試是一門結(jié)合產(chǎn)品領(lǐng)域烂翰、管理夯缺、心理學和經(jīng)濟學等綜合性的技藝。軟件架構(gòu)師的精髓在于找到最適合的軟件測試技術(shù)甘耿,且不斷的持續(xù)改進喳逛。
第3章 軟件測試架構(gòu)師應(yīng)該和不應(yīng)該做的事情
3.1 軟件測試架構(gòu)師需要關(guān)注和不關(guān)注的事情
需求分析:理解商業(yè)目標;梳理用戶場景棵里;輸出總體策略(詳見7.1-7.3);
測試分析和設(shè)計:制定階段策略(詳見7.4)姐呐;落實策略殿怜,保證質(zhì)量;
測試執(zhí)行:執(zhí)行版本策略(詳見8.1-8.2曙砂,8.4)头谜;跟蹤執(zhí)行(詳見8.3);質(zhì)量評估(詳見6.3鸠澈,8.4)柱告;
質(zhì)量評估:階段/發(fā)布質(zhì)量評估(詳見8.6)截驮;
3.2 像軟件測試架構(gòu)師一樣的思考:目標、范圍际度、深度廣度葵袭、重點難點、如何測試乖菱、如何評估坡锡;
3.3 軟件測試經(jīng)理可以替代軟件測試架構(gòu)師嗎:合作互補;
3.4 系統(tǒng)架構(gòu)師可以替代軟件測試架構(gòu)師嗎:協(xié)作配合窒所;
第4章 軟件測試架構(gòu)師的知識能力模型
測試技術(shù)(軟件產(chǎn)品質(zhì)量模型鹉勒、測試類型、測試方法吵取、測試設(shè)計禽额、探索式測試、自動化測試)+產(chǎn)品知識皮官、溝通協(xié)調(diào)脯倒、書面表達
4.1 軟件產(chǎn)品質(zhì)量模型:六類屬性(功能性、可靠性臣疑、易用性盔憨、效率、可維護性和可移植性)讯沈;
功能性:軟件產(chǎn)品在指定條件下使用時郁岩,提供滿足明確和隱含要求的功能的能力;5個子屬性(適合性缺狠、準確性问慎、互操作性、安全性挤茄、功能順從性)如叼;
可靠性:特定條件下使用時,軟件產(chǎn)品維持規(guī)定的性能級別的能力穷劈;4個子屬性(成熟性笼恰、容錯性、可恢復性歇终、可靠性順從性)社证;
易用性:產(chǎn)品被用戶理解、學習评凝、使用和吸引用戶的能力追葡;5個子屬性(易理解性、易學性、易操作性宜肉、吸引性匀钧、依從性)
效率:相對于所用的資源數(shù)量,軟件產(chǎn)品可提供適當?shù)男阅艿哪芰γ担簿褪俏覀兂Uf的產(chǎn)品性能之斯;3個子屬性(時間特性、資源利用率朱浴、效率依從性)吊圾;
可維護性:軟件產(chǎn)品可被修改的能力;5個子屬性(可分析性翰蠢、可修改性项乒、穩(wěn)定性、可測試性梁沧、依從性)檀何;
可移植性:軟件產(chǎn)品從一種環(huán)境遷移到另外一種環(huán)境的能力,環(huán)境可以指硬件廷支、軟件或組織等频鉴;5個子屬性(適應(yīng)性、可安裝性恋拍、共存性垛孔、易替換性、依從性)施敢;
4.2 測試類型:測試需要考慮的不同角度(功能測試周荐、安全性測試、兼容性測試僵娃、配置測試概作、可靠性測試、易用性測試默怨、性能測試讯榕、安裝測試等);
4.3 測試方法
1匙睹、產(chǎn)品測試車輪圖:一個軟件測試者要從哪些方面(測試類型)用哪些方法(測試方法)去測試產(chǎn)品(質(zhì)量屬性)的關(guān)系圖愚屁;產(chǎn)品測試兩個關(guān)鍵問題,分別是全面性和深度痕檬;
2集绰、功能測試方法:運行是指軟件測試中,測試人員模擬用戶的“操作”或“行為”谆棺;
單運行正常值輸入法:系統(tǒng)允許的“正常值”的測試方法;
單運行邊界值輸入法:測試系統(tǒng)的“邊界值”的測試方法;
多運行順序執(zhí)行法:按照一定順序來進行多個運行操作的測試方法改淑;
多運行相互作用法:多個存在相互關(guān)系的運行組合在一起進行測試碍岔;
3、可靠性測試方法
異常值輸入法:測試系統(tǒng)容錯性朵夏,基本可靠性測試方法(系統(tǒng)正常蔼啦,輸入異常);
故障植入法:把系統(tǒng)放在有問題環(huán)境中進行測試的一種可靠性測試方法(系統(tǒng)異常-故障模擬仰猖,正常輸入)捏肢;
穩(wěn)定性測試法:長時間、大容量運行某種業(yè)務(wù)饥侵,測試系統(tǒng)的成熟性鸵赫;性能測試是測試真實規(guī)格是否與承諾規(guī)格一致,穩(wěn)定性測試是低于性能值前提下測試躏升,壓力測試是在高于性能值的前提下測試辩棒;四字要訣,多(數(shù)量)膨疏、并(并發(fā))一睁、復(反復)、異(異常)佃却;
壓力測試法:超過系統(tǒng)規(guī)格的負載進行測試的一種可靠性測試方法者吁;突發(fā)負載模型(希望系統(tǒng)正常)、持續(xù)負載模型(系統(tǒng)可能打死)饲帅;
恢復測試法:使用超過規(guī)格的負載測試复凳、再將負載降到規(guī)格以內(nèi)的測試方法;普通版(高-低)洒闸、加強版(高-低-高-低...)染坯;測試系統(tǒng)的可恢復性;
4丘逸、性能測試方法:真實規(guī)格與承諾規(guī)格是否一致单鹿;除確認規(guī)格之外,還希望發(fā)現(xiàn)系統(tǒng)的瓶頸深纲;
測試出系統(tǒng)最好的性能值:正確處理新業(yè)務(wù)的最大能力仲锄;同時正確處理的最大業(yè)務(wù)能力;
分析會影響性能值的各種因素湃鹊,測試他們對性能的影響:影響因素儒喊、影響趨勢、最壞值币呵;
以場景為單位來測試性能:評估產(chǎn)品在用戶使用環(huán)境中的性能表現(xiàn)怀愧,更有實際意義侨颈;
5、易用性測試法:用戶理解芯义、使用產(chǎn)品時對產(chǎn)品的能力哈垢;
一致性測試法:測試對象是用戶界面,測試風格扛拨、布局耘分、元素、提示等绑警;目的是證實求泰;
可用性測試法:測試對象是用戶界面,是否易于理解计盒、使用渴频,需要與功能測試結(jié)合,以場景作為測試粒度章郁,以用戶視角進行測試参淫;推薦交叉測試法食棕;
4.4 測試設(shè)計技術(shù)
1崭倘、測試點不等于測試用例
測試用例是一份真正能夠指導測試的測試說明書祥楣;
2、四步測試設(shè)計法
測試分析是發(fā)現(xiàn)性過程培廓,測試設(shè)計是創(chuàng)造性過程惹悄;
第一步:建模;
類型1:流程類肩钠,繪制“流程圖”來建立測試模型泣港;
類型2:參數(shù)類,繪制“輸入輸出表”來建立測試模型价匠;
類型3:數(shù)據(jù)類当纱,繪制“等價類分析表”來建立測試模型;
類型4:組合類踩窖,繪制“因子表”來建立測試模型坡氯;
第二步:設(shè)計基礎(chǔ)測試用例;
基礎(chǔ)測試用例只確定了測試條件洋腮;
第三步:補充測試數(shù)據(jù)箫柳;
為基礎(chǔ)測試用例確定測試輸入,補充測試數(shù)據(jù)啥供;
第四步:擴展悯恍;
根據(jù)經(jīng)驗,補充用例伙狐,增加有效性涮毫;
3瞬欧、對測試點進行分類
流程類特征:輸入的不同進行不同的處理;
參數(shù)類特征:參數(shù)值是有限的窒百,系統(tǒng)會對不同的參數(shù)值作出不同的處理或響應(yīng)黍判;
數(shù)據(jù)類特征:數(shù)據(jù)取值是一個范圍,系統(tǒng)對允許輸入數(shù)據(jù)作出的處理或響應(yīng)往往是一樣的篙梢;
組合類特征:流程、參數(shù)美旧、數(shù)據(jù)的組合渤滞;
4、流程類測試設(shè)計:路徑分析法榴嗅;
繪制流程圖-使用路徑分析法(語句覆蓋妄呕、分支覆蓋、全覆蓋嗽测、最小線性無關(guān)覆蓋(有兩條出邊是必要條件绪励,為判定數(shù)+1))得到測試條件-使用等價類或邊界值等技術(shù)確定測試條件-其它需要考慮的;
5唠粥、參數(shù)類測試設(shè)計:輸入輸出分析法
使用“輸入-輸出表”-100%覆蓋“輸入輸出表”-其它需要考慮的疏魏;
6、數(shù)據(jù)類測試設(shè)計:等價類和邊界值分析法
使用“等價類分析表”-使用“邊界值”來為“等價類分析表”確定測試數(shù)據(jù)-其它需要考慮的晤愧;
7大莫、組合類測試設(shè)計:正交分析法
使用“因子表”-使用“正交分析法”來生成測試用例-其它需要考慮的
8、控制用例粒度:測試點的組合和拆分
控制用例粒度官份,是測試設(shè)計中非常重要的一項工作只厘。
第一:我們希望整個團隊測試用例的總數(shù)維持在一個比較合理的范圍內(nèi),同時達到測試驗證產(chǎn)品的效果舅巷,需要我們控制測試用例的源頭(測試點)羔味,不要過粗或者過細。
第二:不同的用例粒度钠右,可能會發(fā)現(xiàn)產(chǎn)品不同層次的問題(細粒度用例可能更容易發(fā)現(xiàn)功能設(shè)計和實現(xiàn)方面問題赋元,粗粒度用例可能更容易從系統(tǒng)角度去發(fā)現(xiàn)問題),所以我們不同的測試階段爬舰,對測試點進行拆分和組合们陆,不同層次去測試產(chǎn)品,發(fā)現(xiàn)問題情屹。
還有一種控制測試用例粒度的方法坪仇,就是策略覆蓋,執(zhí)行的過程中需要考慮內(nèi)容的重要性和測試執(zhí)行的便利性垃你。
9椅文、錯誤推斷法
錯誤推斷法是一種基于經(jīng)驗的測試設(shè)計方法喂很。用到四步測試設(shè)計中第四步,作為經(jīng)驗補充的測試用例皆刺,是一個比較推薦的方法少辣。錯誤推斷法中的經(jīng)驗,主要源于對產(chǎn)品缺陷的分析羡蛾。定期組織分析活動漓帅,分享經(jīng)驗,拓展思路痴怨。
4.5 探索式測試
探索式測試非常注重測試思維忙干。
1、探索式測試的基本思想:CPIE模型浪藻;收集C-劃分優(yōu)先級P-分析調(diào)研I-實驗E捐迫;與傳統(tǒng)測試相比,探索式測試弱化了流程爱葵,強調(diào)實踐施戴,邊學邊測,持續(xù)改進萌丈;優(yōu)勢是快速測試赞哗,高效發(fā)現(xiàn)產(chǎn)品缺陷,缺點是容易將焦點集中在缺陷發(fā)現(xiàn)而偏離對需求的驗證浓瞪,對基本測試覆蓋不足懈玻,測試點不易復用,不易積累乾颁;
2涂乌、選擇合適的探索式測試方法:第一步,對產(chǎn)品的特性進行分區(qū)英岭;第二步湾盒,根據(jù)不同分區(qū)選擇適合的探索式測試方法;
歷史區(qū)測試法:老代碼诅妹,包含修復已知缺陷的代碼罚勾,多一些時間測試曾經(jīng)有很多缺陷的代碼是特別重要的;包含惡鄰測試法(缺陷橫行的代碼段)吭狡、博物館測試法(老的可執(zhí)行文件和遺留代碼)尖殃、上一版本測試法(運行先前版本支持的所有場景和測試用例);
商業(yè)區(qū)測試法:銷售特性划煮,產(chǎn)品的重要功能和特性送丰,測試的重點測試對象;包含指南針測試法(手冊弛秋、場景及產(chǎn)品需求)器躏、賣點測試法(吸引用戶的特征)俐载、地標測試法(尋找測試點,明確測試項)登失、極限測試法(向軟件提出很多難以回答的問題)遏佣、快遞測試法(專注于數(shù)據(jù))、深夜測試法(不操作時揽浙,查看自處理情況)状婶、遍歷測試法(最短路徑訪問對象);
娛樂區(qū)測試法:針對輔助特性馅巷,不那么重要的特性太抓;
配角測試法(特定特征,緊鄰主要功能)令杈、深巷測試法(最不吸引人的特性,或最流行碴倾、最不流行混著測)逗噩、通宵測試法(長時間運行)
破舊區(qū)測試法:問題高發(fā)特性,測試思想就是繼續(xù)“落井下石”跌榔;
破壞測試法(缺陷橫行的代碼段)异雁、反叛測試法(輸入最不可能的數(shù)據(jù))、強迫癥測試法(強迫一遍又一遍接受同樣的數(shù)據(jù))僧须;
旅館區(qū)測試法:平臺或維護特性纲刀,被忽視或者少描述的次要及輔助功能;
取消測試法(啟動相關(guān)操作担平,然后停止示绊,查看處理反應(yīng))、懶漢測試法(自行處理空字段及默認值)暂论;
旅游區(qū)測試法:針對的是噱頭特性面褐,關(guān)注如何快速訪問文件的各個功能,目的是到此一游取胎;
收藏家測試法(通過測試收集軟件的輸出展哭,將那些可以到達的地方都到達一遍)、長路徑測試法(訪問離應(yīng)用程序某個開始點盡可能遠的特性)闻蛀、超模測試法(關(guān)心表面的東西匪傍,只測試界面)、測一送一測試法(同時處理多個功能時觉痛,能否正常)
其他區(qū)測試法:無法歸類的區(qū)域役衡,如產(chǎn)品的可測試性、可維護性等秧饮;
內(nèi)部測試法(需要進行某項功能測試之前完成映挂,收集那些部分對確認測試結(jié)果泽篮、定位問題有用的內(nèi)部輸出)、變動區(qū)測試法(分析當前版本與之前版本內(nèi)容的變化柑船,針對變化內(nèi)容進行測試)
3帽撑、開展探索式測試:
3.1、確定探索式測試任務(wù):確認任務(wù)范圍鞍时,三種思路(全局場景探索亏拉、特性漫游探索、局部功能點探索)逆巍;確定范圍后及塘,確定測試方法;
3.2锐极、設(shè)計探索地圖并執(zhí)行探索式測試:根據(jù)被測對象特點笙僚,使用測試方法分析得到測試點,然后執(zhí)行測試灵再,并記錄結(jié)果肋层;使用探索式測試是能夠直接用測試點來進行產(chǎn)品測試的,也是其速度快翎迁、效果高的優(yōu)勢所在栋猖;測試過程中可以靈活實時調(diào)整測試策略;
3.3汪榔、探索式測試總結(jié):哪些方法可以更有效發(fā)現(xiàn)產(chǎn)品問題蒲拉;本次探索測試中的教訓;
4.6 自動化測試
用好已有的自動化痴腌、根據(jù)產(chǎn)品測試需求向自動化團隊提出合適的自動化需求雌团;
1、需要知道的一些自動化測試真相
自動化并不廉價衷掷,相反辱姨,自動化很貴(時間人力技術(shù)成本);自動化腳本往往沒有想象中那么可靠(意外發(fā)現(xiàn)的缺陷戚嗅,自動化可能都不會發(fā)現(xiàn)雨涛;自動化本身可能不可靠);自動化測試不是單靠自測就能搞定的事情(需求要確定清楚懦胞,UI或命令行也需要盡早確定替久,測試用例也要盡快寫出來);
2躏尉、如何評估自動化的收益
自動化測試的實施成本(前期開發(fā)成本+后期維護成本)蚯根;自動化測試的運行次數(shù)(優(yōu)先選擇真正需要多次執(zhí)行的測試用例);自動化測試實施成本比;
3颅拦、自動化測試工具介紹
單元測試工具蒂誉、UI測試工具、性能測試工具距帅;
第5章 軟件測試架構(gòu)師的軟能力修煉
除了硬能力之外右锨,也需要一些軟能力。
5.1 溝通和協(xié)商
產(chǎn)品測試中的溝通原則:1碌秸、盡早溝通(幫助我們預防分歧)绍移;2、既要對事讥电,也要對人(對人強調(diào)的是理解溝通對象蹂窖,換位思考);
通過溝通來獲得對產(chǎn)品測試有用的信息:1恩敌、以測試的視角來讀需求瞬测、設(shè)計文檔,來準備溝通的問題(測試的視角纠炮,是否可測涣楷?怎么測試?怎樣才算驗證通過抗碰?);2绽乔、以需求工程師或開發(fā)的視角來問問題(溝通是相互啟發(fā)的過程)弧蝇;3、總結(jié)折砸、跟蹤和確認看疗;
和測試團隊成員溝通:主動進行反復的溝通(簡介-講解-舉例-總結(jié));和領(lǐng)導或投資決策者溝通(更關(guān)心:產(chǎn)品測試結(jié)果和產(chǎn)品的質(zhì)量評估結(jié)論睦授;重要BUG两芳;重要風險;進度)去枷;
5.2 寫出漂亮的測試用例
測試用例模板:測試用例編號怖辆、用例標題、預置條件删顶、測試數(shù)據(jù)竖螃、測試步驟、預期結(jié)果逗余;合理控制用例的粒度特咆;
測試用例標題要是一個完整的句子:狀語,主語录粱,謂語腻格,賓語画拾,補語(可選);
用條件而不是參數(shù)來描述測試用例標題:參數(shù)更適合在測試用例模板中的測試數(shù)據(jù)部分體現(xiàn)菜职;
如果一個用例中包含多個參數(shù)青抛,用例中應(yīng)該是每個參數(shù)的取值;
不要在測試用例中引用別的測試用例些楣;
避免測試用例中包含過多的用戶接口細節(jié):用例執(zhí)行者是專業(yè)人士脂凶,用例不必寫的面面俱到;
明確測試步驟和預期結(jié)果的對應(yīng)關(guān)系:增加簡單的標記(如check[])來明確對應(yīng)關(guān)系愁茁;
避免在測試步驟中使用籠統(tǒng)的詞:避免反復蚕钦、長時間、大量等描述鹅很,應(yīng)該明確嘶居;
第三部分 修煉:軟件測試架構(gòu)師的核心技能
第6章 如何才能制定好測試策略
制定測試策略是軟件測試架構(gòu)師最核心的技能。
6.1 理解測試策略
1促煮、什么是測試策略邮屁?通俗說,就是測啥咋測菠齿;具體說佑吝,有測試對象范圍、測試目標绳匀、測試重點難點芋忿、測試深度廣度、如何安排測試疾棵、如何評價測試戈钢;
2、測試策略等于測試方針是尔?測試方針是產(chǎn)品測試中的通用要求殉了、原則或底線;遵循的測試方針+項目實際情況=測試策略拟枚;
3薪铜、測試策略等于測試計劃?測試計劃屬于測試管理的范疇恩溅,測試策略屬于測試技術(shù)的范疇痕囱;
4、測試策略等于測試方案暴匠?測試方案主要解決的是特性在測試設(shè)計和測試執(zhí)行方面的問題鞍恢;測試方案需要遵循測試策略;
6.2 四步測試策略制定法
1、明確產(chǎn)品質(zhì)量目標:我們的測試目標就是讓產(chǎn)品在發(fā)布的時候能夠滿足事先約定的質(zhì)量目標(詳見6.3節(jié))帮掉;圍繞產(chǎn)品質(zhì)量目標進行剛剛好的測試弦悉;將目標-行為-評估形成閉環(huán)(詳見第8章);
2蟆炊、進行風險分析:提前識別項目中可能存在阻塞測試的風險稽莉,然后基于風險調(diào)整測試策略;基于風險來加強和降低測試投入涩搓;
3污秆、適配產(chǎn)品開發(fā)流程:測試策略的結(jié)構(gòu);根據(jù)研發(fā)流程來安排測試活動昧甘;
4良拼、進行測試分層:通過測試分層,能夠?qū)⒋蟮哪繕朔值讲煌瑢哟沃须A段完成充边,合理的測試分層庸推,能夠讓測試目標SMART化;
5浇冰、四步測試策略制定法中的測試技術(shù)贬媒;
6.3 產(chǎn)品質(zhì)量評估模型
產(chǎn)品質(zhì)量評估模型將用在測試目標的確定和評估上,它是整個測試策略的基礎(chǔ)肘习。
優(yōu)秀的產(chǎn)品質(zhì)量過程評估模型的特征:多維度(覆蓋各個維度际乘,全面分析和考慮);定量和定性(指標和分析結(jié)合)漂佩;過程+結(jié)果(還需分析評估)蚓庭;
軟件產(chǎn)品質(zhì)量評估模型:測試覆蓋度分析(需求覆蓋度評估、路徑覆蓋度分析)仅仆;測試過程分析(測試用例分析、測試方法分析垢袱、測試投入分析)墓拜;缺陷分析(缺陷密度分析、缺陷修復情況分析请契、缺陷趨勢分析咳榜、缺陷年齡分析、缺陷觸發(fā)因素分析)爽锥;
6.4 測試覆蓋度評估
需求覆蓋度評估:“已經(jīng)測試驗證的產(chǎn)品需求數(shù)”與“產(chǎn)品需求規(guī)格總數(shù)”的比值涌韩;兩種方法:1、直接在需求表中確認測試情況氯夷;2臣樱、建立測試用例和需求的對應(yīng)關(guān)系(注意需求變化的部分惧浴,設(shè)計遺漏可能會影響需求覆蓋評估逞频;本方法最好有工具支持);
路徑覆蓋度分析:“已經(jīng)測試到的語句的數(shù)量”與“程序中可執(zhí)行語句的數(shù)量”的比值;三步分析法宪祥,1、確定路徑覆蓋策略十酣;2灾杰、使用路徑分析法設(shè)計測試用例;3飘蚯、跟蹤測試用例執(zhí)行情況馍迄;
6.5 測試過程評估
分析的對象是測試用例、測試方法和測試投入局骤;
測試用例評估:測試用例執(zhí)行率攀圈;測試用例執(zhí)行通過率(首次執(zhí)行通過率、累積執(zhí)行通過率)庄涡;測試用例和非測試用例發(fā)現(xiàn)缺陷比量承;
測試方法分析:只按照測試策略來確定要使用的測試方法--分析測試設(shè)計是否和測試策略中的測試方法符合--分析測試執(zhí)行時的測試方法是否符合測試策略--通過缺陷分析來確定測試策略是否需要調(diào)整;
測試投入分析穴店;
6.6 缺陷分析
缺陷密度:每千行代碼發(fā)現(xiàn)的缺陷數(shù)撕捍;缺陷密度可以預測產(chǎn)品中有多少缺陷,幫助我們評估當前以及發(fā)現(xiàn)的缺陷總數(shù)是否足夠多泣洞;
缺陷修復率:指產(chǎn)品“已經(jīng)修復的缺陷總數(shù)”與“已經(jīng)發(fā)現(xiàn)的缺陷總數(shù)”的比值忧风;缺陷修復率能夠幫助我們確定當前產(chǎn)品發(fā)現(xiàn)的缺陷是否被有效修復,為當前的產(chǎn)品質(zhì)量是否達到測試質(zhì)量目標提供最直接的判斷依據(jù)球凰;為保證重要缺陷優(yōu)先修復狮腿,我們按照不同的缺陷嚴重程度確定缺陷修復;
缺陷趨勢分析:指隨著時間的進行呕诉,測試發(fā)現(xiàn)的缺陷趨勢和開發(fā)解決缺陷的趨勢缘厢;能夠幫助我們判斷當前系統(tǒng)是否還能容易地發(fā)現(xiàn)缺陷,進而幫我們確定是否可以退出測試甩挫;1贴硫、繪制缺陷趨勢圖(累積發(fā)現(xiàn)的缺陷數(shù)、新發(fā)現(xiàn)的缺陷數(shù)伊者、累積解決的缺陷數(shù)英遭、當前解決的缺陷數(shù));2亦渗、缺陷趨勢曲線的“凹凸性”和“拐點”(理想的趨勢曲線挖诸;趨勢曲線拐點出現(xiàn)的過早;趨勢曲線拐點未出現(xiàn))法精;3多律、缺陷是否收斂(兩個條件:趨勢曲線變?yōu)橥购瘮?shù)痴突;累積發(fā)現(xiàn)和累積解決兩曲線越來越靠近);缺陷年齡分析:軟件產(chǎn)生或引入缺陷的時間(繼承或遺留菱涤、需求階段苞也、設(shè)計階段、編碼引入粘秆、新需求或變更引入如迟、缺陷修復引入);三步走展開年齡分析活動攻走;第一步:確定缺陷的缺陷年齡殷勘;第二步:統(tǒng)計各類缺陷年齡的數(shù)量,繪制分體圖昔搂;第三步:進行缺陷年齡分析(理想的年齡分析圖玲销;沒有在特定的測試層次發(fā)現(xiàn)該層的缺陷;繼承或歷史遺留引入缺陷過多摘符;新需求或變更引入的缺陷過多贤斜;缺陷修改引入缺陷過多);
缺陷觸發(fā)因素分析:對測試中使用的測試方法進行分析逛裤;三步走:確定缺陷的測試方法和測試類型瘩绒;統(tǒng)計出各種測試方法發(fā)現(xiàn)的缺陷數(shù)目,繪制缺陷觸發(fā)因素分析圖(有些方法沒有發(fā)現(xiàn)缺陷或者發(fā)現(xiàn)的少带族;有些方法發(fā)現(xiàn)的特別多锁荔;);
組合使用各種缺陷分析技術(shù):進行缺陷分析蝙砌,并不滿足只對產(chǎn)品質(zhì)量的某一個方面進行評估阳堕,需要我們組合使用這些缺陷分析技術(shù);
6.7 風險分析技術(shù)
涉及的技術(shù)主要有風險識別择克,風險評估恬总,風險應(yīng)對和老功能分析;
1肚邢、風險分析:風險分析的對象是測試策略壹堰;
風險識別:三步走;第一步道偷,分析該項測試活動需要關(guān)注哪些內(nèi)容;第二步记劈,分析上述內(nèi)容都能夠進行保質(zhì)保量順利進行的條件勺鸦;第三步,逐一分析這些條件是否能夠滿足目木;
風險評估:確定風險的優(yōu)先級换途;風險優(yōu)先級正交表懊渡、需求類風險、設(shè)計類風險军拟、流程類風險剃执、歷史類風險;
2懈息、風險應(yīng)對:回避風險肾档、轉(zhuǎn)移風險、減輕風險辫继、接受風險怒见;
3、老功能分析:差異性分析(老功能在新版本和老版本上的差異姑宽,找差異是新版本中做好老功能測試的金鑰匙)遣耍;歷史測試情況分析(確認老功能在新版本和老版本中的質(zhì)量要求是否一致;進行測試方法分析炮车;進行缺陷分析舵变;對組織和人進行分析);
6.8 分層測試技術(shù)
V模型:單元測試瘦穆、集成測試纪隙、系統(tǒng)測試、驗收測試难审;
設(shè)計測試分層:1瘫拣、某通信公司測試分層;單元測試告喊、MST(模塊級)-BBIT(單元/模塊接口)測試麸拄、SDV(系統(tǒng)設(shè)計)-SIT(系統(tǒng)集成)-SVT(吸引驗證)測試、驗收測試黔姜;2拢切、某公司敏捷測試分層;單元測試秆吵、功能測試淮椰、非功能測試、探索測試纳寂;
第三部分:修煉主穗,軟件測試架構(gòu)師的核心技能?
第7章 測試策略實戰(zhàn)攻略
測試策略實戰(zhàn),運用第6章思路和方法毙芜;
7.1 開始
收集了解項目信息:項目范圍忽媒、人力投入、歷史情況腋粥、產(chǎn)品背景晦雨、用戶市場等架曹;
7.2 初次使用“四步測試策略制定法”
1、產(chǎn)品質(zhì)量等級(第1級完全商用闹瞧;第2級受限商用绑雄;第3級測試;第4級不能使用)奥邮;
2万牺、確定項目中各個特性的質(zhì)量等級(逐一確定項目包含特性的產(chǎn)品質(zhì)量等級);
3漠烧、對項目整體進行風險分析(項目整體角度進行分析)杏愤;
4、確定測試策略的結(jié)構(gòu)(總體策略已脓、階段策略珊楼、執(zhí)行策略);
5度液、初步確定測試分層厕宗;
6、回顧(四步走堕担;質(zhì)量分析已慢;風險分析;總體霹购、階段佑惠、執(zhí)行策略;單元齐疙、集成膜楷、系統(tǒng)、驗收)贞奋;
7.3 制定總體測試策略
1赌厅、分解產(chǎn)品質(zhì)量目標:根據(jù)質(zhì)量等級來分解產(chǎn)品的質(zhì)量目標;為每個測試分層確定測試目標轿塔;
2特愿、使用老功能分析法來對特性進行分類:全新特性;老特性變化勾缭;老特性加強揍障;老特性無變化;
3俩由、基于質(zhì)量和風險來確定測試深度和測試廣度(深度指使用的測試方法毒嫡,廣度指測試的范圍):使用產(chǎn)品質(zhì)量評估模型初步確認測試深度;考慮用老功能分析更新測試深度采驻;基于老功能分析來初步確定測試廣度审胚;
4、確定測試優(yōu)先級:質(zhì)量等級越高礼旅,優(yōu)先級越高膳叨;相同質(zhì)量等級下,全新特性比老特性優(yōu)先級高痘系;改動越多的老特性菲嘴,優(yōu)先級越高;根據(jù)優(yōu)先級等級汰翠,制定測試投入策略龄坪;
5、確定測試總體框架:三個層次复唤,分別是策略層(類似大腦健田,負責指揮)、活動層(類似身體佛纫,負責執(zhí)行)妓局、保證層(類似五官,負責保證)呈宇;
6好爬、回顧:總體測試策略輸出的就是兩張表(總體測試策略分析表,測試投入策略表)和一幅圖(測試總體框架)甥啄;
7.4 制定階段測試策略
階段測試策略向上能夠承接總體測試策略存炮,向下能夠指導后面的測試執(zhí)行;
1蜈漓、測試設(shè)計策略:按照測試深度來進行測試設(shè)計穆桂,然后執(zhí)行測試用例,達到執(zhí)行的目的迎变;
1.1充尉、使用“測試分析設(shè)計表”來保證測試設(shè)計符合測試策略(包含3個表,分別是測試分析準備表衣形、測試類型分析表(列為需求驼侠,行為測試類型)、功能交互分析表)谆吴;
1.2倒源、四步測試設(shè)計法和測試廣度:參見4.4,輸出測試用例句狼;
1.3笋熬、測試用例等級:測試用例分級會為后面進行的分層測試、回歸測試腻菇、驗收測試和自動化測試在如何選擇用例方面提供方便胳螟;
2昔馋、集成測試策略:俄羅斯方塊心項目的集成開發(fā);集成測試的對象和測試目標(新合入功能是否正確糖耸;功能集成后系統(tǒng)功能正確性秘遏;原來的系統(tǒng)功能沒有被合入的功能破壞);入口準則--何時開始(用例輸出且評審完畢嘉竟;測試資源到位邦危;測試環(huán)境就位);測試用例選擇(功能:級別1舍扰;新功能集成:級別2和部分級別3倦蚪;確認原系統(tǒng):級別1);出口準則(集成功能開放边苹、集成完成陵且;測試用例執(zhí)行完成;缺陷分析符合預期个束;達到集成測試質(zhì)量目標)滩报;
3、系統(tǒng)測試策略:系統(tǒng)測試的對象和測試目標(系統(tǒng)角度驗證測試功能的正確性播急;系統(tǒng)角度驗證各種非功能質(zhì)量的正確性)脓钾;入口準則--何時開展(集成測試出口、測試準備到位)桩警;測試用例選擇(功能測試:級別1和部分級別2可训;非功能:級別3和級別4);測試執(zhí)行順序(考慮以下:有些測試方法本來就需要滿足一定條件捶枢;先進行復雜的握截,再進行簡單的;組合多種測試方法)烂叔;出口準則(達到目標)谨胞;
4、驗收測試策略:Alpha測試(誰來執(zhí)行(測試人員模擬用戶進行測試蒜鸡,了解用戶的人及測試組員交叉測試是不錯選擇)胯努、測試策略(用戶學習產(chǎn)品、產(chǎn)品資料逢防、安裝部署叶沛、升級、移除忘朝、上下游設(shè)備灰署、業(yè)務(wù)、故障、管理配置溉箕、日志報表等運維功能))晦墙;Beat測試,用戶參加的測試肴茄;入口準則--何時開始(系統(tǒng)測試出口偎痛,Alpha測試人員及方案已經(jīng)確認,Beat測試用戶已經(jīng)確定)独郎;出口準則--何時推出,發(fā)布產(chǎn)品(達到總體策略中產(chǎn)品質(zhì)量目標)枚赡;
5氓癌、回顧:確定了測試設(shè)計策略;確定了各個測試階段的測試策略贫橙;
第8章 版本測試策略和產(chǎn)品質(zhì)量評估
項目開始進入測試執(zhí)行階段贪婉,測試架構(gòu)師也要進入執(zhí)行測試策略的工作中了;
8.1 開始
測試階段的工作卢肃,主要是圍繞:制定版本測試策略疲迂,跟蹤測試執(zhí)行,質(zhì)量評估莫湘;
8.2 第一個版本測試策略
1尤蒿、測試范圍以及和計劃相比的偏差:實際提交的功能和設(shè)計不符時,如果相關(guān)功能對測試人員而言不可測幅垮,則不接收測試腰池;反之,接收測試忙芒;
2示弓、本版本的測試目標:以測試對象--測試方法--測試結(jié)果這樣的方式來描述測試目標,好處是強調(diào)了基本測試要求呵萨,比數(shù)字指標容易理解和執(zhí)行奏属;
3、需要重點關(guān)注的內(nèi)容:首先潮峦,對提交的功能囱皿,提出團隊重點關(guān)注內(nèi)容;其次忱嘹,確定測試的優(yōu)先級表铆帽;
4、測試用例的選擇:根據(jù)測試用例等級德谅,選擇測試用例就簡單多了爹橱;
5、測試執(zhí)行順序:質(zhì)量情況好,可以考慮更多的測試方法組合起來執(zhí)行愧驱;剛提交的功能慰技,質(zhì)量不好或不明時,不建議組合測試组砚;
6吻商、試探性的測試策略--需要大家分工合作的地方:全局因素工作量大,可以進行試探測試糟红;一些全局性配置艾帐,也可以使用這樣的策略;
7盆偿、接收測試策略:開發(fā)將版本交由測試人員時柒爸,測試人員先進行一次測試,確認版本沒有阻塞性問題事扭;如果阻塞可以規(guī)避捎稚,建議繼續(xù)測試;
8求橄、回顧:測試范圍及計劃偏差今野、測試目標、重點內(nèi)容罐农、用例選擇条霜、執(zhí)行順序、試探性測試涵亏、接收測試蛔外;
8.3 跟蹤測試執(zhí)行
跟蹤的目的有三個:確保測試團隊按照測試策略來執(zhí)行;實時關(guān)注缺陷溯乒,通過缺陷分析評估策略是否適合夹厌,是否需要調(diào)整;關(guān)注項目風險裆悄,基于風險調(diào)整策略矛纹;
1、跟蹤測試用例執(zhí)行情況:
1.1光稼、測試團隊的測試執(zhí)行順序是否和測試策略相符(測試團隊是否按照特性優(yōu)先級順序來執(zhí)行測試用例或南;測試團隊是否按照測試策略中的測試方法、測試順序來進行測試艾君;)采够;
1.2、被阻塞的測試用例(測試人力不足冰垄、測試時間不夠蹬癌、測試環(huán)境不具備、其他缺陷導致);
2逝薪、每日跟蹤缺陷:缺陷的趨勢是否正常隅要、是否存在引入缺陷修改引入的缺陷、本版本必須解決的缺陷董济、本版本需要解決的缺陷步清;
2.1、哪些缺陷必須在本版本中解決:標準只有一個虏肾,就是會不會對后續(xù)的測試造成阻塞廓啊;
2.2、哪些缺陷需要在本版本中解決:我們希望在本版本中修復的缺陷封豪;優(yōu)先解決的缺陷類型:
缺陷的改動越大谴轮,越需要盡早解決;缺陷涉及需求撑毛、方案、涉及唧领,需盡早解決藻雌;優(yōu)先解決嚴重程度為致命和嚴重的缺陷;
2.3斩个、缺陷趨勢是否正常:預估拐點會在哪個版本出現(xiàn)胯杭;判斷當前版本的缺陷趨勢是否正常;
2.4受啥、是否存在缺陷修改引入缺陷的問題做个;
3、調(diào)整測試策略:
發(fā)現(xiàn)測試情況與測試策略不符時滚局,需要調(diào)整測試策略居暖;如下調(diào)整思路:
被阻塞的測試用例是屬于幾個功能,還是很多功能藤肢;存在阻塞的功能太闺,原計劃不在本版本中執(zhí)行的用例,是否可以調(diào)整到本版本嘁圈;沒有阻塞的功能省骂,原計劃不在本版本執(zhí)行的用例,是否可以調(diào)整到本版本中測試最住;
在缺陷跟蹤的時候钞澳,發(fā)現(xiàn)趨勢不符合預期;如果拐點出現(xiàn)的太早涨缚,當前測試方法已經(jīng)不能有效發(fā)現(xiàn)缺陷轧粟,需要分析原因,調(diào)整策略;如果一直未出現(xiàn)拐點逃延,當前測試還能有效發(fā)現(xiàn)缺陷览妖,根據(jù)項目情況進行調(diào)整;
8.4 版本質(zhì)量評估
1揽祥、使用軟件產(chǎn)品質(zhì)量評估模型來進行質(zhì)量評估:
1.1讽膏、在版本質(zhì)量評估中記錄需求和實現(xiàn)的偏差:由開發(fā)人員提供的實際提交的功能和需求的偏差;在測試過程發(fā)現(xiàn)的實際功能和需求的偏差(與此有關(guān)的BUG列表拄丰;開發(fā)人員府树、測試人員和SE需求澄清進展、結(jié)論及后續(xù)進展)料按;
1.2奄侠、在版本質(zhì)量評估中進行測試過程評估:測試用例通過率(首次執(zhí)行通過率、累積執(zhí)行通過率)载矿;測試用例在多個版本中的測試結(jié)果(出現(xiàn)反復垄潮,可能存在隱患,需要根因分析)闷盔;
1.3弯洗、在版本質(zhì)量評估中進行缺陷分析;
2逢勾、版本質(zhì)量評估中的缺陷分析牡整;
2.1、版本缺陷密度評估溺拱;
2.2逃贝、版本缺陷年齡分析;
2.3迫摔、版本缺陷觸發(fā)因素分析沐扳;
3、調(diào)整測試策略:評估發(fā)現(xiàn)可能會影響最終發(fā)布的質(zhì)量問題句占,需要采取相應(yīng)的措施迫皱;
4、建立特性版本質(zhì)量檔案:至少包括當前測試覆蓋度方面的記錄辖众、測試過程的分析和記錄卓起、缺陷分析;
8.5 后面的版本測試策略
進入下一個循環(huán)凹炸;
1戏阅、回歸測試策略:是一種確認性質(zhì)的測試;測試目標有缺陷回歸啤它、功能回歸奕筐、階段回歸舱痘;
1.1、缺陷驗證策略:確認缺陷被開發(fā)人員正確修復了离赫;
1.2芭逝、功能回歸策略:確認老功能不會因為新合入的功能而失效;新功能回歸測試渊胸、老功能回歸測試旬盯;
1.3、階段回歸策略:確認產(chǎn)品當前的質(zhì)量達到該階段的質(zhì)量目標翎猛;集成測試階段回歸測試胖翰、系統(tǒng)測試階段回歸測試、驗收測試階段回歸測試切厘;
2萨咳、探索式測試策略:將它與傳統(tǒng)測試結(jié)合起來;
2.1疫稿、將探索式測試和傳統(tǒng)測試結(jié)合起來:先進行傳統(tǒng)測試培他,再進行探索測試;
2.2遗座、探索式測試方法的選擇策略:集成測試時舀凛,先使用商業(yè)區(qū)測試法和娛樂區(qū)測試法,再使用歷史區(qū)測試法和破舊區(qū)測試法员萍;系統(tǒng)測試時腾降,先使用歷史區(qū)測試法和破舊區(qū)測試法拣度,再使用商業(yè)區(qū)測試法和娛樂區(qū)測試法碎绎,最后使用旅館區(qū)測試法和旅游區(qū)測試法;
2.3抗果、探索式測試策略在版本策略中:確認范圍筋帖;根據(jù)當前階段確認主要的探索式測試方法;輸出探索式測試任務(wù)冤馏;
3日麸、自動化測試策略:主要的還是放在回歸測試,如功能回歸和BUG回歸逮光;需要我們先對需要多次執(zhí)行的測試用例進行自動化代箭、優(yōu)先自動化簡單的可靠的功能;
3.1涕刚、確定自動化腳本編寫的優(yōu)先級:優(yōu)先級高的優(yōu)先實現(xiàn)嗡综;優(yōu)先級一樣的,優(yōu)先實現(xiàn)簡單的可靠性高的杜漠;
3.2极景、自動化開發(fā)和測試如何與測試項目配合察净;
3.3、關(guān)于自動化率盼樟;
3.4氢卡、鼓勵通過腳本來解決測試中的實際問題;
4晨缴、回顧:形成了版本測試策略關(guān)注的所有內(nèi)容译秦;
8.6 階段質(zhì)量評估(包括發(fā)布質(zhì)量評估)
每個階段即將完成時,進行一輪整體性評估喜庞,判斷是否滿足出口標準诀浪;
1、階段質(zhì)量評估項目:
1.1延都、確認總體測試策略中的質(zhì)量目標是否完成:發(fā)現(xiàn)質(zhì)量紅線未達到雷猪;一般質(zhì)量目標未達到;
1.2晰房、質(zhì)量的重要目標(質(zhì)量紅線)求摇;
1.3、對未達到的一般性質(zhì)量目標制定應(yīng)對措施:非測試用例發(fā)現(xiàn)缺陷的原因分析殊者;組合缺陷分析与境;
1.4、遺留缺陷分析猖吴;
2摔刁、非測試用例發(fā)現(xiàn)缺陷的原因分析:原因分析可以在整個測試團隊進行;
3海蔽、組合缺陷分析:一般性的質(zhì)量目標問題共屈,需要組合分析,系統(tǒng)角度整體評估問題影響党窜;
4拗引、遺留缺陷分析:版本發(fā)布時不準備修復的缺陷;
4.1幌衣、缺陷對用戶的影響程度矾削;
4.2、缺陷發(fā)生的概率:用戶環(huán)境中發(fā)生的概率豁护;
4.3哼凯、缺陷風險評估和規(guī)避措施;
4.4楚里、不能遺留的缺陷:致命缺陷断部、沒有規(guī)避措施的嚴重缺陷不應(yīng)該遺留;
4.5腻豌、缺陷遺留列表:作為討論和發(fā)布的材料家坎;
5嘱能、臨近發(fā)布時的缺陷修復策略:缺陷遺留標準可能有差異;發(fā)布臨近虱疏,嚴控缺陷修復的數(shù)量惹骂;
6、非必然重現(xiàn)BUG的處理:需要跟蹤和處理做瞪;
7对粪、總結(jié):發(fā)布階段,質(zhì)量評估并給出評估結(jié)論是一項重要的工作装蓬;保證產(chǎn)品能夠按時按質(zhì)按量發(fā)布著拭;貫穿測試項目始終的活動;
----------------------------------------------
整理:本書中提到的一些參考書
1975年牍帚,John Good Enough和Susan Cerhart, IEEE,《 軟件數(shù)據(jù)選擇的原理》
1979年儡遮,Glenford J.Myers,《 軟件測試藝術(shù)》
1983年,Bill Hetzel,《 軟件測試完全指南》
2002年暗赶,Rick和Stefan,《 系統(tǒng)的軟件測試》
Marine L.Hutcheson, Software Testing Fundamentals: Methods and Metries( 《 軟件測試基礎(chǔ): 方法與度量》 )
Dave Hendrichson, 12 Essential Skills for Software Architects( 《 軟件架構(gòu)師的12項修煉》 張菲譯鄙币, 機械工業(yè)出版社出版)
--------------------------------------------------
作者:測試方子
來源:CSDN
原文:https://blog.csdn.net/zimingzim/article/details/80149047
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接蹂随!