軟件質量保證-課件_第1頁
軟件質量保證-課件_第2頁
軟件質量保證-課件_第3頁
軟件質量保證-課件_第4頁
軟件質量保證-課件_第5頁
已閱讀5頁,還剩74頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第二部分

第8章軟件質量保證1PPT課件第8章軟件質量管理

8.1

質量的概念

8.1.1

如何描述質量詞典對質量的定義是:①典型的或本質的特征;②事物固有的或區別于其他事物的特征或本質;③優良或出色的程度。2PPT課件CMM對質量的定義是:

①一個系統、組件或過程符合特定需求的程度;

②一個系統、組件或過程符合客戶或用戶的要求或期望的程度。3PPT課件

可以這樣理解軟件質量:

軟件質量是許多質量屬性的綜合體現,各種質量屬性反映了軟件質量的方方面面。 人們通過改善軟件的各種質量屬性,從而提高軟件的整體質量.4PPT課件

軟件的質量屬性很多,如:正確性、精確性,健壯性、可靠性、容錯性、性能、易用性、安全性、可擴展性、可復用性、兼容性、可移植性、可測試性、可維護性、靈活性等。5PPT課件8.1.2十大軟件質量因素 有必要對質量屬性做些分類和整合。質量屬性可分為兩大類: “功能性”與“非功能性”, 后者有時也稱為“能力”(Capability)。功能性質量因素:正確性,健壯性,可靠性非功能性質量因素:性能,易用性,清晰性,安全性,可擴展性,兼容性,可移植性6PPT課件8.1.3軟件質量要素什么是軟件質量要素?(1)從技術角度講,對軟件整體質量影響最大的那些質量屬性才是質量要素;(2)從商業角度講,客戶最關心的、能成為賣點的質量屬性才是質量要素。7PPT課件在根據對象的可度量特征考察一個對象時,可以有以下兩種不同的質量:設計質量和符合質量。設計質量:是指設計者為一件產品規定的特征。材料等級、耐久性、及性能的規約都屬于設計質量。如果產品能夠依照規約進行制造,則產品的設計質量便會提高。符合質量:是指在制造過程中符合設計規格的程度。同樣,符合程度越高,符合質量也就越高。在軟件開發時,設計質量包括系統的需求、規約和設計。符合質量則主要關注實現問題。如果實現了符合設計、得到的系統滿足系統需求和性能目標,則符合質量較高.8PPT課件

對于一個特定的軟件而言,我們要首先判斷: 什么是質量要素,才能給出提高質量的具體措施;

而不是一股腦地想把所有的質量屬性都做好;

否則不僅做不好,還可能得不償失。9PPT課件

1)正確性正確性是指軟件按照需求正確執行任務的能力。“正確性”的語義涵蓋了“精確性”。正確性無疑是第一重要的軟件質量屬性。技術評審和測試的第一關都是檢查工作成果的正確性。機器不會主動欺騙人,軟件運行出錯通常都是人造成的,所以不要找借口埋怨機器有毛病。

10PPT課件

2)健壯性

健壯性是指在異常情況下,軟件能夠正常運行的能力。正確性描述軟件在需求范圍之內的行為,而健壯性描述軟件在需求范圍之外的行為。開發者往往把異常情況錯當成正常情況而不作處理,結果降低了健壯性。11PPT課件

健壯性有兩層含義:一是容錯能力,二是恢復能力。從語義上理解,恢復不及容錯那么健壯。Unix容錯能力很強,可惜不好用。Windows容錯能力較差,但是恢復能力很好,而且很好用。占了90%的操作系統市場。 用戶才不管正確性與健壯性的區別,反正軟件出了差錯都是開發方的錯。 所以提高軟件的健壯性也是開發者的義務。12PPT課件3)可靠性可靠性是指在一定的環境下,在給定的時間內,系統不發生故障的概率。可靠性本來是硬件領域的術語。比如某個電子設備在剛開始工作時挺好的,但由于器件在工作中其物理性質會發生變化(如發熱),慢慢地系統的功能或性能就會失常。所以一個從設計到生產完全正確的硬件系統,在工作中未必就是可靠的。13PPT課件

