自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析敏捷測試及其實踐運用

云計算
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,產(chǎn)品的快速迭代且能適應(yīng)市場需求已經(jīng)成為各大公司的痛點。而傳統(tǒng)的開發(fā)模式已經(jīng)不再適用于快速迭代的產(chǎn)品,在這種情況下,敏捷開發(fā)模式因其高度迭代、頻繁交付以及適應(yīng)變化的特點,已經(jīng)在各個領(lǐng)域得到廣泛應(yīng)用。

引言

隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,產(chǎn)品的快速迭代且能適應(yīng)市場需求已經(jīng)成為各大公司的痛點。而傳統(tǒng)的開發(fā)模式已經(jīng)不再適用于快速迭代的產(chǎn)品,在這種情況下,敏捷開發(fā)模式因其高度迭代、頻繁交付以及適應(yīng)變化的特點,已經(jīng)在各個領(lǐng)域得到廣泛應(yīng)用。與此同時,敏捷開發(fā)的發(fā)展對軟件測試也提出了更高的要求。因此,敏捷測試對提高測試效率進而提升產(chǎn)品交付質(zhì)量具有重大意義。

淺析敏捷測試及其實踐運用

敏捷開發(fā)的發(fā)展與特點

在2001年2月,Martin Fowler和他的同事提出了敏捷宣言,指出:

  • 個體和交互勝過流程和工具;
  • 可用的軟件勝過完備的文檔;
  • 客戶協(xié)作勝過合同談判;
  • 響應(yīng)變化勝過遵循計劃。

無論什么行業(yè)或產(chǎn)品,軟件開發(fā)的最終目標(biāo)就是為了能滿足客戶的需求,實現(xiàn)客戶的根本利益。在互聯(lián)網(wǎng)行業(yè)中,市場需求快速變化,這一特性比傳統(tǒng)行業(yè)更為明顯。如何能夠根據(jù)客戶提出的需求及時調(diào)整開發(fā)的內(nèi)容和進度,從而減少在傳統(tǒng)開發(fā)模式下所造成的不必要的浪費?這大概是所有互聯(lián)網(wǎng)公司都在思考的問題。敏捷開發(fā)是一個不斷累加、迭代增長及時響應(yīng)的過程。因此,敏捷開發(fā)模式已經(jīng)成為全球范圍最受歡迎的軟件開發(fā)模式。

在敏捷開發(fā)模式中,Scrum是其中一種增量迭代開發(fā)的框架,其以人為核心進行迭代和循序漸進的開發(fā)方法已經(jīng)被廣泛運用。利用這種Scrum敏捷方法,可以將整個開發(fā)周期劃分成多個小的迭代周期(Sprint),每個周期長度一般在2 到4 周之間。在Scrum 框架下,產(chǎn)品需求利用Backlog 進行管理。Backlog 是一個按照商業(yè)價值等原則進行排序的列表,根據(jù)用戶故事(User Story)進行列表條目的體現(xiàn)。

利用Scrum 敏捷方法進行開發(fā),一般會先開發(fā)對客戶具有較高價值的需求。在每個迭代周期中,開發(fā)團隊可以從產(chǎn)品中挑選最有價值的需求優(yōu)先開發(fā)。在Sprint 計劃會議上,開發(fā)團隊會對需求進行分析討論,并且估算得到一個待辦列表。完成迭代后,Scrum團隊則能夠進行潛在可交付的產(chǎn)品增量的交付。

Scrum這種敏捷開發(fā)模式,其特點是在一個極短的發(fā)布周期內(nèi)交付業(yè)務(wù)價值的一部分,并在開發(fā)周期內(nèi)不斷的迭代和循序漸進。敏捷開發(fā)模式不斷接受需求更新,這樣就能做到及時并持續(xù)的響應(yīng)客戶的反饋。

敏捷開發(fā)與測試的運用

軟件測試貫穿于軟件的整個生命周期,是保證軟件質(zhì)量的基礎(chǔ)。測試團隊通過選用合適的軟件測試技術(shù)以及測試工具,來不斷改善軟件開發(fā)及測試流程。在敏捷開發(fā)模式得到迅速發(fā)展的同時,敏捷測試也成為了軟件開發(fā)與測試團隊共同關(guān)注的焦點。

敏捷測試通過持續(xù)對軟件進行測試并及時反饋測試結(jié)果來提高軟件質(zhì)量,滿足用戶需求,其強調(diào)“持續(xù)測試”和“及時反饋”。因此,敏捷測試在一定程度上也可以被認(rèn)為是遵循敏捷宣言的一種測試實踐。

