天天看點

軟體設計師19-系統開發和運作02軟體測試與維護動态測試靜态測試軟體維護軟體品質

軟體設計師19-系統開發和運作02軟體測試與維護動态測試靜态測試軟體維護軟體品質

軟體測試與維護

動态測試

1 黑盒測試/功能測試/資料驅動測試

1)要求:對接口測試,給輸入看輸出是否正确、不需了解内部

2)常用方法

1)等價類劃分(對一個用例劃分不同情況,每種情況測試一次(成績優良))
2)邊界值分析(在邊界兩邊選值測試(及格與不及格))
           

3)錯誤推測(根據測試經驗,選測試用例測試)

4)因果圖

2 白盒測試/結構測試/透明盒測試/邏輯功能測試/基于代碼測試

1)要求:測試人員了解程式内部結構和處理過程,對邏輯路經測試,檢查内部控制結構和資料結構是否有錯、是否達到預期運作狀态

2)用例設計方法(發現錯誤的能力由弱變強):

1)語句覆寫:每句語句至少執行一次(如if else都行執行過就ok,不考慮if不通過的情況)

2)判定覆寫:每個判定分支至少執行一次(把一個判斷語句看作一個整體,使每個分支的值都被至少執行一次)

3)條件覆寫:每個判定的每個條件(滿足語句覆寫,取分支各個表達式的兩個邊界值,使這兩種值都被至少執行過一次即可)應取到各種可能的值

4)判定/條件覆寫:滿足判定覆寫、條件覆寫

5)條件組合覆寫:判定中各條件的每一種組合至少出現一次(每個分支中的一/多個條件自由組合得到多個組合,使這些組合都執行一次)

6)路徑覆寫:程式中每一條可能的路徑(一條語句到另一條語句/重點)至少執行一次

3 灰盒測試

1)概念:介于白盒測試與黑盒測試之間的測試

2)關注:輸入正确性行及内部表現(關注較淺)

3)适用:在系統元件的協同性環境中評價應用軟體的設計

靜态測試

人為觀察、分析發現錯誤(不運作)

1 桌前檢查

1)人員:程式員檢查

2)任務:對源程式進行分析、檢驗、并補充文檔

3)目的:發現程式中錯誤

2 代碼審查

1)人員:若幹程式員和測試員組成

2)流程:發各種文檔規範、召開程式審查會(解釋邏輯、對照錯誤檢查表提出問題、讨論修改)

3 代碼走查

1)人員:程式員、測試人員

2)流程:發材料并閱讀程式、與會者在腦中運作,找出錯誤、不規範

軟體維護

占軟體生命周期的60%-80%

1 軟體可維護性:維護人員對該軟體進行維護的難易程度

2 衡量因素:可了解性、可測試性、可修改性

3 類型

1)改正性維護(20%):開發階段已發生而系統測試階段尚未發現的錯誤

2)适應性維護(25%):軟體被動适應環境(如android ios)

3)完善性維護(50%):為擴充功能和改善性能而進行的修改

4)預防性維護(5%):為了改進軟體的可靠性和可維護性,為了适應未來的變化,主動做出的變化

4 影響維護工作量的因素

系統大小、系統設計語言、系統年齡、資料庫技術的應用、先進的軟體開發技術

軟體品質

1 概念:軟體與使用者需求的一直程度

2 特點

1)使用者需求是度量軟體品質的基礎(應不少不多)

2)制定的标準定義了一組指導軟體開發的準則

3)沒有顯示描述的隐含需求(預設滿足的要求)

3 度量

1)ISO/IEC9126軟體品質模型

3個層次:品質特性、品質子特性、度量名額

軟體設計師19-系統開發和運作02軟體測試與維護動态測試靜态測試軟體維護軟體品質

*1 功能性(滿足功能及其性質)

适合性(有此功能)、準确性(準确完成功能)、互操作性(共享)、依從性(符合法規、規範)、安全性(未經授權,不可通路)

2 可靠性(規定時間和條件下,性能保持在标準之上)

成熟性(軟體故障引起失效的品讀有關)、容錯性(操作錯誤,正常工作)、可恢複性(出錯後回複時間)

3 易用性(大衆皆可)

4 效率:時間特性:響應、處理時間;資源特性:使用的資源數量、種類

5 可維護性:易分析性:易了解錯誤原因;修改性:改後基本對,而不是改一處錯全部

6 可移植性:适應性:适應多種環境;可替代性:替代其他軟體的難易程度

*

4 軟體品質保證:為保證軟體系統充分滿足使用者要求的品質而進行有計劃、有組織的活動,目的:生産高品質軟體

5 手段:

1)開發初期制定品質保證計劃

2)開發前標明制定開發标準、開發規範

3)選擇分析設計方法和工具,形成高品質分析模型 設計模型