軟件在運行時不會發生物理性質的變化,人們常以為如果軟件的某個功能是正確的,那么它一輩子都是正確的。可是我們無法對軟件進行徹底地測試,無法根除軟件中潛在的錯誤。平時軟件運行得好好的,說不準哪一天就不正常了,如有千年等一回的“千年蟲”問題,司空見慣的“內存泄露”、“誤差累積”問題等等。14PPT課件軟件可靠性分析通常采用統計方法,遺憾的是目前可供第一線開發人員使用的成果很少見,大多數文章限于理論研究。口語中的可靠性含義寬泛,幾乎囊括了正確性、健壯性。只要人們發現系統有毛病,便歸結為可靠性差。從專業角度講,這種說法是確切的。15PPT課件

軟件可靠性問題主要是在編程時候埋下的禍害(很難測試出來),應當提倡規范化程序設計,預防可靠性禍害。時隱時現的錯誤一般都屬于可靠性問題,糾錯的代價很高。例如當維護人員十萬火急地趕到現場時,錯誤消失了;等維護人員回家后,錯誤又出現了。16PPT課件可靠性的簡單度量是“平均失敗間隔時間”(MTBF),其中:MTBF=MTTF+MTTR(MTTF和MTTR分別是“平均失敗時間”和“平均修復時間”的首字母縮寫)。許多研究人員認為MTBF是一個遠比“缺陷數/KLOC”更為有用的度量指標。簡而言之,最終用戶關心的是失敗,而不是總缺陷數。由于一個程序中包含的每個缺陷所具有的失敗率不同,總缺陷數難以表示系統的可靠性.17PPT課件我們必須開發一個“可用性”度量。軟件可用性是指在某個給定時間點上程序能夠按照需求執行的概率。其定義為:可用性=MTTF/(MTTF+MTTR)×100%MTBF可靠性度量對MTTF和MTTR同樣敏感。(MTTF和MTTR分別是“平均失敗時間”和“平均修復時間”的首字母縮寫)。而可用性度量在某種程度上對MTTR較為敏感,MTTR是軟件可維護性的間接度量。18PPT課件

4)性能性能通常是指軟件的“時間-空間”效率,而不僅是指軟件的運行速度。人們總希望軟件的運行速度高些,并且占用資源少些。既要馬兒跑得快,又要馬兒吃的少。19PPT課件性能優化的關鍵工作是找出限制性能的“瓶頸”,不要在無關痛癢的地方瞎忙乎。程序員可以通過優化數據結構、算法和代碼來提高軟件的性能。例如數據庫程序的優化。算法復雜度分析是很好的方法,可以達到“未卜先知”的功效。20PPT課件性能優化就好像從海綿里擠水一樣,你不擠,水就不出來,你越擠海綿越干。有些程序員認為現在的計算機不僅速度越來越高,而且內存越來越大,因此軟件性能優化的必要性下降了。這種看法是不對的,殊不知隨著機器的升級,軟件系統也越來越龐大了和復雜了,性能優化仍然大有必要。21PPT課件5)易用性易用性是指用戶使用軟件的容易程度。現代人的生活節奏快,干啥事都想圖個方便。所以把易用性作為重要的質量屬性對待無可非議。

22PPT課件

軟件的易用性要讓用戶來評價。當用戶真的感到軟件很好用時,一股溫暖的感覺油然而生,于是就用“界面友好”、“方便易用”等詞來評價軟件產品。23PPT課件6)清晰性清晰意味著所有的工作成果易讀、易理解,可以提高團隊開發效率,降低維護代價。開發人員只有在自己思路清晰的時候才可能寫出讓別人易讀、易理解的程序和文檔。可理解的東西通常是簡潔的。一個原始問題可能很復雜,但高水平的人就能夠把軟件系統設計得很簡潔。24PPT課件

7)安全性

