魏鄖華
關(guān)鍵詞:敏捷開發(fā)模型Scrum;敏捷測試;Web系統(tǒng)
1敏捷開發(fā)模型Scrum
隨著IT行業(yè)的發(fā)展,用戶應(yīng)用的業(yè)務(wù)系統(tǒng)愈來愈復(fù)雜多變。用戶要求業(yè)務(wù)系統(tǒng)上線時間快,傳統(tǒng)的軟件開發(fā)測試模型已經(jīng)無法適應(yīng)市場的變化,日寸下流行的敏捷開發(fā)測試技術(shù)模型Scrum應(yīng)運而生。
Scrum模型是典型敏捷開發(fā)模型的具體實踐形式。在該模型中,涉及的角色可以分為三大類——第一類是產(chǎn)品負(fù)責(zé)人,該角色將在整個產(chǎn)品開發(fā)中負(fù)責(zé)完成前期規(guī)劃工作,以及產(chǎn)品需求分析;第二類是軟件開發(fā)人員,包括前端和UI開發(fā)人員、后端和數(shù)據(jù)庫開發(fā)人員、測試人員。Scrum開發(fā)團(tuán)隊對成員的崗位素質(zhì)、技術(shù)技能、溝通能力要求相對較高。一個結(jié)構(gòu)合理的開發(fā)團(tuán)隊成員人數(shù)在6~9人。測試人員作為開發(fā)團(tuán)隊中的一員,需要完成開發(fā)測試、并行推進(jìn)等任務(wù),以及懂得更多的專業(yè)開發(fā)知識和技能,從而更好地和開發(fā)人員進(jìn)行對接和交流:第三部分是整個流程管理協(xié)調(diào)人員,也稱Scrum master[1]。
Sprint也是Scrum模型中非常重要的一個概念。Scrum本質(zhì)上就是一種持續(xù)迭代、持續(xù)交付、增量式的產(chǎn)品開發(fā)模型,其中被開發(fā)軟件產(chǎn)品被分解成若干個相對獨立的Sprint項目。在開源禪道敏捷項目管理平臺中,將被開發(fā)軟件理解為產(chǎn)品,Sprint理解為項目。軟件產(chǎn)品的最終實現(xiàn),其實就是多個Sprint項目迭代交付的結(jié)果,一個Sprint項目的最終輸出必須滿足可運行、可用和可交付發(fā)布等特點。每一個Sprint項目開發(fā)測試時間周期在1~4周,具體周期需要開發(fā)團(tuán)隊依據(jù)軟件產(chǎn)品的需求用戶故事點多少而確定。
2敏捷測試解析
敏捷測試就是順應(yīng)敏捷開發(fā)方法、力求達(dá)到質(zhì)量和效率平衡的一系列測試實踐。敏捷測試是一套解決方案、一類測試操作與管理的框架、一組實踐或由一定順序的測試活動構(gòu)成的特定的測試流程。通常我們把敏捷軟件開發(fā)過程中開展的測試稱作敏捷測試(Agiletesting)。敏捷測試是遵循敏捷宣言的一種測試實踐。目前,并沒有完整的敏捷測試定義。事實上,敏捷測試隨著敏捷開發(fā)的出現(xiàn)而誕生。和傳統(tǒng)軟件測試相比,敏捷測試主要在工作方式、工作流程上有了很大的變化。
眾所周知,軟件測試的核心之一是測試用例的設(shè)計,傳統(tǒng)軟件測試用例需要把測試數(shù)據(jù)、操作步驟、預(yù)期結(jié)果羅列清晰,軟件需求也以軟件需求規(guī)格說明書的形式非常明確地表述出來,測試用例設(shè)計只需要把軟件需求規(guī)格說明書的每一項技術(shù)指標(biāo)的測試設(shè)計成測試用例,就能很好地完成一定覆蓋率和測試精度的測試用例設(shè)計。敏捷測試雖然也需要測試用例,但是繁簡程度不同,需求則是以用戶故事的形式表述出來,可能沒有十分清晰、明確的需求,用例格式也不是關(guān)注重點。測試人員需要針對產(chǎn)品需求來表述用戶故事,敏捷測試用例可以簡化為“誰”如何“操作”系統(tǒng),完成什么“目標(biāo)”,即使是業(yè)務(wù)事務(wù)描述性需求,也可以寫成一條測試用例。用戶故事可“粗線條”合并描述,也可細(xì)化分解描述。
3敏捷測試技術(shù)在Web應(yīng)用軟件系統(tǒng)中的應(yīng)用
本節(jié)以Web應(yīng)用軟件——森林防火運行管理平臺為例,詳細(xì)介紹敏捷測試在Web應(yīng)用軟件測試流程中的主要測試活動。
3.1項目背景
森林防火運行管理平臺1.0是根據(jù)林草局森林防火業(yè)務(wù)的需求描述,構(gòu)建森林防火平臺應(yīng)用系統(tǒng),實現(xiàn)火災(zāi)監(jiān)控的信息化和智能化。該系統(tǒng)采用B/S結(jié)構(gòu),最終用戶有三類——單位用戶,如林草局各級防火機(jī)構(gòu);系統(tǒng)管理員,一般有多位成員,對本系統(tǒng)極其了解,具有對系統(tǒng)添加、修改、刪除的權(quán)利,可及時更新系統(tǒng)數(shù)據(jù);超級管理員,具有對本系統(tǒng)的系統(tǒng)參數(shù)定義、維護(hù)等權(quán)限[2]。
3.2敏捷開發(fā)和測試的主要活動
典型的敏捷開發(fā)和測試主要由三部分構(gòu)成:(1)用戶故事設(shè)計和發(fā)布計劃;(2)幾次Sprint周期的迭代開發(fā)和測試;(3)最后的產(chǎn)品發(fā)布。
敏捷開發(fā)的每個時間段都有相應(yīng)的測試活動,敏捷開發(fā)與敏捷測試主要活動如表1所列。
3.3森林防火運行管理平臺1.0的用戶故事和發(fā)布計劃階段
在此階段,項目經(jīng)理和產(chǎn)品經(jīng)理會根據(jù)客戶的需求,制定概要的產(chǎn)品發(fā)布日程計劃。測試人員可以和開發(fā)人員一起學(xué)習(xí)新的功能,了解客戶的需求。此階段有兩個主要活動,即尋找隱藏的假設(shè)和設(shè)計概要的驗收測試用例。
用戶故事從終端用戶的維度出發(fā),描述用戶期望實現(xiàn)的業(yè)務(wù)過程,其中包含三個要素:首先是身份角色,即功能或業(yè)務(wù)流程的使用對象:其次是活動,即角色期望實現(xiàn)的功能或業(yè)務(wù)流程;最后是商業(yè)價值。
以森林防火運行管理平臺注冊功能為例,ueserstory可以表述如下:林草局單位防火機(jī)構(gòu)用戶或機(jī)構(gòu)系統(tǒng)管理員通過注冊功能可以進(jìn)入森林防火運行管理平臺系統(tǒng)。森林防火運行管理平臺登錄功能用戶故事表述如下:user storyl、各林草局防火機(jī)構(gòu)已注冊用戶輸入正確的用戶名和密碼,可登錄系統(tǒng)。若userstory2、各林草局防火機(jī)構(gòu)系統(tǒng)管理員已注冊用戶輸入錯誤的用戶名或錯誤的密碼,系統(tǒng)會拒絕登錄,并給出“用戶名或密碼錯誤”的相應(yīng)提示,以保證系統(tǒng)的安全。森林防火運行管理平臺部門查詢功能用戶故事表述如下:各林草局防火機(jī)構(gòu)已注冊用戶輸入部門名稱等正確信息,可以查詢部門相關(guān)信息。如此一來,通過用戶的角度將完整的軟件需求分解為若干個用戶故事,然后將每個用戶故事作為一個短期(一般1~4周)內(nèi)實現(xiàn)并可以發(fā)布交付的項目實施。這里的用戶故事也是后期測試用例設(shè)計的重要原始依據(jù)。
3.4森林防火運行管理平臺1.0的幾次Sprint周期迭代開發(fā)和測試
針對森林防火運行管理平臺系統(tǒng),采用Scrum開發(fā)模型,并分解為多個Sprint。比如,第一個Sprint可以包含平臺涉及的用戶注冊、登錄、修改個人信息、用戶管理需求點以及對應(yīng)的用戶故事。當(dāng)?shù)谝粋€Sprint完成后,再進(jìn)行第二個包含森林防火運行管理平臺系統(tǒng)其他用戶故事需求的Sprint開發(fā)測試,以此類推,直至所有Sprint完成。表2列舉了一些依據(jù)用戶故事的測試用例。
3.5森林防火運行管理平臺1.0的發(fā)布
前期,經(jīng)過幾輪的迭代開發(fā)測試后,基本完成森林防火運行管理平臺的系統(tǒng)測試,并由發(fā)布人或項目經(jīng)理、產(chǎn)品經(jīng)理根據(jù)發(fā)布計劃交付給客戶[3]。
4Web系統(tǒng)敏捷測試在禪道上的應(yīng)用配置和管理
禪道是現(xiàn)階段敏捷開發(fā)項目管理使用頻率和用戶體驗評價都非常高的一款開源軟件,在禪道上管理整個敏捷開發(fā)軟件產(chǎn)品,有一整套的操作流程,快捷高效。
針對森林防火運行管理Web系統(tǒng)的敏捷開發(fā)測試,在禪道上可以把被開發(fā)測試Web系統(tǒng)定義為產(chǎn)品。
(1)產(chǎn)品經(jīng)理可以把產(chǎn)品名稱和產(chǎn)品代號、產(chǎn)品負(fù)責(zé)人、測試負(fù)責(zé)人、發(fā)布負(fù)責(zé)人以及產(chǎn)品簡介等相關(guān)信息輸入產(chǎn)品頁面并保存。比如,產(chǎn)品名稱為“森林防火運行管理Web系統(tǒng)1.0”,產(chǎn)品代碼可以設(shè)置為SLfh1.0。
(2)產(chǎn)品經(jīng)理可以根據(jù)需要添加功能模塊,將產(chǎn)品結(jié)構(gòu)整體信息傳遞給團(tuán)隊成員,這也是之后用戶故事需求分解和測試用例歸類的重要依據(jù)。森林防火運行管理Web系統(tǒng)分為以下功能模塊:用戶管理、角色管理、權(quán)限管理、部門管理、日志管理和行政區(qū)域劃分管理。后期,相關(guān)模塊可以隨著需求變更進(jìn)行維護(hù)、編輯、修改,不是固定不變的,這也是敏捷開發(fā)測試獨有的特點之一。
(3)產(chǎn)品經(jīng)理建立Sprint項目,完成項目團(tuán)隊構(gòu)建和任務(wù)分配。在禪道的新建項目頁面可以完成相關(guān)數(shù)據(jù)的提交和保存。產(chǎn)品經(jīng)理以項目覆蓋需求點功能來編寫用戶故事,在提需求頁面,根據(jù)需求大綱完成需求頁面信息的輸入和保存。這在頁面驗收標(biāo)準(zhǔn)中非常重要。除了產(chǎn)品經(jīng)理,產(chǎn)品需求開發(fā)工程師也可以編寫用戶故事以及提交需求,而測試工程師只需要引用項目功能需求和用戶故事來設(shè)計測試用例。有了明確、清晰的需求,開發(fā)人員便開啟開發(fā)流程,測試人員緊隨其后開啟測試流程。測試用例頁面可以新建用例、刪除用例、復(fù)制用例、執(zhí)行用例等。綜上所述,禪道平臺為Web系統(tǒng)敏捷開發(fā)測試工作提供了科學(xué)、高效的管理手段。
5結(jié)束語
在“互聯(lián)網(wǎng)+”時代,敏捷開發(fā)與測試有著非常廣闊的應(yīng)用前景。許多互聯(lián)網(wǎng)公司都在采用敏捷開發(fā)與測試模式。在該模式下,敏捷測試工程師屬于敏捷開發(fā)團(tuán)隊中的一員,軟件測試不再和軟件開發(fā)分離,而是相伴相生。