構(gòu)建高效的軟件測試知識體系
作者:鄭文強(qiáng)
2018年6月8日受葛,作為第一屆TMMi中國峰會(huì)圓桌會(huì)議的嘉賓逼庞,我參與討論了“如何建立適合測試組織的測試規(guī)范體系”這個(gè)測試主題鸭巴,其中分享了我對該話題的一些想法和經(jīng)驗(yàn)÷鸹酰現(xiàn)在通過文章的方式將當(dāng)時(shí)講解的內(nèi)容進(jìn)行了一些歸納和總結(jié)字逗,主要包括3個(gè)方面的內(nèi)容:
1急前、1個(gè)故事:任何問題的解決都需要從過個(gè)層面考慮醒陆;
2、4個(gè)維度:構(gòu)建高效的軟件測試知識體系裆针;
3刨摩、目標(biāo)推動(dòng):綜合應(yīng)用4個(gè)維度推動(dòng)測試目標(biāo)的實(shí)現(xiàn);
一世吨、1個(gè)故事:任何問題的解決都需要從過個(gè)層面考慮
記得2009年時(shí)澡刹,當(dāng)時(shí)發(fā)布給用戶的一個(gè)軟件版本,在用戶使用現(xiàn)場發(fā)現(xiàn)了一個(gè)嚴(yán)重的問題耘婚,不僅導(dǎo)致公司層面的經(jīng)濟(jì)損失罢浇,也傷害了用戶對該產(chǎn)品的使用信心。項(xiàng)目經(jīng)理針對該問題進(jìn)行了一次經(jīng)驗(yàn)教訓(xùn)分析大會(huì)沐祷,在會(huì)中直接扔出來這樣的一個(gè)問題:“為什么你們測試團(tuán)隊(duì)在測試過程中沒有發(fā)現(xiàn)這個(gè)問題嚷闭?”
今天不從整個(gè)項(xiàng)目層面談缺陷遺漏的根本原因分析,而是將關(guān)注點(diǎn)放在測試團(tuán)隊(duì)本身赖临,即為什么測試團(tuán)隊(duì)沒有發(fā)現(xiàn)這個(gè)問題胞锰,有哪些原因可能會(huì)導(dǎo)致測試過程中沒有發(fā)現(xiàn)此類缺陷?其目的是在將來的測試過程中盡量減少此類問題再次發(fā)生思杯,并不斷提高測試團(tuán)隊(duì)的測試能力胜蛉。從測試的角度挠进,在分析該缺陷遺漏原因時(shí)色乾,提出了下面的一些問題:
會(huì)不會(huì)是測試過程的前期沒有明確預(yù)留足夠的時(shí)間開展測試分析工作?從而導(dǎo)致測試團(tuán)隊(duì)沒有時(shí)間學(xué)習(xí)軟件產(chǎn)品的需求等參考文檔领突。假如是暖璧,是否需要從測試過程角度,詳細(xì)定義測試分析階段君旦,盡早介入?yún)⑴c開發(fā)人員輸出的各種文檔的學(xué)習(xí)和評審澎办?
假如不是嘲碱,即明確定義了測試分析階段,也預(yù)留了足夠的時(shí)間局蚀。但是測試人員在設(shè)計(jì)測試用例時(shí)只是基于經(jīng)驗(yàn)麦锯,沒有選擇合適的測試設(shè)計(jì)技術(shù),因此針對該缺陷沒有設(shè)計(jì)出合適的測試用例琅绅,或者測試人員的測試思維無法發(fā)現(xiàn)該缺陷扶欣?假如是,是否需要加強(qiáng)測試用例設(shè)計(jì)技術(shù)方面的培養(yǎng)千扶?
假如測試過程中明確定義了測試分析與測試設(shè)計(jì)料祠,并且得到了合適的測試用例。但是由于測試時(shí)間非常有限澎羞,在測試重點(diǎn)選擇時(shí)髓绽,將該測試用例的優(yōu)先級設(shè)置得比較低,導(dǎo)致最后沒有執(zhí)行該測試用例妆绞。假如是顺呕,是否需要加強(qiáng)基于風(fēng)險(xiǎn)的測試重點(diǎn)選擇,使得測試優(yōu)先級的選擇更加有針對性括饶?
假如前面3個(gè)選項(xiàng)測試團(tuán)隊(duì)都做得不錯(cuò)塘匣,但是由于執(zhí)行該測試用例的測試人員,由于各個(gè)方面的原因?qū)е滤麤]有動(dòng)力認(rèn)真得執(zhí)行測試巷帝,從而導(dǎo)致沒有發(fā)現(xiàn)該缺陷忌卤?此時(shí)是否需要更多得激勵(lì)和人員管理?
根據(jù)上面提到的幾個(gè)問題楞泼,發(fā)現(xiàn)針對測試團(tuán)隊(duì)遺漏缺陷這個(gè)問題驰徊,其可能的原因是多方面的。因此堕阔,要解決這樣的問題棍厂,不能僅僅依賴于單個(gè)維度去解決,而是需要構(gòu)建一個(gè)結(jié)構(gòu)化的測試體系超陆,以提高整個(gè)測試團(tuán)隊(duì)的測試能力牺弹。
二、4個(gè)維度:構(gòu)建高效的軟件測試知識體系
根據(jù)上面的場景时呀,測試團(tuán)隊(duì)假如要實(shí)現(xiàn)高效的軟件測試张漂,僅僅強(qiáng)調(diào)某個(gè)測試點(diǎn)或測試技術(shù)是不夠的,需要體系化的測試知識和技能的支撐谨娜。另一方面航攒,從測試團(tuán)隊(duì)或測試人員的角度,要實(shí)現(xiàn)測試能力的改進(jìn)趴梢,從當(dāng)前測試過程中面臨的主要問題入手是最有效的手段漠畜。
2009年在公司內(nèi)的職責(zé)更關(guān)注在測試團(tuán)隊(duì)的能力改進(jìn)上面币他,期間收集和分析了測試人員在測試過程中碰到的各種問題,首先將各種問題歸類到11個(gè)測試關(guān)鍵域KPA憔狞,如下圖所示:
最終將11個(gè)KPA總結(jié)為3個(gè)維度:測試過程蝴悉、測試技術(shù)和測試管理。
1瘾敢、測試過程(全生命周期的軟件測試過程):例如過程階段和活動(dòng)辫封、測試文檔、測試環(huán)境廉丽、回歸測試倦微、腳本化測試與探索性測試、測試基本原則等正压;
2欣福、測試技術(shù)(問題驅(qū)動(dòng)的軟件測試設(shè)計(jì)):例如靜態(tài)測試、測試用例分析與設(shè)計(jì)焦履、測試工具與自動(dòng)化等拓劝;
3、測試管理(全方位的軟件測試管理):例如測試計(jì)劃嘉裤、測試估算郑临、測試風(fēng)險(xiǎn)、缺陷管理屑宠、測試度量厢洞、測試團(tuán)隊(duì)管理、測試過程改進(jìn)等典奉;
不管定義了怎樣的測試過程躺翻、測試技術(shù)和測試管理,最終都需要有合適的測試人員去實(shí)施卫玖,因此增加第4個(gè)維度公你,即人的維度。人是實(shí)施高效測試的核心假瞬,其能力包括:學(xué)習(xí)能力陕靠、溝通能力、思考能力脱茉、思維能力剪芥、解決問題能力等。測試過程芦劣、測試技術(shù)和測試管理的3個(gè)維度粗俱,再加上人的維度,它們共同組成了構(gòu)建高效的軟件測試知識體系的框架虚吟,如下圖所示:
構(gòu)建高效的軟件測試知識體系的過程寸认,需要不斷應(yīng)用自下而上的結(jié)構(gòu)化思維:羅列要點(diǎn)、連線歸納串慰、構(gòu)建架構(gòu)和檢查架構(gòu)偏塞,其過程也類似于測試過程,需要不斷的反饋和迭代以優(yōu)化整個(gè)框架邦鲫。
三灸叼、目標(biāo)推動(dòng):綜合應(yīng)用4個(gè)維度推動(dòng)測試目標(biāo)的實(shí)現(xiàn)
構(gòu)建了適合自己的測試知識體系框架之后,接下來需要對框架內(nèi)4個(gè)維度進(jìn)行綜合應(yīng)用庆捺。測試知識體系框架本身并不是簡單的測試知識的羅列古今,而是將知識和經(jīng)驗(yàn)轉(zhuǎn)化為測試人員分析和解決問題能力的提升過程,最終目的是從多維度多層次解決測試過程中面臨的各種問題滔以,即更多體現(xiàn)解決問題的結(jié)構(gòu)化和系統(tǒng)化捉腥。
測試知識體系框架的構(gòu)建,需要符合當(dāng)前開發(fā)模型你画、開發(fā)和測試團(tuán)隊(duì)特點(diǎn)抵碟、質(zhì)量要求、時(shí)間等資源的限制等坏匪,適合當(dāng)前測試上下文背景的就是好的規(guī)范體系拟逮,即根據(jù)需要可以對框架內(nèi)內(nèi)容進(jìn)行合理的裁剪前弯。測試知識體系框架的應(yīng)用坎怪,其目的是推動(dòng)各個(gè)層面測試目標(biāo)的實(shí)現(xiàn),并在測試時(shí)間佳魔、成本凭迹、范圍和質(zhì)量等要素方面達(dá)到平衡颅崩,高效高質(zhì)量的及時(shí)交付測試輸出。
[本文提到的測試過程蕊苗、測試技術(shù)沿后、測試管理、結(jié)構(gòu)化思維朽砰、解決問題步驟等內(nèi)容尖滚,將在后續(xù)的文章中陸續(xù)推出,敬請關(guān)注并歡迎大家與我對文中內(nèi)容進(jìn)行探討瞧柔!]