這里安全性是指信息安全,英文是Security而不是Safety。安全性是指防止系統被非法入侵的能力,既屬于技術問題又屬于管理問題。信息安全是一門比較深奧的學問,其發展是建立在正義與邪惡的斗爭之上。25PPT課件開發商和客戶愿意為提高安全性而投入的資金是有限的,他們要考慮值不值得。

究竟什么樣的安全性是令人滿意的呢?

一般地,如果黑客為非法入侵花費的代價(考慮時間、費用、風險等因素)高于得到的好處,那么這樣的系統可以認為是安全的。對于普通軟件,并不一點要追求很高的安全性,也不能完全忽視安全性,要先分析黑客行為。

26PPT課件8)可擴展性

可擴展性反映軟件適應“變化”的能力。在軟件開發過程中,“變化”是司空見慣的事情,如需求、設計的變化,算法的改進,程序的變化等等。由于軟件是“軟”的,是否它天生就容易修改以適應“變化”?關鍵要看軟件的規模和復雜性。27PPT課件如果軟件規模很小,問題很簡單,那么修改起來的確比較容易,這時就無所謂“可擴展性”了。要是軟件的代碼只有100行,那么“軟件工程”也就用不著了。如果軟件規模很大,問題很復雜,倘若軟件的可擴展性不好,那么該軟件就像用卡片造成的房子,抽出或者塞進去一張卡片都有可能使房子倒塌。28PPT課件現代軟件產品通常采用“增量開發模式”,不斷推出新版本,獲取增值利潤。可擴展性越來越重要。可擴展性是系統設計階段重點考慮的質量屬性。

現代軟件產品通常采用“增量開發模式”,不斷推出新版本,獲取增值利潤。可擴展性越來越重要。 可擴展性是系統設計階段重點考慮的質量屬性。29PPT課件

談到軟件的可擴展性,開發人員首先想到的是怎樣提高可擴展性,于是努力去設計很好的體系結構來提高可擴展性,卻不考慮該不該做這件事。 從商業角度考慮,如果某個軟件將不斷地推出新版本,那么可擴展性很重要。但是如果軟件永遠都不會有下個版本(一次性買賣),那么根本無需提高可擴展性,何必自找苦吃呢!30PPT課件9)兼容性兼容性是指不同產品(或者新老產品)相互交換信息的能力。例如兩個字處理軟件的文件格式兼容,那么它們都可以操作對方的文件,這種能力對用戶很有好處。兼容性的商業規則:弱者設法與強者兼容,否則無容身之地;強者應當避免被兼容,否則市場將被瓜分。31PPT課件10)可移植性軟件的可移植性指的是軟件不經修改或稍加修改就可以運行于不同軟硬件環境(CPU、OS和編譯器)的能力,主要體現為代碼的可移植性。編程語言越低級,用它編寫的程序越難移植,反之則越容易。這是因為,不同的硬件體系結構(例如IntelCPU和SPARCCPU)使用不同的指令集和字長,而OS和編譯器可以屏蔽這種差異,所以高級語言的可移植性更好32PPT課件Java程序號稱“一次編譯,到處運行”,具有100%的可移植性。為了提高Java程序的性能,最新的Java標準允許人們使用一些與平臺相關的優化技術,這樣優化后的Java程序雖然不能“一次編譯,到處運行”,仍然能夠“一次編程,到處編譯”。33PPT課件軟件設計時應該將“設備相關程序”與“設備無關程序”分開,將“功能模塊”與“用戶界面”分開。34PPT課件8.1.4質量控制“質量控制”是為了保證每件工作產品都滿足對它的需求而應用于整個開發周期中的一系列審查、復審和測試。質量控制在創建工作產品的過程中包括一個反饋循環。度量和反饋相結合,使得能夠在得到的工作產品不能滿足其規約時調整開發過程。這種方法將質量控制視為整個制造過程的一部分。質量控制中的關鍵概念之一是所有工作產品都具有定義好的和可度量的規約,可以將每個過程的產品與這一規約進行比較。反饋循環的引入對于最小化產生的缺陷至關重要。35PPT課件8.1.5質量保證“質量保證”由管理層的審計和報告功能構成。質量保證的目標是為管理層提供有關軟件項目的過程和產品的質量信息所需的數據,從而獲得產品質量是否符合預定目標的一定的可見性。質量保證包括評審和審核產品及其活動,以驗證其是否遵守應用規程和標準.如果質量保證所提供的數據發現了問題,則管理層負責解決這一問題,并為解決質量問題分配所需的資源。36PPT課件8.1.6質量的成本質量成本包括所有由質量工作或者進行與質量有關的活動所導致的成本。質量成本研究的開展能夠為當前質量成本設定基線,標識降低質量成本的機會,并提供一種規范化的比較基礎。質量成本可以被劃分為與預防、鑒定及失敗相關的成本。37PPT課件“預防成本”包括:·質量計劃。·正式技術復審。·測試設備。·培訓。“鑒定成本”包括為深入了解“首次通過”各個過程時產品的狀態而開展的那些活動。鑒定成本的例子如下:·過程內和過程間審查。·設備校準和維護。·測試。38PPT課件“失敗成本”是指如果在將產品交付給客戶之前已經消除了缺陷時就不會存在的成本。失敗成本可以進一步劃分為內部失敗成本和外部失敗成本。“內部失敗成本”是指在產品交付之前發現錯誤而引發的成本。內部失敗成本包括:·返工。·修復。·失敗模式分析。“外部失敗成本”是指與產品交付給客戶之后所發現的缺陷相關的成本。外部失敗成本的例子如下:·解決客戶的抱怨。·退換產品。·求助電話支持。·保修工作。39PPT課件8.2質量運動全面質量管理(TQM)第一步是指一個連續的過程改進系統。目標是開發一個看的見的、可重復的和可度量的過程。第二步將檢查影響過程的無形因素,并優化這些因素對過程的影響。第三步關注產品的用戶,通過檢查用戶使用產品的方式,而導致產品本身的改進和(潛在地)改進產品的生產過程。第四步將管理者的注意力從當前的產品上移開并拓寬。這是一個面向商業的步驟,通過觀察產品在市場上的用途,尋找產品在可以識別的相關領域中的發展機會。40PPT課件

