Scrum中的軟件測試指南
導(dǎo)讀:本文的目的是分享有關(guān)Scrum Agile框架中軟件測試活動的想法。本文分為兩個主要部分。第一部分著重于解釋Scrum方法,誰是參與者,計劃如何轉(zhuǎn)化為行動,關(guān)鍵儀式以及Scrum沖刺中會發(fā)生什么。在第二部分中,我描述了Scrum方法論中遵循的軟件測試過程,以及如何將其集成到Scrum sprint中。
一,引言
敏捷是一種流行且非常成功的軟件開發(fā)模型,可以將高質(zhì)量的產(chǎn)品快速交付用戶手中。在像Scrum這樣的敏捷方法中,高級軟件需求或業(yè)務(wù)需求被分解為稱為“史詩”的較小單元,而史詩甚至進一步分為用戶故事。每個用戶案例都有定義的接受標(biāo)準。
在基于敏捷的軟件開發(fā)項目中,團隊合作很重要,沒有“ I”的概念。敏捷專注于團隊合作,因此“我們”喜歡Scrum團隊。敏捷項目以沖刺的形式交付。沖刺是一個可能長達2或4周的時間框。在Scrum沖刺期間,將創(chuàng)建可用的和可能發(fā)布的軟件。稍后我們將詳細討論沖刺期間發(fā)生的儀式。
敏捷軟件開發(fā)將軟件測試集成到開發(fā)過程中,而不是將其作為一個單獨的階段。包括產(chǎn)品所有者在內(nèi)的團隊負責(zé)分析用戶案例,以定義每個案例的接受標(biāo)準。Scrum團隊的成員共同為每個沖刺定義沖刺目標(biāo)。在開發(fā)團隊開始實施用戶案例時,測試專家開始進行測試用例設(shè)計,并與產(chǎn)品負責(zé)人一起審查以批準。這樣可以確保測試范圍盡可能完整。在測試用例復(fù)審之后,測試人員便開始驗證開發(fā)的用戶案例。測試期間發(fā)現(xiàn)的缺陷將被記錄并由Scrum團隊進行審查。
“軟件測試不僅涉及發(fā)現(xiàn)應(yīng)用程序中的缺陷;這是一個過程,可幫助我們從定義軟件需求的方式一直到最終用戶提高質(zhì)量”
“測試團隊不會破壞軟件,測試團隊會幫助開發(fā)團隊修復(fù)損壞的軟件”
“測試過程應(yīng)該探索意想不到的事物,而不僅僅是尋找期望的事物”
測試自動化在交付高質(zhì)量產(chǎn)品中扮演著重要角色。為功能和回歸測試實現(xiàn)測試自動化框架對任何基于敏捷的開發(fā)項目都是有益的,因為它在軟件開發(fā)生命周期的早期階段為識別缺陷帶來了價值。建立正確的自動化測試框架取決于與產(chǎn)品和工程團隊進行適當(dāng)?shù)目尚行苑治?,選擇正確的工具和框架。在sprint生命周期內(nèi)確定,確定優(yōu)先級和執(zhí)行業(yè)務(wù)方案將面臨許多挑戰(zhàn)。Scrum團隊?wèi)?yīng)該定義不同風(fēng)格的軟件測試技術(shù)以及不同的自動化層,以在短時間內(nèi)交付高質(zhì)量的產(chǎn)品。
二。Scrum入門
建立團隊
Scrum是一個框架,可以幫助團隊一起工作并完成工作。Scrum鼓勵團隊學(xué)習(xí)經(jīng)驗,在解決問題時自我組織,并反思自己的得失,以不斷提高。Scrum的結(jié)構(gòu)旨在幫助團隊自然地適應(yīng)不斷變化的條件和用戶要求,并在流程中內(nèi)置了重新優(yōu)先級和較短的發(fā)布周期,因此您的團隊可以不斷學(xué)習(xí)和改進。
在Scrum框架中,每個sprint本身都是一個項目,并且在sprint結(jié)束時(通常為2或4周),將“完成”的增量交付給用戶以進行實施。未完成或不接受的功能將進行審查,并為以后的沖刺重新排序。
敏捷轉(zhuǎn)型的第一步是以敏捷的心態(tài)組建一支正確的團隊。
“敏捷并不關(guān)乎“流程和工具”,而是關(guān)乎“個人和互動”。
“敏捷就是團隊成員之間的協(xié)作和透明”。
Scrum框架中的三個角色是產(chǎn)品所有者,Scrum主管和開發(fā)團隊。
產(chǎn)品負責(zé)人:以故事的形式翻譯用戶需求并與Scrum團隊緊密合作的人。產(chǎn)品所有者在定義epic和用戶story方面起著主要作用。他還負責(zé)團隊在實現(xiàn)項目目標(biāo)方面的成功。
Scrum Master:誰負責(zé)消除阻礙團隊成功的障礙。他還負責(zé)團隊遵循Scrum原則和規(guī)則。Scrum主管與產(chǎn)品負責(zé)人和團隊緊密合作。他還負責(zé)促進每日Scrum會議。
開發(fā)團隊:負責(zé)實際工作的團隊。他們負責(zé)在每次沖刺結(jié)束時完成產(chǎn)品增量。團隊負責(zé)為沖刺中要完成的工作定義接受標(biāo)準。軟件測試人員是開發(fā)團隊的一部分。
建立產(chǎn)品路線圖
產(chǎn)品負責(zé)人與利益相關(guān)者共同提出愿景,并將愿景轉(zhuǎn)化為產(chǎn)品策略。產(chǎn)品路線圖是一個高層計劃,用于傳達產(chǎn)品可能如何發(fā)展。產(chǎn)品路線圖通常涵蓋幾個主要版本或產(chǎn)品版本,這些版本將細分為sprint。
這是Scrum框架實施中非常重要的一步。產(chǎn)品路線圖由產(chǎn)品所有者完成,但也應(yīng)包括項目中其他利益相關(guān)者的投入。在開始計劃沖刺之前,必須先確定路線圖。
敏捷產(chǎn)品路線圖必須保持靈活性,以更好地應(yīng)對新興機會。但是,它還必須為您的團隊提供明確的方向。這個方向通常通過優(yōu)先級排序來體現(xiàn),即清晰地描繪出您的公司認為您的團隊今天最喜歡工作的最低要求與未來可能最有價值的最低要求。
產(chǎn)品路線圖應(yīng)支持產(chǎn)品的愿景,并應(yīng)幫助產(chǎn)品所有者使項目利益相關(guān)者保持一致。該路線圖還使協(xié)調(diào)開發(fā)工作變得更加容易,并且為實現(xiàn)業(yè)務(wù)期望提供了透明度。

