嵌入式軟件工程化開發方法簡介-課件_第1頁
嵌入式軟件工程化開發方法簡介-課件_第2頁
嵌入式軟件工程化開發方法簡介-課件_第3頁
嵌入式軟件工程化開發方法簡介-課件_第4頁
嵌入式軟件工程化開發方法簡介-課件_第5頁
已閱讀5頁,還剩126頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

第12講嵌入式軟件工程化

開發方法簡介2上海微小衛星工程中心2014.4.101第12講上海微小衛星工程中心11.軟件工程

2.軟件開發模型3.軟件開發文檔4.軟件開發方法5.軟件測試6.軟件質量特性和可靠性技術21.軟件工程2.軟件開發模型3.軟件開發文檔4.軟件開發精品資料3精品資料3你怎么稱呼老師?如果老師最后沒有總結一節課的重點的難點,你是否會認為老師的教學方法需要改進?你所經歷的課堂,是講座式還是討論式?教師的教鞭“不怕太陽曬,也不怕那風雨狂,只怕先生罵我笨,沒有學問無顏見爹娘……”“太陽當空照,花兒對我笑,小鳥說早早早……”44軟件測試5軟件測試5硬件的故障率曲線(浴缸曲線)6硬件的故障率曲線(浴缸曲線)6軟件的故障率曲線(理想情況下)7軟件的故障率曲線(理想情況下)7軟件的故障率曲線(實際情況下)8軟件的故障率曲線(實際情況下)8軟件開發工作量分配比例40%~50%10%~20%9軟件開發工作量分配比例40%~50%10%~20%費用分配比例55%~70%10費用分配比例55%~70%100引子軟件測試:成也蕭何,敗也蕭何美國航天飛機研制成功

IBM的軟件系統功不可沒阿麗亞娜5運載火箭首次飛行失敗?軟件錯誤是失敗的重要原因110引子軟件測試:成也蕭何,敗也蕭何110引子正反兩個例子中的共同因素美國航天飛機飛行軟件研制總結:認真實施軟件工程特別加強軟件檢測阿麗亞娜5飛行故障調查報告:“信息的丟失是由于SRI(備份慣性參考系統)軟件中技術指標和設計錯誤引起的。......測試能查出潛在的故障。120引子正反兩個例子中的共同因素12軟件測試軟件測試的重要性軟件測試的基本概念軟件測試的工作內容軟件測試的基本技術和策略軟件測試階段軟件測試流程怎樣做好軟件測試13軟件測試軟件測試的重要性131軟件測試的重要性1.1粗劣的軟件測試——可怕的后果系統不能完成任務早期星球大戰計劃中,對空防御系統曾把月亮當成洲際導彈目標來攻擊火星探測運載火箭因控制程序中錯寫逗號而爆炸殘留錯誤的影響從電話撥號無響應到系統崩潰使軟件開發周期延長,費用增加商業影響141軟件測試的重要性1.1粗劣的軟件測試——可怕的后果14如果沒有充分地進行軟件測試,可能會:明天全面發布新軟件!

啊!?15如果沒有充分地進行軟件測試,可能會:明天全面發布新軟件!啊而系統運行時又可能這樣:千萬別掉下去!16而系統運行時又可能這樣:千萬別掉下去!16

1.2現代航天系統要求

——高、精、尖系統自動化程度不斷提高系統規模更大系統復雜性更高微小的錯誤可能導致災難性結果大量的嵌入式軟件應用1軟件測試的重要性171.2現代航天系統要求1軟件測試的重要性17

1.3當前的軟件開發方法——免疫力低軟件是一種特殊的產品開發方法學因素人不能避免犯錯誤軟件開發工具不完備1軟件測試的重要性181.3當前的軟件開發方法——免疫力低1軟件測試的重

1.4有限的系統開發資源——時間、金錢1軟件測試的重要性測試和集成45%編碼20%需求10%規格說明10%設計15%191.4有限的系統開發資源——時間、金錢1軟件測試的

1.5軟件測試——保證軟件質量的重要手段系統的、嚴密的軟件測試能最大限度的發現軟件中的錯誤,減少軟件中殘留的錯誤通過軟件測試可以驗證軟件功能、性能、容量、約束、限制等指標滿足規定的需求軟件可靠性測試可得到軟件可靠性指標軟件測試為軟件質量定量評定提供依據高層次的軟件測試可以發現系統級錯誤1軟件測試的重要性201.5軟件測試——保證軟件質量的重要手段1軟件測試

1.6軟件測試——