8.2.1SQA活動SQA小組的職責是輔助軟件工程小組得到高質量的最終產品.軟件質量保證的措施CMM對軟件質量保證是這樣描述的:軟件質量保證(QualityAssurance)的目的是為管理者提供有關軟件過程和產品的適當的可視性。它包括評審和審核軟件產品及其活動,以驗證其是否遵守既定的規程和標準,并向有關負責人匯報評審和審核的結果。8.3.2SQA活動41PPT課件

簡而言之,質量保證活動就是檢查軟件項目的“工作過程和工作成果”是否符合既定的規范。

質量保證(QualityAssurance,QA)是CMM和ISO9001最為推崇的改善軟件質量的方法。

42PPT課件

過程質量與產品質量存在某種程度的因果關系,

通常“好的過程”產生“好的產品”,而“差的過程”將產生“差的產品”。

假設企業已經制定了軟件過程規范,如果質量保證人員發現某些項目的“工作過程以及工作成果”不符合既定的規范,那么馬上可以斷定產品存在缺陷。

反之,如果質量保證人員沒有發現不符合既定規范的東西,那么也可以斷定產品是合格的。43PPT課件

符合既定規范的東西并不意味著質量一定合格,僅靠規范無法識別出產品中可能存在的大量缺陷。一般而言,質量保證的技術含量是比較低,只能檢查出膚淺的缺陷,不能對付有技術難度的缺陷。所以單獨的“質量保證”其實并不能“保證質量”。

質量保證對于保證質量而言只是必要的手段,而不是充分的手段。