淺析敏捷測試及其實踐運用
圖一:敏捷開發(fā)與測試流程

從圖一可以看到,在某個Sprint中整個敏捷開發(fā)與測試流程被分成了以下幾個步驟:

待辦列表

在待辦列表中會列出所有此Sprint將要開發(fā)的功能,這些列表一般是以User Story的形式來進行功能描述,并可能會隨著項目的迭代而更新。

拆分計劃

對待辦列表中的功能進行細(xì)化,產(chǎn)生各個子功能,并列明各子功能的具體需求。在拆分計劃階段,開發(fā)與測試都需要熟悉各個功能的要求。

迭代開發(fā)測試

淺析敏捷測試及其實踐運用
圖二:迭代開發(fā)測試流程

在這個階段,如圖二所示,開發(fā)人員對相應(yīng)功能進行需求分析,制定開發(fā)迭代計劃,并進行功能開發(fā)與自測。測試人員也要進行需求分析,并列明測試計劃,同時進行測試用例與腳本的編寫。開發(fā)人員完成功能開發(fā)以及自測后,會產(chǎn)生相應(yīng)的可測版本。測試人員根據(jù)需求執(zhí)行測試用例,產(chǎn)生的缺陷由開發(fā)進行修復(fù),繼而進行持續(xù)開發(fā)。

淺析敏捷測試及其實踐運用
圖三:開發(fā)與測試階段流程

如圖三所示,在開發(fā)與測試階段,開發(fā)人員進行模塊開發(fā)與單元測試,在TDD(后續(xù)章節(jié)會有簡單介紹)的驅(qū)動下,對模塊進行重構(gòu)。在模塊開發(fā)完成并集成后,由測試人員進行冒煙、驗收測試,其中產(chǎn)生的bug,會繼續(xù)由開發(fā)人員進行修復(fù)。

功能發(fā)布

在測試人員完成測試之后,進行測試小結(jié),根據(jù)測試結(jié)果來評審是否可以交付某功能。

敏捷測試的主要方法及實踐

測試驅(qū)動開發(fā)(TDD)

測試不僅是測試人員的責(zé)任,開發(fā)人員也必須通過不斷的單元測試、模塊功能測試等白盒測試來重構(gòu)自己的代碼,以此提高軟件的交付質(zhì)量。

TDD要求開發(fā)人員在寫代碼前,先寫好測試用例,再編寫代碼,并且代碼能夠通過測試用例。隨著不斷地迭代和重構(gòu),測試用例的數(shù)量和覆蓋點也會不斷增加,程序所實現(xiàn)的功能也越來越復(fù)雜。開發(fā)人員需要不斷提高單元測試的覆蓋率,以此來增強代碼的可用性。

不斷地深入溝通

團隊需要密切的溝通,不過多依賴文檔。測試人員通過與不同角色進行溝通,在短時間內(nèi)對項目的整體需求有充分的了解,才能設(shè)計出最適合的測試用例。為了保證產(chǎn)品質(zhì)量符合客戶預(yù)期,在產(chǎn)品不斷的迭代中,測試人員需要不斷地修改測試用例,以達(dá)到精益求精的程度。

  • 測試人員與開發(fā)人員之間的溝通,可以通過閱讀部分源代碼,了解產(chǎn)品的架構(gòu),從技術(shù)角度探討問題。
  • 測試人員與用戶的交流,使測試人員能夠站在客戶的角度去考慮一些問題,必要的時候,還需要對競商的相同類型產(chǎn)品進行比較。
  • 測試人員之間的交流,又是一個共享經(jīng)驗及傳遞問題的過程。通過這種交流,個人經(jīng)驗轉(zhuǎn)變成了整個團隊的經(jīng)驗。

模糊界限

在敏捷模式中,強調(diào)團隊的高度協(xié)作,測試和開發(fā)的角色界限變得模糊。

開發(fā)人員不僅要確保開發(fā)任務(wù)的完成,還要運用單元測試等工作來保證代碼質(zhì)量。而作為敏捷測試人員,也需要了解項目中客戶的需求、軟件的設(shè)計框架、軟件語言等。測試人員可以通過閱讀或編寫一部分產(chǎn)品代碼來熟悉產(chǎn)品的內(nèi)部邏輯。

在測試人員設(shè)計測試用例的過程中,團隊的所有成員都有責(zé)任來共同設(shè)計符合客戶環(huán)境以及使用情景的測試方案。在敏捷模式中,團隊可以通過組織測試用例評審會來確保全員的參與。

自動化運用

