敏捷項(xiàng)目下的傳統(tǒng)測試轉(zhuǎn)型之旅 | IDCF

來源:DevOps社區(qū)Meetup,本文曾發(fā)表于“《測試技術(shù)與質(zhì)量管理》季刊第19期” 作者:陳曉鵬。測試、敏捷及DevOps專家。德勤管理咨詢系統(tǒng)集成業(yè)務(wù)線測試負(fù)責(zé)人,中國商業(yè)聯(lián)合會互聯(lián)網(wǎng)委員會智庫專家,ISO29119軟件測試國際標(biāo)準(zhǔn)評審組專家。19年IT領(lǐng)域測試相關(guān)工作經(jīng)驗(yàn),超過13年在IBM、埃森哲、德勤等國際頂尖IT咨詢及世界五百強(qiáng)公司工作。擅長測試咨詢與落地、項(xiàng)目管理、測試自動化及敏捷測試、DevOps等相關(guān)領(lǐng)域。 編輯:墨香
一、傳統(tǒng)測試在敏捷環(huán)境下面臨的挑戰(zhàn)
時(shí)間極短
文檔極少
變更極頻
資源極缺
二、敏捷環(huán)境下應(yīng)采用敏捷測試
“敏捷測試是遵從敏捷軟件開發(fā)原則的軟件測試實(shí)踐。敏捷測試包括跨功能敏捷團(tuán)隊(duì)的所有成員,以及測試人員提供的特殊專業(yè)知識,以確保可持續(xù)的速度頻繁地交付客戶所需的業(yè)務(wù)價(jià)值。”
敏捷測試遵從敏捷開發(fā)的原則,強(qiáng)調(diào)遵守。所以敏捷價(jià)值觀和敏捷宣言遵循的12原則同樣適用在敏捷測試中。 測試被包含在整體開發(fā)流程中,強(qiáng)調(diào)融合。在敏捷開發(fā)過程中不再像傳統(tǒng)項(xiàng)目那樣有開發(fā)階段和測試階段之分,而是把開發(fā)和測試作為一個整體過程來看待。 跨職能團(tuán)隊(duì),強(qiáng)調(diào)協(xié)作。跨職能意味著團(tuán)隊(duì)需要具備不同專業(yè)技能的人才共同組成,彼此之間互相協(xié)作、互相幫助,發(fā)揮每個人在團(tuán)隊(duì)中的優(yōu)勢,從而使得團(tuán)隊(duì)績效最大化。
三、往敏捷測試轉(zhuǎn)型的四個要素

四、敏捷測試文化轉(zhuǎn)變
小心變成質(zhì)量警察
可持續(xù)的速度而不是在項(xiàng)目尾段快速激烈的測試
合作伙伴式的客戶關(guān)系
每個團(tuán)隊(duì)都有能力做出決定
提倡免責(zé)文化
管理層需要具備敏捷知識
五、敏捷測試組織轉(zhuǎn)變

在SAFe中是如此定義實(shí)踐社區(qū)CoP的:
實(shí)踐社區(qū)是一個由團(tuán)隊(duì)成員和其他專家組成的非正式團(tuán)體,他們在一個項(xiàng)目群或企業(yè)環(huán)境中活動,并且擁有在一個或多個相關(guān)領(lǐng)域分享實(shí)踐知識的使命。
由定義可知,雖然CoP不是一個正式的團(tuán)體組織,無法承擔(dān)測試人員管理的職責(zé),但是至少可以讓測試人員有一個“精神樂園”作為寄托,可以在里面學(xué)習(xí)與分享,減少測試人員的迷茫感。
六、敏捷測試流程轉(zhuǎn)變
代碼:在Sprint層級中,我們需要對代碼進(jìn)行質(zhì)量掃描和單元測試,主要測試獨(dú)立的代碼單元是否正確。這個測試在單個Sprint內(nèi)完成,不會跨Sprint。 故事:在Sprint層級中,我們主要的測試對象是用戶故事。我們需要根據(jù)故事的驗(yàn)收標(biāo)準(zhǔn)進(jìn)行測試,這個測試是在Sprint迭代過程中執(zhí)行的,而且不會跨Sprint。 特性:在版本發(fā)布層級中,我們的測試對象是特性,主要是測試一些故事之間如何協(xié)同工作向用戶交付更大的價(jià)值。這個測試有些可以在Sprint內(nèi)完成,有些需要跨Sprint才能完成。 史詩:在版本發(fā)布層級中,我們測的對象是史詩,主要是跨多個特性的核心業(yè)務(wù)流程,通常是端到端的集成測試。這個測試通常都是要跨Sprint才能完成。

