歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

【軟件工程】軟件測(cè)試及軟件質(zhì)量控制

  • 資源ID:242891230       資源大小:755.50KB        全文頁(yè)數(shù):102頁(yè)
  • 資源格式: PPT        下載積分:60積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要60積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

【軟件工程】軟件測(cè)試及軟件質(zhì)量控制

單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,第五級(jí),,,,*,102,單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,第五級(jí),,,,*,軟件測(cè)試及軟件質(zhì)量控制,第六章,1,,軟件系統(tǒng)的開發(fā)過程中,軟件測(cè)試占據(jù)著重要地位。盡管人們采取了多種保證軟件質(zhì)量的措施,由于軟件系統(tǒng)的客觀復(fù)雜性,人們的主觀認(rèn)識(shí)不可能完全符合客觀實(shí)際,完美無(wú)缺,每個(gè)階段的技術(shù)審查也不可能毫無(wú)遺漏地查出和糾正所有的設(shè)計(jì)和分析上的錯(cuò)誤,在軟件生命周期的各個(gè)階段,都不可避免地會(huì)產(chǎn)生差錯(cuò),這些差錯(cuò)遲早會(huì)在軟件的生產(chǎn)和使用過程中暴露出來。,2,,軟件工程實(shí)踐的經(jīng)驗(yàn)表明,發(fā)現(xiàn)軟件的時(shí)刻越晚,改正這些錯(cuò)誤所花費(fèi)的代價(jià)也越高,如果在軟件投入使用之前沒有發(fā)現(xiàn)和糾正軟件的大部分錯(cuò)誤,人們付出的代價(jià)會(huì)更高,往往會(huì)造成惡劣的后果。,,從廣義上來說,軟件測(cè)試工作散布在軟件生命周期的各個(gè)開發(fā)階段,人們認(rèn)識(shí)到,軟件測(cè)試是保證軟件質(zhì)量的主要手段,各階段的評(píng)審工作和驗(yàn)證工作,均是廣義概念上的測(cè)試工作。而主要的測(cè)試是在編碼和測(cè)試這兩個(gè)階段進(jìn)行的。因此,狹義的軟件測(cè)試就是程序測(cè)試。,3,,6.1 軟件測(cè)試基本概念,,G.J.Myers,給出了關(guān)于測(cè)試的一些規(guī)則,被軟件工程領(lǐng)域認(rèn)可:,,(1)測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程;,,(2)好的測(cè)試方案極有可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤;,,(3)成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤。,4,,6.1 軟件測(cè)試基本概念,這些規(guī)則,實(shí)際上是軟件測(cè)試的狹義概念,——,程序測(cè)試。,,狹義的軟件測(cè)試:測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。是根據(jù)軟件開發(fā)的各個(gè)階段的說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)的一批測(cè)試用例(有輸入數(shù)據(jù)及預(yù)期的結(jié)果),并利用這些測(cè)試用例執(zhí)行程序及發(fā)現(xiàn)錯(cuò)誤的過程。,5,,6.1 軟件測(cè)試基本概念,廣義的軟件測(cè)試是對(duì)軟件計(jì)劃、軟件系統(tǒng)分析、軟件設(shè)計(jì)、軟件編碼進(jìn)行的查錯(cuò)活動(dòng),包括代碼執(zhí)行和人工審查活動(dòng),測(cè)試的目的是找出軟件生命周期的各個(gè)階段的錯(cuò)誤,有利于以后進(jìn)行修改和糾正。但測(cè)試本身不修正錯(cuò)誤,調(diào)試才會(huì)修正錯(cuò)誤。即找錯(cuò)的活動(dòng)是測(cè)試;分析錯(cuò)誤的性質(zhì)與位置,進(jìn)行糾錯(cuò)的活動(dòng)是調(diào)試,保證算法的正確實(shí)現(xiàn)。軟件測(cè)試與程序測(cè)試都是查找錯(cuò)誤的活動(dòng),差別在于查找錯(cuò)誤的范圍不同。,6,,6.1 軟件測(cè)試基本概念,由于測(cè)試的目標(biāo)是暴露程序的錯(cuò)誤,從心理學(xué)角度看,由設(shè)計(jì)者自己進(jìn)行測(cè)試是不恰當(dāng)?shù)?,設(shè)計(jì)小組和測(cè)試小組應(yīng)該分別設(shè)立,有利于進(jìn)行客觀和公正的軟件測(cè)試。測(cè)試是有限的,由于通常的測(cè)試過程不可能窮盡一切情況,即使經(jīng)過了嚴(yán)格的測(cè)試之后,仍然可能存在沒有被發(fā)現(xiàn)的錯(cuò)誤隱藏在程序中,不能證明程序中沒有錯(cuò)誤。,7,,6.1 軟件測(cè)試基本概念,因此,測(cè)試僅僅有可能找出程序的錯(cuò)誤,測(cè)試不能證明程序是正確的。軟件工程中所有其它階段都是,“,建設(shè)性,”,的,軟件工程師力圖從抽象概念出發(fā),逐步設(shè)計(jì)出具體的軟件系統(tǒng),而測(cè)試人員的工作表面上看卻是,“,破壞性,”,的,竭力證明軟件中含有錯(cuò)誤,不能按預(yù)定要求正確工作。凡是進(jìn)行對(duì)比的方式均可理解為測(cè)試驗(yàn)證。,8,,6.1.2 軟件測(cè)試的對(duì)象,軟件測(cè)試應(yīng)該貫穿于軟件生命期的各個(gè)階段,各階段的工作是相互銜接、相互影響的,前一階段發(fā)生的問題自然要影響到下一階段的工作。為了把握各個(gè)環(huán)節(jié)的正確性,人們需要進(jìn)行各種確認(rèn)和驗(yàn)證工作。,,軟件確認(rèn)是廣義上的軟件測(cè)試,它是企圖證明軟件在一個(gè)給定的外部環(huán)境中軟件的邏輯正確性的一系列活動(dòng)和過程,如需求說明書的確認(rèn)、程序的確認(rèn)等。,9,,6.1.2 軟件測(cè)試的對(duì)象,程序的確認(rèn)又分為靜態(tài)確認(rèn)與動(dòng)態(tài)確認(rèn)。,,靜態(tài)確認(rèn)一般不在計(jì)算機(jī)上執(zhí)行程序,而是通過程序正確性證明、靜態(tài)分析或人工分析來確認(rèn)程序的正確性;,,動(dòng)態(tài)確認(rèn)主要通過動(dòng)態(tài)分析和動(dòng)態(tài)測(cè)試,用執(zhí)行程序的過程來檢查執(zhí)行的狀態(tài),確認(rèn)程序是否有問題;,10,,6.1.2 軟件測(cè)試的對(duì)象,正確性證明主要是企圖繞過復(fù)雜的測(cè)試,直接證明程序的正確性。,,如程序的輸入輸出斷言法。,,設(shè)程序段為,S,,其前斷言為,P,,后斷言為,R。,如果執(zhí)行,S,以前,P,為真,則執(zhí)行,S,后,R,也為真,則證明,S,是正確的,記為{,P}S{R}。,11,,6.1.2 軟件測(cè)試的對(duì)象,任何程序總可以分成,S1、S2、,…,Sn,個(gè)結(jié)點(diǎn),對(duì)應(yīng)的斷言為,R1、R2、,…,、Rn,,起初,R1,為輸入斷言,,R2,為輸出斷言,也是下一個(gè)輸入斷言,,…,,Rn,為最后的輸出斷言,我們總可以,將,S1、S2、,…,Sn,逐個(gè)證明,自頂向下或自底向上都可證明程序的正確性,該分支已發(fā)展為計(jì)算機(jī)代數(shù)學(xué);,,12,,6.1.2 軟件測(cè)試的對(duì)象,軟件驗(yàn)證也屬于廣義上的軟件測(cè)試,它試圖證明在軟件生命期的各個(gè)階段、各階段的邏輯協(xié)調(diào)性、完備性和正確性。,,包括系統(tǒng)分析員理解用戶要求的正確性、表達(dá)的正確性、設(shè)計(jì)人員對(duì)需求規(guī)格說明理解的正確性、設(shè)計(jì)與設(shè)計(jì)表達(dá)的正確性、程序編碼的正確性和運(yùn)行軟件程序時(shí)輸入的正確性、運(yùn)行結(jié)果的正確性等,運(yùn)行結(jié)果與用戶預(yù)期的結(jié)果是否一致等,這說明任何一個(gè)環(huán)節(jié)上發(fā)生了問題都可能在軟件測(cè)試中表現(xiàn)出來。,13,,6.1.3 測(cè)試信息流,將測(cè)試的過程用數(shù)據(jù)流圖表示,可得測(cè)試信息流如圖6-1所示。,(至軟件配置),,軟件配置 1 測(cè)試結(jié)果 2 錯(cuò)誤 3 修正的軟件,,測(cè)試配置 測(cè)試結(jié)果,,測(cè)試工具 測(cè)試 評(píng)價(jià) 調(diào)試 正確,,,,預(yù)測(cè)結(jié)果 出錯(cuò)率 4,,數(shù)據(jù) 可靠性,,分析,圖,6-1,測(cè)試信息流,,14,,6.1.3 測(cè)試信息流,1.測(cè)試過程需要三類輸入:,,(1)軟件配置:包括軟件開發(fā)文檔(用戶文檔、需求規(guī)格說明、軟件設(shè)計(jì)說明、源程序代碼)、目標(biāo)執(zhí)行程序、數(shù)據(jù)結(jié)構(gòu);,,(2)測(cè)試配置:包括測(cè)試計(jì)劃、測(cè)試用例、測(cè)試驅(qū)動(dòng)程序等;實(shí)際上在整個(gè)軟件開發(fā)過程中,測(cè)試配置只是軟件配置的一個(gè)子集;,15,,(3)測(cè)試工具:為提高軟件測(cè)試效率,使用測(cè)試工具為測(cè)試工作服務(wù);如:測(cè)試數(shù)據(jù)自動(dòng)生成程序,靜態(tài)分析程序、動(dòng)態(tài)分析程序、測(cè)試結(jié)果分析程序及標(biāo)準(zhǔn)例程測(cè)試數(shù)據(jù)庫(kù)等。,,6.1.3 測(cè)試信息流,16,,測(cè)試之后,對(duì)所有測(cè)試結(jié)果進(jìn)行分析,將實(shí)際測(cè)試的結(jié)果與預(yù)期的結(jié)果進(jìn)行比較。如果發(fā)現(xiàn)出錯(cuò)的數(shù)據(jù),則意味著軟件有錯(cuò)誤,需要糾錯(cuò),應(yīng)進(jìn)行調(diào)試,確定錯(cuò)誤的位置和出錯(cuò)的性質(zhì),改正這些錯(cuò)誤,同時(shí)修正相關(guān)文檔。修正過的文檔一般需經(jīng)過再次測(cè)試,直到通過測(cè)試為止。,6.1.3 測(cè)試信息流,17,,通過收集和分析測(cè)試結(jié)果的有關(guān)數(shù)據(jù),可以建立軟件評(píng)估的可靠性模型。,,如果經(jīng)常出現(xiàn)需要修改設(shè)計(jì)的嚴(yán)重錯(cuò)誤,那么軟件的質(zhì)量和可靠性就值得懷疑,同時(shí)也表明需要進(jìn)一步測(cè)試。,,相反,如果軟件功能能夠正確完成,出現(xiàn)的錯(cuò)誤易于修改,那么就可能有兩種評(píng)價(jià):,6.1.3 測(cè)試信息流,18,,一種是軟件的質(zhì)量和可靠性達(dá)到可以接受的程度。,,另一種是所做的測(cè)試還不足以發(fā)現(xiàn)軟件的嚴(yán)重錯(cuò)誤。,,如果得到的評(píng)價(jià)是沒有發(fā)現(xiàn)錯(cuò)誤,很有可能測(cè)試的配置考慮得不夠充分和細(xì)致,軟件仍有潛伏的錯(cuò)誤,以后改正錯(cuò)誤需要付出高昂的代價(jià)。,6.1.3 測(cè)試信息流,19,,2.軟件錯(cuò)誤可以從不同角度進(jìn)行分類:,,(1)從錯(cuò)誤對(duì)程序的影響程度來分:,,嚴(yán)重性錯(cuò)誤:嚴(yán)重影響程序的運(yùn)行,甚至不能運(yùn)行;,,一般性錯(cuò)誤:經(jīng)常影響程序的運(yùn)行,特殊情況下表現(xiàn)正常;,6.1.3 測(cè)試信息流,20,,<,3>,微小錯(cuò)誤:一般情況下程序能運(yùn)行,特殊情況下表現(xiàn)異常;,,<,4>,無(wú)影響性錯(cuò)誤:不影響程序的運(yùn)行。,6.1.3 測(cè)試信息流,21,,(2)從開發(fā)過程的轉(zhuǎn)換環(huán)節(jié)上分:,, 構(gòu)造錯(cuò)誤:編碼實(shí)現(xiàn)與設(shè)計(jì)不一致;,,,設(shè)計(jì)錯(cuò)誤:設(shè)計(jì)邏輯與說明不一致;,,,說明書錯(cuò)誤:說明書與用戶要求不一致;,, 需求錯(cuò)誤:不滿足用戶的實(shí)際要求;,,配置錯(cuò)誤:軟件配置不滿足實(shí)際環(huán)境。,6.1.3 測(cè)試信息流,22,,(3)從測(cè)試結(jié)果的表現(xiàn)上分類:,,1)功能錯(cuò)誤:由系統(tǒng)需求分析不完整引起的;,,2)結(jié)構(gòu)錯(cuò)誤:由總體設(shè)計(jì)的錯(cuò)誤引起的;,,3)過程錯(cuò)誤:由詳細(xì)設(shè)計(jì)的錯(cuò)誤引起的;,,4)數(shù)據(jù)錯(cuò)誤:由軟件編碼或詳細(xì)設(shè)計(jì)的錯(cuò)誤引起的;,,5)編碼錯(cuò)誤:由軟件編碼引起的錯(cuò)誤;,,6)其它錯(cuò)誤:由文檔和其它系統(tǒng)元素引起的錯(cuò)誤;,6.1.3 測(cè)試信息流,23,,6.1.4 軟件測(cè)試步驟與軟件開發(fā)各階段的關(guān)系,軟件測(cè)試一般分為四個(gè)步驟:,,(1)單元測(cè)試(也稱模塊測(cè)試):針對(duì)軟件設(shè)計(jì)的基本單元,——,程序模塊,進(jìn)行正確性檢驗(yàn)的測(cè)試工作。目的在于發(fā)現(xiàn)各個(gè)模塊內(nèi)部可能存在的各種差錯(cuò)。單元測(cè)試需要從程序內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例,多個(gè)模塊可以平行、獨(dú)立地進(jìn)行測(cè)試;,24,,6.1.4 軟件測(cè)試步驟與軟件開發(fā)各階段的關(guān)系,(2)集成測(cè)試(也稱組裝測(cè)試,聯(lián)合測(cè)試):在單元測(cè)試的基礎(chǔ)上,將所有模塊按設(shè)計(jì)要求集成在一起進(jìn)行測(cè)試,以檢驗(yàn)總體設(shè)計(jì)中各模塊間的接口設(shè)計(jì)問題、模塊之間的相互影響、上層模塊存在的各種差錯(cuò)及全局?jǐn)?shù)據(jù)結(jié)構(gòu)對(duì)系統(tǒng)的影響等方面。,25,,6.1.4 軟件測(cè)試步驟與軟件開發(fā)各階段的關(guān)系,(3)確認(rèn)測(cè)試(也稱驗(yàn)收測(cè)試,有效性測(cè)試):主要檢驗(yàn)軟件的功能和性能是否與需求說明書中的規(guī)定一致。,,(4)系統(tǒng)測(cè)試:將軟件系統(tǒng)作為一個(gè)元素,放入整個(gè)實(shí)際的計(jì)算機(jī)系統(tǒng)中,與計(jì)算機(jī)硬件、其他軟件、使用人員等系統(tǒng)元素結(jié)合在一起,在實(shí)際使用環(huán)境下進(jìn)行綜合全面的測(cè)試。,26,,6.1.4 軟件測(cè)試步驟與軟件開發(fā)各階段的關(guān)系,前面多次強(qiáng)調(diào),使用軟件生命期(瀑布模型)模型,軟件開發(fā)過程是一個(gè)自頂向下,逐步細(xì)化的過程,而軟件測(cè)試過程則是與開發(fā)過程相反的次序進(jìn)行的,是一個(gè)自底向上,逐步集成的過程,低一層測(cè)試為上一層測(cè)試準(zhǔn)備測(cè)試條件和數(shù)據(jù)驅(qū)動(dòng)環(huán)境,也包含兩者平行進(jìn)行測(cè)試。,27,,6.1.4 軟件測(cè)試步驟與軟件開發(fā)各階段的關(guān)系,因此,發(fā)現(xiàn)引起錯(cuò)誤的原因順序也與開發(fā)過程的相次序反,首先對(duì)每一個(gè)模塊進(jìn)行單元測(cè)試,消除程序模塊內(nèi)部邏輯上和功能上的錯(cuò)誤和缺陷,再對(duì)照軟件設(shè)計(jì)進(jìn)行集成測(cè)試(有時(shí)也叫整體測(cè)試),檢測(cè)和排除子系統(tǒng)或系統(tǒng)結(jié)構(gòu)上的錯(cuò)誤,再對(duì)照需求進(jìn)行確認(rèn)測(cè)試(也稱為有效性測(cè)試),最后進(jìn)行系統(tǒng)測(cè)試,運(yùn)行系統(tǒng),看軟件系統(tǒng)是否滿足功能和性能及其它要求。,28,,6.1.4 軟件測(cè)試步驟與軟件開發(fā)各階段的關(guān)系,需求分析,軟件設(shè)計(jì),軟件編碼,確認(rèn)測(cè)試,集成測(cè)試,單元測(cè)試,系統(tǒng),,測(cè)試,圖6-2 軟件測(cè)試與軟件開發(fā)過程間的關(guān)系,29,,6.1.4 軟件測(cè)試步驟與軟件開發(fā)各階段的關(guān)系,需求分析,,說明書,概要設(shè)計(jì),,說明書,詳細(xì)設(shè)計(jì),,說明書,源程序,,代碼,確認(rèn)測(cè)試,集成測(cè)試,單元測(cè)試,系統(tǒng)測(cè)試,圖6-3 軟件測(cè)試與開發(fā)文檔之間的關(guān)系,30,,6.1.5 軟件測(cè)試原則,(1)將軟件測(cè)試貫穿于軟件開發(fā)的各個(gè)階段中,在開發(fā)過程中盡早地發(fā)現(xiàn)和預(yù)防錯(cuò)誤,杜絕隱患,提高軟件質(zhì)量;,,(2)測(cè)試用例必須包含輸入數(shù)據(jù)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果,精心設(shè)計(jì)測(cè)試用例;,,(3)測(cè)試時(shí)應(yīng)避免設(shè)計(jì)者檢查自己設(shè)計(jì)的程序;,,(4)設(shè)計(jì)測(cè)試用例時(shí),應(yīng)包括合理的與不合理的輸入條件;,31,,6.1.5 軟件測(cè)試原則,(5)充分注意測(cè)試中出現(xiàn)的錯(cuò)誤群集現(xiàn)象,若發(fā)現(xiàn)錯(cuò)誤數(shù)目較多,則可能殘存的錯(cuò)誤數(shù)目也較多,這種錯(cuò)誤出現(xiàn)的群集現(xiàn)象,已為許多程序測(cè)試實(shí)踐所證實(shí);,,(6)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,以軟件需求說明書為基準(zhǔn)設(shè)計(jì)測(cè)試用例,排除測(cè)試的隨意性;,32,,6.1.5 軟件測(cè)試原則,(7)對(duì)每一個(gè)測(cè)試結(jié)果做全面檢查,不能遺漏錯(cuò)誤出現(xiàn)的征兆,軟件修改后要進(jìn)行回歸測(cè)試,即用修改前測(cè)試過的測(cè)試用例進(jìn)行測(cè)試,再用新的測(cè)試用例測(cè)試;,,(8)妥善保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)數(shù)據(jù)和最終分析報(bào)告,為維護(hù)提供方便。,,在一個(gè)程序段中,還存在著尚未發(fā)現(xiàn)的錯(cuò)誤概率與已發(fā)現(xiàn)的錯(cuò)誤數(shù)正相關(guān)。,33,,6.1.5 軟件測(cè)試原則,殘存錯(cuò)誤的可能性,已發(fā)現(xiàn)的錯(cuò)誤數(shù),圖6-4 軟件錯(cuò)誤的群集現(xiàn)象示意圖,34,,6.2 軟件測(cè)試的方法,軟件的測(cè)試方法很多,不同的出發(fā)點(diǎn)得到不同的測(cè)試方法。有:,,從測(cè)試過程來分:靜態(tài)分析法、動(dòng)態(tài)測(cè)試法;,,從觀察結(jié)構(gòu)的透明性方式來分:白盒法、黑盒法、灰盒法;,,從獲得測(cè)試數(shù)據(jù)形式上分:窮盡法;等價(jià)類劃分法;邊界值分析法;,35,,6.2 軟件測(cè)試的方法,從邏輯分析上分:因果圖法;錯(cuò)誤推測(cè)法;,,從測(cè)試步驟上分:?jiǎn)卧獪y(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試等;,,從考察形式上分:功能測(cè)試,邏輯測(cè)試;,36,,6.2 軟件測(cè)試的方法,如何測(cè)試得更完全、怎樣進(jìn)行測(cè)試用例的設(shè)計(jì),是軟件測(cè)試中的關(guān)鍵技術(shù)。無(wú)論用哪種方法進(jìn)行測(cè)試,都是設(shè)法用較少的測(cè)試用例集合測(cè)試出程序中較多的潛在錯(cuò)誤。,,靜態(tài)分析時(shí),不執(zhí)行程序,可對(duì)需求分析說明書、軟件設(shè)計(jì)說明書、源程序做結(jié)構(gòu)檢查、流圖分析、符號(hào)執(zhí)行來分析軟件可能導(dǎo)致的異常情況,找出軟件錯(cuò)誤。從測(cè)試過程來分:靜態(tài)分析法、動(dòng)態(tài)測(cè)試法;,37,,6.2 軟件測(cè)試的方法,結(jié)構(gòu)檢查是手工分析技術(shù),對(duì)需求說明、程序設(shè)計(jì)、編碼、測(cè)試工作進(jìn)行評(píng)議,虛擬地(模擬)執(zhí)行程序,在評(píng)議中發(fā)現(xiàn)和檢查錯(cuò)誤;,,流圖分析是通過分析流程圖、代碼結(jié)構(gòu)來檢查程序錯(cuò)誤,便于進(jìn)行編碼分析和測(cè)試結(jié)果分析;,38,,6.2 軟件測(cè)試的方法,符號(hào)執(zhí)行是定義符號(hào)化數(shù)據(jù),為程序的每條路徑給出符號(hào)表達(dá)式,對(duì)特定路徑輸入符號(hào),經(jīng)處理輸出符號(hào),判斷程序的行為是否錯(cuò)誤,這種方法復(fù)雜,易出錯(cuò),較少使用。,,灰盒法是白盒法和黑盒法相結(jié)合使用的方法,僅對(duì)重點(diǎn)路徑和程序段用白盒法測(cè)試,大部分用黑盒法進(jìn)行測(cè)試。,39,,6.2 軟件測(cè)試的方法,動(dòng)態(tài)測(cè)試是直接執(zhí)行程序進(jìn)行測(cè)試,包括功能測(cè)試、接口測(cè)試和結(jié)構(gòu)測(cè)試,觀察程序的行為,記錄執(zhí)行的結(jié)果,從執(zhí)行結(jié)果來分析程序可能出現(xiàn)的錯(cuò)誤;,,有些人設(shè)想,不管使用那種測(cè)試方法,只要對(duì)每一種可能發(fā)生的情況都進(jìn)行測(cè)試,能正確通過,就可以得到完全正確的程序。,40,,6.2 軟件測(cè)試的方法,包含所有可能情況的測(cè)試稱為窮盡測(cè)試,實(shí)際上,通常不可能做到窮盡測(cè)試。因?yàn)楦鞣N輸入數(shù)據(jù)的排列組合情況往往多到無(wú)法實(shí)際測(cè)試完成的程度。如用黑盒法測(cè)試三個(gè)整數(shù)型的輸入數(shù)據(jù),如果每個(gè)整數(shù)是16位二進(jìn)制數(shù),則輸入數(shù)據(jù)有,,2,16,×2,16,×2,16,=2,48,≈2.8×10,14,種排列組合。,41,,6.2 軟件測(cè)試的方法,如果每測(cè)試一次需要1毫秒,測(cè)試完畢這些排列組合的各種情況需要一萬(wàn)年,另外還需測(cè)試不合法的輸入情況,實(shí)際上不可能窮盡所有組合情況。因此,一般的軟件測(cè)試是有限測(cè)試。,,Alpha(α),測(cè)試:通用軟件產(chǎn)品為了征集用戶的意見,在開發(fā)者的場(chǎng)所,由用戶進(jìn)行的測(cè)試,記錄用戶發(fā)現(xiàn)的錯(cuò)誤和問題。,42,,6.2 軟件測(cè)試的方法,,Beta(β),測(cè)試:在一個(gè)或多個(gè)用戶自己的場(chǎng)所,由最終用戶進(jìn)行,并記錄在測(cè)試中遇到的所有問題和想法。,,重要的通用軟件產(chǎn)品,大多經(jīng)過,α,和,β,測(cè)試。,43,,6.3 測(cè)試方案與測(cè)試用例,設(shè)計(jì)測(cè)試方案是軟件測(cè)試中的關(guān)鍵問題。測(cè)試方案包括預(yù)定要測(cè)試的功能、結(jié)構(gòu),應(yīng)該要輸入的測(cè)試數(shù)據(jù)和輸入這些數(shù)據(jù)后預(yù)期的結(jié)果——測(cè)試用例。測(cè)試用例的設(shè)計(jì)是其中較困難的問題,不同的測(cè)試數(shù)據(jù)發(fā)現(xiàn)程序錯(cuò)誤的能力差別很大,為了提高測(cè)試效率,降低測(cè)試成本,應(yīng)該選用高效的測(cè)試數(shù)據(jù)。因?yàn)椴豢赡苓M(jìn)行窮盡測(cè)試,選用少量高效的測(cè)試數(shù)據(jù),進(jìn)行盡可能完備的測(cè)試就顯得更重要了。,44,,6.3 測(cè)試方案與測(cè)試用例,設(shè)計(jì)測(cè)試方案的基本目標(biāo)是,確定一組最有可能發(fā)現(xiàn)某個(gè)或某類錯(cuò)誤的測(cè)試用例。有多種測(cè)試技術(shù),同一種測(cè)試技術(shù)在不同的應(yīng)用場(chǎng)合效果可能相差很大,因此,通常需要聯(lián)合使用多種測(cè)試技術(shù)來設(shè)計(jì)測(cè)試用例。,,通常的做法是用黑盒法設(shè)計(jì)基本測(cè)試方案,再用白盒法補(bǔ)充一些方案。,45,,6.4 白盒法(邏輯覆蓋),白盒法也稱邏輯驅(qū)動(dòng)法(邏輯覆蓋法),從軟件的具體邏輯結(jié)構(gòu)和執(zhí)行路徑出發(fā),設(shè)計(jì)測(cè)試用例。具有語(yǔ)句覆蓋、判定覆蓋(分支覆蓋)、條件覆蓋、判定/條件覆蓋、路徑覆蓋、條件組合覆蓋、點(diǎn)覆蓋、邊覆蓋,下面以一個(gè)經(jīng)典例子分別介紹:,,設(shè)有某個(gè)算法片段的程序流程圖如下:,46,,6.4 白盒法(邏輯覆蓋),圖,6-5,程序段程序框圖,,(,A>1)AND,,(B=0),(,A=2)OR,,(X>1),X=X/A,X=X+1,a,b,c,d,e,T,T,47,,6.4 白盒法(邏輯覆蓋),該程序片段有四條路徑:,abd,acd,ace,aed。,,(1),語(yǔ)句覆蓋:選擇足夠的測(cè)試用例使程序中每條語(yǔ)句至少執(zhí)行一次。,,為了使每個(gè)語(yǔ)句都執(zhí)行一次,程序的執(zhí)行路徑只需經(jīng)過,a、b、c、d、e,各點(diǎn)即可。如果選擇路徑,ace,,則能保證程序中的語(yǔ)句都執(zhí)行一次。,48,,6.4 白盒法(邏輯覆蓋),例如,選擇測(cè)試用例:,A=2,B=0,X=3,,預(yù)期的結(jié)果為:,A=2,B=0,X=2.5;,,但是,許多路徑得不到測(cè)試,這種測(cè)試很不充分。,圖,6-5,程序段程序框圖,,(,A>1)AND,,(B=0),(,A=2)OR,,(X>1),X=X/A,X=X+1,a,b,c,d,e,T,T,49,,6.4 白盒法(邏輯覆蓋),(2) 判定覆蓋(也稱分支覆蓋):判定是一個(gè)邏輯表達(dá)式的結(jié)果。選擇足夠的測(cè)試用例,使程序中每個(gè)判定至少都能獲得一次,“,真,”,值和一次,“,假,”,值,從而使程序的每個(gè)判定的每個(gè)分支至少都執(zhí)行一次。,,例如,選擇測(cè)試用例:,A=3,B=0,X=3,,預(yù)期結(jié)果為:,A=3,B=0,X=1;,,,選擇測(cè)試用例:,A=2,B=1,X=0,,預(yù)期結(jié)果為:,A=2,B=1,X=1;,50,,6.4 白盒法(邏輯覆蓋),這組測(cè)試用例覆蓋了路徑,acd,和,aed ,,滿足了判定覆蓋要求。判定覆蓋比語(yǔ)句覆蓋強(qiáng),但是判定覆蓋只關(guān)心整個(gè)判定表達(dá)式的值,對(duì)程序邏輯的覆蓋程度仍然不高,如上面的測(cè)試,只覆蓋了全部路徑的一半路徑。,51,,6.4 白盒法(邏輯覆蓋),(3) 條件覆蓋:條件為邏輯表達(dá)式中的各個(gè)邏輯分量。選擇足夠的測(cè)試用例,使得程序判定中的每個(gè)條件都能獲得各種可能的結(jié)果。,,如圖6-5中,有四個(gè)條件:,A>1,B=0,A=2,X>1,,每個(gè)條件可能出現(xiàn)的各種結(jié)果為:,a,點(diǎn)出現(xiàn):,A>1,A≤1; B=0,B≠0;,,b,點(diǎn)出現(xiàn):,A=2,A≠2; X>1,X≤1;,52,,6.4 白盒法(邏輯覆蓋),例如,選擇測(cè)試用例:,A=2,B=0,X=4,,預(yù)期結(jié)果為:,A=2,B=0,X=3;,,,選擇測(cè)試用例:,A=1,B=1,X=1,,預(yù)期結(jié)果為:,A=1,B=1,X=1;,,這組測(cè)試用例覆蓋了路徑,acd,aed,和,abd ,,滿足了條件覆蓋要求。條件覆蓋比判定覆蓋強(qiáng),它使判定表達(dá)式中的每個(gè)條件都取得了兩個(gè)不同的結(jié)果。,53,,6.4 白盒法(邏輯覆蓋),但也有相反的情況,每個(gè)條件雖然取得兩個(gè)不同的結(jié)果,判定表達(dá)式卻始終只取一個(gè)值,例如:取數(shù)據(jù):,,A=2,B=0,X=1;,滿足,A>1,B=0,A=2,X≤1,的條件,執(zhí)行路徑,ace;,,A=1,B=1,X=2;,滿足,A≤1,B≠0,A≠2,X>1,的條件,執(zhí)行路徑,abd;,,滿足了條件覆蓋,卻不滿足判定覆蓋,第二個(gè)判定表達(dá)式的值總為真。,54,,6.4 白盒法(邏輯覆蓋),(4) 判定/條件覆蓋:選擇足夠的測(cè)試用例,使得程序判定中的每個(gè)條件都能獲得各種可能的結(jié)果,并且使得每個(gè)判定都取得各種可能的結(jié)果。,,例如,選擇測(cè)試用例:,A=2,B=0,X=4,,預(yù)期結(jié)果為:,A=2,B=0,X=3;,,,選擇測(cè)試用例:,A=1,B=1,X=1,,預(yù)期結(jié)果為:,A=1,B=1,X=1;,55,,6.4 白盒法(邏輯覆蓋),這組測(cè)試用例覆蓋了路徑,acd,aed,和,abd ,,滿足了判定/條件覆蓋要求。但它也并不比條件覆蓋更強(qiáng)。,56,,6.4 白盒法(邏輯覆蓋),(5)條件組合覆蓋:選擇足夠的測(cè)試用例,使得程序判定中的條件的各種可能組合都至少出現(xiàn)一次。,,如圖6-5中,需要測(cè)試覆蓋條件組合的下述八種情況:,,1),A>1,B=0 ; 2) A>1,B≠0; 3) A≤1,B=0; 4)A≤1,B≠0; 5) A=2,X>1 6) A=2,X1 8) A≠2,X≤1,57,,6.4 白盒法(邏輯覆蓋),用,A=2,B=0,X=4,,預(yù)期結(jié)果:,A=2,B=0,X=3,,覆蓋情況1)、5);,,用,A=2,B=1,X=1,,預(yù)期結(jié)果:,A=2,B=1,X=2,,覆蓋情況2)、6),,用,A=1,B=0,X=2,,預(yù)期結(jié)果:,A=1,B=0,X=3,,覆蓋情況 3)、7),,用,A=1,B=1,C=1,,預(yù)期結(jié)果:,A=1,B=1,X=1,,覆蓋情況 4)、8),58,,6.4 白盒法(邏輯覆蓋),條件組合覆蓋是最強(qiáng)的覆蓋,雖然這四個(gè)測(cè)試實(shí)現(xiàn)了條件組合覆蓋,但并沒有覆蓋每一條路徑,如:路徑,acd,遺漏了。,,以上各種技術(shù)基本上是依次增強(qiáng)的順序,但測(cè)試用例的數(shù)量也急劇增加。開銷大,應(yīng)注意權(quán)衡。,59,,6.4 白盒法(邏輯覆蓋),(6)點(diǎn)覆蓋:圖論中的點(diǎn)覆蓋定義為:如果連通圖,G,的子圖,G,’,是連通的,而且包含,G,的所有節(jié)點(diǎn),則稱,G,’,是,G,的點(diǎn)覆蓋。如果把程序流程圖的每個(gè)處理框(含一個(gè)或多個(gè)語(yǔ)句)作為一個(gè)節(jié)點(diǎn),就畫出了程序圖。滿足點(diǎn)覆蓋的要求是選取足夠多的測(cè)試用例,測(cè)試執(zhí)行程序時(shí)的路徑,至少經(jīng)過程序圖的每個(gè)節(jié)點(diǎn)一次。顯然,點(diǎn)覆蓋的要求和語(yǔ)句覆蓋的要求是相同的。,60,,6.4 白盒法(邏輯覆蓋),(7)邊覆蓋:圖論中的邊覆蓋定義為:如果連通圖,G,的子圖,G,’,是連通的,而且包含,G,的所有邊,則稱,G,’,是,G,的邊覆蓋。為了滿足邊覆蓋的測(cè)試要求,使得程序的執(zhí)行路徑經(jīng)過程序圖中的每一條邊。通常邊覆蓋和判定覆蓋是一致的。,,61,,6.4 白盒法(邏輯覆蓋),(8)路徑覆蓋:選擇足夠的測(cè)試用例,使得程序中的每條可能組合路徑都至少執(zhí)行一次。(如果程序圖中有環(huán),則每個(gè)環(huán)至少經(jīng)過一次。)它是相當(dāng)強(qiáng)的邏輯覆蓋標(biāo)準(zhǔn),選擇的測(cè)試用例更具有代表性,暴露錯(cuò)誤的能力也更強(qiáng)。,62,,6.4 黑盒法(邏輯覆蓋),黑盒測(cè)試法把程序看成是一個(gè)黑盒子,不考慮程序內(nèi)部的執(zhí)行過程,著眼于外部特性,在接口上進(jìn)行測(cè)試,僅考慮輸入與輸出能否與需求規(guī)格說明書對(duì)應(yīng)起來,輸入能否正確的接收,輸出能否得到正確的結(jié)果。也稱為數(shù)據(jù)驅(qū)動(dòng)或輸入/輸出驅(qū)動(dòng)測(cè)試,或功能測(cè)試。,,黑盒法包括等價(jià)類劃分、邊界值分析、因果圖法。,63,,6.5.1 等價(jià)類劃分,一個(gè)理想的測(cè)試用例能夠獨(dú)自發(fā)現(xiàn)某一類錯(cuò)誤。一般的測(cè)試是以輸入數(shù)據(jù)為基礎(chǔ)進(jìn)行的,我們著眼于劃分輸入數(shù)據(jù)值的情況,以便找出有代表性的測(cè)試數(shù)據(jù),減少測(cè)試工作量。,,64,,6.5.1 等價(jià)類劃分,假設(shè)我們可以把輸入的數(shù)據(jù)域劃分成有限的等價(jià)類,用每個(gè)等價(jià)類的代表值作為測(cè)試用例的輸入數(shù)據(jù)進(jìn)行測(cè)試,等價(jià)于該類的任何其它值作為設(shè)計(jì)用例的輸入數(shù)據(jù)進(jìn)行的測(cè)試。即:如果等價(jià)類中的一個(gè)測(cè)試用例檢測(cè)出程序的一個(gè)錯(cuò)誤,那么這一等價(jià)類的其余測(cè)試用例也能發(fā)現(xiàn)同樣的錯(cuò)誤。相反,若測(cè)不出錯(cuò)誤,則該等價(jià)類的其他測(cè)試用例,也測(cè)不出錯(cuò)誤。,65,,6.5.1 等價(jià)類劃分,等價(jià)類劃分的原則:,,(1)如果規(guī)定了輸入值的取值范圍,則可劃分出一個(gè)有效的等價(jià)類(輸入值在此范圍內(nèi)),兩個(gè)無(wú)效的等價(jià)類(輸入值小于最小值、或大于最大值);,,(2)如果規(guī)定了輸入數(shù)據(jù)的個(gè)數(shù),則類似地也可以劃分出一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。,66,,6.5.1 等價(jià)類劃分,,(3)如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序?qū)Σ煌斎胫底霾煌靥幚?,則每個(gè)允許的值是一個(gè)有效的等價(jià)類,還有一個(gè)無(wú)效的等價(jià)類(任何一個(gè)不允許的輸入值);,,(4)如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,則可以劃分出一個(gè)有效的等價(jià)類(符合規(guī)則的輸入數(shù)據(jù))和若干個(gè)無(wú)效的等價(jià)類(從各種不同角度違反規(guī)則);,67,,6.5.1 等價(jià)類劃分,,(5)如果輸入數(shù)據(jù)為整型,則可以劃分出正整數(shù)、零和負(fù)整數(shù)三個(gè)有效類;,,(6)如果程序處理的對(duì)象是表格,則應(yīng)該使用空表、以及含有一項(xiàng)或多項(xiàng)的表進(jìn)行測(cè)試。,,以上列舉了可能情況的一部分,還可以根據(jù)經(jīng)驗(yàn)進(jìn)行劃分。上面是針對(duì)輸入數(shù)據(jù)而言,對(duì)輸出數(shù)據(jù)也可類似劃分。,68,,6.5.1 等價(jià)類劃分,根據(jù)等價(jià)類劃分來設(shè)計(jì)測(cè)試方案時(shí)主要使用下面的兩個(gè)步驟(先劃分好等價(jià)類):,,1)設(shè)計(jì)一個(gè)新的測(cè)試方案,盡可能多的覆蓋尚未被覆蓋的有效等價(jià)類;重復(fù)這一步驟直到所有有效等價(jià)類都被覆蓋為止;,,2)設(shè)計(jì)一個(gè)新的測(cè)試方案,使它覆蓋一個(gè),而且只覆蓋一個(gè)尚未被覆蓋的無(wú)效等價(jià)類,重復(fù)這一步驟直到所有無(wú)效等價(jià)類都被覆蓋為止;,69,,6.5.2 邊界值分析,經(jīng)驗(yàn)表明,程序在處理邊界情況時(shí)最容易發(fā)生錯(cuò)誤,——,忽略邊界數(shù)據(jù)域問題。所以選取稍微高于或低于邊界值的數(shù)據(jù)進(jìn)行測(cè)試。啟發(fā)規(guī)則如下:,,(1)輸入條件規(guī)定取值范圍或輸入個(gè)數(shù)時(shí),取邊界值的上下值或個(gè)數(shù)的上下界設(shè)計(jì)測(cè)試用例;,,(2)如果輸出條件規(guī)定取值范圍,取邊界上下浮動(dòng)值作為測(cè)試數(shù)據(jù);,70,,6.5.2 邊界值分析,(3)規(guī)格說明中提出輸入輸出有序集,取有序集的第一個(gè)和最后一個(gè)元素作為測(cè)試數(shù)據(jù);,,(4)分析規(guī)格說明,找出其他可能存在的邊界條件,取其上下浮動(dòng)值作為測(cè)試數(shù)據(jù)。,71,,6.5.3 因果圖法,因果圖可以提供邏輯條件和相應(yīng)動(dòng)作之間的簡(jiǎn)潔邏輯關(guān)系表示。,,因果圖的使用可以分為如下步驟:,,(1)列出模塊的原因,——,和效果(動(dòng)作),給每個(gè)原因和效果一個(gè)標(biāo)示符;,,(2)把原因、效果用邏輯符號(hào)連接起來,畫出原因效果圖,標(biāo)出約束條件;,72,,6.5.3 因果圖法,(3)原因相對(duì)于判定表中的條件,效果相對(duì)于判定表中的動(dòng)作,把原因效果圖轉(zhuǎn)換為判定表;,,(4)把判定表中右邊部分的每一列表示的情況轉(zhuǎn)換為測(cè)試用例。,,73,,6.5.3 錯(cuò)誤推測(cè)法,,錯(cuò)誤推測(cè)法,在很大程度上依靠人的直覺和經(jīng)驗(yàn)進(jìn)行。有時(shí)利用其他測(cè)試方法測(cè)試后的程序表現(xiàn),推測(cè)應(yīng)該如何進(jìn)行下一步的測(cè)試。也可利用程序錯(cuò)誤清單作為推測(cè)測(cè)試的依據(jù)。,74,,6.5.3 綜合測(cè)試策略,對(duì)軟件系統(tǒng)的實(shí)際測(cè)試,往往利用多種測(cè)試方法進(jìn)行,形成綜合測(cè)試策略。通常是用黑盒法設(shè)計(jì)一些基本的測(cè)試用例,再用白盒法補(bǔ)充設(shè)計(jì)一些必要的測(cè)試用例,黑盒、白盒法相結(jié)合,——,灰盒法進(jìn)行測(cè)試。具體策略為:,,(1)在任何情況下 都應(yīng)該使用邊界值分析法進(jìn)行測(cè)試。經(jīng)驗(yàn)表明這種方法設(shè)計(jì)出的測(cè)試用例,暴露程序錯(cuò)誤的能力最強(qiáng),應(yīng)該包括輸入和輸出數(shù)據(jù)的邊界情況;,75,,6.5.3 綜合測(cè)試策略,(2)必要時(shí)用等價(jià)類劃分法補(bǔ)充測(cè)試用例;,,(3)必要時(shí)用錯(cuò)誤推測(cè)法補(bǔ)充測(cè)試用例;,,(4)對(duì)照程序邏輯,檢查設(shè)計(jì)測(cè)試用例,可根據(jù)對(duì)程序的可靠性要求采用不同的邏輯覆蓋標(biāo)準(zhǔn),補(bǔ)充測(cè)試用例,達(dá)到邏輯覆蓋標(biāo)準(zhǔn);,,(5)如果有輸入條件的組合,就應(yīng)從輸入條件及其組合開始測(cè)試。,76,,6.5.3 綜合測(cè)試策略,對(duì)于集成測(cè)試可以使用模塊的自頂向下的結(jié)合方式,也可以使用自底向上的結(jié)合方式進(jìn)行測(cè)試,還可用輔助測(cè)試工具協(xié)助測(cè)試。,,軟件系統(tǒng)測(cè)試完后,應(yīng)對(duì)軟件配置進(jìn)行復(fù)查,確保軟件的有關(guān)文檔資料的完整齊全,分類編目,便于軟件的維護(hù)和修改。審查的資料包括:用戶所需的文檔(用戶手冊(cè)、操作手冊(cè));設(shè)計(jì)文檔;源程序;測(cè)試文檔(測(cè)試說明書,測(cè)試報(bào)告)及其它說明等。,77,,6.6 軟件調(diào)試,程序測(cè)試只是發(fā)現(xiàn)錯(cuò)誤的跡象,并不清楚具體錯(cuò)誤的位置和產(chǎn)生的原因,應(yīng)該立即進(jìn)行調(diào)試,即糾正錯(cuò)誤的工作,它包含兩方面工作:,,(1)確定程序中錯(cuò)誤的具體位置和性質(zhì);,,(2)修改錯(cuò)誤。,,,調(diào)試必須由程序員自己來進(jìn)行。,78,,6.6 軟件調(diào)試,調(diào)試技術(shù)有以下類別:,,輸出存儲(chǔ)器內(nèi)容:發(fā)現(xiàn)問題時(shí),設(shè)法保留現(xiàn)場(chǎng)信息,把所有寄存器和主存中相關(guān)部分的內(nèi)容打印出來進(jìn)行分析研究。,,打印關(guān)鍵變量的動(dòng)態(tài)內(nèi)容:為取得關(guān)鍵變量的動(dòng)態(tài)值,在程序中插入標(biāo)準(zhǔn)的打印語(yǔ)句,檢驗(yàn)在某個(gè)事件發(fā)生后變量是否按預(yù)期的要求進(jìn)行變化。,79,,6.6 軟件調(diào)試,利用調(diào)試工具跟蹤程序的動(dòng)態(tài)變化,單步跟蹤,檢查主存和寄存器內(nèi)容,檢查重要變量?jī)?nèi)容,檢查是否進(jìn)入預(yù)定的程序分支,設(shè)置斷點(diǎn),當(dāng)程序運(yùn)行到檢查的重點(diǎn)位置,暫停程序運(yùn)行,觀察主要的變化信息,分析程序狀態(tài),決定繼續(xù)跟蹤還是停止執(zhí)行,為程序的調(diào)試提供了有力的手段。,,調(diào)試的策略有:試探法,回溯法,對(duì)分查找法、歸納法、演繹法??筛鶕?jù)個(gè)人經(jīng)驗(yàn)和具體情況靈活應(yīng)用。,80,,6.7 軟件質(zhì)量控制,高質(zhì)量是產(chǎn)品得以存在和生長(zhǎng)的前提,軟件工程的主要目標(biāo)之一就是要獲得高質(zhì)量的軟件。在軟件工程誕生之前,由于計(jì)算機(jī)設(shè)備條件的限制,計(jì)算機(jī)發(fā)展的早期,內(nèi)存容量有限,執(zhí)行速度不高,當(dāng)時(shí)的軟件設(shè)計(jì)特別強(qiáng)調(diào)效率。隨著技術(shù)的發(fā)展,軟件規(guī)模的擴(kuò)大,軟件復(fù)雜性的增加,人們對(duì)軟件質(zhì)量的觀點(diǎn)早已發(fā)生了很大變化,更強(qiáng)調(diào)軟件的全面質(zhì)量評(píng)價(jià)。,81,,6.7 .1軟件質(zhì)量評(píng)價(jià),不同的人員對(duì)軟件質(zhì)量關(guān)心的著重點(diǎn)不同,反映了對(duì)軟件質(zhì)量的不同要求。,,用戶關(guān)心軟件產(chǎn)品是否滿足規(guī)定的功能和性能要求,軟件運(yùn)行是否可靠,是否易于學(xué)習(xí)掌握,易于使用,是否有較高的運(yùn)行效率,是否可以從一個(gè)環(huán)境移植到另一個(gè)環(huán)境等問題。,,軟件開發(fā)人員既要開發(fā)滿足質(zhì)量要求的最終產(chǎn)品,又要注意軟件開發(fā)過程中的每個(gè)階段的質(zhì)量。,82,,6.7 .1軟件質(zhì)量評(píng)價(jià),開發(fā)人員常把產(chǎn)品外部特性用軟件內(nèi)部質(zhì)量結(jié)構(gòu)來對(duì)應(yīng)。,,維護(hù)人員要求軟件系統(tǒng)、軟件文檔清晰、軟件文檔與源代碼一致,軟件易于修改、易于維護(hù)。,,管理人員關(guān)心的是軟件的總體質(zhì)量特性,在軟件質(zhì)量與開發(fā)工期之間進(jìn)行折中選擇;,83,,6.7 .1軟件質(zhì)量評(píng)價(jià),但影響軟件質(zhì)量的各因素之間是相互聯(lián)系、甚至是相互矛盾的,如追求可靠性要犧牲一定的時(shí)間和空間效率為代價(jià),要求軟件不但能在合法的輸入情況下正確地運(yùn)行,而且還應(yīng)該能夠安全地排除非法的入侵和處理意外的事件。,,一般要求軟件具有良好的結(jié)構(gòu),齊全的文檔資料,易于閱讀和理解,便于修改和維護(hù),內(nèi)部層次結(jié)構(gòu)清晰、人機(jī)界面友好,用戶樂于使用。,84,,6.7 .1軟件質(zhì)量評(píng)價(jià),國(guó)際標(biāo)準(zhǔn)化機(jī)構(gòu)建議,軟件質(zhì)量模型由三層組成:,,高層:軟件質(zhì)量需求評(píng)價(jià)準(zhǔn)則(,SQRC);,,中層:軟件質(zhì)量設(shè)計(jì)評(píng)價(jià)準(zhǔn)則(,SQDC);,,低層:軟件質(zhì)量度量評(píng)價(jià)準(zhǔn)則(,SQMC);,85,,6.7 .1軟件質(zhì)量評(píng)價(jià),多數(shù)軟件同行公認(rèn)的一般質(zhì)量按如下特性進(jìn)行評(píng)價(jià):,,正確性:(功能度)在預(yù)定的環(huán)境下,軟件實(shí)現(xiàn)的功能達(dá)到設(shè)計(jì)規(guī)范和滿足用戶要求的程度;,,可靠性:軟件在給定的條件下和規(guī)定的時(shí)間內(nèi)完成預(yù)定職能的概率;即保持其性能的能力相關(guān)的屬性;,,易用性:用戶學(xué)習(xí)軟件、運(yùn)行操作軟件、準(zhǔn)備輸入、理解輸出所做的努力程度,根據(jù)用戶評(píng)估使用軟件所需進(jìn)行努力的程度相關(guān)的屬性;,86,,6.7 .1軟件質(zhì)量評(píng)價(jià),效率:在規(guī)定的條件下,軟件表現(xiàn)的性能級(jí)別與所使用資源總量(包括人員、時(shí)間、財(cái)力)關(guān)系的屬性;,,可維護(hù)性:軟件修改難易程度的一組屬性;,,可移植性;(可轉(zhuǎn)換性)指一個(gè)軟件從一個(gè)環(huán)境轉(zhuǎn)換到另一個(gè)環(huán)境運(yùn)行的能力的相關(guān)屬性。,,以上六條是常見的評(píng)價(jià)方面。,87,,6.7 .1軟件質(zhì)量評(píng)價(jià),還有其它方面的特性來評(píng)價(jià)軟件質(zhì)量,衡量總體質(zhì)量的優(yōu)劣程度。如:,,健壯性:在硬件發(fā)生故障、輸入數(shù)據(jù)無(wú)效或操作失誤等意外情況下,系統(tǒng)不至于崩潰,能作出適當(dāng)響應(yīng)的程度;,,完整性:(安全性)對(duì)未經(jīng)授權(quán)的人使用軟件或數(shù)據(jù)的企圖,系統(tǒng)能夠控制(禁止)的程度;,88,,6.7 .1軟件質(zhì)量評(píng)價(jià),可測(cè)試性:系統(tǒng)容易測(cè)試的程度;,,可再用性:在其他應(yīng)用中該軟件可以被再次使用的程度(或范圍);,,可互連性:把軟件系統(tǒng)與其他系統(tǒng)連接起來的能力。,,除了定性評(píng)價(jià)外,人們逐漸重視軟件的質(zhì)量度量,它是在系統(tǒng)運(yùn)行過程中進(jìn)行動(dòng)態(tài)檢測(cè),不斷收集軟件性能方面的數(shù)據(jù),利用軟件質(zhì)量模型(如軟件可靠性模型、軟件復(fù)雜度模型等)進(jìn)行分析和評(píng)價(jià)。,89,,6.7 .2軟件質(zhì)量控制,做好軟件質(zhì)量的控制,就要加強(qiáng)軟件生命期各個(gè)階段的軟件質(zhì)量保證,需要做好如下幾方面的軟件管理工作:,,(1)采用技術(shù)手段保證軟件質(zhì)量:在軟件開發(fā)過程中,注意采用科學(xué)的軟件工程方法和工具來保證所開發(fā)軟件的質(zhì)量;,90,,6.7 .2軟件質(zhì)量控制,,(2)組織技術(shù)評(píng)審:在軟件開發(fā)的每個(gè)階段結(jié)束后,都要組織評(píng)審,對(duì)質(zhì)量進(jìn)行評(píng)價(jià),可以及早地發(fā)現(xiàn)軟件開發(fā)過程中的可能引起軟件質(zhì)量問題的潛在錯(cuò)誤;,,(3)加強(qiáng)軟件測(cè)試:軟件測(cè)試是軟件質(zhì)量保證的重要手段。測(cè)試可以發(fā)現(xiàn)軟件中大多數(shù)隱藏的錯(cuò)誤,測(cè)試愈充分,軟件中的隱患就有可能暴露得愈徹底;,91,,6.7 .2軟件質(zhì)量控制,(4)推行軟件工程標(biāo)準(zhǔn):不同的軟件開發(fā)機(jī)構(gòu)都有自己的工程規(guī)范,根據(jù),ISO9000,系列質(zhì)量管理保證體系確定的規(guī)范,進(jìn)行企業(yè)的認(rèn)證工作。一旦確認(rèn),就應(yīng)在軟件開發(fā)中得到遵循,軟件規(guī)范則成為軟件技術(shù)評(píng)審的一項(xiàng)重要內(nèi)容;,92,,6.7 .2軟件質(zhì)量控制,,(5)對(duì)軟件的修改、變更進(jìn)行嚴(yán)格控制:影響軟件的一個(gè)不可忽視的危險(xiǎn)因素來自軟件的修改和變更。盡管修改和變更總是有理由的,但在修改過程中常常會(huì)引進(jìn)一些潛伏的錯(cuò)誤。因此嚴(yán)格控制軟件的修改和變更是十分必要的;,,(6)對(duì)軟件質(zhì)量進(jìn)行度量:軟件質(zhì)量管理要求對(duì)軟件質(zhì)量進(jìn)行跟蹤,就必須進(jìn)行軟件質(zhì)量度量,并對(duì)軟件質(zhì)量情況及時(shí)記錄和報(bào)告。,93,,6.7 .2軟件質(zhì)量控制,軟件的審查過程有以下步驟:,,制定審查計(jì)劃:組織審查小組,安排日程,分發(fā)軟件項(xiàng)目材料;,,項(xiàng)目概貌介紹:當(dāng)項(xiàng)目復(fù)雜時(shí),由作者介紹概貌;,,評(píng)審準(zhǔn)備:評(píng)審人員閱讀項(xiàng)目材料,了解有關(guān)項(xiàng)目的情況;,,項(xiàng)目評(píng)審:召開評(píng)審會(huì),討論項(xiàng)目情況,發(fā)現(xiàn)和記錄錯(cuò)誤,督促修改;,94,,6.7 .2軟件質(zhì)量控制,項(xiàng)目修改返工:由作者修正已經(jīng)發(fā)現(xiàn)的問題,提交修改結(jié)果;,,復(fù)查:判斷修改是否真正解決了問題。,,管理復(fù)審:向開發(fā)組織或使用部門的管理人員,提供有關(guān)項(xiàng)目的總體狀況、成本和進(jìn)度等方面的情況,以便他們從管理角度對(duì)開發(fā)工作進(jìn)行審查。,95,,6.7 .2軟件質(zhì)量保證,,ISO 9000-3,標(biāo)準(zhǔn)不適用于面向多數(shù)用戶的程序軟件包,僅適用于依照合同進(jìn)行單獨(dú)定貨的開發(fā)軟件,對(duì)供需方的責(zé)任都作了明確的規(guī)定,最重要的是質(zhì)量保證體系,也是企業(yè)建立質(zhì)量保證體系的指南,要求證實(shí)企業(yè)具有持續(xù)提供符合要求產(chǎn)品的能力,主要強(qiáng)調(diào)將質(zhì)量作入產(chǎn)品之中:,,(1)軟件質(zhì)量保證體系是貫穿于整個(gè)生存期的集成化過程體系,而不僅僅體現(xiàn)在最后的產(chǎn)品交付驗(yàn)收時(shí);,96,,6.7 .2軟件質(zhì)量保證,(2)強(qiáng)調(diào)防患于未然而不是事后糾正;,,(3)更強(qiáng)調(diào)質(zhì)量體系的文件化,實(shí)施內(nèi)部質(zhì)量審核制度;,,(4)強(qiáng)調(diào)對(duì)每一項(xiàng)軟件開發(fā)都按計(jì)劃開展質(zhì)量活動(dòng)并且確保相關(guān)組織機(jī)構(gòu)的了解和監(jiān)督;,,(5)進(jìn)行合同審查,需求規(guī)格說明可用于產(chǎn)品交付驗(yàn)證時(shí)的認(rèn)證;,97,,6.7 .2軟件質(zhì)量保證,(6)實(shí)施開發(fā)計(jì)劃管理,質(zhì)量計(jì)劃管理,進(jìn)行產(chǎn)品的設(shè)計(jì)和實(shí)現(xiàn);,,(7)進(jìn)行多層次的測(cè)試和驗(yàn)證,交付安裝時(shí)提供義務(wù)期限;,,(8)提供維護(hù)支持、配置管理、文檔控制、質(zhì)量記錄、培訓(xùn)人員和其它支持活動(dòng)等;,98,,6.7 .2軟件質(zhì)量保證,總之,加強(qiáng)質(zhì)量管理,針對(duì)所有可能影響軟件質(zhì)量的各個(gè)因素都要采取有力措施,作出加強(qiáng)質(zhì)量管理和控制的決定。與質(zhì)量有關(guān)的人員都要規(guī)定其職責(zé)和權(quán)限,使責(zé)任落實(shí)到人,保證產(chǎn)品質(zhì)量真正得到控制。,99,,課堂練習(xí),讀入購(gòu)貨月份,T,和購(gòu)貨量,W,T in {4-6,10,12},折扣率=5%,W<10,W>20,W<10,W>20,折扣率=10%,折扣率=20%,折扣率=20%,折扣率=30%,結(jié)束,T,F,T,F,T,F,T,F,T,F,100,,習(xí) 題 六,1. 什么是軟件測(cè)試?測(cè)試的根本目的是什么?,,2.測(cè)試用例包含哪兩個(gè)部分?,,3.測(cè)試應(yīng)遵循什么原則?,,4.測(cè)試有哪些方法?,,5.測(cè)試與軟件開發(fā)的各個(gè)階段有什么關(guān)系?,,6.分別用邏輯覆蓋的幾種方式設(shè)計(jì)某一程序片段,寫出測(cè)試用例。,101,,習(xí) 題 六,7.解釋下列術(shù)語(yǔ):?jiǎn)卧獪y(cè)試;集成測(cè)試;確認(rèn)測(cè)試;系統(tǒng)測(cè)試;調(diào)試;,,8.測(cè)試與調(diào)試有什么區(qū)別?測(cè)試的策略有哪些?調(diào)試有哪幾種技術(shù)?,,9.調(diào)試有哪幾種策略?,,10.軟件質(zhì)量一般從哪幾方面進(jìn)行評(píng)價(jià)?,,11.如何加強(qiáng)軟件質(zhì)量控制?,102,,

注意事項(xiàng)

本文(【軟件工程】軟件測(cè)試及軟件質(zhì)量控制)為本站會(huì)員(ll****x)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  sobing.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!