王小妮
摘 要敏捷開發(fā)模式是適應競爭日趨激烈的軟件開發(fā)市場環(huán)境而發(fā)展出來的一種軟件開發(fā)項目管理策略,在敏捷軟件開發(fā)過程中開展的測試便可稱為敏捷軟件測試。敏捷測試以溝通、簡單、反饋、勇氣、尊重為核心價值觀,不僅是測試軟件本身,還包括軟件測試的過程與模式。敏捷測試的目的是為了盡可能使發(fā)布功能與客戶預期一致,確保開發(fā)、管理過程正確。基于Scrum的敏捷測試包含設計計劃與體系結構、迭代、交付三個過程,需關注Scrum測試管理、模型設計與過程管理。
【關鍵詞】敏捷測試 Scrum 研究
21世紀是信息化技術全面高速發(fā)展的時代,企業(yè)之間的競爭日趨激烈,產品質量對于企業(yè)的發(fā)展重要性得以凸顯,并成為企業(yè)核心競爭力的突出表現(xiàn)之一。軟件行業(yè)也面臨類似的問題,軟件系統(tǒng)變得越來越復雜,傳統(tǒng)的軟件工程理論下軟件開發(fā)周期過長、無法保證軟件質量、開發(fā)過程冗長、笨重,加之頻繁的人員流動、迅速變化的市場,都讓傳統(tǒng)的軟件開發(fā)方法無法適應新的市場競爭環(huán)境,軟件的失敗率變高。軟件測試越來越受到重視,敏捷測試是軟件測試的重要組成部分,本文嘗試基于Scrum開展敏捷測試應用進行概述。
1 敏捷測試概述
敏捷開發(fā)模式正處于逐步推廣階段,具有較大的發(fā)展?jié)摿Α,F(xiàn)代經濟生活中,很難甚至無法預測基于計算的系統(tǒng)如何隨著時間的推移而進行演化,市場情況瞬息萬變,最終用戶的需求也在不斷變化,新的競爭危險也毫無征兆的出現(xiàn),故對于輕量級的軟件開發(fā)而言,需要不斷變化,以應對以上軟件開發(fā)問題。敏捷開發(fā)以人為核心,迭代,循序漸進,擁抱變化是其基本動力。
敏捷過程有以下要點:
(1)通過頻繁迭代與客戶形成早期良好合作,及時反饋提高產品質量;
(2)客戶、需求人員、開發(fā)人員進行有意義頻繁的交互,以及早發(fā)現(xiàn)問題;
(3)衡量功能實現(xiàn)的唯一標準是該功能的開發(fā)測試已完成,并測試通過。
敏捷測試以溝通、簡單、反饋、勇氣、尊重為核心價值觀,在敏捷軟件開發(fā)過程中開展的測試便可稱為敏捷軟件測試,測試人員適應變化,與技術人員、業(yè)務人員進行良好的協(xié)作,立即測試記錄需求、驅動開發(fā)思想。敏捷測試法繼承了敏捷軟件開發(fā)原則,作為一個優(yōu)秀的敏捷測試人員,需要遵守以下原則:提供持續(xù)的反饋,為客戶創(chuàng)造價值,進行面對面的溝通,勇氣,簡單化,持續(xù)改進,相應變化,自我組織,關注人,享受樂趣。敏捷測試不僅僅是測試軟件本身,而是包括軟件測試的過程與模式,敏捷測試的目的是為了盡可能使發(fā)布功能與客戶預期一致,確保開發(fā)、管理過程正確。敏捷測試人員需要參與所有的團隊討論與決策,測試人員需要開展更多的與測試無關,但與團隊目標直接相關的工作。
相較于傳統(tǒng)的測試,敏捷測試與開發(fā)并行,甚至優(yōu)先于開發(fā),測試團隊也是開發(fā)團隊的一部分,除卻絕對的必要,工作軟件即是文檔,及時應對變化參與所有的團隊會議、團隊決策,極力促進團隊溝通、團隊與客戶溝通。
2 基于Scrum的敏捷測試
Scrum是當前應用最廣泛的敏捷開發(fā)方法,過程清晰有效,適合敏捷經驗不足的團隊使用,以下就此進行概述。
2.1 Scrum過程
Scrum過程包含三個過程:
(1)設計計劃與體系結構,即將產品功能需求、缺陷、更新用戶需求等待開發(fā)項,作為優(yōu)先級排成等待開發(fā)項目,然后根據(jù)列表,進行風險評估,制定產品交付規(guī)則。其次,需建立體系結構,將待開發(fā)的項目分解為一系列的“問題包”,每個問題包包含一組對象集合,再將問題包按照同樣的原則劃分為迭代小組,在此基礎上,團隊建立獨立的開發(fā)測試運行環(huán)境。
(2)迭代過程,包含多個迭代,每個迭代都對應相應的時間段,通常而言,一個迭代周期為2-4周,每個周期結束后開始下一個周期,每個迭代周期都需要相應的設計、測試、編碼活動,每個迭代結束后,都需要完成計劃內的待開發(fā)項目。
(3)交付過程:當開發(fā)產品經風險評估后,邊可以進行驗收測試,進入交付階段,組裝項目組,系統(tǒng)測試、回歸測試,完成最終文檔等步驟。在基于Scrum過程開發(fā)過程之中,需要達到風險評估標準才能停止開發(fā),交付過程的最終目的在于是否在迭代過程中出現(xiàn)被忽視問題,為下一階段的開發(fā)做準備。每次迭代,訂單訂單項不允許修改。
2.2 Scrum測試管理
(1)需要做好人員的配置,按照與項目的關系,將人員分為實際參與人員以及項目組外人員,包括經理以及最終用戶等,前者主要包括管理者、產品負責人與團隊,Scrum管理者不是項目經理,由能力較強熟悉Scrum成員承擔。產品負責人是指一個角色,來自于用戶、客戶、銷售部或開發(fā)部門的需求分析者,易于協(xié)作、溝通,具有代表性,有一定的授權,熟悉需求。
(2)需明確測試角色,軟件開發(fā)工程師復雜編寫代碼,完成白盒、黑盒測試、單元測試。自動化測試工程師需要負責測試腳本、工具代碼。測試工程師需要了解產品需求、編寫測試案例、追蹤產品,客戶負責驗收。
2.3 Scrum測試模型
Scrum測試過程中,做好需求分析、分解測試的需求,及時與研發(fā)產品人員溝通的是關鍵。測試的一階段,需要根據(jù)軟件設計、需求,完成確認對所需要使用的測試工具,包括需求管理工具、測試案例、缺陷管理工具等,大規(guī)模公司可開發(fā)適應本公司的管理工具。在迭代階段,每個迭代周期結束前,都需要提交方針,測試該周期或上個周期完成功能,以評價開發(fā)功能是否達到預期。
2.4 Scrum測試過程管理
首選,需要編制Scrum下的測試計劃,以文檔形式呈現(xiàn),對整個測試過程都需要有相應的測試計劃書,每個迭代階段計劃書都有相應的功能性文檔修改。
計劃書需要突出以下幾點:
(1)產品的基本信息,記錄Sprint各個階段測試情況與結果,開發(fā)測試所有角色任務列表;
(2)確認測試計劃包含的測試范圍,根據(jù)新開發(fā)的功能及其相關的原有功能,需要定義劃入測試產品功能,進行冒煙測試;
(3)劃分測試階段、明確方法與任務。在每個測試過程中,都需要有計劃書、案例,測試過程中需要提交缺陷至相應的管理系統(tǒng),在測試過程中需要明確監(jiān)控測試的方法,搭建測試環(huán)境,評估進度計劃風險,安排測試時間。
3 小結
基于Scrum的敏捷測試非常適合小型軟件開發(fā)企業(yè),容易上手,但作為一種科學管理方法,想要完整的掌握也有一定的難度。軟件開發(fā)企業(yè)需要與時俱進,掌握該方法的精髓,即重視迭代管理、團隊協(xié)作,勇于創(chuàng)新。
參考文獻
[1]楊娜,嚴振亞.基于Scrum方法的敏捷測試探討[J].數(shù)字技術與應用,2017(01):51-53.
[2]張曉靜.敏捷測試在移動App開發(fā)中的研究與應用[J].電子科學技術,2015(02):211-213.
[3]孫笑,張小晶.Scrum敏捷測試——從敏捷測試中尋找發(fā)展機遇[J].科技創(chuàng)新導報,2014(25):255.
[4]曹棟.敏捷測試在銀行IT領域中的研究與分析[J].電子技術與軟件工程,2014(16):98-99.
作者單位
中興通訊股份有限公司 天津市 300300