国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向敏捷開發(fā)的軟件測試技術

2016-01-15 02:08劉先博沈小侖
電腦知識與技術 2015年18期
關鍵詞:軟件測試

劉先博 沈小侖

摘要:近年來,隨著信息技術的迅猛發(fā)展,快速變化的市場對軟件產品的生命流程提出了更新更高的要求:一方面要求新的軟件產品能盡快發(fā)布以搶占市場,另一方面要求軟件產品能夠快速變更來保持市場占有率,崇尚生產率的敏捷方法學應運而生,敏捷方法學強調以提高生產率為目標,推崇通過周期性的高度迭代來保證軟件產品的能力和質量,得到越來越多的應用。

關鍵詞:軟件測試;敏捷開發(fā);敏捷測試

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)18-0070-03

1.傳統(tǒng)測試

典型的傳統(tǒng)測試包括v模型,w模型,H模型等,以v模型為例,如圖1所示,測試發(fā)生在開發(fā)之后的一個階段,測試過程與開發(fā)過程相對應。

測試的過程即為計劃測試-設計測試-實現測試-執(zhí)行測試,通過迭代實現整個測試流程,在測試過程中,傳統(tǒng)測試要求流程規(guī)范,文檔齊全,根據軟件需求總結、測試所有的功能點,直到軟件沒有大的bug。在傳統(tǒng)v模型測試過程中,需求、功能、設計和編碼的開發(fā)活動隨時間而進行,而相應的測試活動即針對需求、功能、設計和編碼的測試,開展的次序卻正好相反,可以看到,底層代碼設計最后被開發(fā)卻最先被執(zhí)行,反之,軟件設計過程中的需求是最早開發(fā),相應的驗收測試到最后進行。如此,往往需求階段隱藏的錯誤會一直到最后驗收測試時才被發(fā)現,導致整個軟件開發(fā)測試過程需要推倒重來,極大影響軟件生產效率。相較而言,由Evolutff公司提出的w模型更科學,可以看作是v模型的改進版,在軟件開發(fā)的每個階段都進行測試,能更早的發(fā)現軟件問題,軟件測試w模型如圖2所示,但是w模型軟件測試仍然需要與軟件開發(fā)保持順序關系,只有在上一個階段的開發(fā)任務完成之后才能進行下一個階段的測試任務,無法支持敏捷開發(fā)這種需要高度迭代的軟件開發(fā)模型。

2.敏捷測試

2.1敏捷測試的定義

敏捷測試沒有明確定義,不能簡單理解為更快的測試或者使用更少的資源(時間,物力)來實現相同的測試任務,一般而言,敏捷測試伴隨于敏捷開發(fā),2001年2月,17位當時被稱之為輕量級方法學家編寫和簽署敏捷宣言(Agile Manifesto,Beck eta1.)正是標志著敏捷方法的開始,隨后適應市場需求的敏捷開發(fā)越來越流行,隨之而來,敏捷開發(fā)中的測試問題也被逐漸重視起來,如果只是將過去的傳統(tǒng)測試方法生硬地應用于敏捷開發(fā),由于敏捷開發(fā)的短周期,高迭代的特性,測試工作將幾近無法正常進行,并且傳統(tǒng)測試與開發(fā)保持的順行關系將不能發(fā)揮測試應有的作用。敏捷測試就是改變傳統(tǒng)測試方法,適應敏捷開發(fā),對傳統(tǒng)測試進行裁剪和增加而采用的新的測試流程,敏捷測試針對敏捷開發(fā)過程中迭代產生的新功能進行不斷驗證測試,同時對原有功能進行回歸測試。如圖3所示,在敏捷中,需要盡早測試,強調要能夠及時、持續(xù)地對軟件的質量問題進行回歸反饋。

2.2敏捷測試的特點

1)支持變化,因為敏捷開發(fā)的特點就是高度迭代,根據客戶提出的新的需求不斷將產品開發(fā)推向更正確的發(fā)展方向,在這個過程中就要求測試也能夠不斷對軟件新的變化做出驗證。

2)擁抱客戶參與,客戶代表作為團隊中最了解業(yè)務的人將幫助開發(fā)團隊快速達到目標和做出適時決策。開發(fā)團隊擁有很好的技術但在業(yè)務方面他們需要客戶代表的幫助,同時測試團隊積極與客戶溝通,了解客戶需求,在測試過程中有更好的針對性。

3)“一張紙測試”,敏捷測試以提高生產率為目標,強調快速迭代,高質量產出,因此傳統(tǒng)測試過程中的嚴格文檔要求在敏捷測試中不作要求,測試人員與開發(fā)人員、客戶密切溝通,崇尚“一張紙”測試計劃,對傳統(tǒng)的測試流程進行裁剪,減少測試計劃、測試用例設計等工作的比重,增加與產品設計人員、測試人員、客戶的交流。

4)提倡自動化測試,敏捷測試中每次迭代后都需要對原有功能進行回歸測試,對新增加的功能進行驗證測試,鑒于敏捷開發(fā)的高迭代性特點,敏捷測試的工作量很大,這就要求敏捷測試積極擁抱自動化測試,盡量減少開發(fā)過程中高迭代部分回歸測試部分的測試時間,重復部分測試應盡量用自動化測試實現。

