
部署之后又發現軟件問題再進行修復,這通常要多花 100 到 1000 倍的成本。要在特定時間達到既定目標,在整個項目生命周期內不斷對質量進行檢驗和管理必不可少。
簡介
質量是我們希望自己的產品、流程和服務爭取達到的目標。然而當問到“什么是質量?”時,人們的看法各有不同。常見的回答有:
“質量 ... 我不知道怎么描述它,但在具體環境中,我就明白是怎么回事!
或者
“... 滿足需求!
也許提到質量(關于軟件)時,最常見的情況就是批評質量不過關:
“他們怎么會發布質量這樣低劣的產品呢?”
這些通常的反應已可說明質量是什么,但卻沒怎么涉及嚴格質檢以及在執行時加以改進。這些意見都表明需要用一種方式來定義質量,通過這種方式能夠評測和實現質量達標。
但是質量并不是一個單一的特征或屬性。質量是多方面的,產品或流程都可擁有質量。產品質量的核心是生產合格的產品,而流程質量的核心是合理地生產產品。請參見概念:產品質量和概念:流程質量,了解其他信息。
質量的定義
質量的定義(取自 The American Heritage Dictionary of the English Language, 3rd Edition, Houghton Mifflin Co., c 1992, 1996)為:
Quality (kwol’i-te) n., pl.-ties. Abbr. qlty. 1.a.An inherent or distinguishing characteristic; a property. b.A personal trait, especially a character trait.2. Essential character; nature.3.a. Superiority of kind. b.Degree or grade of excellence.
如定義所述,質量不是單方面的概念,而是多方面的概念。要利用該定義并將它應用到軟件開發中,這個定義必須改進。
因此,考慮到要在 Rational Unified Process 中使用,質量被定義為:
“由以下三點所確定的特征:
1 滿足或超出認定的一組需求
2 使用經過認可的評測方法和標準來評估
3 使用認定的流程來生產!
因此,質量達標不是簡單地“滿足需求”或生產出滿足用戶需要或期望的產品。更確切地說,質量還包含確定證明質量達標所使用的評測方法和標準,以及如何實施流程,以確保由此流程生產的產品已達到預期的質量水平(而且能夠管理該流程并重復使用)。
另請參見以下幾頁,了解關于 Rational Unified Process 如何定義質量這個概念的其他信息:
產品質量
流程質量
評測質量
評估質量
誰負責質量?
一種常見的誤解是質量完全由一個組來負責。通常還會成立一個稱為質量保證的小組(其他名字還有:測試、質量控制或者質量工程),并讓這個組專門負責質量把關,這樣更加深了這種誤解。
質量是,而且應該是每個人的責任。實現質量對幾乎所有的流程活動而言都是不可或缺的,它不只是一條單獨的規定。因此要讓每個人都對他們生產的產品(或工件)的質量以及他們參與的流程的實施負責。
每個角色通過以下方式促成質量達標:
產品質量 - 通過每個正在生產的工件促成整體質量的達標。
流程質量 - 在參與的流程活動中促成質量達標。
每個人都應對生產的高質量產品(或質量低劣的產品)承擔責任并且榮辱與共。但是只有那些直接參與某個流程構件生產的人員才會對那些流程構件(和工件)的質量(不論好壞)直接負責。不過,還是要有人來負責管理質量,也就是保證對質量不斷地管理、評測以求最后達標。負責管理質量的角色是項目經理。
對質量常見的誤解
關于質量有許多誤解。最常見的包括:
質量能添加到產品中或在其中“測試”。
質量是一個單一的方面、屬性或特征。
質量對于每個人的含義都相同。
質量是自發產生的。
質量能添加到產品中或在其中“測試”:
如果不明確產品是什么,需具備什么功能,用戶是誰,如何使用等內容,就無法生產這種產品。同樣的道理,如果質量不屬于生產產品流程的一部分,而且沒有產品的說明和評測方法,那么就不能實現質量的達標。
請參見概念:評測質量,和下文中標題為質量是自發產生的的部分。
質量是一個單一的方面、屬性或特征,且
質量對于每個人的含義都相同:
質量不是一個單一的方面、屬性或特征。質量可通過多方面來評測。已設立質量維度的一些指標和標準來滿足項目、組織和客戶需要。
可通過幾個方面來評測質量,有些方面適用于流程質量,有些方面適用于產品質量,有些兩者都適合?梢酝ㄟ^以下幾個方面來對質量進行評測:
進度 - 例如已演示用例或已實現里程碑。
差異 - 計劃的時間表、預算、人員需求等與實際情況的差異。
可靠性 - 執行過程中抗故障(崩潰、掛起、內存泄漏等)的能力。
功能 - 工件按預期方式實施和執行所需的用例。
性能 - 在經受現實世界操作的特征檢驗時(諸如負載、強度測試以及長時間運行等),工件能夠及時響應并總是能以一種可接受的方式持續執行。
請參見概念:質量維度、概念:產品質量和概念:流程質量,了解其他信息。
質量是自發產生的:
質量不會自行出現。為了獲得質量,必須實施、遵守并評測流程。Rational Unified Process 的目的在于提供一種規范的方法以在一個開發組織中分配任務并明確責任。其目標是要在一個預期的時間表和預算內保證生產出滿足最終用戶需要的高質量軟件。Rational Unified Process 收集了許多現代軟件開發的最佳方案,方便各種各樣的項目和組織利用發揮。環境工作流程將指導您如何按需進行最佳流程配置。
可以根據若干因素來配置流程并商討質量(可接受的標準)。最常見的因素是:
風險(包括責任)。
商機。
收益需求。
人員配備或進度安排問題。
預算。
應在項目剛一開始就確定對流程和標準的變更,并就此達成共識。
Rational Unified Process 中的質量管理
質量管理的目的在于:
對合格的質量確定適合的指標(基本指標)。
確定用于質量評估的適當的評測方法。
及早并盡可能有效地確定和妥善處理影響質量的問題。
質量管理貫穿 Rational Unified Process 的所有工作流程、階段和迭代過程。一般來說,在整個生命周期內進行質量管理即是要使流程質量和產品質量達標,并對此進行評測和評估。下面是每一工作流程在管理質量維度要強調的工作:
需求工作流程中的質量管理涉及:分析需求工件集的一致性(工件標準和其他工件之間);清晰性(向所有的股東、涉眾和其他角色明白無誤地傳達信息),以及精確性(適當的詳細程度和精確度)。
分析設計工作流程中的質量管理涉及:評估設計工件集,包括評估設計模型從需求工件轉變過來,再轉換為實施工件的一致性。
實施工作流程中的質量管理涉及:評估實施工件,并根據需求、設計和測試工件評估相應的源代碼/可執行工件。
測試工作流程只要就是質量管理的過程,該工作流程的絕大部分工作都是為達到管理上述確定的質量目標而進行的。
環境工作流程,和測試一樣,主要工作要為實現管理質量的目的而服務。在此,可獲得如何對流程進行最佳配置以滿足需要的指導。
部署工作流程中的質量管理涉及:評估實施和部署工件,并根據需求、設計以及將產品交付給最終客戶所需的測試工件來評估相應可執行的部署工件。
項目管理工作流程包括對質量管理大部分工作的概述,涉及復審和審核開發流程的實施、遵守以及進展情況。
*************************************************************************
附錄:各種質量概念(產品質量、流程質量、評測質量和評估質量)
==============================================================================
產品質量
產品質量是正在由流程生產的產品的質量。在軟件開發中,產品是許多工件的聚合關系,其中包括:
已部署的可執行代碼(應用程序、系統等),這可能是最顯而易見的工件,因為項目通常是由于該工件才存在的。也就是說,它是為客戶(最終用戶、股東、涉眾等)提供價值的首要產品。
已部署的不可執行工件,包括用戶手冊和教程資料等工件。
未部署的可執行工件,如工件的實施集,包括已創建用于支持實施的測試腳本和開發工具。
未部署的不可執行工件,如實施計劃、測試計劃和各種模型。
由于很多工件都建立在其他工件的基礎上,所以在某種程度上,所有工件的質量都是相關的。因此,對每個工件的質量都應該評測和評估。
可執行工件的產品質量(部署的和未部署的):
可執行工件是通過其需求來描述的,并表述為用例或補充需求(如銷售、性能等)。要評測并達到質量要求,必須了解這些需求并以清楚、簡明和可核實(可測試)的方式陳述這些需求。對于軟件來說,測試角色不會將所有需求當作測試對象(如市場滲透或銷售收益)。對于那些將成為測試對象的需求來說,測試設計員必須能夠指定一種方法來核實是否滿足需求(正如已指定的)、沒有偏離既定意圖并且沒有缺陷。
產品質量是通過評測以下質量維度和評測產品是否滿足這些維度的要求來決定的:
可靠性:已部署的代碼在執行過程中的防故障(崩潰、掛起、內存丟失等)能力。
功能:已部署的代碼按既定意圖執行所需的用例。
性能:在實際的操作特征(如負載、強度和長時間運行)條件下,已部署的代碼以及時和可接受的方式執行和響應,并以可接受的方式繼續運行。
對于每一維度,在測試的一個或多個不同階段,應該實施和執行一種或多種測試類型。
此外,還可通過評測每一工件新版本的可執行工件中所作的變更數量和類型來評估產品質量。
不可執行工件的產品質量(已部署的或未部署的):
不可執行工件的產品質量通過工件的目的、目標和結構來描述,并通過確保工件符合以下各項要求來評估:
工件內部和工件之間的一致性(語言的使用、術語或語義等)。
指南、標準和合同需求(語言的使用、術語、語義、格式或內容等)的兼容性
此外,還可以通過工件版本之間所作變更的數量和類型來評估不可執行工件的產品質量。
為了幫助評估 RUP 中工件的產品質量,我們在 RUP 中包括了以下針對大多數工件的信息類型:
工件指南和檢查點:有關如何開發、評估和使用工件的信息。
模板:工件的“模型”或原型,為內容提供結構和指導。
=======================================================================
流程質量
流程質量是指為了生成工件而對可接受的流程(包括質量評測和質量標準)實施和遵守的程度。
軟件開發需要一張錯綜復雜的步驟網,其中既有串行步驟,又有平行步驟。隨著項目規模的擴大,必須包含更多步驟來管理項目的復雜性。所有流程都由產品活動和日常管理活動組成。產品活動會取得在形成最終產品方面的實際進展。而日常管理活動對最終產品有著無形的影響,許多計劃、管理和評估任務都需要進行日常管理活動。
對流程質量進行評測和評估的目的是:
管理利潤率和資源
管理和化解風險
管理和維護預算、進度與質量
獲取可改進流程的數據
在某種程度上,如果遵守流程并達到了較高的流程質量,這多少會在工件的質量上得以體現。也就是說,如果遵守流程并達到較高的流程質量,生成低質量工件的風險就會降低。但反之未必亦然:生成高質量的工件并不一定表示遵守了流程。
因此,不僅要按照流程被遵循的程度來評測流程質量,還要按照流程中產生成果所達到的質量等級來評測流程質量。
一般而言,每個人都應負責實施和遵守已得到認同的流程,并確保生成工件的質量達到已認同的質量標準。不過,特定的角色(如項目經理)可能會執行特定的任務來判定和影響流程質量。
=======================================================================
評測質量
對質量(包括產品質量和流程質量)的評測需要收集信息并對其進行分析,這些信息通常以評測和指標來表述。評測的目的主要是為了控制項目,以便能夠管理項目。評測還被用來評估項目在完成情況、質量情況、對需求的符合情況等方面與計劃所設定目標之間的差距。
指標用來達到兩個目標,即了解情況的目標和變更(或成果)目標:
知識目標:使用動詞如評估、預測、監控來表述。您要更好地了解開發流程。例如,可能要評估產品質量、獲得用來預測測試工作的數據、監控測試覆蓋或跟蹤需求變更等。
變更(或成果)目標:通過使用動詞如增加、減少、提高或實現進行表述。通常,您感興趣的是,隨著項目的進展事情如何從一個迭代到另一個迭代、從一個項目到另一個項目發生變更或得到改進。
使用這兩個目標的指標來評測進度和產品質量。
所有指標都需要標準來標識并確定是否達到可接受的質量程度或級別?山邮艿馁|量級別是可以協商并可以變化的,需要在開發生命周期的初期被確定并認同。例如,在早期的迭代中,可以接受較多的應用程序缺陷,但不能接受構架缺陷。而在后期迭代中,只有應用程序中美觀方面的缺陷才是可以接受的。
驗收標準可以采用多種方式進行說明,并可以包括多種評測方法。常見驗收標準可能包括以下評測方法:
缺陷數和/或趨勢,如已確定、已解決或仍然打開(沒有解決)的缺陷數。
測試覆蓋率,如(測試)計劃、實施并執行的代碼(或用例)的百分比。通常,測試覆蓋率要和上面確定的缺陷標準一起使用。
性能,如發生指定操作(用例、操作或其他事件)所需的時間。該標準通常用于性能測試、故障轉移及恢復測試或其他測試,在這些測試中,時間危急程度是本質問題。
相容性。該標準表示工件或流程活動/步驟必須滿足已認同的標準或準則的程度。
可接受性或滿意度。該標準通常用于主觀評測,如可用性或美觀性。
請參見概念:指標獲得其他信息。
請參見整個流程中的質量評估中的表格,該表格標識了對工件或活動進行質量評估的階段、工作流程和工件。
評測產品質量
以清晰、準確和可測試的方式說明需求只是達到產品質量的一部分。還必須確定相應的評測和標準,用來確定希望達到的質量級別,并判斷是否已經達到該質量級別。評測說明如何獲取用來評估質量的數據,而標準則確定產品達到可接受(或不可接受)質量的級別或點。
對可執行工件的產品質量進行評測是通過使用一種或多種評測技術實現的,例如:
復審/走查
檢查
執行
根據評測的性質和質量目標,將使用不同的指標。例如,在復審、走查和檢查中,首要目標集中在功能和可靠性質量等維度。缺陷、覆蓋率和相容性是在使用評測技術時采用的主要指標。但是,執行則可能集中在功能、可靠性或性能上。然而,缺陷、覆蓋率或性能是所使用的主要指標。其他評測和指標將根據需求的性質有所變化。
評測流程質量
對流程質量的評測是通過收集情況和成果評測實現的。
對已接受流程的標準、指南和實施的遵守程度。
相對于計劃實施,當前流程實施的狀況/狀態。
所產生工件的質量(使用上面說明的產品質量評測)。
對流程質量進行評測是通過使用一種或多種評測技術實現的,例如:
進度 - 例如已演示用例或已完成里程碑
差異 - 計劃的時間表、預算、人員配備需求等與實際情況的差異
產品質量評測和指標(已在上面的評測產品質量部分中有所說明)
==============================================================================
評估質量
為了管理質量,在整個產品生命周期中都要對流程和產品質量進行評測和評估。質量評估可以主要事件在發生時進行(如階段結束),也可以在產生工件時進行(如代碼走查)。以下是在生命周期中進行的不同評估。
里程碑和狀態評估
檢查、復審、走查
里程碑和狀態評估
Rational Unified Process 中的每個階段和迭代都會產生可執行產品或部分正在開發的最終產品的發布版(內部的或外部的),這時,為達到以下目的而進行評估:
演示是否達到需求(和標準)
同步期望
按某個基線將相關工件同步
確定風險
主要里程碑發生在所有四個 Rational Unified Process 階段的結束時,并且這些里程碑將核實該階段的目標是否已經實現。四個主要里程碑是:

