魏鄖華



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