不是“芝麻,開門!”完全的軟件測試是不現實的軟件測試不能保證發現軟件中所有的錯誤軟件測試不能取代其它質量保證手段軟件測試:巨大的效益和艱苦的工作并存1軟件測試的重要性211.6軟件測試——1軟件測試的重要性21

一個例子——程序#include<stdio.h>main(){inta,b,c;scanf(?d,%d?&a,&b);c=a+b;printf(揷=%d?c);return(0);}1軟件測試的重要性22一個例子——程序1軟件測試的重要性22

一個例子——分析在計算機語言中,任何預定義的類型都是有值域的,在計算中應避免變量的取值超出其類型規定的值域,C的值域應超過A、B的值域。更深一層考慮,應該有全面、準確、嚴格的需求規格說明,這是設計、編程、測試正確進行的基礎。1軟件測試的重要性23一個例子——分析1軟件測試的重要性23軟件測試軟件測試的重要性軟件測試的基本概念軟件測試的工作內容軟件測試的基本技術和策略軟件測試階段軟件測試流程怎樣做好軟件測試24軟件測試軟件測試的重要性242軟件測試的基本概念2.1GB/T11457-1995的定義由人工或自動方法來執行或評價系統或系統部件的過程,以驗證它是否滿足規定的需求;或識別出期望的結果和實際結果之間有無差別.252軟件測試的基本概念2.1GB/T11457-19952軟件測試的基本概念2.2軟件測試認識的變遷和發展歷史上的一些錯誤認識測試和調試沒有什么區別,除了支持調試外,測試沒有別的目的(錯誤)測試的目的在于證明軟件正確(錯誤)當前軟件測試工作中的認識測試的目的在于證明軟件錯誤(實際)測試的目的不是證明任何事情,僅是為了將已察覺的故障的風險程度減小到一個可接受的值(度量)測試是檢驗軟件是否滿足規定的需求(全面)262軟件測試的基本概念2.2軟件測試認識的變遷和發展26

軟件測試認識的變遷和發展(續)軟件測試的發展方向工具化:測試用例自動化專業化2軟件測試的基本概念27軟件測試認識的變遷和發展(續)2軟件測試的基本概念27

2.3Myers的測試原則盡早地和不斷地進行測試程序員應避免測試自己編寫的程序測試實例=輸入數據+預期結果測試集=期望(有效)輸入+不期望(無效)輸入測試程序=它做該做的事+它不做不該做的事一段程序中存在錯誤的概率與在這段程序中已發現的錯誤數成比例全面檢查每一個測試結果測試是一項具有很大創造性的工作2軟件測試的基本概念282.3Myers的測試原則2軟件測試的基本概念282軟件測試的基本概念

2.4軟件測試的獨立性原則軟件測試工作最好由獨立于開發隊伍的組織進行2.5軟件測試的完成準則完成測試計劃規定的測試項使用規定的測試用例設計方法查出一定數目的錯誤標出單位時間查出的錯誤量,進行曲線分析某一測量值達到預期目標(如可靠性測試)考查測試充分性292軟件測試的基本概念

2.4軟件測試的獨立性原則29

2.6軟件測試的分類按測試對象:單元→部件→配置項→系統按實施步驟:單元→組裝→確認→系統按實現技術:靜態/動態,黑盒/白盒按測試完整性:程序結構和輸入域覆蓋按測試專題:功能測試,性能測試,可靠性測試安全性測試,強度測試,安裝測試,恢復測試,

余量測試2軟件測試的基本概念302.6軟件測試的分類2軟件測試的基本概念30

軟件測試的的對象和步驟分類2軟件測試的基本概念部件單元單元單元單元部件配置項配置項系統組裝確認系統單元31軟件測試的的對象和步驟分類2軟件測試的基本概念部件單

Shooman按測試完整性的分類表測試類型?主要成分特點

0完全性和連續性檢查100%語句覆蓋

1圖路徑測試100%圖路徑覆蓋

2程序路徑測試100%程序路徑覆蓋

3窮舉測試對輸入參數的所有值執行所有程序路徑

4窮舉測試比3更強的窮舉測試,包括輸入序列的組合2軟件測試的基本概念32Shooman按測試完整性的分類表2軟件測試的基本

2.7軟件測試工程化軟件生命周期軟件測試方法軟件測試規程軟件測試文檔軟件測試工具2軟件測試的基本概念332.7軟件測試工程化2軟件測試的基本概念33軟件測試軟件測試的重要性軟件測試的基本概念軟件測試的工作內容軟件測試的基本技術和策略軟件測試階段軟件測試流程怎樣做好軟件測試34軟件測試軟件測試的重要性343軟件測試的工作內容3.1軟件測試管理測試組織一般在小組內進行組裝測試;組織單位內、外部的獨立測試;建立專門的測試機構進行測試技術支持,開展獨立測試在小組內進行靜態分析、單元測試、自測、互測;建立有效的多層次評測體系。使用不同層次的測試手段和組織方式;在軟件開發組中指定專人負責軟件測試。(加關鍵等級圖)353軟件測試的工作內容3.1軟件測試管理353軟件測試的工作內容軟件測試管理(續)測試控制