4)嚴格執行階段評審,及時發現問題

5)進行階段測試

6)嚴格執行變更控制流程

7)有完整階段文檔

6 CMM(軟體能力成熟度模型)

初始級:軟體過程無序、軟體管理反應式、成就取決于個人

可重複級:建立了基本項目管理過程、制定了規章制度、依靠經驗取得成功

已定義級:将軟體管理和工程文檔化、标準化,開發過程受控

已管理級:軟體過程和産品品質可度量,對軟體過程和産品有定量的了解與控制

優化級:過程的量化回報和先進的思想、新技術使過程持續不斷改進

7 CMMI(軟體能力成熟度內建模型)

初始級、可管理級、嚴格定義級、定量管理級、優化級

軟體項目管理

1 内容:範圍管理、進度管理、費用管理、品質管理、整體管理、人力資源管理、溝通管理、風險管理、采購管理

2 軟體項目估算

1)軟體規模的估算

1)LOC估算法(代碼行估算法)

将項目劃分為小子產品,通過**經驗**估算軟體的代碼行數
           

2)FP估算(功能點估算)

FP(功能點)是一種衡量工作量大小的機關

 FP=資訊處理規模*技術複雜度

   資訊處理規模:外部輸入數、外部輸出數、外部查詢數、内部邏輯檔案數、外部接口檔案數

   技術複雜度=0.65(基礎)+調節因子
           

2)軟體工作量的估算

COCOMO模型,三級

1)基本COCOMO模型:用已估算出的代碼行數(LOC)為自變量的經驗函數計算軟體開發工作量(人*天)

2)中間COCOMO模型:基本模型的基礎上,再用涉及産品、人員等的影響因素調整工作量的估算。

3)詳細COCOMO模型:在中間模型基礎上,分層(子產品層、子系統層、系統層)估算

3)成本估算

3 風險管理

對項目風險從識别到分析乃至采取應對措施等一系列過程

1)編制風險管理計劃

2)風險識别(找到存在的風險)

發現風險方法:頭腦風暴法(記錄每人提出風險)、專家評估法(專家指出)、風險檢查表(與表一一對應檢查)、假設分析(假設存在看是否有)

風險類别:需求風險(需求變更)、技術風險(是否擁有技術及其實作能力)、團隊風險、關鍵人員風險(核心人員不可流失)、預算風險(少算/多算)、範圍風險(範圍變更)

3)定性風險分析(發生機率、影響程度)

4)定量風險分析(3的具化)

5)風險應對計劃的編制

6)風險跟蹤和監控

4 項目計劃編排的方法與技術

1)計劃評審技術(PERT)

完成時間估算(各個階段計算後求和):

1)樂觀估算:一切順利的情況下完成某項工作的時間

2)最可能時間:正常情況完成某項工作(把正常情況下的出錯囊括在内)的時間

3)悲觀時間:最不利的情況下,完成某項工作的時間

開方就是方差開方

軟體設計師19-系統開發和運作02軟體測試與維護動态測試靜态測試軟體維護軟體品質

2)甘特圖/橫道圖

以橫線表示活動起止時間

優點:簡單、明了、直覺、易于編制、小型項目或高層了解

缺點:不能表達複雜的邏輯關系,不能進行定量計算、不能突出關鍵活動

3)關鍵路徑法(重點)(CPM)

1)概念:借助網絡圖和各活動所需時間(估計值),計算每一活動最早/遲開始、結束時間

2)核心:将工作分解結構(WBS)分解的活動按邏輯關系加以整合,統籌計算出整個項目的工期和關鍵路徑

3)每個活動參數

最早開始時間(ES)

最早結束時間(EF)EF=ES+工期估計

最遲結束時間(LF)

最遲開始時間(LS) LS=LF-工期估計

4)兩個規則

1)某項活動的最早開始時間必須相同或晚于直接指向這個活動的最早結束時間的最晚時間(通向某個的所有路徑中最長路徑、正向推)

2)某項活動最遲結束時間必須相同或早于該活動直接指向的所有活動最遲開始時間的最早時間(反向推,一個點指向兩個點,指向其中開始時間早者)

5)總時差

一項工作在不影響總工期的前提下所具有的**機動時間/松弛時間**

 總時差=該工作最遲完工時間-該工作最早完工時間

 總時差=該工作最遲開工時間-該工作最早開工時間
           

6)關鍵路徑

1)最早開始時間和最晚開始時間相等的活動成為關鍵活動

2)關鍵活動串聯起來成為關鍵路徑

3)關鍵路徑長度即為項目的工期

1)總持續時間最長的稱為關鍵線路

2)總時差最小的工作組成的線路為關鍵線路
           

7)自由時差

一項工作在不影響其緊後工作最早開始時間的條件下可利用的機動時間=該工作的緊後工作最早開工時間-該工作最早完工時間