44PPT課件軟件質量管理是充滿爭論的話題。被人們奉為軟件質量管理圣經的CMM和ISO9001似乎并不十分奏效,現實和理想之間的差距太大。經典軟件工程教科書以及CMM和ISO9001一般拋開商業目標談質量管理,本末倒置。世界上還沒有萬能的軟件質量管理圣經,所以要辨證看待CMM和ISO9000.45PPT課件8.2.2商業目標決定質量目標重視軟件質量是應該的,但是“質量越高越好”并不是普適的真理。只有極少數軟件應該追求“零缺陷”,對絕大多數軟件而言,商業目標決定了質量目標,而不該把質量目標凌駕于商業目標之上。46PPT課件重要的理念:商業目標決定質量目標。

提高軟件質量的最終目的是為了贏利,而不是創造完美無缺的產品。 因此對于普通商業軟件而言,并不是“質量越高越好”,而是恰好讓廣大用戶滿意,并且將提高質量所付出的代價控制在預算之內。47PPT課件

企業的根本目標是為了獲取盡可能多的利潤,而不是生產完美無缺的產品。 如果企業銷售出去的軟件的質量比較差,輕則挨罵,重則被退貨甚至被索賠,

因此,為了提高用戶對產品的滿意度,企業必須提高產品的質量。 但是企業不可能為了追求完美的質量而不惜一切代價,當企業為提高質量所付出的代價超過銷售收益時,這個產品已經沒有商業價值了,還不如不開發。48PPT課件

企業必須權衡質量、效率和成本,產品質量太低了或者太高了,都不利于企業獲取利潤。 企業理想的質量目標不是“零缺陷”,而是恰好讓廣大用戶滿意,并且將提高質量所付出的代價控制在預算之內。49PPT課件質量的死對頭是缺陷(defect,bug…),缺陷是混在產品中的人們不喜歡、不想要的東西,它對產品沒有好處只有壞處。缺陷越多質量越低,缺陷越少質量越高,提高軟件質量的基本手段是消除軟件缺陷。8.3軟件缺陷的影響50PPT課件盡管發現了數以百計的不同類型的錯誤,但是所有錯誤都可以追溯到下述原因中的一個或幾個:·說明不完整或說明錯誤(IES)·與客戶通信中所產生的誤解(MCC)·故意與說明偏離(IDS)·違反編程標準(VPS)·數據表示有錯(EDR)·模塊接口不一致(IMI)·設計邏輯有錯(EDL)·不完整或錯誤的測試(IET)·不準確或不完整的文檔(IID)·將設計翻譯成程序設計語言中的錯誤(PLT)·不清晰或不一致的人機界面(HCI)·雜項(MIS)51PPT課件52PPT課件

消除軟件缺陷的三種方式提高軟件質量最好的辦法是:在開發過程中有效地防止工作成果產生缺陷,將高質量內建于開發過程之中。 主要措施是“不斷地提高技術水平,不斷地提高規范化水平”,其實就是練內功,通稱為“軟件過程改進”。

53PPT課件

在開發軟件的時候,即使人們的技術水平很高,并且嚴格遵守規范,但是人非機器,總是會犯錯誤的,因此無法完全避免軟件中的缺陷。當工作成果剛剛產生時馬上進行質量檢查,及時找出并消除工作成果中的缺陷。這種方式效果比較好,人們一般都能學會。最常用的方法是技術評審、軟件測試和過程檢查,已經被企業廣泛采用并取得了成效。54PPT課件

可在現實之中,大多數軟件企業的典型現象是:在軟件交付之前,沒有及時消除缺陷。當軟件交付給用戶后,用著用著就出錯了,趕緊請開發者來補救。55PPT課件

質量人員的主要職責:1)負責制定質量計劃(很重要但工作量較少),2)負責過程檢查(類似于CMM中的質量保證),約占個人工作量的20%;3)參與技術評審,約占個人工作量的30%;4)參與軟件測試,約占個人工作量的30%;5)參與軟件過程改進(面向整個機構),約占個人工作量的20%;56PPT課件

質量管理計劃就是為了實現質量目標的計劃。而質量目標則是由商業目標決定的。 開發軟件產品的最終目的是為了賺錢,所以人們為提高軟件質量所付出的代價是有上限的, 項目負責人當然希望代價越低越好。質量管理計劃是全面質量管理的行動綱領。

8.4