在敏捷開發(fā)的過程中,項目不斷地以短周期的形式迭代發(fā)布。那么,測試人員不僅要保證每次迭代中新功能點的完整實現(xiàn),還要保證之前迭代版本的功能不受影響。這樣就會造成測試工作量在不斷的增加,而且存在嚴(yán)重的重復(fù)性。

在敏捷項目中,自動化測試的良好實施會使測試人員乃至整個項目提高效率。一般在項目前期迭代中,測試人員會篩選最基本且使用率較高的測試用例來實現(xiàn)自動化,并且在迭代過程中不斷地完善與優(yōu)化自動化腳本,增加功能測試的覆蓋面。這樣,在項目后期回歸測試時,只需要將累積的自動化腳本執(zhí)行一遍就可以基本覆蓋大部分功能,從而縮短測試人員在回歸測試中驗證基本功能所消耗的時間。測試人員也可以將更多的時間投入到一些探索性測試中,以保證 更好的產(chǎn)品質(zhì)量。

持續(xù)集成

在開發(fā)過程中,開發(fā)人員經(jīng)常會合入新的代碼。那么,如何檢驗新開發(fā)代碼的質(zhì)量?并保證新代碼合入庫之后不會影響老代碼的功能呢?這就需要通過自動化的持續(xù)構(gòu)建(包括編譯,自動化測試)來保證。持續(xù)集成的主要目標(biāo)是更快發(fā)現(xiàn)并解決缺陷,提高軟件質(zhì)量,并減少驗證和發(fā)布軟件更新所需的時間。

如圖四所示,持續(xù)集成的過程大致有如下幾個方面:

  1.  設(shè)定一定的觸發(fā)條件,如定時、固定周期、手動啟動等;
  2. 啟動后,持續(xù)集成框架從版本管理工具中檢查并下載最新代碼,若沒有則結(jié)束集成過程;
  3. 代碼編譯成功后啟動自動化測試環(huán)境開始自動化測試;
  4. 自動生成測試報告,并通過郵件等形式發(fā)送給相應(yīng)責(zé)任人。

淺析敏捷測試及其實踐運用
圖四:持續(xù)集成的過程

敏捷測試該如何開展

在某些項目上,一些團隊已經(jīng)基本能按照敏捷的方式來進行開發(fā)管理,但還是會有一些成員在心理上有一些抵觸,不習(xí)慣這樣的模式。就敏捷測試而言,在思想上,推動全員質(zhì)量意識,項目團隊的所有成員都應(yīng)該為產(chǎn)品質(zhì)量負(fù)責(zé),保證產(chǎn)品質(zhì)量不再只是測試人員的職責(zé)。開發(fā)人員需要通過單元測試的覆蓋率來保證代碼的正確性。

要保證軟件的內(nèi)建質(zhì)量,在設(shè)計階段就要對需求、設(shè)計邏輯等進行全面的分析,提高可測試性。在敏捷測試中,測試人員需要貫穿于軟件的整個生命周期,并要盡早參與測試。在充分了解了計劃中待實現(xiàn)功能的前提下,制定測試計劃,采用迭代的方式完成測試任務(wù)。建立持續(xù)集成,結(jié)合自動化測試,在每次迭代中快速反饋測試結(jié)果。并不斷地維護自動化測試框架,用于后期的回歸測試和驗收測試。

責(zé)任編輯:未麗燕 來源: 51CTO.com
相關(guān)推薦

2023-05-16 15:25:08

2011-09-01 14:36:38

敏捷

2024-04-24 08:32:55

.NET對象映射

2024-06-26 00:20:42

2012-09-10 10:39:04

IBMdw

2020-09-25 08:49:42

HashMap

2010-02-06 14:52:15

ibmdw敏捷測試

2017-06-16 09:39:32

優(yōu)酷實踐阿里云

2021-08-06 22:53:57

區(qū)塊鏈司法加密貨幣

2009-08-13 17:38:42

C#構(gòu)造函數(shù)

2023-10-30 13:31:22

Springboot工具Java

2024-05-24 10:23:25

2010-09-10 11:02:35

敏捷宣言

2009-07-07 09:38:37

ServletQuer

2011-12-31 09:37:36

虛擬化處理器虛擬化CPU

2011-03-18 10:26:47

Java對象

2011-07-08 09:21:01

域控制器主域控制器額外域控制器

2010-05-21 12:39:40

IIS Lockdow

2017-08-08 10:01:20

項目管理敏捷實踐團隊

2015-05-29 10:18:23

分布式文件Ceph開源
點贊
收藏

51CTO技術(shù)棧公眾號