a.進行測試計劃評審、測試報告評審;

b.測試實施的監督:測試用例獲取和測試結果的真實性資源管理

a.軟件工程全過程中,測試及獨立測試進度及測試順序安排;

b.人員落實,經費落實;

c.測試設備及工具管理,技術培訓363軟件測試的工作內容軟件測試管理(續)363軟件測試的工作內容軟件測試管理(續)測試文檔管理

a.納入一般配置管理;

b.問題報表制問題報告→更改申請→修改報告→回歸測試;

c.支持回歸測試:保證與測試有關的文檔被維護以 允許測試的可重復性。373軟件測試的工作內容軟件測試管理(續)373軟件測試的工作內容3.2制定軟件測試規范、規程、操作及技術指南等軟件測試文件3.3軟件測試實施制訂測試計劃產生測試用例集建立測試環境,執行測試評價測試工作和被測軟件編制完整的測試文檔:測試計劃、測試說明和測試報告383軟件測試的工作內容3.2制定軟件測試規范、規程、操作3軟件測試的工作內容3.4軟件測試技術研究一般測試技術提供基本功能,解決基本問題,廣泛的通用性。專項軟件測試技術特定的軟件特征、運行環境、運行方式、實現細節。如:嵌入式軟件測試、網絡應用軟件。工程型號軟件測試技術很強的專業背景,高可靠性、高安全性要求。如:飛控軟件測試、故障檢測軟件測試3.5軟件測試工具和測試環境開發393軟件測試的工作內容3.4軟件測試技術研究39軟件測試軟件測試的重要性軟件測試的基本概念軟件測試的工作內容軟件測試的基本技術和策略軟件測試階段軟件測試流程怎樣做好軟件測試40軟件測試軟件測試的重要性404軟件測試基本技術和策略4.1.1靜態測試概念不必動態地運行程序發揮人的優勢,行之有效不需特定條件,容易開展4.1.2靜態測試具體技術代碼走查代碼審議技術評審桌面檢查自動的靜態分析4.1靜態測試414軟件測試基本技術和策略4.1.1靜態測試概念4.1靜4軟件測試基本技術和策略4.1.2.1代碼走查手工進行,以走查小組形式進行考查程序的邏輯給出輸入和預期輸出當實際輸出和預期輸出不等時,發現錯誤4.1.2.2代碼審議代碼評估逐行檢查代碼,以審議小組形式進行使用“代碼檢查單”424軟件測試基本技術和策略4.1.2.1代碼走查424軟件測試基本技術和策略4.1.2.3技術評審綜合運用走查和審議技術逐頁、逐節檢查文檔對需求、結構或設計等方面提出問題4.1.2.4桌面檢查軟件編制者自我檢查效果不如以小組形式進行的評審或審議434軟件測試基本技術和策略4.1.2.3技術評審43

4軟件測試基本技術和策略intfunc(){intsum,i;for(i=0;i<100;i++)sum=sum+i;return(sum);}4.1.2.5自動的靜態分析引用分析接口分析表達式分析引用分析的例子sum未初始化就引用444軟件測試基本技術和策略intfunc()4.1.2.

4.2.1動態測試概念使用測試用例運行程序取得程序運行的真實情況生成測試用例、分析測試結果工作量大動態測試的關鍵在選擇測試用例主要包括黑盒測試和白盒測試4軟件測試基本技術和策略4.2動態測試454.2.1動態測試概念4軟件測試基本技術和策略4.2

4.2.2測試數據選擇是動態測試的核心問題特定的測試數據只能運行程序的某些片段要保證測試的充分性黑盒測試和白盒測試實際上是測試數據選擇的兩類方法基本方法4軟件測試基本技術和策略464.2.2測試數據選擇4軟件測試基本技術和策略46

4.2.2.1測試數據選擇——測試的充分性覆蓋度量語句覆蓋最基本的,要求100%

單元和部件測試中分支覆蓋分支的各方向都得到執行路徑覆蓋每一條路徑至少執行一次特定的路徑得到執行單元測試中4軟件測試基本技術和策略已運行語句數全部語句數474.2.2.1測試數據選擇——測試的充分性4軟件測試基本