產(chǎn)品負責(zé)人與利益相關(guān)者積極合作,創(chuàng)建了一個積壓的產(chǎn)品清單,其中包含可以交付價值的需求,并根據(jù)市場需求確定其優(yōu)先級。產(chǎn)品所有者負責(zé)產(chǎn)品積壓的所有權(quán)。產(chǎn)品積壓通常包括兩種工作項:
Epic?–?粗略概述的高級需求,沒有太多細節(jié)。
故事?–?對應(yīng)該做什么的更全面的要求。
產(chǎn)品負責(zé)人為發(fā)布工作軟件創(chuàng)建了一個高級計劃。敏捷項目將有多個版本,因此您要優(yōu)先考慮使您首先啟動所需的功能。
將計劃轉(zhuǎn)化為行動
產(chǎn)品負責(zé)人將所有高級要求轉(zhuǎn)換為用戶案例,并設(shè)置了初始產(chǎn)品積壓。一旦產(chǎn)品所有者準備好進行沖刺計劃,他就會組織一個積壓的整理會話,以針對第一個沖刺細化用戶故事并確定其優(yōu)先級。
產(chǎn)品負責(zé)人和團隊計劃將執(zhí)行特定任務(wù)和目標(biāo)的沖刺。典型的sprint持續(xù)1-4周,并且在整個項目中應(yīng)保持相同的長度,因為這使團隊可以根據(jù)先前的sprint績效更準確地計劃未來的工作。
Sprint計劃是團隊的工作,因此產(chǎn)品負責(zé)人和所有團隊成員應(yīng)在場,以表達他們的想法和疑慮。沖刺計劃在每個沖刺周期的開始進行。
下圖列出了敏捷Scrum框架中的關(guān)鍵儀式。

三,敏捷測試流程
Scrum沖刺會發(fā)生什么?
每天都會通過Scrum董事會跟蹤sprint進度。Scrum主管組織一次每日站立會議,以識別團隊的進度和障礙(如果有)。Scrum主管的作用是消除團隊的障礙,并幫助團隊前進以實現(xiàn)沖刺目標(biāo)。
在sprint計劃會話中優(yōu)先的用戶故事將被排序并為sprint優(yōu)先。開發(fā)團隊(包括測試人員)將具有針對用戶故事創(chuàng)建的自己的可交付成果(任務(wù))。
典型的敏捷Scrum板具有流動的階段,

