淺談軟件測試過程的改進
軟件測試過程也就是軟件測試生命周期,它嚴重影響著軟件開發的效率和軟件產品的質量。測試技術解決了測試采用的方法和技術問題,測試管理保證了各項測試活動的順利開展。軟件測試過程改進主要著眼于合理調整各項測試活動的時序關系,優化各項測試活動的資源配置以及實現各項測試活動效果的***化。
在軟件測試過程中,過程改進被賦予了舉足輕重的地位,在測試計劃、實施、檢查、改進的循環中,過程改進既是一次質量活動的終點,又是下次質量活動的原點,起著承上啟下的作用,因此軟件測試過程改進對于軟件質量的提高相當重要。
1、軟件測試過程改進的概念
測試過程的改進對象應該包括三個方面:組織、技術和人員。測試過程改進需要對組織給予特別關注,因為過程都是基于特定的組織架構建設的,而且組織設置是否合理對過程的好壞有決定性的影響。軟件測試組織的不良架構通常表現在:
- 沒有恰當的角色追蹤項目進展。
- 沒有恰當的角色進行缺陷控制、變更和版本追蹤。
- 項目在測試階段效率低下、過程混亂。
- 只有測試經理了解項目,項目成了個人的項目,而不是組織的項目。
- 關心進度,而忘記了項目的另外兩個要素—— 質量和成本。
上述問題可從組織上找出原因。因此在測試過程改進中可以先將測試從開發活動中分離出來,把缺陷控制、版本管理和變更管理從項目管理中分離出來。此外,需要給測試經理賦予明確的職責和目標。技術的改進包括對流程、方法和工具的改進,它包括組織或者項目對流程進行明確的定義,杜絕隨機過程,引入統一的管理方法,并使用標準的經過組織認可的工具和模板。人員的改進主要是指對企業文化的改進,它將促使建立高效率的團隊和組織。
由于測試過程改進是一項長期的、沒有終點的活動,而且要獲得改進過程的收益也是長期的過程,所以在起步實施測試過程改進時,要充分考慮戰略,并根據公司的戰略目標確定測試部門的戰略,描繪遠景。將測試過程改進與公司戰略目標相聯系,是改進成功實施的必要條件,也是各公司在實施測試過程改進中獲得的***實踐。在研究過程中,組織的規劃內容通常包括:
(1)繪制遠景:如提升管理成熟度,提高測試生產率,促使部門測試能力達到公司領先水平。
(2) 戰略分析:如在部門內制訂三年計劃。以內部人員為主,引入適當的培訓,通過一年半到兩年的內部過程,使得VER/VAL及其他相關過程域改進并達到CMMI3成熟度,適時進行評估,最終目標為CMMI4。
(3) 優缺點評估:上述戰略方法的優點在于前期以內部改進為宗旨,避免了拔苗助長帶來的風險,可以使過程改進更符合組織的實際情況。但缺點是不以正式評估作為目標,可能導致領導關注力度減弱,過程改進的動力不足,因此需要過程改進的負責人具有堅韌的斗志和持之以恒的信念。
在改進的不同時期和階段,選擇的策略也不同,組織應根據實際情況進行選擇。下面列舉在研究過程中收集的可供參照的主要策略方法:
重診斷,輕評估。
要以診斷和解決測試過程中的實際問題作為測試過程改進的目的,不能盲目追求商業評估。在以往實施ISO9000的過程中曾發現,組織拿證書的愿望常常會沖淡“過程改進”的真正目的。
實施制度化的同時,建設企業文化。
實施全面制度化的管理是過程改進的有效保障,制度和組織文化總是互相依存,沒有良好的文化保障,制度化將困難重重;而沒有制度的支撐,文化也將是無本之木。
引入軟件工具。
推行配置、自動化測試和缺陷跟蹤等工具,將有效地分解事務性工作,可以緩解人力資源不足的困難。常見的過程管理方面的工具包括Rational公司的ClearCase,ClearQuest,CA公司的CCC/Harvest等。
建設管理和工程基礎。
為了解決基礎薄弱的問題,需要在測試過程改進前期為相關部門和員工進行基礎管理和基本軟件工程的課程培訓。
發動全員參與。
全員參與可以分三個層面來理解:***,站在高于項目管理的層面;第二,站在項目管理的層面;第三,站在開發人員和測試人員層面。充分調動各方面人員的積極性。
現有過程的復用。
該原則可以充分利用現有過程的合理部分,提高被改進過程的可接受程度和使用價值。
2、軟件測試過程改進的具體方法
過程改進在軟件測試過程中占有舉足輕重的位置,因此為了更好地保證軟件質量,測試過程改進是測試人員經常要做的事情,下面列出了一些軟件測試過程改進的具體方法:
1)調整測試活動的時序關系在軟件測試過程的測試計劃中,不恰當的測試時序會引起誤工和測試進度失控。例如,具體到某個工程實踐中,有些測試活動是可以并行的,有些測試活動是可以歸并完成的,有些測試活動在時間上存在線性關系等。所有這些一定要區分清楚并且要做***化調整,否則會對測試進度產生不必要的影響。
2)優化測試活動資源配置在軟件測試過程中,必然會涉及到人力、設備、場地、軟件環境與經費等資源。那么如何合理地調配各項資源給相關的測試活動是非常值得斟酌的,否則會引起誤工和測試進度的失控。在測試資源配置中最常見的是人力資源的調配,測試部門如果能深入了解員工的專長與興趣所在,在進行人員分配時,根據各自的特點進行分配,就能對測試活動的開展起到事半功倍的效果。
3)提高測試計劃的指導性測試計劃的指導性就是指測試計劃的執行能力。在軟件測試過程中,很多時候實際的測試和測試計劃是脫節的,或者說很大程度上是沒有按照測試計劃去執行。測試計劃的完成不僅僅是起草測試大綱,而是為了確保測試大綱中計劃的內容能真正被執行、真正用于指導測試工作,為了更好地完成測試活動,保證軟件的質量。
4)確立合理的度量模型和標準在測試過程改進中,測試過程改進小組應根據企業與項目的實際情況制訂適合自己公司的質量度量模型和標準,做出符合自己公司發展策略的投入。但是質量度量模型和標準的確立不是馬上就可以進行的,而是測試過程改進小組隨著測試過程的進行不斷實踐、不斷總結、不斷改進的。而質量度量模型和標準一旦確立,很多測試活動就不至于陷入過度測試或測試不夠的尷尬狀態中,使得測試活動在公司與項目不斷發展變化的氛圍中保持動態平衡。
5)提高覆蓋率覆蓋率越高,表明測試的質量越高。覆蓋率包括內容的覆蓋和技術覆蓋。內容的覆蓋指的是起草測試計劃、設計測試用例、執行測試用例和跟蹤軟件缺陷。內容覆蓋率越高,就越能避免故障被遺漏的情況。技術的覆蓋指一項技術指標要盡可能地做到測試技術的覆蓋,采用科學的方法來驗證某項指標,可以更好地保證產品的質量。
除了上邊講的測試過程改進的具體方法外,我們還應注意如下事項:一是必須注意過程改進是跟公司的發展戰略相關的,否則只會對測試過程產生不利的影響;二是測試過程的改進并不意味著必須投入大筆資金;三是在測試過程改進中可以參照CMM模型與技術。
【編輯推薦】