生命周期目標里程碑
生命周期構架里程碑
最初的操作性能里程碑
產品發布里程碑
次要里程碑發生在每次迭代結束時,主要是為了核實是否已經實現了迭代的目標。狀態評估是周期性的工作,目的是要評估正在進行的迭代和/或階段的進度。
檢查、復審和走查
檢查、復審和走查是評估工件所采用的具體技術,也是提高開發流程質量和生產力的有效方法。應當采用會議的形式來實施這些方法,會議中,讓一個角色主持會議,并讓另一個角色作會議記錄(變更請求、問題、疑問等)。
IEEE 標準詞匯表(1990 年版)定義了這三類活動:
復審
一次正式的會議,其間把工件或工件集展示給用戶、客戶或其他相關各方,以獲得他們的意見或贊同。
檢查
一種正式的評估方法,由非制作者本人的個人或小組詳細檢查工件,以查明是否有錯誤、是否違反開發標準、以及是否存在其他問題。
走查
一個復審過程,由某個開發人員領導一個或多個開發團隊成員對他(或她)所編寫的一段工件進行檢查;同時,由其他成員針對技術、風格、可能的錯誤、是否違反開發標準和其他問題提出問題并發表意見。
延伸閱讀
文章來源于領測軟件測試網 http://www.k11sc111.com/