測試數據選擇——測試的充分性錯誤播種在程序中插入已知數量的錯誤考查其中多少被發現變異測試一類中的變異程序都被分離例如算法變異:原始形態變異形態

A=B+CA=B-CA=B*CA=B/C4軟件測試基本技術和策略48測試數據選擇——測試的充分性4軟件測試基本技術和策略48

測試數據選擇——測試的充分性(續)測試直至發現的錯誤降到規定的指標無錯運行的測試數量達到規定的指標......4軟件測試基本技術和策略黑盒測試和白盒測試實際上是測試數據選擇的兩類方法基本方法49測試數據選擇——測試的充分性(續)4軟件測試基本技術和策

4.2.3黑盒測試和白盒測試黑盒測試像中醫:使用望、聞、問、切白盒測試像西醫:使用X光、CT掃描目的都是發現病人的病癥PINOUT4軟件測試基本技術和策略白盒測試:黑盒測試:504.2.3黑盒測試和白盒測試PINOUT4軟件測試基本

4.2.4黑盒測試:不涉及程序結構,把程序看成黑盒子用程序規格說明生成測試用例某些代碼段得不到測試可適用于從單元測試到系統測試需要用白盒測試加以補充4軟件測試基本技術和策略514.2.4黑盒測試:4軟件測試基本技術和策略51

4.2.4.1黑盒測試內容?一般包括:功能測試邊界測試強度測試隨機測試4軟件測試基本技術和策略524.2.4.1黑盒測試內容?4軟件測試基本技術和策略5

4.2.4.1.1黑盒測試——功能測試是最常見的注重檢查是否按規格需求提供了功能對每一項功能進行測試確保功能得到實現并不保證功能總是正確的:各種情況是最基本的測試工作4軟件測試基本技術和策略534.2.4.1.1黑盒測試——功能測試4軟件測試基本技

4.2.4.1.2黑盒測試——邊界測試是對功能測試的補充注重檢查對邊界值或異常值的處理4.2.4.1.3黑盒測試——強度測試在處理能力的極限測試4.2.4.1.4黑盒測試——隨機測試測試輸入數據隨機產生4軟件測試基本技術和策略544.2.4.1.2黑盒測試——邊界測試4軟件測試基本技

4.2.4.2黑盒測試方法具體測試用例設計方法基于功能點等價類劃分邊值分析因果圖法猜錯法隨機數據選取兩個整數輸入情況說明:216×216=4,294,967,296如果每秒種完成一次測試,即包括輸入,計算,輸出,比對,那100年才能做完4軟件測試基本技術和策略554.2.4.2黑盒測試方法兩個整數輸入情況說明:216×

4.2.4.2.1黑盒測試——基本功能點是最基本的測試用例集把每一項規格需求的功能作為測試點必要時進行功能的分類和分解注重考查“程序該做的”通常是不充分的需要一個完整、準確、嚴格的需求4軟件測試基本技術和策略564.2.4.2.1黑盒測試——基本功能點4軟件測試基本

4.2.4.2.2黑盒測試——等價類劃分是全面考查程序輸入域的方法把程序的輸入域劃分成若干部分,然后從每個部分選取少數代表性數據當作測試用例,這樣我們用少數測試用例檢驗了程序在一類情況下的反應。4軟件測試基本技術和策略574.2.4.2.2黑盒測試——等價類劃分4軟件測試基本

4.2.4.2.3黑盒測試——邊值分析是重點考查程序的邊界情況處理所選的測試數據總是在輸入域(或輸出域)、數據結構、過程參數等的邊界或端點,因而常常包括最大值、最小值、臨界值等。是對基本功能點和等價類劃分的有力補充4軟件測試基本技術和策略584.2.4.2.3黑盒測試——邊值分析4軟件測試基本技

4.2.4.2.4黑盒測試——因果圖法是一種系統的測試用例設計方法針對那些在功能說明書中含有輸入組合的情況檢查程序是否有錯因果圖法需建立因果圖、判定表,工作量較大,但它考慮到輸入的各種組合及各輸出條件可能出錯的多種情況,對復雜的問題十分有效4軟件測試基本技術和策略594.2.4.2.4黑盒測試——因果圖法4軟件測試基本技

4.2.4.2.5黑盒測試——猜錯法充分發揮人們編程的經驗和專業領域知識4.2.4.2.6黑盒測試——隨機數據選取在輸入域中隨機選取測試數據自動化程度高,數據生成方便,選取的數據往往出人意料,是需要長時間運行程序以達到考查目的的測試中較多使用的方法有新的發展4軟件測試基本技術和策略604.2.4.2.5黑盒測試——猜錯法4軟件測試基本技術