在sprint計劃中優(yōu)先處理的用戶故事將按照定義的等級在sprint待辦事項列表(待辦事項)中列出。開發(fā)團隊將開始從事與故事相關(guān)的開發(fā)任務(wù)。一旦開始編碼,開發(fā)團隊便將任務(wù)移至“正在執(zhí)行”狀態(tài)。經(jīng)過編碼和單元測試之后,故事將被移至“驗證”。不符合接受條件的故事將移回“正在做”。與產(chǎn)品負責(zé)人一起審查接受標(biāo)準后,通過測試的故事將移至“完成”階段。
下圖顯示了在短短的2或4周的沖刺周期內(nèi)如何對最低限度的可愛產(chǎn)品進行優(yōu)先級排序,開發(fā),驗證和發(fā)布。

如前所述,敏捷中的測試活動在開發(fā)過程中進行。測試應(yīng)該從用戶故事階段開始。作為一個團隊,每個用戶故事都應(yīng)至少具有定義,審查和批準的接受標(biāo)準。測試方案將基于定義的驗收標(biāo)準得出。

敏捷測試中的關(guān)鍵原則
在修飾時提出正確的問題,不要假設(shè)。
縮小差距
開箱即用,通過您的測試方案為業(yè)務(wù)帶來價值。
像用戶一樣思考和測試。
探索意外。
以所有可能的方式進行測試-正面,中間和背面。
將結(jié)果回放給產(chǎn)品負責(zé)人。
對結(jié)果保持透明,有效地進行分類。
幫助開發(fā)人員解決問題
不要錯過任何價值
VI。Sprint中的測試自動化
在Scrum沖刺中實現(xiàn)測試自動化有其優(yōu)點和缺點。關(guān)鍵部分是確定要自動化的區(qū)域。自動化應(yīng)該與開發(fā)齊頭并進。您可以構(gòu)建自動測試的不同層,重點放在單個組件,集成和可視化測試上。下圖顯示了如何實現(xiàn)不同的層,每個層的目的是什么以及覆蓋的范圍。

設(shè)置ü?p?自動化測試框架
關(guān)鍵目標(biāo)是建立一個支持連續(xù)集成的健壯且可重用的測試自動化框架。該框架應(yīng)具有足夠的靈活性,以適應(yīng)不同的被測應(yīng)用程序(AUT)模塊,并執(zhí)行涵蓋功能,API,UI / UX和端到端回歸的不同級別的自動化測試,這將大大減少人工工作并增加測試范圍。
當(dāng)今市場上,我們擁有低代碼自動化框架,例如Tosca,Katlon等。這些工具可幫助我們在較短的時間內(nèi)建立并運行測試框架,因為這不涉及繁重的編碼。這些是基于模型的測試自動化框架,這些框架使用記錄或內(nèi)置UI來輕松設(shè)置可重用的頁面對象。
如果您的組織堅持使用開源框架,那么仍然可以使用諸如Selenide,Geb等的預(yù)定義框架來快速設(shè)置測試自動化框架。即使它們需要一些編碼,也可以節(jié)省大量時間來進行初始設(shè)置。
如何在沖刺中實現(xiàn)自動化?
識別自動化測試
制定策略
合作并確定優(yōu)先順序
捷徑并使用API
根據(jù)需要構(gòu)建對象
軟件測試人員與產(chǎn)品負責(zé)人一起確定業(yè)務(wù)方案,并將業(yè)務(wù)方案轉(zhuǎn)換為具有接受標(biāo)準的可測試方案。每個方案都應(yīng)具有測試步驟以及每個步驟的預(yù)期結(jié)果。作為Scrum團隊進行討論,并制定每項要求的戰(zhàn)略并確定以更簡單的方式實現(xiàn)自動化的方法,例如:使用API。
與產(chǎn)品負責(zé)人合作,為每個測試用例定義優(yōu)先級,并根據(jù)優(yōu)先級開始工作。分析每個測試方案并構(gòu)建頁面對象,以用于測試用例,而不是為頁面中所有可用元素構(gòu)建頁面對象。確保開發(fā)人員為每個頁面元素使用唯一的ID,以節(jié)省構(gòu)建Xpath的時間。
五,結(jié)論
Scrum框架支持協(xié)作工作模型,任何人都可以共享他們的想法,意見以改進流程。敏捷更多是一種思維定勢和一種文化。從頭開始實施像Scrum這樣的敏捷方法將面臨許多挑戰(zhàn)。Scrum是一個框架,在sprint生命周期的早期階段帶來了獲得產(chǎn)品反饋的好處。通過在沖刺生命周期內(nèi)和沖刺周期之外,通過已定義的過程和敏捷儀式并遵循上述過程,您可以更快地將最低限度的可愛產(chǎn)品投放到用戶手中。測試和測試自動化在開發(fā)質(zhì)量代碼中起著重要作用。軟件測試應(yīng)該從頭開始。測試不是要發(fā)現(xiàn)缺陷,
