孟琪 韓曉晶
摘? 要:為了使軟件在測試過程中所出現(xiàn)的問題被更好地解決,從而保證軟件產(chǎn)品的測試順利通過,在測試過程中引入相應的敏捷測試方法和理念是非常重要的,可以使測試進度加快,同時也可以提高測試過程中的科學性?;诖?,該文針對敏捷措施的核心理念及關鍵方法展開論述,說明了敏捷測試在軟件測試中的應用理念和實踐流程,希望可以為軟件測試工作提供一定的參考。
關鍵詞:軟件質(zhì)量? 敏捷測試? 客戶需求
1? 敏捷開發(fā)產(chǎn)生的背景
當前,互聯(lián)網(wǎng)行業(yè)成為了新一輪經(jīng)濟增長的重點領域之一,作為互聯(lián)網(wǎng)行業(yè)中的重要組成部分,軟件開發(fā)和測試工作的重要性不言而喻[1]。
在傳統(tǒng)的軟件開發(fā)模式中,工程師對于開發(fā)的流程規(guī)范性和開發(fā)文檔是否齊全非常重視。并且,開發(fā)者在開發(fā)的整個流程,從系統(tǒng)的需求分析到軟件產(chǎn)品的最終發(fā)布,都按照正常順序進行,對于開發(fā)過程中的各個環(huán)節(jié)都進行嚴格的把關并反復地測試。并且通常遵循自上而下的順序。
在這種開發(fā)背景下,往往會產(chǎn)生大量的開發(fā)文檔,并且在開發(fā)的早期工程師不能夠直接觀測到開發(fā)的結果和階段性進度,一旦用戶的需求發(fā)生了調(diào)整,那么整體的文檔都需要被重新構建重寫。并且之前的工作往往需要推導出來,不能享用用戶的動態(tài)需求,費時費力,軟件產(chǎn)品發(fā)布的風險也大大提高。但隨著當前軟件開發(fā)工程的需求量不斷變化,用戶的需求也呈動態(tài)性。上述情況表明,以往的開發(fā)模式在當今復雜多變的用戶需求下,已經(jīng)遠遠不能適應。
根據(jù)上述情況,為了快速地響應客戶的實際需求,與需求為核心的敏捷開發(fā)應運而生,在這種模式下測試和開發(fā)工作呈現(xiàn)你中有我,我中有你,不再各自獨立。并且軟件開發(fā)中的一個關鍵環(huán)節(jié)就是測試工作,為了保證軟件產(chǎn)品的質(zhì)量,敏捷開發(fā)使測試員從客戶的角度提出相應的需求,然后軟件測試人員在與開發(fā)人員一起將客戶的實際需求轉變?yōu)榭蓤?zhí)行的規(guī)范,再用這些規(guī)范來指導代碼的編制。隨著編碼和測試的同步進行來建立新軟件的基本框架和軟件的品質(zhì)表現(xiàn),一直到軟件產(chǎn)品滿足客戶的實際需求[2]。
2? 敏捷測試的特點
作為一種更接近人類活動和實際情況的方法,敏捷軟件開發(fā)講究以人為本,在開發(fā)中滿足軟件的不斷變化的動態(tài)需求,畢竟敏捷測試提倡個人小于團隊,團隊的工作任務是以客戶需求為導向,來積極地投入到軟件產(chǎn)品的開發(fā)過程中,并且根據(jù)客戶的變化需求來及時地交付軟件產(chǎn)品。上述開發(fā)模式使得缺陷的數(shù)目可以在早期的項目過程進行中得到有效的控制。同時也可以使軟件測試的作用在敏捷開發(fā)中更加充分地發(fā)揮出來。
敏捷測試主要有如下幾個方面的特點:首先,敏捷測試在迭代過程需要技術人員針對產(chǎn)品本身有一個大概的了解和認識,從用戶的角度來分析軟件的應用需求和軟件的測試策略,從而高效準確地完成測試工作,并且在測試過程中應該積極地創(chuàng)建應對方法和思路,確保按時完成產(chǎn)品的開發(fā)工作。其次,在整個產(chǎn)品的開發(fā)過程中,測試的方法十分靈活,敏捷測試可以根據(jù)軟件工程的進度,來針對性地采用各種方法和測試手段。例如,如果客戶對軟件的需求發(fā)生變化,那么軟件的功能也應該得到及時的調(diào)整,但是對于一些較為成熟平穩(wěn)的功能,可以用自動化的測試方法測試,對于一些具有探索性的功能可以人工測試。最后,作為敏捷開發(fā)中最為核心的部分,客戶的需求必須被測試所緊緊圍繞和保障。
3? 敏捷測試項目實踐
3.1 敏捷測試的流程和方法
在一些應用類的軟件產(chǎn)品測試中,采用敏捷化的測試理念,可以引入先進的控制方法和測試過程,針對傳統(tǒng)的測試流程中的復雜文檔和計劃進行合理的揚棄,取而代之的是靈活迭代和精簡計劃。
3.1.1 迭代計劃
迭代計劃是測試團隊和開發(fā)團隊進行充分交流的基礎上進行的測試迭代計劃,測試迭代和開發(fā)迭代之間相互關聯(lián)又相互獨立。并且開發(fā)迭代工作在整個軟件開發(fā)工程的項目中都不受到測試周期的干擾和影響,在軟件的測試階段乃至前期的開發(fā)初始階段,都可以持續(xù)反饋各種各樣的漏洞,然后修復工作隨時進行??傮w來說,穩(wěn)定工程的測試工作和正常的開發(fā)工作步伐基本相同。
3.1.2 設計過程
根據(jù)設計的迭代計劃,團隊中的開發(fā)和測試小組進行分工,并且在設計的評審階段,測試小組和開發(fā)小組成員共同進行,針對開發(fā)過程中的設計和測試環(huán)節(jié)進行充分的論證,并針對設計過程中的一些意見提出各自的看法,盡可能將問題扼殺在起始階段。
3.1.3 提交與驗證
首先,開發(fā)團隊成員在完成了初步的開發(fā)工作以后就可以提交測試團隊,然后測試團隊就可以根據(jù)開發(fā)團隊的成果進行測試的準備工作,軟件項目的初始版本一旦提交就可以進行下一輪的開發(fā);其次,團隊的測試工作需要在第1代版本提交過程中,將下一輪的目標變更情況進行明確,從而及時調(diào)整測試方法和方向來指導測試的具體性工作;再次,在測試和驗證階段,測試驅(qū)動可驗證的過程之間具有著十分緊密的聯(lián)系,一旦在測試期間發(fā)現(xiàn)任何漏洞,需要及時與軟件開發(fā)人員進行反饋和溝通,保證測試過程中所發(fā)現(xiàn)的漏洞,在下一個迭代版本中能夠被及時地修復[3];最后,在軟件工程的測試過程中,進行每日例會是非常重要的,團隊成員可以將測試工作情況進行逐頁的匯報,使每一位成員都了解項目工程各個具體細節(jié)的進度情況,并且每一位參會的成員都可以提出測試工作中所需要協(xié)調(diào)解決的各項問題,然后再依托團隊的力量進行集中解決。
3.2 敏捷測試的優(yōu)勢
3.2.1 迭代周期明顯縮短
在以往的測試中,測試活動和開發(fā)之間的聯(lián)系相對比較緊密,所以測試活動和開發(fā)之間往往需要較長的空窗期。上述情況造成軟件工程迭代的周期相對比較長,但一般情況下,測試工作和開發(fā)工作往往處于并行,在工程項目開發(fā)的各個階段都應該有測試人員的身影,這樣就避免了缺陷暴露的時候不被發(fā)現(xiàn)的問題,也可以使軟件工程的迭代周期大大縮短。
3.2.2 軟件質(zhì)量有效提升
所有的軟件測試活動在敏捷開發(fā)模式下都緊緊圍繞軟件工程的質(zhì)量展開,軟件的設置人員需要具有較高的專業(yè)技術水平,并且在測試的過程中,也應該快速地響應市場和用戶的需求。在敏捷測試過程中,十分注重用戶體驗和產(chǎn)品自身的質(zhì)量問題。綜上所述,為了將版本的迭代速度大大縮短,技術人員應該通過持續(xù)性的設置來提高工程的開發(fā)水平和管理水平。
3.2.3 流程精簡高效
一般情況下,與傳統(tǒng)的軟件開發(fā)流程不同,敏捷測試不會死板地遵從經(jīng)典軟件開發(fā)流程,由于傳統(tǒng)的軟件開發(fā)流程,往往會由于缺乏一些必要的開發(fā)文檔而停滯不前,造成了軟件開發(fā)工作的制約。但敏捷測試流程相對精簡高效,其理念是為軟件開發(fā)所提供良好的配套服務,所以如果開發(fā)需求不能對開發(fā)流程所滿足時,或者開發(fā)流程和開發(fā)之間產(chǎn)生沖突時,應該軟件開發(fā)作為主導,適當?shù)馗淖冘浖臏y試流程。
4? 結語
在敏捷開發(fā)中,軟件測試應該遵循敏捷開發(fā)的基本性原則。軟件工程在測試過程中應該根據(jù)不同的開發(fā)流程和環(huán)境進行分門別類的調(diào)整,敏捷開發(fā)中的敏捷測試方法在軟件工程的測試過程中也應該被工作人員所充分重視。在軟件測試過程中,往往會涉及到測試的充分性,以及分析不同軟件版本的測試關系,所以還應該將傳統(tǒng)測試方法中的一些優(yōu)秀策略應用到敏捷測試中,只有這樣才能更好地為軟件項目提供測試服務。
參考文獻
[1] 胡兆華,何舒,王慧.敏捷測試在軟件項目中的應用研究與實踐[J].數(shù)字技術與應用,2017(9):92-93,95.
[2] 覃琳,楊程,孫衛(wèi)寧,等.基于敏捷開發(fā)下的協(xié)同創(chuàng)新管理服務平臺能力提升[J].企業(yè)科技與發(fā)展,2019(2):9-10.
[3] 孫子謙,王雅琴,黃明明.戴明循環(huán)在敏捷軟件質(zhì)量管理中的應用方法研究[J].計算機應用與軟件,2016,33(11):8-10.