4.2.5白盒測試也叫“玻璃盒”測試,看得見程序內部考查程序邏輯結構發現軟件設計和實現間的差異在黑盒測試后發現沒有被測試到的部分用程序結構信息生成測試用例構造測試用例使特定程序部分得到運行通常適用于單元測試一般有控制流分析和數據流分析方法4軟件測試基本技術和策略614.2.5白盒測試4軟件測試基本技術和策略61

4.2.5.1白盒測試——控制流分析語句覆蓋:最基本的,要求100%分支覆蓋:分支的各方向都得到執行路徑覆蓋:特定的路徑得到執行錯誤處理路徑覆蓋:錯誤處理得到執行4軟件測試基本技術和策略624.2.5.1白盒測試——控制流分析4軟件測試基本技術

控制流分析示例intfunc(intA,intB,intX){if(A>1&&B==0)x=x/A;if(A==2||x>1)x=x+1;return(x);}4軟件測試基本技術和策略A>1andB=0A=2orx>1x=x/AYESNOx=x+1YESNOabcde63控制流分析示例4軟件測試基本技術和策略A>1andB=0

控制流分析示例執行路徑和輸入取值表路徑ABXa—b—d111a—c—b—d404a—c—e—d202a—b—e—d2124軟件測試基本技術和策略A>1andB=0A=2orx>1x=x/AYESNOx=x+1YESNOabcde64控制流分析示例4軟件測試基本技術和策略A>1andB=0

4.2.5.2白盒測試——數據流分析針對程序中數據加工進行考查在控制流路徑上數據處理的正確性全定義使用路徑全定義路徑全使用路徑狀態遷移合法性4軟件測試基本技術和策略654.2.5.2白盒測試——數據流分析4軟件測試基本技術

數據流分析的一個例子

STARTREADP,ED=1X=0C=2*PIFC>=2THENGOTOD[A]IFD<=ETHENGOTOCD=D/2T=C-(2*X+D)4軟件測試基本技術和策略IFT<0THENGOTOBX=X+DC=2*(C-(2*X+D))GOTOA[B]C=2*CGOTOA[C]PRINTXSTOP[D]PRINT慐RRORSTOP66數據流分析的一個例子4軟件測試基本技術和策略

4軟件測試基本技術和策略1235674READP,ED=1X=0C=2*PC>=2C<2D<=ED>EPRINT慐RRORPRINTXC=2*CT<0T>=0D=D/2T=C-(2*X+D)X=X+DC=2*(C-(2*X+D))在控制流圖上考查數據流674軟件測試基本技術和策略1235674READP,

4軟件測試基本技術和策略全路徑全定義使用路徑全使用路徑全C使用/部分P使用路徑全P使用/部分C使用路徑全定義路徑全P使用路徑圖全邊圖全節點覆蓋準則強度比較684軟件測試基本技術和策略全路徑全定義使用路徑全使用路徑全

4軟件測試基本技術和策略狀態遷移合法性檢查d-定值k-消除u-使用K-無定值,先消除D-定義但未使用U-已使用A-異常kdu,kdd,kuuk,u,dKUDA694軟件測試基本技術和策略狀態遷移合法性檢查d-定值kd

4軟件測試基本技術和策略4.3集成測試策略—非漸增式和漸增式4.3.1非漸增式測試是一種“舊式”的測試策略也稱為“Big-Bang斆ё膊饈單獨測試每一個單元—需要樁程序和驅動程序樁(stub):模擬被調用程序,返回需要的結果驅動器(driver):調用被測程序,給出測試數據最后把所有的單元集成為系統單元間的接口問題直到系統集成結束才能發現容易造成混亂,錯誤不易隔離704軟件測試基本技術和策略4.3集成測試策略—非漸增式和

4軟件測試基本技術和策略4.3.2漸增式測試自頂向下方法自底向上方法改進的自頂向下方法“三明治”方法改進的“三明治”方法714軟件測試基本技術和策略4.3.2漸增式測試714.3.2.1漸增式測試—自頂向下

頂層模塊單獨測試

自頂向下進行合并開發樁程序(未集成進來的單元)測試當前系統部件集成下一層較早看見系統全貌不必開發驅動程序需要開發樁程序生成測試用例困難

4軟件測試基本技術和策略StubStubStub12724.3.2.1漸增式測試—自頂向下4軟件測試基本技術和

4軟件測試基本技術和策略4.3.2.2漸增式測試—自底向上只有底層模塊單獨測試模塊自底向上集成和測試開發驅動程序(未集成進來的單元)測試當前系統部件集成下一層關鍵單元較早測試不必開發樁程序最后看見系統全貌需要開發驅動程序DriverDriver12734軟件測試基本技術和策略4.3.2.2漸增式測試—自底