制定質量管理計劃57PPT課件

誰制定質量管理計劃?

由項目核心成員和質量人員共同協商制定,主要由質量人員起草,由項目經理審批即可。58PPT課件質量管理計劃的主要:1.質量要素分析

2.質量目標

3.人員與職責

4.過程檢查計劃

5.技術評審計劃

6.軟件測試計劃

7.缺陷跟蹤工具

8.審批意見

59PPT課件8.5.1概念技術評審(TechnicalReview,TR)的目的是盡早地發現工作成果中的缺陷,并幫助開發人員及時消除缺陷,從而有效地提高產品的質量。技術評審最初是由IBM公司為了提高軟件質量和提高程序員生產率而倡導的。技術評審方法已經被業界廣泛采用并收到了很好的效果,它被普遍認為是軟件開發的最佳實踐之一。

8.5

技術評審60PPT課件技術評審的主要好處有:通過消除工作成果的缺陷而提高產品的質量;技術評審可以在任何開發階段執行,不必等到軟件可以運行之際,越早消除缺陷就越能降低開發成本;開發人員能夠及時地得到同行專家的幫助和指導,無疑會加深對工作成果的理解,更好地預防缺陷,一定程度上提高了開發生產率。61PPT課件技術評審有兩種基本類型:正式技術評審(FTR)。FTR比較嚴格,需要舉行評審會議,參加評審會議的人員比較多。非正式技術評審(ITR)。ITR的形式比較靈活,通常在同伴之間開展,不必舉行評審會議,評審人員比較少。

62PPT課件正式技術復審(FTR)是一種由軟件工程師進行的軟件質量保證活動。FTR的目標是:(1)在軟件的任何一種表示形式中發現功能、邏輯或實現的錯誤;(2)證實經過復審的軟件的確滿足需求;(3)保證軟件的表示符合預定義的標準;(4)得到以一種一致的方式開發的軟件;(5)使項目更易于管理。由于FTR的進行使大量人員對軟件系統中原本并不熟悉的部分更為了解,起到了提高項目連續性和培訓后備人員的作用。63PPT課件FTR實際上是一類復審方式,包括:“走查”(Walkthrough);“審查”(Inspection);“輪查”(Round-robinReview)以及其他軟件小組的技術評估。每次FTR都以會議形式進行,只有經過適當的計劃、控制和參與,FTR才能獲得成功。64PPT課件不論選擇何種FTR形式,每個復審會議都應該遵守下面的約束:·復審會議(通常)應該在3到5個人之間進行。·應該進行提前準備,但是每人占用工作時間應該少于2小時。·復審會議時間應該不超過2小時。65PPT課件復審總結報告將回答以下問題:1.復審什么?2.由誰復審?3.發現了什么,結論是什么?66PPT課件8.6正式技術評審的流程67PPT課件

技術評審和軟件測試的目的都是為了消除軟件的缺陷,兩者的主要區別是:前者無需運行軟件,評審人員和作者把工作成果擺放在桌面上討論;而后者一定要運行軟件來查找缺陷。技術評審在軟件測試之前執行,尤其是在需求開發和系統設計階段。相比而言,軟件測試的工作量通常比技術評審的大,發現的缺陷也更多。

8.7技術評審與軟件測試68PPT課件在制定質量計劃的時候,已經確定了本項目的主要測試活動、時間和負責人,之后再考慮軟件測試的詳細計劃和測試用例。

如果機構沒有專職的軟件測試人員的話,那么開發人員可以兼職做測試工作。當項目開發到后期,過程檢查和技術評審都已經沒有多少意義了,開發小組急需有人幫助他們測試軟件,如果質量人員參與軟件測試,對開發小組而言簡直就是“雪中送炭”。69PPT課件

強調:質量人員一定要參與軟件測試(大約占其工作量的30%左右),只有這樣他才能深入地了解軟件的質量問題,而且給予開發小組強有力地幫助。

70PPT課件CMM和ISO9001所述的軟件質量保證,實質就是過程檢查,即檢查軟件項目的“工作過程和工作成果”

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論