敏捷測試3.0
發表于:2016-11-09來源:測試窩作者:譯者:亞然點擊數:
標簽:敏捷測試
敏捷測試人員通常被稱為質量分析師、 SET、測試工程師和QA lead,以及其他一些名稱。我已經做了一段時間的測試了,下面我將基于如何在敏捷團隊中做好測試 分享一些個人觀點。在
敏捷
測試人員通常被稱為質量分析師、 SET、
測試工程師和QA lead,以及其他一些名稱。我已經做了一段時間的測試了,下面我將基于如何在敏捷團隊中做好測試 分享一些個人觀點。在本文中,將用QA來代替敏捷
測試人員。
即使在敏捷團隊,大多數人也會把QA當作一個獨立的角色使之與其他團隊成員區分開來。我認為這是一個過時的概念。QA和
開發人員的區別在于思維方式的不同。
那么QA之間又有什么不同呢?QA可以分為三類:業務、技術、Devops,我把它們稱之為QA的三個維度。QA可能具備其中的一個或者是這三類中所有的技能。
讓我們來更深層次的了解一下每一個層面:
業務:
在這一方面,QA在真正的驅動著業務。他們協助團隊了解客戶提供的業務范圍。QA良好的溝通技巧使團隊更專注于整個項目的業務問題。
他們擅長把客戶
需求轉化為驗收
測試用例,BDD技術的使用可以幫助他們用來打破有著業務背景的客戶和有著技術背景的工程師之間的壁壘。
在用戶故事開始之前,他們會和軟件開發工程師一起結對并持續于用戶溝通,以便了解更多的業務信息。再此期間,他們會督促軟件開發工程師來寫驗收測試,以確保用戶故事能夠及時的被測試。
這些QA可以多看一些這樣的書,如:
《Specification by Example: How Successful Teams Deliver the Right Software》
《Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing》
《The Cucumber Book: Behaviour Driven-Development for Testers and Developers》
技術:
我的工作與此密切相關,因為敏捷團隊中的QA都需要有過硬的技術和良好的
編程技巧。實際上,在一個敏捷團隊中,軟件開發工程師和QA應該沒有區別的,每個人都是工程師。
技術型的QA和軟件開發工程師可以一起結對編程而沒有任何技術上的差距。他們也可以協助軟件開發工程師來實現TDD、提升在代碼整潔和設計模式方面的能力,并確保產出高質量的代碼。他們可以利用豐富的
自動化測試知識,協助團隊為項目選擇合適的測試框架。他們還要負責確保團隊有一個良好的測試策略。
從技術角度來說,QA在非
功能測試方面有了很好的經驗和技術后,還可以做
性能測試和
安全測試。對于
性能測試中,他們協助客戶一同確定SLA(服務等級協定),然后就進行
性能測試來檢測是否達標,并跟進性能優化后應用是否達到SLAS要求。
QA也會參與安全測試,他們根據從用戶那里獲取的需求來分析可能存在的安全漏洞。然后設計測試用例來驗證這些潛在的漏洞是否能夠通過安全機制來覆蓋。
此類QA可以看這些書,如:
《Test Driven Development: By Example》
《Clean Code: A Handbook of Agile Software Craftsmanship》
《The Art of Application Performance Testing: Help For Programmers and Quality Assurance》
Devops:
測試跟Devops又有什么關系呢?其實QA可以運用他們的Devop的相關技能幫助團隊來做很多事情的。
他們引進連續交付的實踐,并幫助團隊創建持續集成流水線,以便每次提交代碼后都能及時得到反饋。這將幫助團隊能夠更頻繁的發布新特性到產品環境。甚至有時可以實現每次提交經過流水線的驗證后就可以直接發布到線上。該流水線會包含編譯、打包、代碼掃描、
單元測試、組件測試和功能測試。
Devops方向的QA會通過設置一些腳本來幫助團隊成員能夠更方便的在本地執行測試。而有些時候為了測試用例的并發執行,需要在虛擬機上配置并執行測試。