4軟件測試基本技術和策略4.3.2.3漸增式測試—改進的自頂向下方法在集成前測試每一個模塊可以測試邏輯條件每一個模塊都需要樁和驅動4.3.2.4漸增式測試—“三明治”方法平行使用自頂向下和自底向上方法根據程序結構選擇匯合點4.3.2.5漸增式測試—改進的“三明治”方法自底向上和改進的自頂向下結合是最好的集成測試策略之一744軟件測試基本技術和策略4.3.2.3漸增式測試—改進4.4多層過濾測試方法完整的軟件測試是分幾個層次完成的計算機軟件單元(CSU)測試(單元)計算機軟件部件(CSC)測試(組裝)計算機軟件配置項(CSCI)測試(確認)系統測試體現了盡早地不斷地測試的原則從各階段全面地檢查程序每一層有自己發現錯誤的優勢符合系統構造從部分逐步到整體的規律4軟件測試基本技術和策略754.4多層過濾測試方法4軟件測試基本技術和策略75多層過濾測試方法(續)多層過濾測試方法的效果,如果一輪手工的代碼審議95%的整體分支覆蓋90%的調用對覆蓋98%的自動回歸測試50%的關鍵模塊和/或易錯模塊路徑覆蓋則會達到:4軟件測試基本技術和策略76多層過濾測試方法(續)4軟件測試基本技術和策略764軟件測試基本技術和策略每1000行程序代碼所包含的錯誤數沒有進行5層過濾測試20進行5層過濾測試0.2fromEdwardF.Miller774軟件測試基本技術和策略每1000行程序代碼所包含的錯誤數4軟件測試基本技術和策略軟件與系統接口需求分析概要設計詳細設計編碼單元測試部件測試配置項測試系統測試多層過濾測試與開發前期工作的關系784軟件測試基本技術和策略軟件與系統接口需求分析概要設計詳細4.5按軟件關鍵等級確定測試策略4軟件測試基本技術和策略測試類型靜態分析單元測試部件測試配置項測試可靠性測試強度測試系統測試內部內部內部正式正式正式ABCD軟件關鍵性級別

794.5按軟件關鍵等級確定測試策略4軟件測試基本技術和策略4.6嵌入式軟件測試嵌入式軟件測試的特點嵌入式軟件測試的基本技術嵌入式軟件測試環境4軟件測試基本技術和策略804.6嵌入式軟件測試4軟件測試基本技術和策略804.6.1嵌入式軟件測試特點嵌入式軟件運行難于監測嵌入式軟件需要實時運行嵌入式軟件運行需要特殊外部設備嵌入式軟件運行有時是交互的嵌入式軟件測試是一類最難的測試4軟件測試基本技術和策略814.6.1嵌入式軟件測試特點4軟件測試基本技術和策略81

4.6.2

嵌入式軟件測試基本技術交叉編譯指令模擬在線模擬外部設備仿真可控制時間特性的運行環境全數字模擬目標硬件環境的數字模擬目標數據環境的數字模擬4軟件測試基本技術和策略824.6.2嵌入式軟件測試基本技術4軟件測試基本技術和策4軟件測試基本技術和策略4.6.3全數字模擬技術的目的和意義在不具備硬件目標環境時用軟件提供盡可能真實的模擬目標環境提供更可控的運行環境使軟件調試、測試可以和硬件開發并行進行834軟件測試基本技術和策略4.6.3全數字模擬技術的目的和

4.6.4

嵌入式軟件測試環境全實物試驗臺半實物仿真試驗臺半實物測試臺全數字模擬測試臺嵌入式軟件開發環境4軟件測試基本技術和策略真實性下降可控性上升844.6.4嵌入式軟件測試環境4軟件測試基本技術和策略真軟件測試軟件測試的重要性軟件測試的基本概念軟件測試的工作內容軟件測試的基本技術和策略軟件測試階段軟件測試流程怎樣做好軟件測試85軟件測試軟件測試的重要性855軟件測試階段多層過濾測試方法計算機軟件單元(CSU)測試(單元)計算機軟件部件(CSC)測試(組裝)計算機軟件配置項(CSCI)測試(確認)系統測試多層過濾測試方法實際使測試分成階段在更動后進行回歸測試865軟件測試階段多層過濾測試方法865軟件測試階段軟件測試階段圖單元單元單元單元單元測試單元測試單元測試單元測試部件測試配置項測試系統測試已測單元組裝的軟件確認的軟件設計信息軟件需求其它系統元素875軟件測試階段軟件測試階段圖單元單元單元單元單元測試單元測

