5.3測試監控
5.3測試監控
測試監控這里面其實(shí)包括兩部分的內容。一個(gè)是監視,另外一個(gè)是控制。測試監視的目的是收集信息,并為測試活動(dòng)提供反饋和可見(jiàn)性。測試控制是根據收集和(可能)報告的信息和度量,采取相應的指導或糾正行動(dòng)。
測試監視需要通過(guò)手工或自動(dòng)方式收集各種度量數據,這些數據可以用于評估測試進(jìn)度、測試出口準則,或評估與敏捷項目的已完成定義相關(guān)的測試任務(wù)是否已完成,如達到產(chǎn)品風(fēng)險、需要或驗收準則的覆蓋率要求。
一旦在測試監視過(guò)程中,發(fā)現當前的狀態(tài)和期望的或計劃的不符,就需要采取一定的控制活動(dòng)。例如:
- 當識別的風(fēng)險發(fā)生時(shí)重新確定測試的優(yōu)先級(例如:軟件延遲交付)
- 根據測試環(huán)境或其他資源是否可用,改變測試時(shí)間進(jìn)度
- 重新評估某項測試項返工后是否還符合入口或出口準則
5.3.1 測試使用的度量
為了更好的進(jìn)行測試監視,必須選擇合適的度量指標。很多人對度量指標到底有哪些非常感興趣。但是其實(shí)一套大而全的度量指標并不能解決測試監視的所有問(wèn)題。相反,在面對很多度量指標可以選擇的時(shí)候,如何選擇合適自己當前組織或者項目的度量指標反而更有挑戰。在日常工作中,一定要避免為了度量而度量的這種舍本求末的情況。所有的度量都是為了控制服務(wù)的,如果僅僅度量出來(lái)數據,但是根據這些數據,測試團隊無(wú)法獲得任何有用的信息,那么這個(gè)度量其實(shí)就是資源的浪費。
測試活動(dòng)期間或結束時(shí)可以收集的度量包括:
- 時(shí)間進(jìn)度和預算:用于評估當前的進(jìn)度
- 測試對象的當前質(zhì)量:質(zhì)量是一個(gè)比較廣泛的概念,測試團隊需要進(jìn)行細化,例如按照ISO 25010中質(zhì)量模型進(jìn)行分類(lèi)度量
- 測試方法的充分性:是否使用了各種不同的測試方法以達到測試目的,不同的測試方法涉及到測試技術(shù)、測試級別和測試類(lèi)型等的選擇,詳細內容可以參考5.2.2節
- 基于目標的測試活動(dòng)有效性:這里的度量和特定的目標相對應的,例如:如果為了通過(guò)代碼評審減少系統測試中發(fā)現的基本功能存在的缺陷
通用測試度量包括:
- 測試用例準備階段完成的已計劃工作的百分比(或測試用例已實(shí)現占已計劃的百分比)
- 測試環(huán)境準備階段完成的已計劃工作的百分比
- 測試用例執行(例如:運行/未運行的測試用例數目、通過(guò)/失敗的測試用例數目,和/或通過(guò)/失敗的測試條件數目)
- 缺陷信息(如缺陷密度、發(fā)現和修復的缺陷、失效率和確認測試結果)
- 需求、用戶(hù)故事、驗收準則、風(fēng)險或代碼的覆蓋率
- 任務(wù)完成、資源分配和使用以及工作量
- 測試成本,包括發(fā)現下個(gè)缺陷的收益成本與執行下個(gè)測試的收益成本之間的比較
每個(gè)度量指標最終都要明確需要收集的數據和計算方法。例如:
- 測試用例執行的進(jìn)度:測試用例執行的進(jìn)度=已執行的數目/總數目。此數據只表明測試的執行進(jìn)度,不表示測試的成功率。
- 缺陷的存活時(shí)間:缺陷的存活時(shí)間=缺陷從打開(kāi)到關(guān)閉的時(shí)間(或者是從發(fā)現到解決的時(shí)間)。此數據表明修改缺陷的效率。
- 缺陷的趨勢分析:按照測試執行的時(shí)間順序(以月、周、天為時(shí)間單位),查看發(fā)現的缺陷數量的分布。一般說(shuō)來(lái)是發(fā)現的缺陷越來(lái)越少。如果實(shí)際中發(fā)現的缺陷越來(lái)越少,趨近于0,則考慮結束測試執行。相反,如果發(fā)現缺陷的數量發(fā)生非正常波動(dòng),則說(shuō)明可能存在以下的問(wèn)題:代碼修改引發(fā)新的缺陷;前一版本的測試存在覆蓋率的問(wèn)題;新的測試發(fā)現了原來(lái)未發(fā)現的缺陷;必須先修改某些缺陷后才能繼續測試,然后才發(fā)現其他的缺陷。
- 缺陷分布密度:缺陷分布密度=某項需求的總缺陷數/該項需求的測試用例總數(或者功能點(diǎn)總數)。如果發(fā)現過(guò)多的缺陷集中在某項需求上,則要對需求進(jìn)行分析和評估,然后根據分析結果進(jìn)行測試調整。比如,該功能需求是否過(guò)于復雜,該項的需求設計、實(shí)現是否有問(wèn)題,分配給該項的開(kāi)發(fā)資源是否不足。需要注意的是,在分析缺陷的分布密度時(shí)要考慮缺陷的優(yōu)先級和嚴重程度。
- 缺陷修改質(zhì)量:缺陷修改質(zhì)量=每次修改后發(fā)現的缺陷數量(包括重現的缺陷和由修改所引起的新缺陷)。該數據可以用來(lái)評價(jià)開(kāi)發(fā)部門(mén)修復缺陷的質(zhì)量,如果數值較高,測試部門(mén)應當及時(shí)通知開(kāi)發(fā)部門(mén)查找原因,確保產(chǎn)品質(zhì)量。
測試監控過(guò)程中,很多度量數據都會(huì )以圖表的形式展示。#5.3.1 1是某項目測試用例設計進(jìn)度。
#5.3.1 1 項目測試用例設計進(jìn)度
從測試度量數據結果來(lái)看(#5.3.1 1),當前(第17周)的測試用例設計比計劃完成的測試用例還多一些,表明當前測試設計總體進(jìn)度情況良好。而且從歷史趨勢來(lái)看,實(shí)際進(jìn)度和計劃的進(jìn)度偏差不大,從側面說(shuō)明實(shí)際的測試設計進(jìn)度比較穩定,當前總體的測試用例設計進(jìn)度比較可控。
5.3.2 測試報告的目的、內容和受眾
測試報告的目的是在測試活動(dòng)期間和結束時(shí)(例如某測試級別),總結和交流測試活動(dòng)的信息。ISO標準(ISO/IEC/IEEE 29119 3)指定了兩種類(lèi)型的測試報告,測試狀態(tài)報告和測試完成報告(在ISTQB大綱中稱(chēng)為測試進(jìn)度報告和測試總結報告),并包含了這兩種不同類(lèi)型報告的結構和示例。
測試活動(dòng)期間準備的測試報告可稱(chēng)為測試進(jìn)度報告(對應ISO/IEC/IEEE 29119 3中的測試狀態(tài)報告),而在測試活動(dòng)結束時(shí)編寫(xiě)的測試報告可稱(chēng)為測試總結報告(對應ISO/IEC/IEEE 29119 3中的測試完成報告)。
在測試監控期間,測試經(jīng)理需定期為利益相關(guān)者發(fā)布測試進(jìn)度報告。除了測試進(jìn)度報告和測試總結報告中相同的內容外,典型的測試進(jìn)度報告還可能包括:
- 對照測試計劃,當前測試活動(dòng)和進(jìn)度的狀態(tài)
- 阻礙進(jìn)度的因素
- 針對下個(gè)匯報階段的計劃的測試
- 測試對象的質(zhì)量
ISO/IEC/IEEE 29119 3中的測試狀態(tài)報告內容如下表5.3.2 1所示。
表5.3.2 1 測試狀態(tài)報告模板
當滿(mǎn)足出口準則時(shí),測試經(jīng)理將發(fā)布測試總結報告。該報告根據最新的測試進(jìn)度報告和其他相關(guān)信息,對進(jìn)行的測試做了總結。
典型的測試進(jìn)度報告及測試總結報告可能包括:
- 測試執行的總結
- 測試期間所發(fā)生的信息
- 與計劃之間的偏離,包括測試活動(dòng)的時(shí)間進(jìn)度、持續時(shí)間或工作量的偏差
- 針對出口準則或已完成定義中的測試狀態(tài)和產(chǎn)品質(zhì)量
- 曾經(jīng)阻礙或繼續阻礙進(jìn)度的因素
- 缺陷、測試用例、測試覆蓋率、活動(dòng)進(jìn)度和資源消耗的度量(如5.3.1所述)
- 剩余風(fēng)險(見(jiàn)第5.5節)
- 生成的可重用的測試工作產(chǎn)品
ISO/IEC/IEEE 29119 3中的測試完成報告的內容如下表5.3.2 2所示。
表5.3.2 2 測試完成報告模板
測試報告的內容將根據項目、組織要求和軟件開(kāi)發(fā)生命周期而有所不同。例如:相對于快速軟件升級,一個(gè)有許多利害相關(guān)者的復雜項目或受監管的項目可能需要更詳細和更嚴格的報告。還例如:在敏捷開(kāi)發(fā)中,測試進(jìn)度報告可以被納入任務(wù)板、缺陷摘要和燃盡圖中,這些可以在每日的站立會(huì )議中討論(見(jiàn)ISTQB AT基礎級敏捷測試人員擴展大綱)。
除了根據項目背景對測試報告進(jìn)行裁剪之外,測試報告還應根據報告的受眾進(jìn)行調整。針對技術(shù)受眾或測試團隊所包含的信息類(lèi)型和數量,可能不同于針對管理層的總結報告中的內容。在前一種情況下,關(guān)于缺陷類(lèi)型和趨勢的詳細信息可能很重要。而在后一種情況下,概要的報告(例如:按優(yōu)先順序、預算、時(shí)間進(jìn)度和通過(guò)/失敗/未測試條件的摘要狀態(tài))可能更合適。