軟體測試團隊組建構想
1、前言
進入公司半年有餘,接觸公司的開發專案至今,對公司的情況有了更深的瞭解。在此提出一些建議,希望可以對部門組建測試團隊起到貢獻微薄之力。
1.1 開發部現狀
目前開發部完成或未完成的專案基本存在如下情況:
軟體交付遲遲不能按照計劃時間如期交付關閉;
大專案合同金額小,加之開發部人力資源有限,導致專案不賺錢或賠錢;
需求隨著開發的深入不斷的新增或更改;
外包人員的開發能力、對專案不夠負責的態度等問題,不僅導致專案質量的低下,間接導致後續交付的種種問題;
測試團隊依舊沒有雛形,測試人員利用率低下或高投入低產出;
上述的幾個問題體現出開發部的人力資源、管理體系和組織機構不夠完善,仍需要管理階層花些心進行規劃完善。
2、測試人員在軟體開發各階段任務
表1:軟體測試流程
軟體測試流程如表1,包括測試計劃、測試設計、測試執行及測試總結,測試人員的主要任務:
儘早的發現問題,儘可能的發現軟體程式、系統和產品的問題;
針對問題進行分析、分類總結和跟蹤;
督促開發人員儘快解決程式中的缺陷;
幫助專案管理人員制定合理的開發計劃;
幫助改善開發流程、提高產品開發效率;
2.1 設計
設計包括需求設計、概要設計和詳細設計,目前開發部的需求設計似乎涵蓋了3種設計;測試人員在該階段需要做的就是:熟悉需求,對需求的熟悉程度應該高於一般的開發人員;
2.1.1 現狀
深分開發部二次開發專案週期短,專案需求不盡相同,測試人員未參加需求調研和設計,很大程度上是個人對文件的理解或同項目經理、需求人員的確認。
影響:
1、對需求理解膚淺不夠深刻;
2、部分需求印象不深或毫無印象,導致需求遺漏;
3、刻意遵守文件內容或開發人員的設計,缺少個人觀點;
4、編寫測試用例產生該覆蓋的需求沒有涉及,不用驗證的卻編寫了測試用例;
2.1.2 建議
需求評審
需求設計人員完成軟體需求說明書,要發給參與專案的每位同事進行需求評審,參與評審的人員要列出需求說明書中存在的問題及疑問;
需求評審會
需求評審會的目的是講解並解答評審人員針對需求說明書所提出的問題及疑問,更改需求中的問題,完善軟體需求說明書,需求評審會也是加深需求理解的好途徑;
需求變更/新增
專案需求變更/新增,必須通知測試人員,更新需求說明書要及時釋出最新的版本。
注:設計階段可能包括專案開發計劃,此階段要相應的出測試計劃;
2.2 編碼
編碼階段測試需要編寫測試大綱、測試用例,根據專案具體情況,決定測試用例的詳細程度,但需求功能點必須全部覆蓋。
測試用例文件由簡介和測試用例兩部分組成。簡介部分編制了測試目的、測試範圍、定義術語、參考文件、概述等。測試用例部分逐一列示各測試用例。每個具體測試用例都將包括下列詳細資訊:用例編號、用例名稱、測試等級、入口準則、驗證步驟、期望結果(含判斷標準)、出口準則、註釋等。
測試用例是軟體測試的核心,測試用例需要完善的情況包括:
第一、在測試過程中發現設計測試用例時考慮不周,功能點缺失;
第二、軟體自身的新增功能以及軟體版本的更新(需求新增及變更),測試用例也必須配套修改更新。
第三、在軟體交付使用後反饋的軟體缺陷,而缺陷又是因測試用例存在漏洞造成;
2.3 測試
測試的流程如表1所示,測試執行階段是一項重複勞動,所以我們應該儘量避免無用功。那麼測試計劃就顯得相當重要。
測試計劃是在軟體測試中最重要的步驟之一,它在軟體開發的前期對軟體測試做出清晰,完整的計劃,不光對整個測試起到關鍵性的作用,而且對開發人員的開發工作,整個專案的規劃,專案經理的審查都有輔助性作用。
測試計劃的目的包括:
(1)將需求和總體設計分解成可測試,應該測試,推遲測試和無法測試的範圍
(2)對每個範圍制訂測試的策略和方法
(3)制訂release和停止測試的標準
(4)準備測試所需要的環境
(5)確定測試風險
(6)確定軟體測試目標
(7)確定測試所需要的資源其他相關資訊
(8)制訂測試進度和任務安排
2.3.1 現狀
目前開發部測試人員測試計劃設計相對較少,也存在沒有測試計劃的情況,總體來說開發部現在的情況如下:
1)專案週期小,不需要測試人員參與;
2)一個測試人員應付一個專案;
3)測試人員對專案情況不夠了解,工作沒有主觀能動性;
4)開發的人員缺少軟體整合測試,不間斷的更新版本;
5)缺少測試文件及缺陷管理體系;
2.3 建議
重視測試計劃的設計;
完善測試流程,制定測試標準;
需要增加測試人員,完善測試的梯隊;
2.4 交付
目前部門並沒有出具相應的測試報告或出局了相對簡單的測試報告,測試報告是軟體測試重要的輸出文件,一個完整的測試報告應該包括如表2,測試報告應該讓看到報告的人對專案測試情況一目瞭然。
表2:測試報告內容
3、測試團隊組建
3.1 測試機構
測試團隊的組成一般由測試組長、資深測試工程師和初級測試工程師;
1)測試組長:負責專案的管理、測試計劃、測試用例、任務安排等;
2)測試設計人員/資深測試工程師,產品設計規格說明書的審查、測試用例的設計、技術難題的解決、培訓和指導、實際測試任務的執行;
3)一般(初級)測試工程師,執行測試用例和相關的測試任務。
4)需要的情況下可以設定專門的效能測試工程師;
圖1:測試梯隊
目前,公司希望幾個分散的測試人員組成一個測試團隊不太現實,且沒有測試的梯隊架構,這樣就會導致員工激情的減少。
3.2 測試團隊地位
圖1 三國鼎立
測試機構在組織中地位的確定事關測試機構執行測試任務的效力。測試機構的獨立是十分重要的。
目前,開發部為專案組配備一個測試小組幾乎是不可能的,但是我們至少應該在整個研發部門成立獨立的測試小組,統一開展測試任務的執行,同時為保證與不同的產品緊密銜接,應該實行責任測試工程師制度。
測試團隊應直接向研發部門的質量總監負責,質量總監在研發部門的地位應該等於或者高於開發團隊的最高負責人,只有這樣才能保證測試機構的權威性。
3.3 規範執行
針對目前深分開發部的情況,首先要做的是以下三個方面:
第一,建立缺陷管理資訊系統,收集整理遺留的缺陷,報告相關資料;
第二,建立嚴格的版本管理制度,追蹤釋出的每一個版本;開發提供不斷修訂的版本,這樣導致了修復問題的代價變得越來越大,因為每一次修改都很倉促,常常是解決了這個問題,衍生出很多其他的問題。解決這個問題的關鍵是建立嚴格的版本管理,任何一個版本的釋出都必須經過測試小組全面的測試,同時詳細記錄每一個版本的資訊。這些都與配置管理息息相關,所以測試體系的建設中還必須建立有效的配置管理。
提第三,高開發人員的編碼質量,建立嚴格的程式碼評審制度,對於外包開發人員,需要考核外包人員能力,最好有可以進行程式碼走讀能力的開發人員;
大家可以關注一下我的微信公眾號,每天會更新不同的測試文章