5.1計算機軟件單元測試特點a.相當于硬件設備板級部件的檢驗b.對詳細設計說明書負責c.有條件進行較細致的白盒測試組織在開發組內,可交叉進行。5軟件測試階段885.1計算機軟件單元測試5軟件測試階段88

計算機軟件單元測試內容

a.功能測試

b.重要的執行路徑測試

c.局部數據結構

d.錯誤處理測試

e.影響上述各條的邊界條件

f.語句覆蓋測試,分支覆蓋測試5軟件測試階段89計算機軟件單元測試5軟件測試階段89

計算機軟件單元測試要求

a.語句覆蓋100%b.分支覆蓋

c.軟件特性覆蓋方法

a.黑盒(功能、邊界、隨機)

b.白盒(控制流/數據流)

c.使用驅動/樁程序

d.某些工具支持5軟件測試階段90計算機軟件單元測試5軟件測試階段90

5.2計算機軟件部件測試特點

a.相當于硬件設備的功能模塊測試

b.對概要設計說明書負責

c.是發現和改正模塊接口錯誤的重要階段

d.是驗證系統功能增長正確性的階段組織一般在開發小組內部進行5軟件測試階段915.2計算機軟件部件測試5軟件測試階段91

計算機軟件部件測試內容a.單元間的接口測試b.部件的功能測試c.全局數據結構測試d.部件的運行時間、運行空間、計算精度測試e.邊界和在人為條件下的性能5軟件測試階段92計算機軟件部件測試5軟件測試階段92

計算機軟件部件測試要求

a.調用時100%覆蓋

b.錯誤處理能力測試

c.采用增量測試法5軟件測試階段93計算機軟件部件測試5軟件測試階段93

計算機軟件部件測試方法自頂向下

增量自底向上集成方法“三明治”非增量:Big-Bang莽撞測試5軟件測試階段94計算機軟件部件測試5軟件測試階段94

計算機軟件部件測試方法調用對覆蓋接口測試定義域測試軟件部件測試數據流測試白盒部件功能測試黑盒

I/O5軟件測試階段95計算機軟件部件測試5軟件測試階段95

5.3計算機軟件配置項測試特點

a.對軟件需求規格說明負責

b.對完整軟件功能和性能的總體測試

c.相當于硬件設備成品檢驗組織獨立測試方式5軟件測試階段965.3計算機軟件配置項測試5軟件測試階段96

計算機軟件配置項測試內容功能測試—安全性測試性能測試—恢復性測試界面測試—邊界測試強度測試—功能多余物測試余量測試—安裝性測試可靠性測試5軟件測試階段97計算機軟件配置項測試5軟件測試階段97

計算機軟件配置項測試要求

a.有用戶參加確認測試

b.采用獨立測試方式

c.測試環境符合要求方法

a.功能特性分析及確定測試特性

b.黑盒測試方法、狀態/轉換測試等一般方法

c.仿真/模擬測試5軟件測試階段98計算機軟件配置項測試5軟件測試階段98

5.4系統測試特點

a.對系統/子系統任務書負責

b.是軟件加入真實系統的階段

c.強調測試軟件在大系統中的表現

d.測試的內容和整個系統構成密切相關組織由軟件配置項上級系統組織,軟件開發和測試人員協助、參加5軟件測試階段995.4系統測試5軟件測試階段99

系統測試內容(從軟件角度)系統功能測試—系統安全性測試系統性能測試—系統恢復性測試系統接口測試—系統邊界測試系統強度測試—系統敏感性測試系統余量測試系統可靠性測試5軟件測試階段100系統測試5軟件測試階段100

系統測試要求

a.加強技術狀態管理(軟件配置管理)b.加強測試環境數據記錄

c.符合系統有關規定

d.從軟件測試角度給出一些系統運行實例方法

a.運行測試

b.情景測試

c.半實物仿真試驗

d.系統綜合匹配試驗5軟件測試階段101系統測試5軟件測試階段101

5.5回歸測試軟件更動后重新進行的測試既要測試更動部分,也要測試受影響部分中心在決定哪些測試必須被重復關鍵是保證測試工作的“可重現性”編程—測試—發現錯誤—更動—回歸測試5軟件測試階段1025.5回歸測試5軟件測試階段102

回歸測試方法重復原先所有的測試確定并運行標準測試集進行系統級功能測試測試新功能,并人工判別需重復的測試使用回歸測試輔助工具捕獲和釋放工具測試用例管理工具/測試管理工具5軟件測試階段103回歸測試方法5軟件測試階段103軟件測試軟件測試的基本概念軟件測試的重要性軟件測試的工作內容軟件測試的技術和策略軟件測試階段軟件測試流程怎樣做好軟件測試104軟件測試軟件測試的基本概念104