L1級別主要是針對單元組件模塊級別進(jìn)行的性能測試; L2級別主要是針對用戶故事級別進(jìn)行的性能測試; L3級別主要是針對整個版本端到端級別進(jìn)行的性能測試。


七、敏捷測試實(shí)踐轉(zhuǎn)變
需求到配置庫 代碼到開發(fā)環(huán)境 代碼到Sprint測試環(huán)境 代碼到集成/發(fā)布測試環(huán)境 代碼到生產(chǎn)環(huán)境

需求到配置庫:這個環(huán)節(jié)是需求相關(guān)的環(huán)節(jié),我們針對需求主要采用ATDD或者BDD的實(shí)踐進(jìn)行活動,同時(shí)也要考慮關(guān)于可用性的調(diào)研,可以通過低保真原型向最終用戶收集反饋。該環(huán)節(jié)的賦能者是BDD的框架、ATDD的框架,比如Cucumber、Specflow等。 代碼到開發(fā)環(huán)境:這個環(huán)節(jié)是單元測試環(huán)節(jié),我們針對代碼主要進(jìn)行單元測試TDD、靜態(tài)代碼分析、代碼覆蓋率分析等活動。該環(huán)節(jié)的賦能者是XUnit框架、Jacoco代碼覆蓋率分析、SonarQube靜態(tài)代碼掃描等。 代碼到Sprint測試環(huán)境:這個環(huán)節(jié)是Sprint內(nèi)測試環(huán)節(jié),我們針對代碼的功能性和非功能性進(jìn)行測試,主要的質(zhì)量活動包括功能測試、性能測試、安全測試等。該環(huán)節(jié)的賦能者是服務(wù)虛擬化、API和UI的測試自動化、組件和故事級別的性能測試等。 代碼到發(fā)布集成測試環(huán)境:這個環(huán)節(jié)主要是跨Sprint的UAT測試環(huán)節(jié),主要包括端到端聯(lián)調(diào)測試、探索式測試、性能測試、可用性/易用性測試、安全測試等活動。該環(huán)節(jié)的賦能者是自動化測試框架、CI/CD流水線、安全漏洞掃描、用戶體驗(yàn)測試、系統(tǒng)級別的性能測試等。 代碼到生產(chǎn)環(huán)境:這個環(huán)節(jié)主要是上線后環(huán)節(jié),包括的質(zhì)量活動如A/B測試、生產(chǎn)環(huán)境測試、混沌工程(Chaos Engineering)等。該環(huán)節(jié)的賦能者是自動化測試框架、生產(chǎn)監(jiān)控工具包括APM等。
八、結(jié)語
通過敏捷測試流程使得測試過程與敏捷迭代一致,解決了測試時(shí)間短的問題; 通過合作伙伴式的客戶關(guān)系文化轉(zhuǎn)變,使得我們不再需要描寫繁雜的需求文檔,我們通過與客戶頻繁溝通了解客戶的真正需要; 通過組織架構(gòu)向跨職能團(tuán)隊(duì)調(diào)整,質(zhì)量應(yīng)由團(tuán)隊(duì)保障,解決了專職測試資源少的問題; 通過敏捷測試實(shí)踐的自動化測試與持續(xù)集成,縮減反饋周期,使得在變更頻繁的情況下也能很好的保證質(zhì)量。
[1] SAFe4.0精粹 電子工業(yè)出版社 (美)理查德·克納斯特,(美)迪恩·萊芬韋爾著 [2] Scrum精髓 清華大學(xué)出版社 (美)凱恩魯本著 [3] 維基百科

評論
圖片
表情

