版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟 件 測(cè) 試 技 術(shù)介 紹上海創(chuàng)景計(jì)算機(jī)系統(tǒng)有限公司 內(nèi) 容1. 軟件測(cè)試基本概念1.1 為何軟件測(cè)試1.2 什么是軟件測(cè)試1.3 軟件測(cè)試的作用1.4 軟件測(cè)試公理2. 軟件測(cè)試技術(shù)介紹2.1 靜態(tài)測(cè)試技術(shù)2.2 靜態(tài)分析2.3 動(dòng)態(tài)測(cè)試技術(shù)3. 軟件生命周期中的軟件測(cè)試3.1 軟件測(cè)試過(guò)程模型3.2 軟件開(kāi)發(fā)過(guò)程3.3 單元測(cè)試3.4 集成測(cè)試3.5 系統(tǒng)測(cè)試3.6 測(cè)試進(jìn)入條件4. 軟件測(cè)試管理隨著軟件功能越來(lái)越強(qiáng)、復(fù)雜程度越來(lái)越高,導(dǎo)致致命故障越來(lái)越多。1.1 為何軟件測(cè)試?“The day the software crashed”-福布斯雜志Tandem - 金融交易系統(tǒng)宕機(jī);A
2、T&T - 電話系統(tǒng);Chemical bank-雙倍借貸給客戶;IRS 向納稅人征收680億美金稅金;Patriots & Scuds - 愛(ài)國(guó)者導(dǎo)彈故障;Bank of New York - 236億美金;Ariana5-火箭故障;DSC Communications - 電話系統(tǒng)故障; 軟件錯(cuò)誤開(kāi)銷(xiāo):美國(guó)航空公司儲(chǔ)運(yùn)損耗每分鐘損失2萬(wàn)美金;1989 - 12小時(shí)儲(chǔ)運(yùn)損耗1994 - 5小時(shí)儲(chǔ)運(yùn)損耗飛行系統(tǒng)故障 - $50,000,000損失;Boeing - 每分鐘損失5萬(wàn)美金;美國(guó)聯(lián)邦快遞 - 每分鐘損失16.7萬(wàn)美金。1.1 為何軟件測(cè)試?2022年8月30日5歷史上:1973年W.
3、Hetzel指出測(cè)試是對(duì)程序或系統(tǒng)能否完成特定任務(wù)建立信心的過(guò)程。異議:我們不應(yīng)該只是為了對(duì)一個(gè)程序建立信心或顯示信心而去作測(cè)試。1.2 什么是軟件測(cè)試?修正觀點(diǎn):測(cè)試目的在于鑒定程序或系統(tǒng)的屬性或能力的各種活動(dòng),它是軟件質(zhì)量的一種度量。1983年IEEE:使用人工或自動(dòng)手段來(lái)運(yùn)行某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清結(jié)果與實(shí)際結(jié)果之間的差別。2022年8月30日6軟件測(cè)試的重要性軟件設(shè)計(jì)與編碼過(guò)程是引入錯(cuò)誤的過(guò)程,而軟件測(cè)試是排除軟件錯(cuò)誤的過(guò)程。 1.3 軟件測(cè)試的作用2022年8月30日7確定需求設(shè)計(jì)編碼測(cè)試排除故障隔離故障分類(lèi)改正故障故障故障故障故障等級(jí)失效通過(guò)測(cè)試排
4、除軟件故障 1.3 軟件測(cè)試的作用2022年8月30日8序號(hào)缺陷百分比1需求產(chǎn)生的缺陷202設(shè)計(jì)產(chǎn)生的缺陷303編碼產(chǎn)生的缺陷354軟件集成產(chǎn)生的缺陷105文檔缺陷5 1.3 軟件測(cè)試的作用通過(guò)測(cè)試排除軟件故障2022年8月30日9測(cè)試只能證明錯(cuò)誤的存在,而不能表明程序中沒(méi)有錯(cuò)誤。 1.4 軟件測(cè)試公理2. 測(cè)試的兩個(gè)作用是:確定程序中缺陷的存在;有助于判斷該程序在實(shí)際上是否可用。3. 軟件測(cè)試最困難的問(wèn)題之一是知道何時(shí)停止測(cè)試(When to stop testing? )4. 自己測(cè)試自己的程序是不可能的。5. 當(dāng)一個(gè)軟件被測(cè)出的缺陷數(shù)目增加時(shí),更多的未被發(fā)現(xiàn)的缺陷存在的概率也隨之增加。2
5、022年8月30日10一個(gè)好的測(cè)試用例應(yīng)當(dāng)是一個(gè)對(duì)以前未被發(fā)現(xiàn)的缺陷有高發(fā)現(xiàn)率的用例,而不是一個(gè)表明程序工作正確的用例。 1.4 軟件測(cè)試公理7. 要對(duì)有效的和無(wú)效的輸入狀況寫(xiě)測(cè)試用例。(測(cè)試用例要兼顧有效與無(wú)效的輸入)8. 每個(gè)測(cè)試用例必備的部分是描述預(yù)期的輸出。9. 像做其它事情一樣,測(cè)試在其一開(kāi)始就必須要有一個(gè)目標(biāo)。 測(cè)試技術(shù)靜態(tài)測(cè)試代碼審查代碼走查桌面檢查技術(shù)評(píng)審靜態(tài)分析控制流分析數(shù)據(jù)流分析接口分析表達(dá)式分析動(dòng)態(tài)測(cè)試黑盒測(cè)試技術(shù)白盒測(cè)試技術(shù) 2. 軟件測(cè)試技術(shù)介紹動(dòng)態(tài)測(cè)試控制流覆蓋數(shù)據(jù)流覆蓋黑盒測(cè)試技術(shù)白盒測(cè)試技術(shù)功能測(cè)試等價(jià)類(lèi)劃分邊值分析因果圖隨機(jī)測(cè)試猜錯(cuò)法 2. 軟件測(cè)試技術(shù)介紹語(yǔ)
6、句覆蓋分支覆蓋路徑覆蓋錯(cuò)誤處理路徑全定義使用路徑全使用路徑全定義路徑數(shù)據(jù)流異常狀態(tài)圖2022年8月30日13不執(zhí)行程序代碼,通過(guò)審查文檔、代碼的方式查找軟件中的缺陷。 2.1 靜態(tài)測(cè)試技術(shù)76%以上錯(cuò)誤;不需特別條件,容易開(kāi)展;在發(fā)現(xiàn)了錯(cuò)誤的同時(shí)也就定位錯(cuò)誤,不需額外的工作定位錯(cuò)誤;對(duì)評(píng)審人員要求高;可借助于工具進(jìn)行。2022年8月30日14靜態(tài)測(cè)試方法技術(shù)評(píng)審軟件需求分析與設(shè)計(jì);對(duì)需求規(guī)格文檔、設(shè)計(jì)文檔進(jìn)行非二義性、平衡性、一致性檢查。代碼走查(Walkthrough)設(shè)計(jì)測(cè)試數(shù)據(jù)人工方式執(zhí)行代碼。代碼審查(Code Inspection) 2.1 靜態(tài)測(cè)試技術(shù)2022年8月30日15代碼審
7、查(Code Inspection) 2.1 靜態(tài)測(cè)試技術(shù)代碼審查測(cè)試內(nèi)容:代碼與設(shè)計(jì)的一致性;代碼對(duì)標(biāo)準(zhǔn)的遵循性;代碼的邏輯表達(dá)的正確性;代碼結(jié)構(gòu)的合理性。代碼審查實(shí)施審查會(huì)代碼審查單2022年8月30日16靜態(tài)分析靜態(tài)分析是對(duì)被測(cè)軟件進(jìn)行特性分析的一些方法的總稱(chēng);靜態(tài)分析的查錯(cuò)功能是編譯系統(tǒng)所不能替代的; 2.2 靜態(tài)分析靜態(tài)分析可輔助代碼評(píng)審人員:發(fā)現(xiàn)可能的程序欠缺;找到潛伏著問(wèn)題的根源;提供間接涉及程序欠缺的信息;.2022年8月30日17靜態(tài)分析方法 2.2 靜態(tài)分析編碼規(guī)則檢查控制流分析數(shù)據(jù)流分析軟件度量分析2022年8月30日18改善代碼質(zhì)量避免編程語(yǔ)言本身在使用過(guò)程中容易造成的
8、誤用;提高開(kāi)發(fā)速度:開(kāi)發(fā)人員不需要總是從一些基本原則出發(fā)進(jìn)行決策;增進(jìn)團(tuán)隊(duì)精神:有助于減少團(tuán)隊(duì)內(nèi)部在一些小事情上的不必要的爭(zhēng)論,使團(tuán)隊(duì)成員更易于閱讀和維護(hù)其他成員的代碼;在正確的方向上取得一致:使開(kāi)發(fā)人員放開(kāi)手腳,在有意義的方向上發(fā)揮創(chuàng)造力; 2.2.1 為什么進(jìn)行編碼規(guī)則檢查2022年8月30日19C語(yǔ)言本身容易出錯(cuò)的問(wèn)題詞法”陷阱“語(yǔ)法”陷阱“語(yǔ)義”陷阱“連接庫(kù)函數(shù)預(yù)處理器可移植性缺陷 2.2.1 編碼規(guī)則檢查改善代碼質(zhì)量2022年8月30日20容易和混淆;&和|容易和&和|混淆;詞法分析中的“貪心法”y = x/*p /* p指向除數(shù) */會(huì)被編譯器理解為/*p /* p指向除數(shù) */為
9、注釋字符與字符串C語(yǔ)言中的單引號(hào)和雙引號(hào)含義不同,易錯(cuò)用帶來(lái)問(wèn)題;s表示一個(gè)整數(shù);“s”表示一個(gè)字符指針; 2.2.1 編碼規(guī)則檢查詞法“陷阱”2022年8月30日21運(yùn)算符的優(yōu)先級(jí)問(wèn)題;注意作為語(yǔ)句結(jié)束標(biāo)注的分號(hào)If (a b)big a;If (a b); big a;“懸掛”else的問(wèn)題;switch語(yǔ)句遺漏break; 2.2.1 編碼規(guī)則檢查語(yǔ)法“陷阱”2022年8月30日22指針與數(shù)組;非數(shù)組的指針;作為參數(shù)的數(shù)組聲明;空指針并非空字符串;邊界計(jì)算與不對(duì)稱(chēng)邊界;求值順序;運(yùn)算符&、|和!整數(shù)溢出 2.2.1 編碼規(guī)則檢查語(yǔ)義“陷阱”2022年8月30日23在循環(huán)語(yǔ)句中使用“bre
10、ak”語(yǔ)句。#include c_standards.h/* Standard 31 S : Use of break statement in loop*/void static_31 (void)SINT_32 i=10 ;while (i -1)if (i = 0)break;i = i - 1; 2.2.1 編碼規(guī)則檢查典型規(guī)則舉例2022年8月30日24#include c_standards.h/* Standard 56 S : Equality comparison of floating point.*/void static_56 ( void)FLOAT_32 fl, f
11、2;fl=1.01f;f2=2.01f; if (fl = f2)/* . */if (fl = 0.0f)fl = fl + 0.01f; 2.2.1 編碼規(guī)則檢查典型規(guī)則舉例浮點(diǎn)數(shù)比較。2022年8月30日25功能函數(shù)無(wú)返回值。#include c_standards.h/* Standard 36 S : Function has no return statement.*/UINT_32 static_36(UINT_32 p_1, UINT_16 p_2)UINT_32 y=p_1;/* Not returning a value */ 2.2.1 編碼規(guī)則檢查典型規(guī)則舉例2022年
12、8月30日26MISRA C /MISRA-C:2004MISRA國(guó)際發(fā)動(dòng)機(jī)工業(yè)軟件可靠性協(xié)會(huì)組織制定了“汽車(chē)軟件C語(yǔ)言使用指南”的標(biāo)準(zhǔn)。這份標(biāo)準(zhǔn)的產(chǎn)生在自動(dòng)化行業(yè)極大地推動(dòng)了使用“安全的C”進(jìn)行編程。這份標(biāo)準(zhǔn)在汽車(chē)行業(yè)被廣泛接受,同時(shí)它也被其它行業(yè)所廣泛借鑒 。ISO 9126ISO 國(guó)際標(biāo)準(zhǔn)化組織IEC 61508IEC 國(guó)際電工委員會(huì)DERA CDERA 英國(guó)防護(hù)評(píng)估和研究機(jī)構(gòu) 2.2.1 編碼規(guī)則2022年8月30日27在語(yǔ)言的底層面上,前面列出的C語(yǔ)言存在的隱患,在C中基本都存在,所以從這個(gè)角度來(lái)看,C語(yǔ)言的大多數(shù)規(guī)則同樣適用于C;C應(yīng)用比較廣泛的編程規(guī)則Ellemtel Codin
13、g StandardsC Codeing StandardsMore Effective C+ 2.2.1 關(guān)于c+編碼規(guī)則2022年8月30日28編碼規(guī)則主要是針對(duì)語(yǔ)言使用本身的;編程風(fēng)格主要是針對(duì)代碼書(shū)寫(xiě)風(fēng)格的;對(duì)于質(zhì)量“苛刻性”系統(tǒng),執(zhí)行嚴(yán)格的編碼規(guī)則后,弱化了對(duì)于編程風(fēng)格的要求;規(guī)則約束很全面很?chē)?yán)格,很大程度上已經(jīng)完成了編程風(fēng)格檢測(cè)所要達(dá)到的效果;對(duì)于非質(zhì)量“苛刻性”系統(tǒng),執(zhí)行寬松的編碼規(guī)則,編程風(fēng)格的作用就顯得比較重要; 2.2.1 關(guān)于編碼規(guī)則與編程風(fēng)格2022年8月30日29編碼規(guī)則檢查實(shí)施項(xiàng)目之初制定編碼規(guī)則可提高軟件產(chǎn)品質(zhì)量,做到“有法可依”;培訓(xùn)軟件編程人員理解規(guī)則;加強(qiáng)管
14、理,項(xiàng)目進(jìn)行過(guò)程中需嚴(yán)格按編碼規(guī)則檢查,做到“執(zhí)法必嚴(yán)”;有效的編碼規(guī)則檢查工具支持; 2.2.1 編碼規(guī)則檢查的實(shí)施控制流分析使用控制流程圖系統(tǒng)檢查程序的控制流程結(jié)構(gòu);結(jié)構(gòu)化驗(yàn)證;分析不合理的控制流程結(jié)構(gòu):無(wú)條件跳轉(zhuǎn)指令(GOTO語(yǔ)句)使用;不適當(dāng)?shù)难h(huán)嵌套、分支嵌套;多重入口、出口;不允許的遞歸調(diào)用等。 2.2.2 控制流分析數(shù)據(jù)流分析在控制流基礎(chǔ)上分析數(shù)據(jù)使用情況;靜態(tài)數(shù)據(jù)流分析可幫助查找典型的程序錯(cuò)誤:用錯(cuò)的局域變量和全局變量;不匹配的參數(shù);未使用過(guò)的變量或標(biāo)號(hào);未定義的變量;不允許的遞歸;靜態(tài)數(shù)據(jù)流分析包括:過(guò)程函數(shù)參數(shù)及調(diào)用信息分析;數(shù)據(jù)流反常分析;全局變量分析。 2.2.3 數(shù)據(jù)
15、流分析過(guò)程或函數(shù)調(diào)用信息分析:參數(shù);全局變量;函數(shù)返回值。過(guò)程或函數(shù)調(diào)用信息分析用途:編寫(xiě)程序接口文檔;檢測(cè)錯(cuò)誤。查找錯(cuò)誤時(shí),下列兩種情況需特別關(guān)注:存在Clear Path使得輸出參數(shù)或變量不能正常取值;存在Clear Path使得過(guò)程或函數(shù)不能正常返回值。過(guò)程或函數(shù)參數(shù)參數(shù)全局變量全局變量全局變量 2.2.3 數(shù)據(jù)流分析典型數(shù)據(jù)流異常UR 聲明后沒(méi)有初始化就被引用 ;真實(shí)錯(cuò)誤(genuine error)DU初始化后沒(méi)有被引用 ;可疑錯(cuò)誤(suspicious error)DD兩次初始化之間沒(méi)有被引用;可疑錯(cuò)誤(suspicious error)1 void proc () 2 3 int
16、 x,y,z,t; 4 x = 1; 5 if (y 0) 6 x = 2; 7 /* end if */ 8 z = x + 1; 9 10 2.2.3 數(shù)據(jù)流分析 2.2.3 數(shù)據(jù)流分析一般編譯器會(huì)進(jìn)行簡(jiǎn)單的數(shù)據(jù)流分析,并且會(huì)有相應(yīng)的警告或者報(bào)錯(cuò)信息;相對(duì)于編譯器的數(shù)據(jù)流分析,專(zhuān)業(yè)工具的數(shù)據(jù)流分析更全面更徹底專(zhuān)業(yè)工具是全路徑的數(shù)據(jù)流分析,而編譯器一般不是;專(zhuān)業(yè)工具檢查的數(shù)據(jù)流異常的種類(lèi)比編譯器檢查的種類(lèi)多; 2.2.3 數(shù)據(jù)流分析數(shù)據(jù)流分析是較深入的靜態(tài)分析技術(shù);對(duì)于程序進(jìn)行數(shù)據(jù)流分析,并且排除相應(yīng)的數(shù)據(jù)流異??梢蕴岣叱绦虻慕研裕粚?duì)于有“苛刻性”質(zhì)量要求的項(xiàng)目,要求進(jìn)行數(shù)據(jù)流分析;什么是
17、軟件度量?體檢身高;體重;血壓;軟件度量直觀性;客觀性;與軟件錯(cuò)誤相關(guān)性。 2.2.4 軟件質(zhì)量度量與跟蹤控制軟件產(chǎn)品質(zhì)量?jī)?nèi)部特性代碼大小代碼結(jié)構(gòu)外部特性可靠性、可用性、可維護(hù)性等軟件開(kāi)發(fā)過(guò)程復(fù)雜度代碼大小覆蓋率直接測(cè)量間接測(cè)量維護(hù)性冗余性可靠性結(jié)構(gòu)化模塊化可復(fù)用性質(zhì)量 2.2.4 軟件質(zhì)量度量與跟蹤控制2022年8月30日38常用度量元McCabe圈復(fù)雜度結(jié)點(diǎn)度量Halstead 軟件科學(xué)度量循環(huán)深度基本圈復(fù)雜度基本結(jié)點(diǎn)度量LCSAJ密度扇入/扇出注釋行數(shù)及比例代碼可達(dá)性. 2.2.4 軟件質(zhì)量度量與跟蹤控制NASA軟件保證技術(shù)中心Software Assurance Technology
18、Centre軟件度量模型每個(gè)模塊代碼行小于100行;每個(gè)模塊可執(zhí)行語(yǔ)句小于50行;注釋行比例20%-30%;無(wú)GOTO語(yǔ)句使用;McCabe圈復(fù)雜度小于10。資料來(lái)源于“” 2.2.4 軟件質(zhì)量度量與跟蹤控制動(dòng)態(tài)測(cè)試是在抽樣測(cè)試數(shù)據(jù)上執(zhí)行程序并分析輸出以發(fā)現(xiàn)錯(cuò)誤的過(guò)程。根據(jù)測(cè)試?yán)碚?如果抽樣測(cè)試數(shù)據(jù)滿足一定要求,通過(guò)測(cè)試可以發(fā)現(xiàn)程序中大多數(shù)錯(cuò)誤,并且可以評(píng)估程序的質(zhì)量(正確性,可靠性等)。 2.3 動(dòng)態(tài)測(cè)試技術(shù)動(dòng)態(tài)測(cè)試技術(shù)具有以下特點(diǎn):實(shí)際運(yùn)行被測(cè)試程序,取得程序運(yùn)行的真實(shí)情況、動(dòng)態(tài)情況,進(jìn)而進(jìn)行分析。必須生成測(cè)試數(shù)據(jù)來(lái)運(yùn)行程序,測(cè)試質(zhì)量依賴(lài)于測(cè)試數(shù)據(jù)。生成
19、測(cè)試數(shù)據(jù),分析測(cè)試結(jié)果工作量大,使開(kāi)展測(cè)試工作費(fèi)時(shí)、費(fèi)力。動(dòng)態(tài)測(cè)試中涉及多方面工作,人員多、設(shè)備多、數(shù)據(jù)多,要求有較好的管理和工作規(guī)程。動(dòng)態(tài)測(cè)試包括三部分核心內(nèi)容:生成測(cè)試數(shù)據(jù),執(zhí)行程序與驗(yàn)證程序的輸出結(jié)果。 2.3 動(dòng)態(tài)測(cè)試技術(shù)動(dòng)態(tài)測(cè)試適用的層次:?jiǎn)卧獪y(cè)試 集成測(cè)試 系統(tǒng)測(cè)試 2.3 動(dòng)態(tài)測(cè)試技術(shù)黑盒測(cè)試與白盒測(cè)試方法功能調(diào)用圖. . . . . . . . 2.3 動(dòng)態(tài)測(cè)試技術(shù)黑盒測(cè)試(BLACK-BOX TESTING)是一種按照需求規(guī)格說(shuō)明設(shè)計(jì)測(cè)試數(shù)據(jù)的方法。它把程序看作內(nèi)部不可見(jiàn)的黑盒子,完全不需考慮程序內(nèi)部結(jié)構(gòu)和編碼結(jié)構(gòu),也不需考慮程序中的語(yǔ)句及路徑,測(cè)試者只需了解程序輸入和輸出之
20、間的關(guān)系,或是程序的功能,完全依靠能夠反映這一關(guān)系和程序功能的需求規(guī)格說(shuō)明確定測(cè)試數(shù)據(jù),判定測(cè)試結(jié)果的正確性。黑盒測(cè)試方法可用于功能測(cè)試、邊界測(cè)試、強(qiáng)度測(cè)試、隨機(jī)測(cè)試。 2.3.1 黑盒測(cè)試黑盒測(cè)試-基于需求(規(guī)格說(shuō)明)的測(cè)試 根據(jù)規(guī)格說(shuō)明生成測(cè)試用例 每個(gè)需求至少覆蓋一次方法:功能/性能測(cè)試(最普通的,最低限度的測(cè)試)邊值測(cè)試(Boundary Values)強(qiáng)化測(cè)試(Stress testing : at Capacity Limits)最壞情況測(cè)試(Worst cases Testing)隨機(jī)測(cè)試缺點(diǎn):在進(jìn)行上述所有各種測(cè)試后,仍有部分程序未被執(zhí)行。 2.3.1 黑盒測(cè)試規(guī)范(Speci
21、fication)生成測(cè)試用例生成預(yù)期的輸出結(jié)果規(guī)范(Specification)測(cè)試用例被測(cè)軟件輸出比較和分析預(yù)期的輸出結(jié)果正確/錯(cuò)誤黑盒測(cè)試技術(shù) 2.3.1 黑盒測(cè)試黑盒測(cè)試方法關(guān)心被測(cè)系統(tǒng)或模塊功能接口;不必了解軟件實(shí)現(xiàn)結(jié)構(gòu);基于軟件需求規(guī)格說(shuō)明。黑盒測(cè)試方法有效性很大程度依賴(lài)于被測(cè)軟件需求規(guī)格說(shuō)明、設(shè)計(jì)說(shuō)明要求規(guī)范的軟件需求分析、設(shè)計(jì);相關(guān)項(xiàng)目規(guī)范有非常明確的、具體的要求;分析師、設(shè)計(jì)師不使用規(guī)范的方法;測(cè)試人員很難對(duì)軟件需求分析、設(shè)計(jì)文檔進(jìn)行評(píng)審。方便有效的工具支持。 2.3.1 黑盒測(cè)試黑盒測(cè)試用例設(shè)計(jì)等價(jià)類(lèi)劃分;邊值分析;因果圖法;隨機(jī)測(cè)試法;猜錯(cuò)法;數(shù)據(jù)域分析法;. 2.3.1
22、 黑盒測(cè)試等價(jià)類(lèi)劃分將輸入或輸出劃分為等效的幾個(gè)區(qū)間:保證每個(gè)區(qū)間中任何數(shù)據(jù)或值具有相同特征;分區(qū)之間無(wú)依賴(lài)性。無(wú)效等價(jià)類(lèi)與有效等價(jià)類(lèi)。輸入或輸出不僅只是參數(shù):外部數(shù)據(jù);時(shí)間;順序/歷史;狀態(tài)。必須設(shè)計(jì)測(cè)試用例以覆蓋每一分區(qū)。 2.3.1 黑盒測(cè)試等價(jià)類(lèi)劃分 - 需考慮的幾個(gè)問(wèn)題:分區(qū)手工劃分;當(dāng)軟件復(fù)雜性增加時(shí);等價(jià)類(lèi)劃分變得復(fù)雜。如果分區(qū)之間具有依賴(lài)性; 使得測(cè)試用例變得困難。偏向于正向劃分等價(jià)類(lèi):必須補(bǔ)充反向測(cè)試數(shù)據(jù)。 2.3.1 黑盒測(cè)試邊值分析邊值分析法與等價(jià)類(lèi)劃分方法相近:軟件錯(cuò)誤易于在各分區(qū)的邊值范圍發(fā)生?;谌缦略瓌t設(shè)計(jì)測(cè)試用例: 以邊值執(zhí)行測(cè)試;以邊值鄰近值執(zhí)行測(cè)試 2.3.
23、1 黑盒測(cè)試邊值分析 - 需考慮的問(wèn)題:需具備硬件先驗(yàn)知識(shí)移植性使用每個(gè)最小邊值; 使用每個(gè)最大邊值;往往只做正向測(cè)試 2.3.1 黑盒測(cè)試因果圖法因果圖法的基本原理是通過(guò)因果圖,將自然語(yǔ)言描述的功能說(shuō)明轉(zhuǎn)換為判定表,最后為判定表的每一列設(shè)計(jì)測(cè)試用例。使用因果圖法設(shè)計(jì)測(cè)試用例步驟:列出一個(gè)模塊的輸入條件(因)和動(dòng)作(果),并給每一個(gè)原因與結(jié)果賦予一個(gè)標(biāo)識(shí)符;畫(huà)出因果圖;將因果圖轉(zhuǎn)換為判定表;按判定表規(guī)則設(shè)計(jì)為測(cè)試用例。 2.3.1 黑盒測(cè)試隨機(jī)測(cè)試采用隨機(jī)數(shù)據(jù)產(chǎn)生測(cè)試用例。 2.3.1 黑盒測(cè)試錯(cuò)誤推測(cè)法:通過(guò)估計(jì)可能發(fā)生的錯(cuò)誤類(lèi)型:基于經(jīng)驗(yàn)。需建立一錯(cuò)誤類(lèi)型清單:使用錯(cuò)誤類(lèi)型清單進(jìn)行測(cè)試;添
24、加并維護(hù)錯(cuò)誤類(lèi)型清單。 2.3.1 黑盒測(cè)試數(shù)據(jù)域分析法:根據(jù)對(duì)數(shù)據(jù)域的劃分,在域邊界選擇測(cè)試數(shù)據(jù);被實(shí)踐證明是十分有效的一種方法; 2.3.1 黑盒測(cè)試白盒測(cè)試技術(shù)根據(jù)被測(cè)程序的內(nèi)部結(jié)構(gòu)設(shè)計(jì)測(cè)試用例??刂屏鞣治?;數(shù)據(jù)流分析;驗(yàn)證軟件中所有語(yǔ)句、分支、條件組合都能正常執(zhí)行;軟件設(shè)計(jì)與最終代碼不一定完全一致;通過(guò)白盒測(cè)試確保不一致部分的代碼能正常。 2.3.2 白盒測(cè)試白盒測(cè)試-基于結(jié)構(gòu)的測(cè)試覆蓋度量:語(yǔ)句覆蓋100%:適用于單元、集成測(cè)試分支覆蓋 95%100% 85% 每個(gè)條件語(yǔ)句至少兩次(T,F(xiàn))路徑覆蓋:每條路徑至少一次,適用于單元測(cè)試缺點(diǎn):發(fā)現(xiàn)缺陷的效率不如黑盒子。 2.3.2 白盒測(cè)
25、試邏輯覆蓋vs.數(shù)據(jù)流覆蓋vs.路徑覆蓋 2.3.2 白盒測(cè)試ABJHCDGFEVAR2VAR1VAR1VAR2100% 語(yǔ)句執(zhí)行ABCDEFG100% 分支執(zhí)行ABHDEJG100% 數(shù)據(jù)流ABCDJGABHDEG 2.3.2 白盒測(cè)試ABJHCDGFEVAR2VAR1VAR1VAR2代碼覆蓋率指標(biāo)語(yǔ)句覆蓋;TER1分支覆蓋;TER2LCSAJ路徑覆蓋;TER3過(guò)程/函數(shù)調(diào)用覆蓋;分支條件覆蓋;Tsub(C)/TERcon(Ada)分支條件組合覆蓋;Tsub(C)/TERcon(Ada)修正條件/判定覆蓋。Tsub(C)/TERcon(Ada)數(shù)據(jù)流覆蓋率 2.3.2 白盒測(cè)試代碼覆蓋率效率
26、SBLALL PathBCMCDCBCCDPUDUDCU其中:B - 分支/判斷覆蓋BC - 分支/條件覆蓋BCC - 分支條件組合覆蓋DCU - 所有C-使用覆蓋DPU - 所有P-使用覆蓋DU - 所有DU-使用覆蓋L - LCSAJ覆蓋MCDC - 修正條件判定覆蓋S - 語(yǔ)句覆蓋 2.3.2 白盒測(cè)試不同標(biāo)準(zhǔn)/組織對(duì)覆蓋率要求不同。A級(jí)-災(zāi)難性(Catastrophic)MC/DC發(fā)動(dòng)機(jī)控制慣導(dǎo)系統(tǒng)B級(jí)-危險(xiǎn)性(Hazardous)分支覆蓋差分GPS導(dǎo)航C級(jí) - 嚴(yán)重性語(yǔ)句覆蓋無(wú)線通訊D級(jí) - 較輕性基本塊覆蓋BBC機(jī)上環(huán)境控制E級(jí) - 無(wú)影響Entry/Exit 覆蓋機(jī)上娛樂(lè)系統(tǒng) 2
27、.3.2 白盒測(cè)試不同測(cè)試階段代碼覆蓋率要求不同:?jiǎn)卧獪y(cè)試/漸增集成測(cè)試;根據(jù)不同的標(biāo)準(zhǔn),代碼覆蓋率要求不同;DO-178B A級(jí)MC/DC100%;DEF-STAN 00-55 LCSAJ100%;集成測(cè)試;過(guò)程/函數(shù)調(diào)用覆蓋率100%;系統(tǒng)測(cè)試;過(guò)程/函數(shù)調(diào)用覆蓋率100%;系統(tǒng)測(cè)試單元測(cè)試集成測(cè)試 2.3.2 白盒測(cè)試根據(jù)程序流程結(jié)構(gòu)在程序的特征點(diǎn)插裝代碼,插裝過(guò)的代碼在執(zhí)行時(shí)將特征值記錄保存供分析;程序入口、出口;程序分支;通常情況下插裝代碼將特征值寫(xiě)入歷史文件。通過(guò)分析特征值從而分析程序執(zhí)行流程、路徑。 2.3.2 白盒測(cè)試-代碼插裝技術(shù)主機(jī)平臺(tái)軟件測(cè)試靜態(tài)分析;判斷被測(cè)軟件流程結(jié)構(gòu)
28、;插裝代碼并執(zhí)行;動(dòng)態(tài)覆蓋率分析;執(zhí)行結(jié)束后,工具分析歷史文件得出代碼動(dòng)態(tài)執(zhí)行信息。工具編譯被測(cè)軟件插裝軟件執(zhí)行代碼執(zhí)行主機(jī)平臺(tái)軟件動(dòng)態(tài)測(cè)試歷史文件 2.3.2 白盒測(cè)試-代碼插裝技術(shù)嵌入式平臺(tái)軟件測(cè)試工具交叉編譯被測(cè)軟件插裝軟件目標(biāo)機(jī)執(zhí)行代碼存儲(chǔ)器歷史文件宿主機(jī)目標(biāo)機(jī)通信驅(qū)動(dòng)通信驅(qū)動(dòng)在線仿真器JTAG調(diào)試器以太網(wǎng)串口/并口或其它 2.3.2 白盒測(cè)試-嵌入式平臺(tái)主機(jī)平臺(tái)軟件測(cè)試往往不考慮代碼插裝影響;嵌入式軟件測(cè)試必須考慮代碼插裝影響;代碼空間有限;TI TMS320C25(64K字節(jié)程序區(qū),64K字節(jié)數(shù)據(jù)區(qū))。實(shí)時(shí)性;大都嵌入式系統(tǒng)實(shí)時(shí)性要求強(qiáng)。代碼插裝影響:代碼大小增加20%40%;不同
29、系統(tǒng)時(shí)間影響不定。單元測(cè)試/漸增集成測(cè)試時(shí)通常不考慮代碼插裝影響;系統(tǒng)測(cè)試需考慮代碼插裝影響。 2.3.2 白盒測(cè)試-嵌入式平臺(tái)黑盒測(cè)試與白盒測(cè)試方法使用策略白盒測(cè)試黑盒測(cè)試Specification測(cè)試策略:1、基于軟件需求定義設(shè)計(jì)測(cè)試用例進(jìn)行功能測(cè)試; 2、使用覆蓋率分析工具對(duì)功能測(cè)試進(jìn)行代碼覆蓋率分析; 3、如功能測(cè)試不滿足代碼覆蓋率要求,補(bǔ)充白盒測(cè)試用例。 2.3 動(dòng)態(tài)測(cè)試技術(shù)順序軟件開(kāi)發(fā)模式瀑布式(Waterfall)漸進(jìn)軟件開(kāi)發(fā)模式迭代開(kāi)發(fā)交互軟件開(kāi)發(fā)模式漸進(jìn)原型RAD 3. 軟件生命周期中的軟件測(cè)試2022年8月30日71計(jì) 劃需求分析設(shè) 計(jì)編 碼測(cè) 試運(yùn)行/維護(hù)定義階段開(kāi)發(fā)階段
30、維護(hù)階段軟件生存期的瀑布模型和軟件工程過(guò)程 3. 軟件生命周期中的軟件測(cè)試2022年8月30日72以軟件需求為基礎(chǔ)的測(cè)試產(chǎn)生低級(jí)測(cè)試軟件綜合測(cè)試硬件/軟件綜合測(cè)試軟件需求覆蓋范圍分析軟件結(jié)構(gòu)覆蓋范圍分析測(cè)試結(jié)果附加的驗(yàn)證直接路徑條件路徑軟件測(cè)試過(guò)程 3. 軟件生命周期中的軟件測(cè)試需求分析與系統(tǒng)設(shè)計(jì)概要(結(jié)構(gòu))設(shè)計(jì)詳細(xì)設(shè)計(jì)編 碼單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試用戶需求驗(yàn)收測(cè)試 3.1 軟件測(cè)試過(guò)程模型-V模型忽略了測(cè)試活動(dòng)對(duì)需求分析,系統(tǒng)設(shè)計(jì)等活動(dòng)的驗(yàn)證和確認(rèn)的功能描述了測(cè)試階段和開(kāi)發(fā)過(guò)程期間各階段的對(duì)應(yīng)關(guān)系需求分析與系統(tǒng)設(shè)計(jì)概要(結(jié)構(gòu))設(shè)計(jì)詳細(xì)設(shè)計(jì)編 碼集成實(shí)施用戶需求交付需求分析與系統(tǒng)設(shè)計(jì)V&V系統(tǒng)
31、測(cè)試準(zhǔn)備概要(結(jié)構(gòu))設(shè)計(jì)V&V集成測(cè)試準(zhǔn)備詳細(xì)設(shè)計(jì)V&V單元測(cè)試準(zhǔn)備單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試用戶需求V&V驗(yàn)收測(cè)試準(zhǔn)備驗(yàn)收測(cè)試 3.1 軟件測(cè)試過(guò)程模型-W模型測(cè)試是與開(kāi)發(fā)同步進(jìn)行;有利于盡早全面的發(fā)現(xiàn)問(wèn)題;需求、設(shè)計(jì)、編碼等活動(dòng)被視為串行;測(cè)試和開(kāi)發(fā)活動(dòng)也保持著一種線性的先后關(guān)系;對(duì)于復(fù)雜多變的情況,不能解除測(cè)試管理面臨的困惑測(cè)試就緒點(diǎn)測(cè)試準(zhǔn)備測(cè)試執(zhí)行測(cè)試流程 其它流程(如設(shè)計(jì)流程) 3.1 軟件測(cè)試過(guò)程模型-H模型X模型針對(duì)單獨(dú)的程序片斷進(jìn)行單獨(dú)的編碼和測(cè)試,此后通過(guò)頻繁的交接,通過(guò)集成最終合成為可執(zhí)行的程序;前置測(cè)試模型體現(xiàn)了開(kāi)發(fā)與測(cè)試的結(jié)合,要求對(duì)每一個(gè)交付內(nèi)容進(jìn)行測(cè)試; 3.1 其它
32、軟件測(cè)試過(guò)程模型在實(shí)踐測(cè)試工作中應(yīng)該盡可能的去應(yīng)用各個(gè)模型對(duì)項(xiàng)目有實(shí)用價(jià)值的方面,不能強(qiáng)行為使用模型而使用模型;以W模型為框架,及早的、全面的開(kāi)展測(cè)試;同時(shí)靈活的應(yīng)用H模型獨(dú)立測(cè)試的思想,在達(dá)到恰當(dāng)?shù)木途w點(diǎn)時(shí)就應(yīng)該開(kāi)展獨(dú)立的測(cè)試工作,同時(shí)將測(cè)試工作進(jìn)行迭代; 3.1 軟件測(cè)試過(guò)程模型的選擇策略經(jīng)過(guò)確認(rèn)測(cè)試后的軟件配置項(xiàng)項(xiàng)目申請(qǐng)軟件需求規(guī)格說(shuō)明 軟件需求分析概要(結(jié)構(gòu))設(shè)計(jì)詳細(xì)設(shè)計(jì)編 碼單元測(cè)試組裝測(cè)試確認(rèn)測(cè)試系統(tǒng)需求分析軟件聯(lián)試軟件任務(wù)書(shū)概要設(shè)計(jì)文檔詳細(xì)設(shè)計(jì)文檔代碼驗(yàn)證和確認(rèn)單元測(cè)試 驗(yàn)證和測(cè)試詳細(xì)設(shè)計(jì)文檔驗(yàn)證和確認(rèn)組裝測(cè)試 驗(yàn)證和測(cè)試確認(rèn)測(cè)試 驗(yàn)證和測(cè)試系統(tǒng)聯(lián)試 驗(yàn)證和測(cè)試概要設(shè)計(jì)文檔驗(yàn)證和
33、確認(rèn)軟件需求規(guī)格說(shuō)明驗(yàn)證和確認(rèn)經(jīng)過(guò)編譯后的模塊經(jīng)過(guò)單元測(cè)試后的單元經(jīng)過(guò)組裝測(cè)試后的軟件配置項(xiàng)可以交付的軟件配置項(xiàng)產(chǎn)品活動(dòng)驗(yàn)證 3.1 國(guó)內(nèi)航天軟件測(cè)試過(guò)程模型產(chǎn)生軟件需求收集并分析軟件需求;要求軟件需求具有完整性、非二義性及邏輯性;定義系統(tǒng)測(cè)試需求需對(duì)軟件需求進(jìn)行評(píng)審糾正軟件需求錯(cuò)誤需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試 3.2 軟件開(kāi)發(fā)過(guò)程需求分析階段產(chǎn)生概要設(shè)計(jì)需求將已確定的軟件需求轉(zhuǎn)換成相應(yīng)的體系結(jié)構(gòu);確定軟件中功能模塊; 定義功能模塊間接口。定義軟件集成測(cè)試需求評(píng)審概要設(shè)計(jì)糾正概要設(shè)計(jì)錯(cuò)誤需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試 3.2 軟件開(kāi)發(fā)過(guò)程概要設(shè)計(jì)階
34、段產(chǎn)生詳細(xì)設(shè)計(jì)需求對(duì)每個(gè)功能模塊進(jìn)行具體的描述;為程序編寫(xiě)打下基礎(chǔ)。定義單元測(cè)試需求評(píng)審詳細(xì)設(shè)計(jì)需求糾正詳細(xì)設(shè)計(jì)錯(cuò)誤需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試 3.2 軟件開(kāi)發(fā)過(guò)程詳細(xì)設(shè)計(jì)階段產(chǎn)生軟件代碼將軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接收的程序;要求程序結(jié)構(gòu)良好、清晰易讀,且與設(shè)計(jì)相一致。 進(jìn)行靜態(tài)分析或測(cè)試并不真正執(zhí)行 代碼評(píng)審糾正代碼錯(cuò)誤需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試 3.2 軟件開(kāi)發(fā)過(guò)程編程階段對(duì)各個(gè)軟件功能模塊分別進(jìn)行測(cè)試 驗(yàn)證被測(cè)模塊正確地實(shí)現(xiàn)了詳細(xì)設(shè)計(jì)需求。引入動(dòng)態(tài)測(cè)試或分析確保被測(cè)軟件沒(méi)有做錯(cuò)誤的事或行為。評(píng)審測(cè)試結(jié)果糾正錯(cuò)誤:編程錯(cuò)誤設(shè)計(jì)錯(cuò)誤測(cè)試錯(cuò)誤
35、需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試 3.3 單元測(cè)試階段單元測(cè)試是指測(cè)試程序中單個(gè)子程序或過(guò)程。在設(shè)計(jì)得好的軟件系統(tǒng)中,每個(gè)模塊完成一個(gè)清晰定義的子功能,而且這個(gè)子功能和同級(jí)其它模塊的功能之間沒(méi)有相互依賴(lài)關(guān)系,因此,有可能把每個(gè)模塊作為一個(gè)單獨(dú)的實(shí)體來(lái)測(cè)試。模塊測(cè)試一開(kāi)始不是把程序作為一個(gè)整體來(lái)測(cè)試,而是首先集中注意力來(lái)測(cè)試程序中較小的結(jié)構(gòu)塊,其優(yōu)點(diǎn)是:由于一開(kāi)始把注意力集中在程序的較小單元上,發(fā)現(xiàn)錯(cuò)誤,就可以肯定錯(cuò)誤所在模塊,因而便于糾錯(cuò);單元測(cè)試提供了同時(shí)測(cè)試多個(gè)模塊的機(jī)會(huì),使得測(cè)試過(guò)程得以并行進(jìn)行。單元測(cè)試檢查要點(diǎn)單元測(cè)試的目的是驗(yàn)證模塊滿足功能、性能和接口等的要求。單
36、元測(cè)試主要是模塊接口、局部數(shù)據(jù)結(jié)構(gòu)、重要的執(zhí)行路徑、錯(cuò)誤處理和邊界測(cè)試等五個(gè)基本特性進(jìn)行考察。 3.3 單元測(cè)試 適用對(duì)象:任一計(jì)算機(jī)軟件單元。 進(jìn)入條件:計(jì)算機(jī)軟件單元代碼無(wú)錯(cuò)誤地通過(guò)編譯或匯編。對(duì)于A(適合時(shí)還有B)級(jí)軟件應(yīng)已進(jìn)行靜態(tài)分析。測(cè)試內(nèi)容計(jì)算機(jī)軟件單元的功能測(cè)試;重要的執(zhí)行路徑測(cè)試;局部數(shù)據(jù)結(jié)構(gòu)測(cè)試;錯(cuò)誤處理測(cè)試;影響上述各條的界線條件(邊界值);語(yǔ)句覆蓋測(cè)試,分支覆蓋測(cè)試。 3.3 單元測(cè)試實(shí)施步驟制定計(jì)算機(jī)軟件單元測(cè)試計(jì)劃,應(yīng)在詳細(xì)設(shè)計(jì)階段完成;建立計(jì)算機(jī)軟件單元測(cè)試環(huán)境、編寫(xiě)測(cè)試說(shuō)明;執(zhí)行計(jì)算機(jī)軟件單元測(cè)試用例,并詳細(xì)記錄執(zhí)行信息;根據(jù)每個(gè)測(cè)試用例的預(yù)期輸出結(jié)果和實(shí)際運(yùn)行結(jié)
37、果,判定該測(cè)試是否通過(guò);如果測(cè)試不通過(guò),應(yīng)分析錯(cuò)誤原因,并在修正錯(cuò)誤后進(jìn)行回歸測(cè)試,直至通過(guò);完成計(jì)算機(jī)軟件單元測(cè)試報(bào)告;測(cè)試完成并通過(guò)后,將被測(cè)軟件和有關(guān)文檔納入配置管理。 3.3 單元測(cè)試測(cè)試評(píng)估根據(jù)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)、計(jì)算機(jī)軟件單元測(cè)試結(jié)果和發(fā)現(xiàn)的錯(cuò)誤信息,評(píng)價(jià)每個(gè)計(jì)算機(jī)軟件單元的設(shè)計(jì)及其實(shí)現(xiàn)。通過(guò)準(zhǔn)則完成并通過(guò)了計(jì)算機(jī)軟件單元靜態(tài)分析;計(jì)算機(jī)軟件單元功能同設(shè)計(jì)需求一致;計(jì)算機(jī)軟件單元接口同設(shè)計(jì)需求一致;能正確處理輸入和運(yùn)行中的錯(cuò)誤;對(duì)測(cè)試發(fā)現(xiàn)的問(wèn)題進(jìn)行修改后,又執(zhí)行并通過(guò)了有關(guān)測(cè)試;達(dá)到規(guī)定的測(cè)試覆蓋類(lèi)及覆蓋率且單元執(zhí)行正確;完成了計(jì)算機(jī)軟件單元測(cè)試報(bào)告; 3.3 單元測(cè)試2022年8月3
38、0日88單元測(cè)試的被測(cè)對(duì)象是程序單元,而程序單元不是一個(gè)獨(dú)立可運(yùn)行的程序,同時(shí)在對(duì)每個(gè)單元進(jìn)行單元測(cè)試時(shí),也不能完全忽視它們和周?chē)K的相互關(guān)系。為了模擬這類(lèi)關(guān)系,為程序單元的執(zhí)行構(gòu)造一個(gè)完整的環(huán)境,需設(shè)置兩種輔助測(cè)試模塊:驅(qū)動(dòng)模塊和樁模塊。驅(qū)動(dòng)模塊用以模擬被測(cè)模塊的上層模塊,測(cè)試執(zhí)行時(shí)由驅(qū)動(dòng)模塊調(diào)用被測(cè)模塊使其運(yùn)行,樁模塊模擬被測(cè)模塊執(zhí)行時(shí)所調(diào)用的模塊,測(cè)試執(zhí)行時(shí)樁模塊使被測(cè)模塊能完整閉合地運(yùn)行。在下一頁(yè)的圖中表示了被測(cè)模塊、驅(qū)動(dòng)模塊、樁模塊所構(gòu)成的單元測(cè)試執(zhí)行環(huán)境。由于測(cè)試模塊,可能調(diào)用多個(gè)其它模塊,因此可能有多個(gè)樁模塊。驅(qū)動(dòng)模塊和樁模塊要設(shè)計(jì)得盡量簡(jiǎn)單,避免因其錯(cuò)誤干擾被測(cè)模塊運(yùn)行和測(cè)試
39、結(jié)果判別。 3.3 單元測(cè)試方法2022年8月30日89驅(qū)動(dòng)模塊被測(cè)模塊樁模塊樁模塊樁模塊模塊測(cè)試執(zhí)行環(huán)境構(gòu)成 3.3 單元測(cè)試方法2022年8月30日90 3.3 單元測(cè)試方法單元測(cè)試可以采用白盒測(cè)試方法,也可以采用黑盒測(cè)試方法。單元測(cè)試的任務(wù):按照所選擇的白盒測(cè)試方法和/或黑盒測(cè)試方法設(shè)計(jì)測(cè)試用例;將測(cè)試用例編寫(xiě)成測(cè)試程序;建立單元測(cè)試環(huán)境;執(zhí)行測(cè)試程序;進(jìn)行測(cè)試結(jié)果分析,包括覆蓋分析。根據(jù)模塊結(jié)構(gòu)圖將各模塊連接起來(lái)測(cè)試。漸增式與非漸增式;很好地檢查模塊間接口錯(cuò)誤。動(dòng)態(tài)分析評(píng)審集成測(cè)試結(jié)果糾正錯(cuò)誤:接口錯(cuò)誤設(shè)計(jì)錯(cuò)誤測(cè)試錯(cuò)誤需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試 3.4 軟件集
40、成測(cè)試階段2022年8月30日92 集成測(cè)試是有序進(jìn)行的一種測(cè)試。在這種測(cè)試中,把各個(gè)模塊逐步裝配成高層的功能模塊并進(jìn)行測(cè)試,直到整個(gè)軟件成為一個(gè)整體。集成測(cè)試的目的是檢驗(yàn)軟件模塊之間的接口關(guān)系,并把經(jīng)過(guò)測(cè)試的模塊構(gòu)造成符合設(shè)計(jì)要求的軟件。 3.4 集成測(cè)試2022年8月30日93 3.4 集成測(cè)試集成測(cè)試的主要內(nèi)容:模塊間的接口測(cè)試:接口測(cè)試是集成測(cè)試的基本任務(wù)。在接口測(cè)試中應(yīng)從調(diào)用關(guān)系和數(shù)據(jù)項(xiàng)的相容性兩方面考慮。數(shù)據(jù)項(xiàng)的相容性是指調(diào)用時(shí)數(shù)據(jù)傳遞的正確性。全局?jǐn)?shù)據(jù)結(jié)構(gòu)測(cè)試:全局?jǐn)?shù)據(jù)結(jié)構(gòu)是一種常用的接口方式,因此要在集成測(cè)試中進(jìn)行測(cè)試。性能測(cè)試:在必要時(shí)應(yīng)進(jìn)行組裝成的中間功能模塊的運(yùn)行時(shí)間、運(yùn)
41、行空間、計(jì)算精度的測(cè)試。由于系統(tǒng)還沒(méi)有完全結(jié)合進(jìn)來(lái),一些性能的度量容易進(jìn)行,也容易較早察覺(jué)真實(shí)模塊結(jié)合后給性能帶來(lái)的影響。軟件功能模塊的功能測(cè)試:如果我們不是一下把所有的模塊集成為一個(gè)整體軟件,會(huì)獲得一些中間功能模塊,這也是規(guī)范有效的組裝測(cè)試過(guò)程要求的。在測(cè)試了構(gòu)成這個(gè)功能模塊內(nèi)接口的正確性后,我們還應(yīng)測(cè)試整個(gè)功能模塊是否滿足相應(yīng)的功能需求。雖然在接口測(cè)試時(shí)已證實(shí)功能模塊的一些功能,但只是側(cè)重于接口方面。因此,如果若干子功能形成了一個(gè)如設(shè)計(jì)文檔中要求的一個(gè)高層功能,必須進(jìn)行功能測(cè)試。2022年8月30日94增量測(cè)試和非增量測(cè)試: 增量測(cè)試是指不斷地把待測(cè)模塊組合到已經(jīng)測(cè)試過(guò)的模塊上去,然后再進(jìn)
42、行測(cè)試;非增量測(cè)試是指獨(dú)立地測(cè)試每個(gè)模塊,再把它們組合成完整的程序。 3.4 集成測(cè)試2022年8月30日95 3.4 集成測(cè)試增量測(cè)試相對(duì)于非增量測(cè)試的優(yōu)點(diǎn)是:增量測(cè)試需要的工作量較非增量測(cè)試要少。因?yàn)榉窃隽繙y(cè)試要為每個(gè)模塊構(gòu)造相應(yīng)的驅(qū)動(dòng)模塊和樁模塊,而增量測(cè)試可利用一些已測(cè)試的模塊。非增量測(cè)試先分散測(cè)試,再集中起來(lái)一次完成組合和測(cè)試,如果在模塊接口處存在差錯(cuò),只會(huì)在最后的組合時(shí)一下子暴露出來(lái)。使用增量測(cè)試方法可以較早地發(fā)現(xiàn)模塊接口錯(cuò)誤,這是由于較早地把模塊組合起來(lái)進(jìn)行測(cè)試所致。增量測(cè)試使調(diào)試工作變得容易,因?yàn)樵隽恐鸩浇M合和逐步測(cè)試模塊,把可能出現(xiàn)的錯(cuò)誤逐步分散暴露出來(lái),并且由于每次組合一個(gè)
43、模塊,錯(cuò)誤發(fā)生時(shí),可以比較容易定位,這些錯(cuò)誤肯定是在最新增加的模塊的連接中出現(xiàn)的。而非增量測(cè)試,直到對(duì)各個(gè)模塊測(cè)試結(jié)束,對(duì)整個(gè)程序進(jìn)行組合時(shí)才能發(fā)現(xiàn)錯(cuò)誤,這時(shí)再要確定錯(cuò)誤的位置就非常困難,因?yàn)殄e(cuò)誤可能出現(xiàn)在程序的任何地方。增量測(cè)試?yán)靡褱y(cè)試過(guò)的模塊取代非增量測(cè)試中所需要的驅(qū)動(dòng)模塊或樁模塊,這樣對(duì)后續(xù)模塊的測(cè)試會(huì)使得前面已測(cè)試過(guò)的模塊得到更多的檢驗(yàn),因而整個(gè)程序的測(cè)試能取得較好的效果。2022年8月30日96 非增量測(cè)試相對(duì)于增量測(cè)試的優(yōu)點(diǎn)是:在模塊測(cè)試階段可以并行工作。自頂向下測(cè)試與自底向上測(cè)試 這是增量測(cè)試的兩種不同方式。自頂向下測(cè)試是從頂端模塊開(kāi)始的測(cè)試,選擇下一次測(cè)試的模塊的原則是:至少
44、有一個(gè)調(diào)用它的模塊已經(jīng)測(cè)試過(guò)。自底向上的方法是從程序的末端(即不調(diào)用別的模塊的模塊)開(kāi)始測(cè)試的,選擇下一個(gè)測(cè)試模塊的原則是:所有下層的模塊(即它能調(diào)用的模塊)必須事先都被測(cè)試過(guò)。 3.4 集成測(cè)試需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試將軟件、硬件和環(huán)境連在一起全面的測(cè)試。檢查系統(tǒng)與需求說(shuō)明是否相符;不同系統(tǒng)測(cè)試內(nèi)容不同。結(jié)果評(píng)審糾正錯(cuò)誤:需求錯(cuò)誤接口錯(cuò)誤設(shè)計(jì)錯(cuò)誤測(cè)試錯(cuò)誤 3.5 系統(tǒng)測(cè)試階段2022年8月30日98 3.5 系統(tǒng)測(cè)試系統(tǒng)測(cè)試的特點(diǎn):系統(tǒng)測(cè)試的環(huán)境是軟件真實(shí)運(yùn)行環(huán)境的最逼真的模擬。系統(tǒng)測(cè)試中各部分研制完成的真實(shí)設(shè)備逐漸取代了模擬器或仿真器,有關(guān)真實(shí)性的一類(lèi)錯(cuò)誤,包括
45、外圍設(shè)備接口、輸出/輸入、或多處理器設(shè)備之間的接口不相容,整個(gè)系統(tǒng)時(shí)序匹配等,在這種運(yùn)行環(huán)境下能得到比較全面的暴露。系統(tǒng)測(cè)試的困難在于不容易從系統(tǒng)目標(biāo)直接生成測(cè)試用例。2022年8月30日99 3.5 系統(tǒng)測(cè)試適用對(duì)象在真實(shí)或仿真環(huán)境中的計(jì)算機(jī)軟件配置項(xiàng)。進(jìn)入條件 完成并通過(guò)計(jì)算機(jī)軟件配置項(xiàng)測(cè)試并已納入配置管理。測(cè)試內(nèi)容在系統(tǒng)測(cè)試中,計(jì)算機(jī)軟件配置項(xiàng)加入到系統(tǒng)中進(jìn)行測(cè)試,以檢驗(yàn)軟件是否滿足軟件任務(wù)書(shū)規(guī)定的要求。應(yīng)根據(jù)軟件的復(fù)雜性,重要性,類(lèi)型和關(guān)鍵級(jí)別,選擇進(jìn)行以下測(cè)試,但必須包括功能測(cè)試,性能測(cè)試和強(qiáng)化測(cè)試。2022年8月30日100 3.5 系統(tǒng)測(cè)試系統(tǒng)功能測(cè)試;系統(tǒng)性能測(cè)試;軟件和系統(tǒng)接
46、口測(cè)試;系統(tǒng)強(qiáng)化測(cè)試;系統(tǒng)余量測(cè)試;系統(tǒng)可靠性測(cè)試;系統(tǒng)安全性測(cè)試;系統(tǒng)恢復(fù)性測(cè)試;系統(tǒng)邊界測(cè)試;系統(tǒng)敏感性測(cè)試。2022年8月30日101 3.5 系統(tǒng)測(cè)試具體要求系統(tǒng)功能測(cè)試測(cè)試在真實(shí)系統(tǒng)環(huán)境或系統(tǒng)仿真環(huán)境中軟件的各項(xiàng)功能滿足系統(tǒng)需求;系統(tǒng)性能測(cè)試測(cè)試在真實(shí)系統(tǒng)環(huán)境或系統(tǒng)仿真環(huán)境中軟件的各項(xiàng)性能指標(biāo)滿足系統(tǒng)需求;測(cè)試軟件性能和硬件性能的集成;軟件和系統(tǒng)接口測(cè)試測(cè)試軟件對(duì)系統(tǒng)每一個(gè)真實(shí)接口的正確性.驗(yàn)證接口信息的內(nèi)容和格式;測(cè)試硬件提供的接口是否便于軟件使用;測(cè)試軟件在真實(shí)系統(tǒng)環(huán)境或系統(tǒng)仿真環(huán)境中提供的人機(jī)交互接口,驗(yàn)證操作有效性,顯示和信息輸出清晰;測(cè)試系統(tǒng)特性(如數(shù)據(jù)特性,錯(cuò)誤特性,速度
47、特性)對(duì)軟件功能,性能特性的影響。2022年8月30日102 3.5 系統(tǒng)測(cè)試 系統(tǒng)強(qiáng)化測(cè)試在真實(shí)系統(tǒng)環(huán)境或系統(tǒng)仿真環(huán)境中進(jìn)行強(qiáng)化測(cè)試。 系統(tǒng)余量測(cè)試軟件在真實(shí)系統(tǒng)環(huán)境或系統(tǒng)仿真環(huán)境中運(yùn)行時(shí),測(cè)試系統(tǒng)全部存儲(chǔ)量,輸入/輸出通道及處理時(shí)間的余量,應(yīng)滿足系統(tǒng)/子系統(tǒng)設(shè)計(jì)文檔要求。 系統(tǒng)可靠性測(cè)試在真實(shí)系統(tǒng)環(huán)境或系統(tǒng)仿真環(huán)境中進(jìn)行可靠性測(cè)試。 系統(tǒng)安全性測(cè)試在真實(shí)系統(tǒng)環(huán)境或系統(tǒng)仿真環(huán)境中進(jìn)行安全性測(cè)試。2022年8月30日103 3.5 系統(tǒng)測(cè)試 系統(tǒng)恢復(fù)性測(cè)試對(duì)有恢復(fù)或重置(RESET)功能的系統(tǒng),必須驗(yàn)證恢復(fù)或重置功能,對(duì)每一類(lèi)導(dǎo)致恢復(fù)或重置的情況進(jìn)行測(cè)試。驗(yàn)證軟件自身運(yùn)行的恢復(fù)或重置,軟件控制
48、的系統(tǒng)的恢復(fù)或重置,系統(tǒng)控制的軟件的恢復(fù)或重置. 系統(tǒng)邊界測(cè)試測(cè)試軟件在系統(tǒng)輸入域(或輸出域),狀態(tài)轉(zhuǎn)換,功能界限,性能界限,容量界限等的邊界或端點(diǎn)情況下的運(yùn)行狀態(tài)。 系統(tǒng)敏感性測(cè)試包括軟件可能的擴(kuò)展性和系統(tǒng)電,磁,機(jī)械干擾對(duì)軟件特性的影響。2022年8月30日104測(cè)試基本條件需要的文檔資料測(cè)試結(jié)果靜態(tài)分析代碼無(wú)錯(cuò)誤地通過(guò)編譯或匯編軟件源代碼編碼標(biāo)準(zhǔn)詳細(xì)設(shè)計(jì)說(shuō)明軟/硬件接口說(shuō)明軟件靜態(tài)分析報(bào)告代碼審查代碼無(wú)錯(cuò)誤地通過(guò)編譯或匯編概要設(shè)計(jì)說(shuō)明數(shù)據(jù)字典軟件源代碼軟/硬件接口說(shuō)明代碼靜態(tài)分析報(bào)告軟件代碼審查報(bào)告軟件問(wèn)題報(bào)告單元測(cè)試符合規(guī)定的軟件單元源程序代碼代碼無(wú)錯(cuò)誤地通過(guò)編譯或匯編規(guī)定的測(cè)試環(huán)境和
49、工具概要設(shè)計(jì)說(shuō)明詳細(xì)設(shè)計(jì)說(shuō)明數(shù)據(jù)字典軟/硬件接口說(shuō)明代碼審查報(bào)告軟件單元測(cè)試報(bào)告軟件單元測(cè)試評(píng)審報(bào)告軟件問(wèn)題報(bào)告測(cè)試進(jìn)入條件 3.6 測(cè)試進(jìn)入條件2022年8月30日105測(cè)試基本條件需要的文檔資料測(cè)試結(jié)果部件測(cè)試被集成的軟件單元已通過(guò)單元測(cè)試報(bào)告規(guī)定的測(cè)試環(huán)境和工具軟件需求規(guī)格說(shuō)明概要設(shè)計(jì)說(shuō)明數(shù)據(jù)字典軟/硬件接口說(shuō)明單元測(cè)試報(bào)告單元測(cè)試評(píng)審報(bào)告軟件部件測(cè)試報(bào)告軟件部件測(cè)試評(píng)審報(bào)告軟件問(wèn)題報(bào)告軟件集成測(cè)試通過(guò)軟件部件測(cè)試整個(gè)軟件配置項(xiàng)具備在真實(shí)或仿真環(huán)境下運(yùn)行的條件軟件需求規(guī)格說(shuō)明軟件部件測(cè)試報(bào)告軟件部件測(cè)試評(píng)審報(bào)告軟件集成測(cè)試報(bào)告軟件集成測(cè)試評(píng)審報(bào)告軟件問(wèn)題報(bào)告系統(tǒng)測(cè)試系統(tǒng)的所有的軟件配置項(xiàng)
50、通過(guò)軟件測(cè)試系統(tǒng)綜合試驗(yàn)大綱和操作細(xì)則真實(shí)的系統(tǒng)工作環(huán)境軟件研制任務(wù)書(shū)軟件需求規(guī)格說(shuō)明軟件集成控制文件ICD系統(tǒng)用戶手冊(cè)、操作手冊(cè)軟件集成測(cè)試報(bào)告軟件集成測(cè)試評(píng)審報(bào)告軟件部分的測(cè)試報(bào)告軟件問(wèn)題報(bào)告 3.6 測(cè)試進(jìn)入條件2022年8月30日106序號(hào)測(cè)試效率1正式的代碼走查45702功能測(cè)試20353單元測(cè)試15504集成測(cè)試25405系統(tǒng)測(cè)試25556回歸測(cè)試1530效率 發(fā)現(xiàn)的軟件缺陷 / 總?cè)毕菡J(rèn)真進(jìn)行上述6種測(cè)試,約可達(dá)到85%的檢錯(cuò)效率,花費(fèi)開(kāi)發(fā)成本的33%45%各種測(cè)試檢測(cè)軟件缺陷的效率 3. 軟件生命周期中的軟件測(cè)試2022年8月30日107軟件測(cè)試是軟件工程中的一個(gè)子過(guò)程,為使軟
51、件測(cè)試工作系統(tǒng)化、工程化,必須合理組織測(cè)試過(guò)程管埋,包括簽定第三方獨(dú)立測(cè)試合同、制定測(cè)試計(jì)劃、組織項(xiàng)目人員、建立項(xiàng)目環(huán)境、監(jiān)控項(xiàng)目進(jìn)展等等。 4. 軟件測(cè)試管理2022年8月30日108測(cè)試工作流程 4. 軟件測(cè)試管理1)制定測(cè)試計(jì)劃;包括活動(dòng)的范圍和測(cè)試方法:制定測(cè)試要素、如覆蓋程度;明確測(cè)試終止的要求和異常終止的情況;確定資源要求;制定總的進(jìn)度安排。2)制定測(cè)試說(shuō)明;確定需測(cè)試的特性;細(xì)化測(cè)試計(jì)劃的有關(guān)內(nèi)容(測(cè)試方法、所需資源、詳細(xì)進(jìn)度);設(shè)計(jì)測(cè)試用例集,制定測(cè)試規(guī)程,給出相關(guān)的說(shuō)明。3)執(zhí)行測(cè)試計(jì)劃;實(shí)現(xiàn)測(cè)試設(shè)計(jì)(獲得并驗(yàn)證測(cè)試數(shù)據(jù),獲得指定的資源,獲得測(cè)試項(xiàng));執(zhí)行測(cè)試規(guī)程(運(yùn)行測(cè)試,
52、判定結(jié)果、對(duì)每次失效加以記錄、分析和解決);核對(duì)終止情況(正常終止、必要是補(bǔ)充測(cè)試集)2022年8月30日109 4. 軟件測(cè)試管理測(cè)試工作流程4)評(píng)價(jià)傳送效果和被測(cè)試軟件;依照評(píng)價(jià)準(zhǔn)則,評(píng)價(jià)測(cè)試工作和被測(cè)軟件;當(dāng)發(fā)現(xiàn)測(cè)試工作不足時(shí),應(yīng)修訂測(cè)試計(jì)劃,重復(fù)1)開(kāi)始的工作,直到測(cè)試完備時(shí)止。5)產(chǎn)生完整的測(cè)試文檔,包括測(cè)試計(jì)劃、測(cè)試說(shuō)明、測(cè)試報(bào)告或測(cè)試計(jì)劃、測(cè)試分析報(bào)告。2022年8月30日110 4. 軟件測(cè)試管理編制測(cè)試計(jì)劃軟件測(cè)試計(jì)劃是軟件測(cè)試的總方針,計(jì)劃是領(lǐng)導(dǎo)測(cè)試過(guò)程的決定性部分。好的測(cè)試計(jì)劃應(yīng)有以下內(nèi)容:a. 目的:必須明確每一測(cè)試階段的目的。b. 完成的標(biāo)準(zhǔn):必須給出判斷每個(gè)測(cè)試階段是否完成的標(biāo)準(zhǔn)。c. 時(shí)間安排:對(duì)于每一個(gè)測(cè)試階段,都要有一個(gè)時(shí)間表,指出設(shè)計(jì)、寫(xiě)出和執(zhí)行測(cè)試用例的時(shí)間。d. 明確的責(zé)任:對(duì)于每一個(gè)測(cè)試階段,要具體指出誰(shuí)來(lái)設(shè)計(jì)、寫(xiě)出、執(zhí)行并驗(yàn)證測(cè)試用例,誰(shuí)來(lái)修改出現(xiàn)的錯(cuò)誤。e. 測(cè)試用例庫(kù)及其標(biāo)準(zhǔn)化:有必要用系統(tǒng)化的方法標(biāo)識(shí)、列出和存儲(chǔ)測(cè)試用例。f. 工具:必須確定所需要的測(cè)試工具,訂出計(jì)劃:誰(shuí)來(lái)開(kāi)發(fā)或得到這些工具,這些工具怎樣用,什么時(shí)候用。2022年8月30日111 4. 軟件測(cè)試管理g. 硬件配置:如果需要特殊的硬件配青或設(shè)備,那計(jì)劃中就要描
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人消費(fèi)信用貸款合同范本11篇
- 二零二五年度商業(yè)街區(qū)臨時(shí)房屋借用經(jīng)營(yíng)合同3篇
- 二零二五山地旅游度假村租賃協(xié)議3篇
- 二零二五年度餐飲加盟店食品安全風(fēng)險(xiǎn)評(píng)估合同3篇
- 2025年度個(gè)人二手房買(mǎi)賣(mài)合同(含家具家電及搬家及清潔服務(wù))
- 科技助力家庭教育老年人與子女的和諧互動(dòng)
- 跨學(xué)科視角下的學(xué)生自主學(xué)習(xí)能力培養(yǎng)路徑分析
- 二零二五年度金融法律服務(wù)顧問(wèn)合同2篇
- 二零二五年度地震監(jiān)測(cè)井建設(shè)施工合同3篇
- 煙臺(tái)2025年山東煙臺(tái)萊州市征兵結(jié)合事業(yè)單位招聘征集本科及以上學(xué)歷畢業(yè)生入伍筆試歷年參考題庫(kù)附帶答案詳解
- 語(yǔ)言學(xué)概論全套教學(xué)課件
- 大數(shù)據(jù)與人工智能概論
- 《史記》上冊(cè)注音版
- 2018年湖北省武漢市中考數(shù)學(xué)試卷含解析
- 測(cè)繪工程產(chǎn)品價(jià)格表匯編
- 《腎臟的結(jié)構(gòu)和功能》課件
- 裝飾圖案設(shè)計(jì)-裝飾圖案的形式課件
- 護(hù)理學(xué)基礎(chǔ)教案導(dǎo)尿術(shù)catheterization
- ICU護(hù)理工作流程
- 天津市新版就業(yè)、勞動(dòng)合同登記名冊(cè)
- 廣東版高中信息技術(shù)教案(全套)
評(píng)論
0/150
提交評(píng)論