軟件測試流程制訂測試計劃產生測試集執行測試評價測試工作和被測軟件在測試工作中應產生完整的測試文檔:測試計劃、測試說明和測試報告正式測試中這三份文檔應得到評審6軟件測試流程105軟件測試流程6軟件測試流程105

軟件測試信息流6軟件測試流程測試評估測試結果排錯建立可靠性模型軟件配置測試配置測試工具測試結果預期結果錯誤出錯率預計的軟件可靠性修正的軟件106軟件測試信息流6軟件測試流程測試評估測試結果排錯建立可靠

6.1制訂測試計劃輸入:軟件需求規格說明、用戶手冊、操作手冊、運行環境資料。任務:確定測試活動的范圍,測試方法、進度、資源、功能驗證的實施步驟,各級測試的詳細規程、軟件驗收標準、測試報告和處理方法。輸出:軟件測試計劃、測試支持資源需求(工具/環境)。6軟件測試流程1076.1制訂測試計劃6軟件測試流程107

6.2產生測試用例集輸入:軟件測試計劃、軟件結構設計文檔、測試支持資源需求任務:根據被測試特性,設計測試用例集結構,為每一測試用例決定軟件輸入輸出和控制方式(人工、半自動、自動)并控制相應的測試規程、獲得并驗證所需要的測試數據。輸出:測試設計說明、測試規程說明、測試用例說明(也可以合并為測試說明)。6軟件測試流程1086.2產生測試用例集6軟件測試流程108

6.3執行測試輸入:測試設計說明、測試規程說明、測試用例說明、軟件數據結構描述、測試項、測試支持資源任務:按測試規程執行測試用例,決定測試通過或失敗,如果通過則進行評價,否則根據錯誤情況重新運行測試或修改軟件設計、編碼或文件的有關部分,然后再重新進行測試。輸出:測試結果描述、錯誤描述、其它執行信息、修訂后的測試說明6軟件測試流程1096.3執行測試6軟件測試流程109

6.4評價測試工作和被測軟件輸入:測試結果描述、錯誤描述、其它執行信息、修訂后的測試說明任務:依照評價準則,評價測試工作和被測軟件,當發現測試工作不足時,應修訂測試計劃,重復制定計劃開始的工作,直到測試完備時止。輸出:測試總結報告6軟件測試流程1106.4評價測試工作和被測軟件6軟件測試流程110

6.5軟件生命周期和軟件測試工作系統測試軟件配置項測試部件測試需求計劃計劃計劃/設計設計設計無測試執行執行執行用例/規程用例/規程用例/規程設計實現6軟件測試流程測試階段計劃/設計用例/規程執行單元測試無無1116.5軟件生命周期和軟件測試工作系統測試軟件配置項測試部軟件測試軟件測試的基本概念軟件測試的重要性軟件測試的工作內容軟件測試的技術和策略軟件測試階段軟件測試流程怎樣做好軟件測試112軟件測試軟件測試的基本概念1127怎樣做好軟件測試思想重視,加強管理抓住主要環節,帶動普遍提高充分利用現有技術手段,不斷提高技術水平遵循軟件測試的基本原則1137怎樣做好軟件測試思想重視,加強管理1137怎樣做好軟件測試7.1思想重視,加強管理從上級領導到工程人員,人人重視軟件測試實施軟件工程是搞好軟件測試的基礎鼓勵單位內部、外部的獨立測試建立完善的測試規程,有效的多層次評測體系加強軟件配置管理組織保證:軟件開發小組中有專人負責軟件測試工作加強階段評審(測試文檔評審)1147怎樣做好軟件測試7.1思想重視,加強管理1147怎樣做好軟件測試7.2抓住主要環節,帶動普遍提高加強軟件工程標準、規范的貫徹在原軟、硬件綜合測試基礎上加強軟件配置項測試單元測試是整個測試工作的基礎充分發揮靜態分析的優勢和作用系統測試應從軟件角度考慮一些測試情況(初步)定量描述軟件測試的充分性加強關鍵性級高的軟件測試加強測試計劃的編制與評審1157怎樣做好軟件測試7.2抓住主要環節,帶動普遍提高115

7.3充分利用現有技術手段,不斷提高技術水平認真開展“代碼檢查單(CheckList)”的收集、編寫利用工具開展白盒測試開發、使用具有工程應用背景測試平臺建立專門的測試認證機構,解決共性問題,提供技術支持,開展獨立測試做好預研工作,解決測

溫馨提示

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

評論

0/150

提交評論