在敏捷測試流程中,測試人員需要參與單元測試,關注持續(xù)迭代的新功能,針對這些功能進行足夠的驗收測試,原有功能的回歸測試則更多地用自動化測試來實現。以后與敏捷方法中迭代周期短,測試人員盡早開始測試,包括及時對需求、開發(fā)設計的品神,更重要的是能夠及時、持續(xù)的對軟件品質進行反饋,簡單地說,敏捷測試就是持續(xù)地對軟件質量問題進行及時的反饋。從確認客戶需求開始,測試就開始進行,測試用例的設計、測試計劃、測試執(zhí)行,測試貫穿軟件開發(fā)的整個流程。

2.3測試自動化

在敏捷測試中,使用自動化測試是必不可少的內容,在敏捷開發(fā)中,會有新的功能在每次迭代中不斷被開發(fā)出來,這些新的功能屬于必須充分測試的部分,同時,為了保證迭代軟件產品本身的質量,確保在增加軟件新功能的時候沒有對原有軟件產品造成破壞,還需要對軟件產品進行綜合測試,迭代頻率越高,所需消耗的測試資源越多,而測試資源中的測試時間、測試人力和物力都是有限的,不可能一直全面地測試到軟件的所有方面,自動化測試是保證不斷迭代后繼續(xù)保持軟件質量不可缺少的途徑。在敏捷項目的早期階段因為進度和方案的變更開展自動化測試通常是很困難的,但是到后期迭代時,前期的用戶故事已經穩(wěn)定下來,測試人員就可以在前期手動的基礎實現自動化測試。

自動化測試為迭代的回歸測試提供服務,提高了回歸測試的效率和質量,節(jié)約了大量的時間,在敏捷測試模型中,它歸于系統(tǒng)綜合測試階段,能有有效保證迭代版本的質量和穩(wěn)定性。

2.4典型敏捷測試的流程

敏捷測試主要包括兩個部分:確認測試和綜合測試,典型敏捷測試的流程可以用圖4來表示。

確認測試是對迭代出軟件新的功能的有效性進行確認驗證,測試人員根據迭代之前制定的需求和計劃對新發(fā)布的軟件增加的功能開發(fā)出充分的測試用例,對其高優(yōu)先級輸出的部分進行充分測試,及時糾正新發(fā)布軟件的錯誤,保證迭代版本軟件質量。確認測試要做到持續(xù)測試,一旦某塊新代碼完成就可以對該塊新代碼進行測試,以使測試效率最大化。

綜合測試是對確認測試的補充,包含完整的功能測試,測試人員完成對軟件的確認測試后對軟件進行補充測試,完成迭代軟件的綜合測試,證明迭代軟件的穩(wěn)定性和正確性以使軟件產品完善的進入下一迭代流程。

典型敏捷測試存在的不足在于,本次迭代周期包含前一次迭代測試的綜合測試部分,第N次迭代的綜合測試發(fā)生在第N+1個周期,主觀性地認為前一次迭代測試的綜合測試不會出現較大的軟件問題,而敏捷開發(fā)的高迭代性要求不允許出現等待,因此敏捷開發(fā)團隊不會等待第N次迭代軟件綜合測試完全結束后才進行下一周期(N+1)的開發(fā),這就增加了開發(fā)風險,同時本周期迭代的軟件產品在下一周期才得到測試,影響測試效果。

2.5敏捷增量測試模型

為了改進典型敏捷測試模型的缺點,使敏捷團隊能夠及時解決當前迭代周期的問題,可以將典型敏捷測試的測試過程擴充為三個部分:確認測試,驗證測試以及集成測試。

在改進型敏捷測試過程中,確認測試和綜合測試都放在當前的迭代周期內完成,減少軟件開發(fā)風險,增加集成測試則可以使測試人員對之前迭代周期的軟件產品進行小范圍內的集成測試,替代原敏捷測試模型中的對前一迭代周期進行綜合測試的部分,不同的是,這里的集成測試只需及時記錄下測試接口錯誤以及其他的集成環(huán)境錯誤,并不被定義為當前迭代周期內的測試任務,只是適應敏捷開發(fā)的“等待性任務”,所以測試人員以當前迭代周期內的測試計劃為主,當能開始本次迭代周期內的工作時,可以隨時停止集成測試工作,并且對迭代周期內的集成測試不要求測試人員對發(fā)現的錯誤立刻響應,但是要求測試人員對錯誤信息作詳細記錄,便于提高集成測試環(huán)節(jié)的效率。

3.總結

本文就時下流行的敏捷開發(fā)模式探討了傳統(tǒng)測試在敏捷應用中的不足,系統(tǒng)介紹了敏捷測試的特點及流程,并提出增量敏捷測試模型和具體測試方法,經實踐證明,與傳統(tǒng)的測試模型相比,能更早的發(fā)現并清除軟件bug,在保證了軟件產品質量的同時很大程度提高了軟件產品的生產效率。

猜你喜歡
軟件測試
軟件測試方向人才培養(yǎng)“1+X”融合研究
基于OBE的軟件測試課程教學改革探索
航天軟件測試模型構建與應用
基于MBD模型自動生成測試用例的軟件測試方法
計算機軟件測試方法的研究
EXCEL和VBA實現軟件測試記錄管理
關于軟件測試技術應用與發(fā)展趨勢研究
一種航空機載軟件測試項目的進度改進模型
軍用軟件測試文檔生成設計與實現
軟件測試工程化模型及應用研究