軟件質(zhì)量保證KPI:
? 活動缺陷
? 自動化測試
? 覆蓋需求程度
? 高度/嚴重缺陷和逃逸缺陷的百分比
? 拒絕缺陷的百分比
? 測試時間
? 編寫的測試
? 自動化測試
? 代碼覆蓋率
? 每天修復缺陷
? 通過要求
? 通過測試
? 拒絕缺陷
? 審查要求
? 已經(jīng)執(zhí)行的測試實例
? 嚴重缺陷
? 執(zhí)行的測試
? 工作時間表和約束
? 缺陷關(guān)閉率
你是否評估過QA的成功?
軟件質(zhì)量保證是軟件開發(fā)過程中至關(guān)重要的一部分。它確保軟件產(chǎn)品符合組織中設(shè)定的質(zhì)量標準。然而,雖然軟件質(zhì)量保證無疑是可取的,但它也可能相當昂貴。本文將回顧如何評估你的質(zhì)量保證并為你的投資提供良好的回報。但是首先,讓我們看看QA如何影響軟件發(fā)布,以及為什么你可能需要評估QA的成功。
QA對軟件發(fā)布周期的影響
發(fā)布周期包括從開發(fā)和測試到部署和跟蹤的不同階段。在競爭激烈的市場中,較長的發(fā)布周期可能是不利的。因此,組織通常希望加快發(fā)布周期。然而,對速度的關(guān)注可能會導致產(chǎn)品質(zhì)量的下降。不過通過在軟件發(fā)布管理中實施最佳實踐,你可以在不犧牲質(zhì)量的情況下縮短發(fā)布周期。這里有一些方法可以做到這一點。
記錄你的發(fā)布計劃
記錄發(fā)布計劃是確保每個人保持一致的好方法。發(fā)布計劃應該包含你的目標、質(zhì)量期望和參與者的角色。記錄發(fā)布計劃后,確保所有團隊成員都可以根據(jù)需要訪問、引用和輕松更新它們。
自動化流程
自動化手動和重復性任務是在保持質(zhì)量的同時加快發(fā)布周期的好方法。QA自動化釋放了寶貴的人力資源,然后你可以將其重新分配給其他高優(yōu)先級任務。這些可能實現(xiàn)自動化的任務包括自動化回歸測試、代碼質(zhì)量檢查和安全檢查。
創(chuàng)建一致的發(fā)布周期
在評估發(fā)布過程的狀態(tài)后,創(chuàng)建一個定期發(fā)布計劃。
這樣做將有助于創(chuàng)建一個你的團隊可以適應的常規(guī)系統(tǒng)。最終用戶也將知道何時期待更新,并且更有可能參與最新版本。
短的發(fā)布周期通常是一個好主意,其中包含小的、頻繁的更改而不是長期的更改。有一個目標發(fā)布計劃將幫助你的團隊在發(fā)布周期中實現(xiàn)當前目標的同時,朝著發(fā)布日期努力。
開發(fā)和優(yōu)化你的發(fā)布基礎(chǔ)架構(gòu)
發(fā)布基礎(chǔ)架構(gòu)中隱藏的瓶頸可能會減慢部署過程。因此,你必須優(yōu)化交付基礎(chǔ)架構(gòu)并實施持續(xù)測試和測試自動化等實踐。
進行發(fā)布回顧
發(fā)布回顧包括回顧過去版本中的流程,以提取可以幫助你在未來版本中改進這些流程的見解。發(fā)布回顧為團隊提供了一個開放的環(huán)境來分析過去的問題并創(chuàng)建策略以避免將來出現(xiàn)這些問題。
但是,為了確保你的發(fā)布周期是一致的并且順利運行,你可能需要評估QA在軟件開發(fā)中的有效性。
為什么要評估軟件質(zhì)量保證的成功
這對于提高測試過程的效率和成本效益至關(guān)重要。
使用指標分析當前系統(tǒng)可以幫助你了解哪些領(lǐng)域需要改進。因此,你將能夠為流程的下一階段做出明智的決定。
如果不使用度量來保證質(zhì)量,衡量軟件質(zhì)量將是一項挑戰(zhàn)。如果你不測量它,你怎么知道你的質(zhì)量保證策略是否有效。
什么是軟件測試指標以及為什么需要它們?
軟件測試指標是QA團隊用來評估軟件開發(fā)項目質(zhì)量的衡量標準。跟蹤它們可以快速了解測試過程,并有助于評估QA團隊的有效性。
你無法改進你無法衡量的東西。軟件測試中的質(zhì)量指標正是為了實現(xiàn)這一點——改進的QA過程。作為回報,優(yōu)化QA過程有助于更有效地為測試需求做預算。
因此,他們可以為未來的項目做出明智的決定,了解需要改進的地方,并做出必要的改變。那么,什么樣的指標可以幫助你做出這些決定呢?
QA指標的類型
有許多QA指標或多或少對你當前的場景(即項目的當前狀態(tài))有價值。度量值可以通過它的可操作性來定義——測量可以帶來改進——以及它是否可以不斷更新。
以下是一些與項目當前狀態(tài)相關(guān)的指標示例:
? 平均檢測時間 – 平均需要多少時間來檢測問題。你發(fā)現(xiàn)問題越早,修復問題的成本就越低。
? 平均修復時間 –平均需要多少時間來修復一個問題。這個時間也等于當你的產(chǎn)品或服務不起作用而你虧損并可能危及你的聲譽時的停機時間。
? 測試可靠性 –測試反饋的價值。基本上,可靠的測試在測量中是一致的,并且可以復制。
? 發(fā)現(xiàn)逃逸缺陷 –有多少缺陷在生產(chǎn)過程中沒有被QA團隊發(fā)現(xiàn),但在發(fā)布后被發(fā)現(xiàn)。
你如何知道要為你的項目使用哪些指標?同樣,這完全取決于哪些指標對你的項目當前狀態(tài)最相關(guān)和最客觀。但是,請注意,有助于評估軟件或組織質(zhì)量的指標與評估QA團隊有效性的指標是有區(qū)別的。
更深入地說,衡量后者的一種方法是設(shè)置KPI。
如何使用KPI評估質(zhì)量保證
關(guān)鍵性能指標,或稱KPI,是衡量軟件測試質(zhì)量保證有效性的設(shè)定指標。
KPI通常有助于評估QA有效性。然而,它們并不適用于所有場景。以下是測量KPI最有益的一些情況:
? 你已經(jīng)執(zhí)行了一段時間的測試過程。當測試處于早期階段時,KPI是無益的。但是,如果你已經(jīng)實施了一段時間的測試過程,測量KPI將幫助你了解哪些領(lǐng)域需要改進。
? 你正計劃引入新的測試流程。測量當前流程的KPI將幫助你了解新流程的目標。
? 你有一個大型測試團隊。與大型QA團隊合作涉及測試任務的分配和管理。衡量 KPI
將幫助你確保流程高效并讓團隊成員步入正軌。
最常見的KPI
以下是評估QA績效時最常用的一些KPI:
活動缺陷
此KPI用于缺陷、未解決缺陷或已修復缺陷的數(shù)量。低數(shù)量的活動缺陷表明產(chǎn)品處于高質(zhì)量水平。測試經(jīng)理設(shè)置一個閾值,超過該閾值,團隊必須立即采取行動降低缺陷。
發(fā)現(xiàn)、計數(shù)、分類和解決缺陷的過程稱為缺陷管理。這個過程包括完善所需的信息,例如缺陷的名稱和描述。一旦團隊掌握到相關(guān)信息,涉及的缺陷就會被優(yōu)先排序并安排解決。
自動化測試
此KPI跟蹤自動化測試的百分比。自動化測試的百分比越高,檢測軟件中關(guān)鍵錯誤的機會就越大。測試經(jīng)理應根據(jù)軟件類型和計算的自動化成本確定此KPI的閾值。
自動化測試指標的一些示例包括:
? 總測試持續(xù)時間-運行所有自動化測試所需的時間。
? 單元測試覆蓋率-單元測試覆蓋了多少代碼。
? 路徑覆蓋率-測試覆蓋的線性獨立路徑的數(shù)量。
覆蓋需求程度
此KPI衡量一個或多個測試用例覆蓋需求的百分比。目標應該是讓每個需求至少有一個測試用例會覆蓋到。測試經(jīng)理監(jiān)控此KPI并指定當需求無法映射到測試用例時應該做什么。
需求通常在覆蓋矩陣中描述——一個包含需求和相應測試用例鏈接的表。當需求很大或沒有清晰記錄時,這些矩陣很有幫助。當新團隊成員必須熟悉需求時,它們也會派上用場。
使用需求覆蓋矩陣允許測試經(jīng)理將所有需求都放在一個資源中,所有團隊成員都可以訪問。它使開發(fā)人員和QA工程師的工作更有效率,并有助于確保他們考慮到所有需求。
高度/嚴重缺陷和逃逸缺陷的百分比
逃逸缺陷是指在測試期間逃逸檢測并被最終用戶發(fā)現(xiàn)的問題。團隊應分析這些缺陷以改進流程并防止類似事件發(fā)生。
跟蹤逃逸缺陷率可以促成對更好或更自動化測試的需求。它也可能表明需要放慢開發(fā)過程以進行更廣泛的測試。
拒絕缺陷的百分比
此指標指的是測試人員發(fā)現(xiàn)但被開發(fā)人員拒絕的缺陷的百分比。如果缺陷不可重現(xiàn)、不正確或已經(jīng)報告,則可以拒絕。
被拒絕的缺陷會浪費很多時間,降低測試團隊的效率。它們還會降低測試人員的士氣,因為這會讓他們看起來不專業(yè)。如果被拒絕的缺陷數(shù)量很高,測試人員可能需要進一步培訓或提供更新的文檔。
測試時間
此KPI用于跟蹤一個功能從“測試中”階段轉(zhuǎn)移到“完成”需要多長時間。因此,它有助于衡量一個功能的復雜性以及測試人員的有效性。
所有這些KPI都有助于衡量你的QA團隊在不重復地識別軟件產(chǎn)品中的缺陷方面的效率以及測試需要多少時間。當你打算從外包公司聘請QA服務時,這些KPI至關(guān)重要。
如何選擇QA外包公司
外包軟件QA服務可以節(jié)省時間和金錢,同時可以讓你專注于核心業(yè)務。然而,你選擇的供應商的質(zhì)量將直接影響質(zhì)量保證外包的投資回報率。
以下是評估軟件質(zhì)量保證公司時需要注意的一些因素。
? 測試基礎(chǔ)設(shè)施。確保QA服務公司擁有適合你產(chǎn)品的測試基礎(chǔ)設(shè)施,例如必要的軟件、操作系統(tǒng)、硬件設(shè)備、測試工具和經(jīng)過認證的測試程序。
? 產(chǎn)品組合。花些時間查看供應商的產(chǎn)品組合。批判性地檢查它的歷史、現(xiàn)有客戶、使命和聲譽。你會想找那些穩(wěn)定發(fā)展、聲譽良好的公司。
? 客戶關(guān)系。尋找以合作伙伴關(guān)系為導向的公司。這些公司努力培養(yǎng)和保持與客戶的良好客戶關(guān)系。因此,你更有可能獲得愉快的體驗并與此類供應商建立長期關(guān)系。
? 靈活性和可擴展性。確保公司擁有靈活的業(yè)務模型,并且能夠處理測試需求的變化。隨著你的測試需求的發(fā)展,這種靈活性會派上用場。
? 安全性。僅考慮在網(wǎng)絡(luò)安全、臨時安全、數(shù)據(jù)庫安全和知識產(chǎn)權(quán)保護領(lǐng)域提供高度安全環(huán)境的供應商。
? 文檔標準。確保供應商遵守必要的QA留檔標準。例如,他們應該充分記錄測試結(jié)果、報告、計劃、腳本和場景,并為你提供對文檔的輕松訪問。
這些因素對精通商業(yè)的專業(yè)人士來說似乎是顯而易見的。但是如果你在選擇第三方供應商時不考慮它們,你可能會損失時間和金錢,而這些時間和金錢可以投資到實際的質(zhì)量保證中。
軟件質(zhì)量的成本
除了供應商費用或內(nèi)部專家工資之外,軟件質(zhì)量成本是你確保軟件產(chǎn)品質(zhì)量的所有費用。了解這些成本是什么將有助于你正確地為它們制定預算。
讓我們來看看不同類型的QA成本。
質(zhì)量保證成本的類型
主要的軟件質(zhì)量保證成本包括預防成本、檢測成本、內(nèi)部故障成本和外部故障成本。
? 預防成本。這是一個組織為防止質(zhì)量問題所做的投資。預防成本包括培訓開發(fā)人員、防錯、根本原因分析和改進計劃。
? 檢測成本。這些是軟件質(zhì)量控制過程的成本,旨在在軟件提供給最終用戶之前發(fā)現(xiàn)和解決缺陷。它們包括與檢查和測試代碼庫相關(guān)的成本,以及技術(shù)支持服務成本。
? 內(nèi)部故障成本。內(nèi)部故障成本是在產(chǎn)品到達最終用戶之前解決缺陷所產(chǎn)生的成本。它們包括浪費的時間、延遲的項目和返工有缺陷產(chǎn)品的成本。
? 外部故障成本。外部故障成本是指與交付低質(zhì)量軟件產(chǎn)品和服務相關(guān)的成本。它們包括退貨、保修索賠、訴訟和聲譽受損。
降低質(zhì)量保證成本和提高投資回報率的方法
軟件質(zhì)量的成本會很快增加,并成為一項可觀的投入。以下是一些有助于你最大限度地降低成本和最大化投資回報率的舉措:
? 盡快開始測試。盡早開始測試以將QA成本保持在最低水平非常重要。早期測試減少了發(fā)布后發(fā)現(xiàn)關(guān)鍵缺陷的機會。此外,在開發(fā)后期修復缺陷的成本可能是在設(shè)計和架構(gòu)階段修復缺陷的30倍。
? 明智地自動化測試。如果你的產(chǎn)品穩(wěn)定,自動化測試是在開發(fā)過程中節(jié)省成本的絕佳方式。即使你的軟件產(chǎn)品是動態(tài)的,你也會從盡可能多的測試自動化中受益。測試自動化提高了效率,允許QA工程師更快地交付錯誤報告,以便開發(fā)團隊可以更快地開始修復缺陷。自動化還使你能夠擁有更好的測試覆蓋率。
實施測試自動化時,避免急于立即自動化每一個測試。相反,仔細考慮貴公司的測試需求,計算測試自動化的投資回報率。
? 關(guān)注隱性成本。在為項目設(shè)置預算時,要注意測試期間可能出現(xiàn)的隱性成本。例如,你的產(chǎn)品可能具有你的測試工程師不熟悉的獨特功能。為了正確測試,他們需要花時間了解產(chǎn)品,從而產(chǎn)生采用費用。
其他可能的間接費用包括測試工具的基礎(chǔ)設(shè)施成本和維護費用。這些隱性成本可能會占用你預算的很大一部分。因此,你需要密切關(guān)注它們,并尋找減少隱性費用的方法。
? 明智地選擇你的QA團隊。QA團隊的質(zhì)量對QA的投資回報率有重大影響。因此,在選擇外包軟件QA需求的團隊時,你需要考慮幾個因素。這些可能包括他們的產(chǎn)品組合、聲譽和測試基礎(chǔ)設(shè)施。
? 評估你的QA成功。這樣做將使你能夠弄清楚如何改進你的測試過程并做出更好的決策。
除了成本之外,另一個需要考慮的問題是與第三方公司的正式協(xié)議。
如何與外包QA公司簽訂合同
質(zhì)量保證服務級別協(xié)議或QA SLA是你與軟件QA公司之間書面合同的一部分,其中規(guī)定了你對服務提供商的期望以及解決沖突的流程。
通常,這些是為了確保資源的可用性。例如,SLA可能包括如果項目規(guī)模擴大,提供者可以多快擴展團隊。
為什么需要SLA
合同很簡單,但是QA SLA 將幫助你確保一些結(jié)果:
? 服務質(zhì)量。SLA 允許客戶設(shè)定他們對服務質(zhì)量的期望,并輕松衡量服務提供商的表現(xiàn)。因此,QA團隊需要對糟糕的績效表現(xiàn)負責。
? 清晰的溝通。清晰的溝通對于團隊之間的成功協(xié)作至關(guān)重要。SLA有助于確保事先就溝通方法和工作時間表達成一致,從而使溝通更加順暢。
? 最佳程序和實踐的文檔。當最佳實踐在書面文檔中明確陳述時,它們通常更有可能被遵循。SLA使服務提供商能夠為其員工提供最佳實踐的快速參考文檔。
? 相互保護和安心。SLA 擺脫了假設(shè),為所有相關(guān)方提供了安心。因此,你可以放心,如果出現(xiàn)問題,你組織的利益會得到保護。
SLA的主要組成部分
軟件QA外包的服務水平協(xié)議通常由兩個關(guān)鍵組成部分組成——QA服務和管理。
服務要素包括:
? 提供的軟件質(zhì)量保證服務的細節(jié)。這部分明確定義的單個服務的列表,其中包含服務描述、提供此服務的人員和對象以及何時需要單個服務。
? 服務可用性條件。這部分應定義一個工作時間表,該表會包括協(xié)議中涉及的每個實體具體到一天中的時間、一周中的時間和時區(qū)格式可用時的時間。
? 有關(guān)各方的責任。這些是每個實體在法律上有責任履行的義務。
? 成本/服務權(quán)衡。
? 服務標準。結(jié)合估計的工作量定義了什么是低和高績效水平。
管理要素通常包括:
? 測量標準。這些是明確定義的評估工作的方法。
? 報告程序。這些包括報告類型和格式,即誰在何時以及如何報告。
? 沖突解決程序。這是一種解決客戶-供應商沖突的方法,從識別分歧到定義各方解決職責。
? 更新合同的機制。這是關(guān)于如何在已簽署的合同中啟動和實施更改的說明。
預算成本,達成協(xié)議,現(xiàn)在讓我們看看外包 QA 的過程是如何處理一些現(xiàn)實生活中的案例的。
既定目標和指標的好處在長期項目中最為明顯。雖然較短的項目(產(chǎn)品發(fā)布前的性能和負載測試)可能會受益于“一勞永逸”的方法,但與QA團隊的長期合作伙伴關(guān)系需要一致的溝通和明確的既定目標。
結(jié)論
軟件開發(fā)中的質(zhì)量保證對于高質(zhì)量產(chǎn)品的開發(fā)至關(guān)重要。然而,為了確保積極的投資回報率,你需要:
? 確保你使用正確的QA指標來評估你的產(chǎn)品/服務。
? 設(shè)置KPI以評估QA團隊的有效性。
? 如果你打算外包QA服務,請聘請合適的專家。
譯者介紹
崔瑩峰,51CTO社區(qū)編輯,一名70后程序員,擁有10多年工作經(jīng)驗,長期從事 Java 開發(fā),架構(gòu)設(shè)計,容器化等相關(guān)工作。精通Java,熟練使用Maven、Jenkins等Devops相關(guān)工具鏈,擅長容器化方案規(guī)劃、設(shè)計和落地。
原文標題:How To Evaluate Software Quality Assurance Success: KPIs, SLAs, Release Cycles, and Costs
鏈接:https://dzone.com/articles/how-to-evaluate-software-quality-assurance-success?fromrel=true