




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023/10/181軟件工程(SoftwareEngineering)第七章實(shí)現(xiàn)2023/10/182編碼和測(cè)試編碼就為是用編程(程序)語(yǔ)言把軟件表達(dá)翻譯為計(jì)算機(jī)可以理解的形式—用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。2023/10/183前一頁(yè)測(cè)試
軟件測(cè)試非常重要,它對(duì)軟件可靠性產(chǎn)生直接影響。測(cè)試的目的是在軟件投入生產(chǎn)運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。目前軟件測(cè)試仍然是保證軟件質(zhì)量的關(guān)鍵步驟,它是對(duì)軟件規(guī)格說(shuō)明、設(shè)計(jì)和編碼的最后復(fù)審。軟件測(cè)試由兩個(gè)階段組成,分別是單元測(cè)試和集成測(cè)試。2023/10/184測(cè)試
軟件測(cè)試的工作量往往占軟件開發(fā)總工作量的40%以上,在極端情況,測(cè)試那種關(guān)系生命安全的軟件所花費(fèi)的成本,可能相當(dāng)于軟件工程其他開發(fā)步驟總成本的3—5倍。
測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤,但軟件生產(chǎn)的最終目的是開發(fā)出高質(zhì)量的完全符合用戶需要的軟件。2023/10/185本章主要內(nèi)容編碼測(cè)試基礎(chǔ)單元測(cè)試集成測(cè)試確認(rèn)測(cè)試白盒測(cè)試技術(shù)黑盒測(cè)試技術(shù)調(diào)試軟件可靠性前一頁(yè)2023/10/186編碼編碼之前的一項(xiàng)重要工作是選擇適當(dāng)?shù)某绦蛟O(shè)計(jì)語(yǔ)言適當(dāng)?shù)木幊陶Z(yǔ)言可以減少需要的程序測(cè)試量,可以得出更易閱讀和更易維護(hù)的程序匯編語(yǔ)言和高級(jí)語(yǔ)言相比,使用高級(jí)語(yǔ)言寫的程序更易閱讀、測(cè)試、調(diào)試和維護(hù)2023/10/187編碼在進(jìn)行高級(jí)語(yǔ)言的選擇時(shí),應(yīng)該有標(biāo)準(zhǔn)參照系統(tǒng)用戶的要求可以使用的編譯程序可以得到的軟件工具工程規(guī)模程序員的知識(shí)軟件可移植性要求軟件的應(yīng)用領(lǐng)域2023/10/188編碼風(fēng)格設(shè)計(jì)出易讀易懂程序的規(guī)則:程序內(nèi)部的文檔標(biāo)識(shí)符:含義鮮明的名字注解:幫助理解程序程序的視覺組織:程序清單的布局2023/10/189編碼風(fēng)格數(shù)據(jù)說(shuō)明:數(shù)據(jù)說(shuō)明的次序應(yīng)該標(biāo)準(zhǔn)化,提高效率按字母順序排列變量使用注解說(shuō)明復(fù)雜的數(shù)據(jù)結(jié)構(gòu)2023/10/1810編碼風(fēng)格語(yǔ)句構(gòu)造:每個(gè)語(yǔ)句都應(yīng)該簡(jiǎn)單而直接
可以使用一些規(guī)則使語(yǔ)句構(gòu)造簡(jiǎn)單,如:盡量避免復(fù)雜的條件測(cè)試,不要為了節(jié)省空間而把多個(gè)語(yǔ)句寫在同一行等。2023/10/1811編碼風(fēng)格輸入輸出在設(shè)計(jì)和編寫程序時(shí)應(yīng)考慮輸入和輸出風(fēng)格的規(guī)則。2023/10/1812編碼風(fēng)格效率:處理機(jī)時(shí)間和存儲(chǔ)器容量三條基本原則:效率是性能要求,需求分析階段確定效率是靠好設(shè)計(jì)來(lái)提高的程序的效率和程序的簡(jiǎn)單程度是一致的2023/10/1813編碼風(fēng)格效率程序運(yùn)行時(shí)間:寫程序的風(fēng)格對(duì)執(zhí)行速度有影響存儲(chǔ)器效率:提供存儲(chǔ)器效率輸入輸出的效率:提高人機(jī)通信的效率2023/10/1814軟件測(cè)試基礎(chǔ)前一頁(yè)
軟件測(cè)試階段的根本目標(biāo)是盡可能多地發(fā)現(xiàn)并排除軟件中潛藏的錯(cuò)誤,最終把一個(gè)高質(zhì)量的軟件系統(tǒng)交給用戶使用。2023/10/1815基本概念軟件測(cè)試的目標(biāo)
軟件測(cè)試準(zhǔn)則測(cè)試方法測(cè)試步驟測(cè)試階段的信息流
前一頁(yè)2023/10/1816前一頁(yè)基本概念軟件測(cè)試的目標(biāo)
(1)測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程。
(2)好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案。
(3)成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。2023/10/1817軟件測(cè)試的定義測(cè)試的正確定義:為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程錯(cuò)誤觀念:測(cè)試是為了表明程序是正確的測(cè)試應(yīng)由專門的測(cè)試小組來(lái)完成測(cè)試只能查找程序中的錯(cuò)誤,不能證明程序中沒有錯(cuò)誤2023/10/1818軟件測(cè)試準(zhǔn)則所有測(cè)試都能追溯到用戶需求應(yīng)該盡早開始測(cè)試計(jì)劃的制定應(yīng)用Pareto原理定位錯(cuò)誤測(cè)試應(yīng)該有“小”到“大”窮舉測(cè)試不可能應(yīng)該由獨(dú)立的第三方從事測(cè)試工作2023/10/1819前一頁(yè)測(cè)試方法
黑盒測(cè)試是在程序接口進(jìn)行的測(cè)試,它只檢查程序功能是否能按照規(guī)格說(shuō)明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息(如:數(shù)據(jù)庫(kù)或文件)的完整性。黑盒測(cè)試又稱為功能測(cè)試。測(cè)試任何產(chǎn)品都有兩種方法:黑盒測(cè)試和白盒測(cè)試2023/10/1820基本概念前一頁(yè)白盒測(cè)試
白盒測(cè)試法是可以把程序看成裝在一個(gè)透明的白盒子里,了解程序的結(jié)構(gòu)和處理過程。這種方法按照程序內(nèi)部的邏輯測(cè)試程序,檢驗(yàn)程序中的每條通路是否能按預(yù)定要求正確工作。白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試。2023/10/1821前一頁(yè)測(cè)試步驟
大型軟件系統(tǒng)通常由若干個(gè)子系統(tǒng)組成,每個(gè)子系統(tǒng)又由許多模塊組成。因此,大型軟件的測(cè)試基本上由下述幾個(gè)步驟組成:1、模塊測(cè)試2、子系統(tǒng)測(cè)試3、系統(tǒng)測(cè)試4、驗(yàn)收測(cè)試5、平行運(yùn)行
2023/10/1822軟件測(cè)試的步驟前一頁(yè)模塊測(cè)試
模塊測(cè)試的目的是保證每個(gè)模塊作為一個(gè)單元能正確運(yùn)行,所以模塊測(cè)試通常又稱為單元測(cè)試。在這個(gè)測(cè)試步驟中所發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計(jì)的錯(cuò)誤。
2023/10/1823前一頁(yè)子系統(tǒng)測(cè)試
子系統(tǒng)測(cè)試是把經(jīng)過單元測(cè)試的模塊放在一起形成一個(gè)子系統(tǒng)來(lái)測(cè)試。模塊相互間的協(xié)調(diào)和通信是這個(gè)測(cè)試過程中的主要問題。這個(gè)步驟著重測(cè)試模塊的接口。
軟件測(cè)試的步驟2023/10/1824前一頁(yè)系統(tǒng)測(cè)試
系統(tǒng)測(cè)試是把經(jīng)過測(cè)試的子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來(lái)測(cè)試。在這個(gè)過程中不僅應(yīng)該發(fā)現(xiàn)設(shè)計(jì)和編碼的錯(cuò)誤,還應(yīng)該驗(yàn)證系統(tǒng)確實(shí)能提供需求說(shuō)明書中指定的功能,而且系統(tǒng)的動(dòng)態(tài)特性也要符合預(yù)定要求。在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是軟件設(shè)計(jì)中的錯(cuò)誤,也可能發(fā)現(xiàn)需求說(shuō)明中的錯(cuò)誤。軟件測(cè)試的步驟2023/10/1825前一頁(yè)驗(yàn)收測(cè)試
驗(yàn)收測(cè)試把軟件系統(tǒng)作為單一的實(shí)體進(jìn)行測(cè)試,測(cè)試內(nèi)容與系統(tǒng)測(cè)試基本類似,但是它是在用戶積極參與下進(jìn)行的,而且可能主要使用實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。驗(yàn)收測(cè)試的目的是驗(yàn)證系統(tǒng)確實(shí)能夠滿足用戶的需要,在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是系統(tǒng)需求說(shuō)明書中的錯(cuò)誤。軟件測(cè)試的步驟2023/10/1826前一頁(yè)平行測(cè)試
所謂平行運(yùn)行就是同時(shí)運(yùn)行新開發(fā)出來(lái)的系統(tǒng)和舊系統(tǒng),以便比較新舊兩個(gè)系統(tǒng)的處理結(jié)果,其優(yōu)點(diǎn)是:
(1)可以在準(zhǔn)生產(chǎn)環(huán)境中運(yùn)行新系統(tǒng)而又不冒風(fēng)險(xiǎn);(2)用戶能有一段熟悉新系統(tǒng)的時(shí)間;(3)可以驗(yàn)證用戶指南和使用手冊(cè)之類的文檔;(4)能夠以準(zhǔn)生產(chǎn)模式對(duì)新系統(tǒng)進(jìn)行全負(fù)荷測(cè)試,可以用測(cè)試結(jié)果驗(yàn)證性能指標(biāo)。
軟件測(cè)試的步驟2023/10/1827測(cè)試階段的信息流輸入軟件配置:需求說(shuō)明書、設(shè)計(jì)說(shuō)明書和程序清單測(cè)試配置:測(cè)試計(jì)劃和測(cè)試方案調(diào)試測(cè)試發(fā)現(xiàn)錯(cuò)誤之后排除錯(cuò)誤的過程,由程序編者負(fù)責(zé)可靠性模型使用錯(cuò)誤率數(shù)據(jù)估計(jì)未來(lái)出現(xiàn)錯(cuò)誤的情況2023/10/1828前一頁(yè)測(cè)試階段的信息流2023/10/1829前一頁(yè)單元測(cè)試測(cè)試重點(diǎn)代碼審查計(jì)算機(jī)測(cè)試
主要內(nèi)容2023/10/1830前一頁(yè)單元測(cè)試測(cè)試重點(diǎn)
模塊接口局部數(shù)據(jù)結(jié)構(gòu)重要的執(zhí)行通路出錯(cuò)處理通路邊界條件2023/10/1831前一頁(yè)單元測(cè)試的考慮模塊接口
首先應(yīng)該對(duì)通過模塊接口的數(shù)據(jù)流進(jìn)行測(cè)試。如果數(shù)據(jù)不能適當(dāng)?shù)剡M(jìn)出,所有其他測(cè)試都是不切實(shí)際的。在對(duì)接口進(jìn)行測(cè)試時(shí)主要檢查下述各點(diǎn):
(1)參數(shù)數(shù)目和調(diào)用的變?cè)臄?shù)目是否相等;(2)參數(shù)的屬性和變?cè)膶傩允欠衿ヅ洌唬?)參數(shù)和變?cè)膯挝幌到y(tǒng)是否匹配;(4)傳送給被調(diào)用模塊的變?cè)臄?shù)目是否等于那個(gè)模塊的參數(shù)的數(shù)目。
2023/10/1832前一頁(yè)模塊接口
(5)傳送給被調(diào)用模塊的變?cè)獙傩院蛥?shù)的屬性是否一致?(6)傳送給被調(diào)用的變?cè)膯挝幌到y(tǒng)和該模塊參數(shù)的單位系統(tǒng)是否一致?(7)傳送給內(nèi)部函數(shù)的變?cè)獙傩?、?shù)目和次序是否正確?(8)是否修改了只做輸入用的變?cè)???)全程變量的定義和用法在各個(gè)模塊中是否一致?
單元測(cè)試的考慮2023/10/1833前一頁(yè)
對(duì)于一個(gè)模塊而言,局部數(shù)據(jù)結(jié)構(gòu)是常見的錯(cuò)誤來(lái)源。應(yīng)該仔細(xì)設(shè)計(jì)測(cè)試方案,以便發(fā)現(xiàn)局部數(shù)據(jù)說(shuō)明、初始化、默認(rèn)值等方面的錯(cuò)誤。局部數(shù)據(jù)結(jié)構(gòu)單元測(cè)試的考慮2023/10/1834前一頁(yè)重要的執(zhí)行通路
由于通常不可能進(jìn)行窮盡測(cè)試,因此,在單元測(cè)試期間選擇最有代表性、最可能發(fā)現(xiàn)錯(cuò)誤的執(zhí)行通路進(jìn)行測(cè)試就是十分關(guān)鍵的。應(yīng)該設(shè)計(jì)測(cè)試方案用來(lái)發(fā)現(xiàn)由于錯(cuò)誤的計(jì)算、不正確的比較或不適當(dāng)?shù)目刂屏鞫斐傻腻e(cuò)誤。在計(jì)算中比較常見的錯(cuò)誤是:
(1)計(jì)算次序不對(duì)或誤解了運(yùn)算符的優(yōu)先次序;(2)混合運(yùn)算(運(yùn)算對(duì)象的類型彼此不相容);(3)變量初始值不正確;(4)精度不夠;(5)表達(dá)式的符號(hào)表示錯(cuò)誤。
單元測(cè)試的考慮2023/10/1835前一頁(yè)出錯(cuò)處理通路
好的設(shè)計(jì)應(yīng)該能預(yù)見出現(xiàn)錯(cuò)誤的條件,并且設(shè)置適當(dāng)?shù)奶幚礤e(cuò)誤的通路,以便在真的出現(xiàn)錯(cuò)誤時(shí)執(zhí)行相應(yīng)的出錯(cuò)處理通路或干凈地結(jié)束處理。不僅應(yīng)該在程序中包含出錯(cuò)處理通路,而且應(yīng)該認(rèn)真測(cè)試這種通路。單元測(cè)試的考慮2023/10/1836前一頁(yè)出錯(cuò)處理通路
當(dāng)評(píng)價(jià)出錯(cuò)處理通路時(shí),應(yīng)該著重測(cè)試下述一些可能發(fā)生的錯(cuò)誤:
(1)對(duì)錯(cuò)誤的描述是難于理解的;(2)記下的錯(cuò)誤與實(shí)際遇到的錯(cuò)誤不同;(3)在對(duì)錯(cuò)誤進(jìn)行處理之前,錯(cuò)誤條件已經(jīng)引起系統(tǒng)干預(yù);(4)對(duì)錯(cuò)誤的處理不正確;(5)描述錯(cuò)誤的信息不足以幫助確定造成錯(cuò)誤的位置。單元測(cè)試的考慮2023/10/1837前一頁(yè)邊界條件
邊界測(cè)試是單元測(cè)試中最后的也可能是最重要的任務(wù)。軟件常常在它的邊界上失效,例如,處理n元數(shù)組的第n個(gè)元素時(shí),或做到i次循環(huán)中的第i次重復(fù)時(shí),往往會(huì)發(fā)生錯(cuò)誤。使用剛好小于、剛好等于和剛好大于最大值或最小值的數(shù)據(jù)結(jié)構(gòu)、控制量和數(shù)據(jù)值的測(cè)試方案,非??赡馨l(fā)現(xiàn)軟件中的錯(cuò)誤。單元測(cè)試的考慮2023/10/1838前一頁(yè)代碼審查
人工測(cè)試源程序可以由編寫者本人非正式地進(jìn)行。后者稱為代碼審查,它是一種非常有效的程序驗(yàn)證技術(shù),對(duì)于典型的程序來(lái)說(shuō),可以查處30%--70%的邏輯設(shè)計(jì)錯(cuò)誤和編碼錯(cuò)誤。單元測(cè)試過程2023/10/1839代碼審查過程:審查之前,由設(shè)計(jì)者簡(jiǎn)要介紹設(shè)計(jì)說(shuō)明書和對(duì)程序的設(shè)計(jì)審查會(huì)上程序的編寫者解釋怎樣實(shí)現(xiàn)設(shè)計(jì)對(duì)照程序錯(cuò)誤清單,分析審查程序2023/10/1840代碼審查代碼審查的優(yōu)勢(shì):一次審查會(huì)上可以發(fā)現(xiàn)許多錯(cuò)誤,同時(shí)可以減少系統(tǒng)驗(yàn)證的工作量人工測(cè)試和計(jì)算機(jī)測(cè)試相互補(bǔ)充,相輔相成2023/10/1841前一頁(yè)計(jì)算機(jī)測(cè)試
模塊并不是一個(gè)獨(dú)立的程序,因此必須為每個(gè)單元測(cè)試開發(fā)驅(qū)動(dòng)軟件和(成)存根軟件。通常驅(qū)動(dòng)程序也就是一個(gè)“主程序”,它接收測(cè)試數(shù)據(jù),把這些數(shù)據(jù)傳送給被測(cè)試的模塊,并打印出有關(guān)的結(jié)果。單元測(cè)試過程2023/10/1842前一頁(yè)本小節(jié)結(jié)束2023/10/1843前一頁(yè)集成測(cè)試
由模塊組裝成程序時(shí)有兩種方法。一種是先分別測(cè)試每個(gè)模塊,再把所有模塊按設(shè)計(jì)要求放在一起結(jié)合成所要的程序。這種方法稱為非漸增式測(cè)試方法。另一種方法是把下一個(gè)要測(cè)試的模塊同已經(jīng)測(cè)試好的那些模塊結(jié)合起來(lái)進(jìn)行測(cè)試,測(cè)試完以后再把下一個(gè)應(yīng)該測(cè)試的模塊結(jié)合進(jìn)來(lái)測(cè)試。這種每次增加一個(gè)模塊的方法稱為漸增式測(cè)試。
2023/10/1844集成測(cè)試
自頂向下結(jié)合自底向上結(jié)合不同集成測(cè)試策略的比較
主要內(nèi)容前一頁(yè)2023/10/1845前一頁(yè)集成測(cè)試自頂向下結(jié)合
自頂向下的結(jié)合方法是從主控制模塊開始,沿著軟件的控制層次向下移動(dòng),從而逐漸把各個(gè)模塊結(jié)合起來(lái)。或者使用深度優(yōu)先的策略,或者使用寬度優(yōu)先的策略
第一步對(duì)主控制模塊進(jìn)行測(cè)試,測(cè)試時(shí)用存根程序代替所有直接附屬于主控制模塊的模塊。
第二步根據(jù)選定的結(jié)合策略(深度優(yōu)先或?qū)挾葍?yōu)先),每次用一個(gè)實(shí)際模塊代換一個(gè)存根程序。
第三步在結(jié)合進(jìn)一步模塊的同時(shí)進(jìn)行測(cè)試。
第四步為了保證加入模塊沒有引進(jìn)新的錯(cuò)誤,可能需要進(jìn)行回歸測(cè)試(即,全部或部分的重復(fù)以前做過的測(cè)試)。2023/10/1846前一頁(yè)自頂向下結(jié)合2023/10/1847自底向上結(jié)合集成測(cè)試前一頁(yè)
自底向上測(cè)試從“原子”模塊(即在軟件結(jié)構(gòu)最底層的模塊)開始組裝和測(cè)試。因?yàn)槭菑牡撞肯蛏辖Y(jié)合模塊,總能得到需要的下層模塊處理功能,所以不需要存根程序。
2023/10/1848自底向上結(jié)合前一頁(yè)2023/10/1849不同集成測(cè)試策略的比較集成測(cè)試前一頁(yè)
自頂向下測(cè)試方法的主要優(yōu)點(diǎn)是不需要測(cè)試驅(qū)動(dòng)程序,能夠在測(cè)試階段的早期實(shí)現(xiàn)并驗(yàn)證系統(tǒng)的主要功能,而且能在早期發(fā)現(xiàn)上層模塊的接口錯(cuò)誤。自頂向下測(cè)試方法的主要缺點(diǎn)是需要存根程序,可能遇到與此相聯(lián)系的測(cè)試?yán)щy,低層關(guān)鍵模塊中的錯(cuò)誤發(fā)現(xiàn)較晚,而且用這種方法在早期不能充分展開人力。自頂向上測(cè)試方法的優(yōu)缺點(diǎn)與上述自頂向下測(cè)試方法的優(yōu)缺點(diǎn)剛好相反?;旌戏ǎ簩?duì)軟件結(jié)構(gòu)中較上層,使用的是自頂向下方法;對(duì)軟件結(jié)構(gòu)中較下層,使用的是自底向下方法,兩者相結(jié)合。
2023/10/1850驗(yàn)收測(cè)試驗(yàn)收測(cè)試的范圍軟件配置復(fù)查
主要內(nèi)容前一頁(yè)2023/10/1851驗(yàn)收測(cè)試軟件有效性:如果軟件的功能和性能如同用戶所合理期待的那樣,軟件就是有效的。驗(yàn)收測(cè)試又稱為確認(rèn)測(cè)試,目標(biāo)是驗(yàn)證軟件的有效性。2023/10/1852驗(yàn)收測(cè)試前一頁(yè)驗(yàn)收測(cè)試的范圍
(1)某些已經(jīng)測(cè)試過的純粹技術(shù)性的特點(diǎn)可能不需要再次測(cè)試;
(2)對(duì)用戶特別感興趣的功能或性能,可能需要增加一些測(cè)試;
(3)通常主要使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測(cè)試;
(4)可能需要設(shè)計(jì)并執(zhí)行一些與用戶使用步驟有關(guān)的測(cè)試。
2023/10/1853驗(yàn)收測(cè)試前一頁(yè)驗(yàn)收測(cè)試的范圍
驗(yàn)收測(cè)試一般使用黑盒測(cè)試法.應(yīng)該仔細(xì)設(shè)計(jì)測(cè)試計(jì)劃和測(cè)試過程,測(cè)試計(jì)劃包括要進(jìn)行的測(cè)試的種類和進(jìn)度安排,測(cè)試過程規(guī)定用來(lái)檢驗(yàn)軟件是否與需要一致的測(cè)試方案。通過測(cè)試要保證軟件能滿足所有功能,能達(dá)到每個(gè)性能要求,文檔資料是準(zhǔn)確而完整的。此外,還應(yīng)該保證軟件能滿足其他預(yù)定的要求(例如:可移植性、兼容性、可靠性、安全性和可維護(hù)性等等)。
2023/10/1854驗(yàn)收測(cè)試前一頁(yè)驗(yàn)收測(cè)試的范圍驗(yàn)收測(cè)試有兩種可能的結(jié)果:
(1)功能和性能與用戶要求一致,軟件是可以接受的。(2)功能或性能與用戶的要求有差距。2023/10/1855驗(yàn)收測(cè)試前一頁(yè)軟件配置復(fù)查
驗(yàn)收測(cè)試的一個(gè)重要內(nèi)容是復(fù)查軟件配置。復(fù)查的目的是保證軟件配置的所有成分都齊全,各方面的質(zhì)量都符合要求,文檔與程序一致。在驗(yàn)收測(cè)試的過程中應(yīng)該嚴(yán)格遵守用戶指南以及其他操作程序,以便檢驗(yàn)這些使用手冊(cè)的完整性和正確性。必須仔細(xì)記錄發(fā)現(xiàn)的遺漏或錯(cuò)誤,并且適當(dāng)?shù)匮a(bǔ)充和改正。2023/10/1856設(shè)計(jì)測(cè)試方案前一頁(yè)
設(shè)計(jì)測(cè)試方案的基本目標(biāo)是確定一組最可能發(fā)現(xiàn)某個(gè)錯(cuò)誤或某類錯(cuò)誤的測(cè)試數(shù)據(jù)。
2023/10/1857設(shè)計(jì)測(cè)試方案邏輯覆蓋
等價(jià)劃分
邊界值分析
錯(cuò)誤推測(cè)
實(shí)用測(cè)試策略
前一頁(yè)主要內(nèi)容2023/10/1858設(shè)計(jì)測(cè)試方案前一頁(yè)邏輯覆蓋
所謂邏輯覆蓋是對(duì)一系列測(cè)試過程的總稱,這組測(cè)試過程逐漸進(jìn)行越來(lái)越完整的通路測(cè)試。大致有以下一些不同的覆蓋標(biāo)準(zhǔn):
1、語(yǔ)句覆蓋2、判定覆蓋3、條件覆蓋4、判定/條件覆蓋5、條件組合覆蓋6、點(diǎn)覆蓋7、邊覆蓋8、路徑覆蓋2023/10/1859設(shè)計(jì)測(cè)試方案前一頁(yè)邏輯覆蓋1.語(yǔ)句覆蓋為了暴露程序中的錯(cuò)誤,至少每個(gè)語(yǔ)句應(yīng)該執(zhí)行一次。語(yǔ)句覆蓋的含義是,選擇足夠多的測(cè)試數(shù)據(jù),使被測(cè)試程序中的每個(gè)語(yǔ)句至少執(zhí)行一次。2.判定覆蓋判定覆蓋又叫分支覆蓋,它的含義是,不僅每個(gè)語(yǔ)句必須至少執(zhí)行一次,而且每個(gè)判定的每種可能的餓結(jié)果都應(yīng)該至少執(zhí)行一次,也就是每個(gè)判定的每個(gè)分支都至少執(zhí)行一次。2023/10/1860設(shè)計(jì)測(cè)試方案前一頁(yè)邏輯覆蓋3.條件覆蓋條件覆蓋的含義是,不僅每個(gè)語(yǔ)句至少執(zhí)行一次,而且使判定表達(dá)式中的每個(gè)條件都取到各種可能的結(jié)果。
4.判定/條件覆蓋它的含義是,選取足夠多的測(cè)試數(shù)據(jù),使得判定表達(dá)式中的每個(gè)條件都取到各種可能值,而且每個(gè)判定表達(dá)式也都取到各種可能的結(jié)果。2023/10/1861設(shè)計(jì)測(cè)試方案前一頁(yè)邏輯覆蓋5.條件組合覆蓋條件組合覆蓋是更強(qiáng)的邏輯覆蓋標(biāo)準(zhǔn),它要求選取足夠多的測(cè)試數(shù)據(jù),使得每個(gè)判定表達(dá)式中條件的各種可能組合至少出現(xiàn)一次。6.點(diǎn)覆蓋在正常情況下程序圖是連通的有向圖,圖中每個(gè)節(jié)點(diǎn)相當(dāng)于程序流程圖的一個(gè)框滿足點(diǎn)覆蓋標(biāo)準(zhǔn)要求選取足夠多的測(cè)試數(shù)據(jù),使得程序執(zhí)行路徑至少經(jīng)過程序圖中每個(gè)節(jié)點(diǎn)一次。顯然,點(diǎn)覆蓋標(biāo)準(zhǔn)和語(yǔ)句覆蓋標(biāo)準(zhǔn)是相同的。2023/10/1862設(shè)計(jì)測(cè)試方案前一頁(yè)邏輯覆蓋7.邊覆蓋為了滿足邊覆蓋的測(cè)試標(biāo)準(zhǔn),要求選取足夠多測(cè)試數(shù)據(jù),使得程序執(zhí)行路徑至少經(jīng)過程序圖中每條邊一次。2023/10/1863設(shè)計(jì)測(cè)試方案前一頁(yè)邏輯覆蓋8.路徑覆蓋
路徑覆蓋的含義是,選取足夠多測(cè)試數(shù)據(jù),使程序的每條可能路徑至少執(zhí)行一次。路徑覆蓋是相當(dāng)強(qiáng)的邏輯覆蓋標(biāo)準(zhǔn),它保證程序中每條可能的路徑都至少執(zhí)行一次,因此這樣的測(cè)試數(shù)據(jù)更有代表性,暴露錯(cuò)誤的能力也比較強(qiáng)。2023/10/1864控制結(jié)構(gòu)測(cè)試根據(jù)程序的控制結(jié)構(gòu)進(jìn)行測(cè)試用例的選擇基本路徑測(cè)試條件測(cè)試循環(huán)測(cè)試2023/10/1865控制結(jié)構(gòu)測(cè)試基本思路:計(jì)算程序的環(huán)形復(fù)雜度,根據(jù)該復(fù)雜度定義執(zhí)行路徑的基本集合,從該集合導(dǎo)出的測(cè)試用例??梢员WC程序中的每條語(yǔ)句至少執(zhí)行一次,而且每個(gè)條件在執(zhí)行時(shí)都將分別取真、假兩種值。基本路徑測(cè)試2023/10/1866控制結(jié)構(gòu)測(cè)試步驟:根據(jù)過程設(shè)計(jì)結(jié)果畫出流圖計(jì)算流圖的環(huán)形復(fù)雜度確定線性獨(dú)立路徑的基本集合設(shè)計(jì)可強(qiáng)制執(zhí)行基本集合中每條路徑的測(cè)試用例基本路徑測(cè)試2023/10/1867基本路徑測(cè)試流圖:“退化了的”程序流程圖,只描繪程序的控制流程,數(shù)據(jù)的具體操作及分支或循環(huán)的條件無(wú)須畫出。流圖畫法:一個(gè)圓(即結(jié)點(diǎn))表示一條或多條語(yǔ)句,將程序流程圖中的處理框或菱形框映射為結(jié)點(diǎn);箭頭線(即邊)表示控制流;點(diǎn)和邊圍成的面積稱為域。步驟詳細(xì)分析2023/10/1868procedure:sortdowhilerecordsremainreadrecord;ifrecordfield1=0thenprocessrecord;storeinbuffer;incrementcounter;elseifrecordfield2=0thenresetcounter;elseprocessrecord;storeinfile;7a.endifendif7b.enddo8.end程序流程圖轉(zhuǎn)化為流圖舉例2023/10/18691236458711910例:程序流程圖2023/10/187012,39784,561011流圖2023/10/1871基本路徑測(cè)試圖7.6將PDL描述的程序轉(zhuǎn)換為流圖下面進(jìn)入第二步:計(jì)算環(huán)形復(fù)雜度V(G)V=流圖中的域數(shù)V=E–N+2(E:邊數(shù),N:結(jié)點(diǎn)數(shù))V=P+1(P:判定結(jié)點(diǎn)數(shù))
任何一種方法求得的V均為62023/10/1872123456879101211132023/10/1873基本路徑測(cè)試第三步:根據(jù)V確定獨(dú)立路徑的集合獨(dú)立路徑:至少包含一條在定義該路徑之前不曾用過的邊獨(dú)立路徑的集合中的路徑條數(shù)=V2023/10/1874基本路徑測(cè)試第四步:設(shè)計(jì)測(cè)試用例根據(jù)判定結(jié)點(diǎn)的條件進(jìn)行設(shè)計(jì)2023/10/1875黑盒測(cè)試技術(shù)黑盒測(cè)試技術(shù)與白盒測(cè)試技術(shù)互為補(bǔ)充力圖發(fā)現(xiàn)錯(cuò)誤的類型:功能不正確或遺漏了功能界面錯(cuò)誤數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部數(shù)據(jù)庫(kù)訪問錯(cuò)誤性能錯(cuò)誤初始化和終止錯(cuò)誤2023/10/1876前一頁(yè)等價(jià)劃分
選取少量最有代表性的輸入數(shù)據(jù)作為測(cè)試數(shù)據(jù),以期用較小的代價(jià)暴露出較多的程序錯(cuò)誤。等價(jià)劃分便是把程序的輸入域劃分為若干個(gè)數(shù)據(jù)類,從每個(gè)類中選出測(cè)試用例。如果把所有可能的輸入數(shù)據(jù)(有效的和無(wú)效的)劃分成若干個(gè)等價(jià)類,則可以合理地做出下述假定:每類中的一個(gè)典型值在測(cè)試中的作用與這一類中所有其他值的作用相同。因此,可以從每個(gè)等價(jià)類中只取一組數(shù)據(jù)作為測(cè)試數(shù)據(jù)。這樣選取的測(cè)試數(shù)據(jù)最有代表性,最可能發(fā)現(xiàn)程序中的錯(cuò)誤。
2023/10/1877等價(jià)劃分劃分的規(guī)則:如果規(guī)定了輸入值的范圍,則可劃分出一個(gè)有效的等價(jià)類和兩個(gè)無(wú)效的等價(jià)類如果規(guī)定了輸入數(shù)據(jù)的類型,也可劃分出相應(yīng)的有效等價(jià)類如果處理的對(duì)象是表格,則應(yīng)該使用空表,以及含一項(xiàng)或多項(xiàng)的表……2023/10/1878等價(jià)劃分應(yīng)該使每個(gè)測(cè)試方案只覆蓋一個(gè)無(wú)效的等價(jià)類舉例把數(shù)字串轉(zhuǎn)換成整數(shù)的函數(shù)劃分的一個(gè)有效等價(jià)類為:1~6個(gè)數(shù)字字符組成的數(shù)字串(高位不為0)最高位數(shù)字是零的數(shù)字串最高位數(shù)字左鄰是負(fù)號(hào)的數(shù)字串2023/10/1879前一頁(yè)邊界值分析
經(jīng)驗(yàn)表明,處理邊界情況時(shí)程序最容易發(fā)生錯(cuò)誤。例如,許多程序錯(cuò)誤出現(xiàn)在下標(biāo)、純量、數(shù)據(jù)結(jié)構(gòu)和循環(huán)等等的邊界附近。因此,設(shè)計(jì)使程序運(yùn)行在邊界情況附近的測(cè)試方案,暴露出程序錯(cuò)誤的可能性更大一些。選取的測(cè)試數(shù)據(jù)應(yīng)該剛好等于、剛剛小于和剛剛大于等價(jià)類的邊界。2023/10/1880設(shè)計(jì)測(cè)試方案前一頁(yè)錯(cuò)誤推測(cè)
錯(cuò)誤推測(cè)法在很大程度上靠直覺和經(jīng)驗(yàn)進(jìn)行?;舅枷胧橇信e出程序中可能有的錯(cuò)誤和容易發(fā)生的特殊情況,并且根據(jù)它們選擇測(cè)試方案。經(jīng)驗(yàn)表明,在一段程序中已經(jīng)發(fā)現(xiàn)的錯(cuò)誤數(shù)目往往和尚未發(fā)現(xiàn)的錯(cuò)誤數(shù)成正比。因此著重測(cè)試已發(fā)現(xiàn)錯(cuò)誤的程序段。2023/10/1881錯(cuò)誤推測(cè)等價(jià)劃分和邊界值分析只考慮各個(gè)輸入數(shù)據(jù)的測(cè)試功效,沒有考慮多個(gè)輸入數(shù)據(jù)的組合效應(yīng)。選擇輸入組合的一種方法是利用判定表或判定樹,判定表的每一列至少設(shè)計(jì)一個(gè)測(cè)試用例。另一種有效方法是把計(jì)算機(jī)測(cè)試和人工檢查代碼結(jié)合起來(lái)。2023/10/1882前一頁(yè)調(diào)試
問題的外部現(xiàn)象稱為錯(cuò)誤,問題的內(nèi)在原因稱為故障調(diào)試就是把癥狀和原因聯(lián)系起來(lái)的智力過程。2023/10/1883調(diào)試調(diào)試過程
調(diào)試途徑
主要內(nèi)容前一頁(yè)2023/10/1884調(diào)試過程圖7.8反映了調(diào)式的過程調(diào)式的過程很艱辛錯(cuò)誤的后果越嚴(yán)重,查找錯(cuò)誤原因的壓力就越大壓力會(huì)導(dǎo)致軟件開發(fā)人員在改
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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年金融科技在財(cái)富管理領(lǐng)域的創(chuàng)新應(yīng)用研究
- 2025年在線教育平臺(tái)課程進(jìn)度跟蹤與用戶滿意度評(píng)價(jià)報(bào)告
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)入侵檢測(cè)系統(tǒng)2025年可視化安全監(jiān)控優(yōu)化報(bào)告001
- 深度解讀2025年不良資產(chǎn)處置市場(chǎng)格局與創(chuàng)新模式發(fā)展報(bào)告
- 2025年醫(yī)院電子病歷系統(tǒng)優(yōu)化與醫(yī)療信息化人才培養(yǎng)策略報(bào)告
- 2025屆廣東省廣州市南沙區(qū)八年級(jí)英語(yǔ)第二學(xué)期期中達(dá)標(biāo)測(cè)試試題含答案
- 咨詢工程師2017課件
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)模式下的臨床試驗(yàn)監(jiān)測(cè)與數(shù)據(jù)收集報(bào)告
- 周長(zhǎng)課件介紹
- 麻醉護(hù)理制度培訓(xùn)課件
- DeepSeek零基礎(chǔ)到精通手冊(cè)(保姆級(jí)教程)
- 2025年度工業(yè)園區(qū)物業(yè)管理及服務(wù)收費(fèi)標(biāo)準(zhǔn)及細(xì)則
- 2024-2030年中國(guó)橋梁管理與養(yǎng)護(hù)市場(chǎng)調(diào)查研究及發(fā)展趨勢(shì)分析報(bào)告
- 山東省菏澤市2023-2024學(xué)年高一下學(xué)期7月期末考試 政治 含解析
- 《施工現(xiàn)場(chǎng)安全用電》課件
- 新公路波形護(hù)欄打樁機(jī)安全操作規(guī)程
- 小學(xué)四年級(jí)下冊(cè)四則混合運(yùn)算及簡(jiǎn)便運(yùn)算
- 國(guó)家開放大學(xué)本科《商務(wù)英語(yǔ)4》一平臺(tái)機(jī)考真題及答案(第四套)
- 山東第一醫(yī)科大學(xué)英語(yǔ)4(本)期末復(fù)習(xí)題
- 2025三方借款中介合同范本
- 2024-2025成都各區(qū)初二年級(jí)下冊(cè)期末數(shù)學(xué)試卷
評(píng)論
0/150
提交評(píng)論