本文圍繞這一主題,主要從軟件外包測試服務提供商的角度,探討軟件外包測試項目的管理方法及實踐經驗。為了便于讀者閱讀和理解,筆者將分計劃、組織、領導、控制四個篇章來展開論述。
1. 軟件外包測試管理之計劃篇
1.1 靈活選擇外包測試服務的方式及合同類型
實施軟件外包測試首先要確定采取什么樣的形式。目前外包測試服務提供商(以下簡稱“外包公司”)提供的服務方式主要包括“現場測試”和“外部測試”。“現場測試”是指外包公司派遣測試人員到發包方的公司現場工作,開展測試業務。而“外部測試”是指在外包公司將發包方的單子(相關待測產品)拿回本公司,組織測試人員開展測試業務。
二者看上去雖然只是場地差異,但如何選擇另有深意。比如,“現場測試”一般適用于軟件測試環境非常復雜、有極高的保密性要求、需要與開發團隊密切配合的場合。而“外部測試”一般適用于開發商對外包服務商管理能力非常信任、軟件功能相對穩定、開發和測試可以獨立進行的場合。
除了要合理選擇合作的形式外,選擇適當的合同類型也是重中之重。適用于外包測試項目的合同類型一般有兩種,即物料工時合同和固定總價合同。物料工時合同適用于范圍不確定、進度不明確的外包測試項目,固定總價合同適用于范圍、進度、技術要求均清晰明了的外包測試項目。讀者朋友可以根據外包項目的特點酌情選擇。此外,對于項目管理能力不成熟的外包企業筆者建議盡量多地選擇物料工時合同,規避可能的風險。
總而言之,外包公司需要分析被測試軟件的功能特點、測試要求、外包測試的成熟度,以及本公司的服務能力,與發包方協商選擇最有效的外包測試服務方式,降低測試風險,提高測試的質量。
1.2 制定切合實際的外包測試計劃
大型軟件開發商具有成熟的軟件外包測試管理能力,他們通常制訂出外包測試計劃。一些剛剛開始把軟件測試外包的軟件公司,他們經常希望外包公司為他們提供外包測試計劃、設計測試用例、執行測試和報告測試結果等全部測試服務。
對于第一種情況,開發商已經制定了測試計劃,外包公司需要全面理解測試計劃的內容,根據外包測試的經驗和被測項目的特點,提出測試計劃的改進建議。包括測試范圍、測試階段的劃分、測試資源、測試過程質量跟蹤等方面。
對于第二種情況,外包公司需要開發商提供軟件需求文檔、軟件設計規格說明、測試需求等文檔,根據開發商的項目進度、外包費用、質量要求,結合本公司的服務能力(軟件、硬件、團隊和測試經驗),制定切實可行的外包測試計劃。根據客戶對測試計劃的評價和反饋進行更新修改,最終獲得雙方的正式審批。
2. 軟件外包測試管理之組織篇
2.1組建有“戰斗力”的測試團隊
外包測試是智力密集型工作,測試團隊的能力決定了測試的質量。測試團隊的建設要考慮兩個問題:第一是組織結構,包括需要多少測試經理、測試組長、測試工程師。第二是每個崗位需要的技能,例如測試技術經驗、項目管理經驗等。
由于軟件外包測試受到項目成本和資源的制約,由測試專家構成的“夢幻團隊”是不切實際的。有“戰斗力”的團隊是現實目標,由具有測試管理經驗的人員擔任測試經理,掌握測試技術和熟悉被測軟件的人員擔任測試組長,高級測試工程師、測試工程師和測試新人執行測試。
團隊的“戰斗力”指的整體的測試能力。具有“戰斗力”的團隊既可以保證測試質量,又可以控制測試成本,同時可以鍛煉新人。測試團隊的“戰斗力”要靠測試經理、測試組長的有效交流,測試知識的有效傳承,積極學習和總結實現。
2.2 合理組織外包測試工作的流程
任何軟件外包測試項目都需要執行一系列緊密聯系的過程,包括測試計劃、測試策略、測試設計、測試執行、過程跟蹤、測試驗收、項目總結等環節。軟件外包公司需要協助開發商明確每個流程的內容、任務、目標、方法。確定每個環節雙方的任務,評估方法和提交方式。
測試流程的管理是軟件外包測試管理的“重中之重”,根據管理的內容不同,可以分為:文檔管理、配置管理、缺陷管理、進度管理、質量管理、資源管理、成本管理、變更管理等方面。外包測試流程管理需要開發商和外包公司共同制定和遵守測試流程,明確流程變更的條件和方法,杜絕測試的隨意性和失控性,保證測試進度和質量的目標。
2.3 注意常規測試與隨機測試相結合
本文的“常規測試”是指根據測試用例執行的測試,“隨機測試”是指根據測試者的經驗和軟件的測試需求執行的測試。由于軟件測試的復雜性,單純靠執行測試用例發現缺陷,對于保證測試的覆蓋性經常是不夠的。因此,適當加強隨機測試的方法,可以發現常規測試難以發現的缺陷,是對常規測試的有效補充
隨機測試在什么階段執行,執行多長時間,這些將影響測試的進度和成本,外包公司需要與開發商在測試計劃階段進行討論,取得共識。一般在執行完測試用例之后,可以進行適當的隨機測試。另外,在軟件發布前的最后測試階段,也需要執行隨機測試。執行隨機測試的人員通常是具有豐富測試經驗,熟悉被測試軟件的高級技術人員。
3. 軟件外包測試管理之領導篇
3.1 堅持“單點聯系”的信息交流
大型軟件外包測試項目經常由分布在不同國家和地區的測試團隊共同配合才能完成,對于一些測試周期比較長的項目,測試項目的進度管理需要有效的交流和溝通才能完成。
采用“單點聯系”的方式有助于相關項目管理人員較好地完成“領導項目有條不紊地向前推進”的使命。
所謂“單點聯系”,是指開發商和外包公司分別指定唯一的項目管理人員,作為雙方項目信息的輸入和輸出接口,負責整個項目重要信息(要求、進度、問題等)的傳遞。這樣不論開發商和外包公司多少人參與這個項目,雙方信息交流的通道只有一條,避免多頭交流的混亂,避免項目信息的冗余或丟失。