




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件測(cè)試與維護(hù)本章概述2本章首先介紹軟件測(cè)試的基本概念,包括軟件測(cè)試的原則和模型。然后講述軟件測(cè)試的分類,接著涉及測(cè)試用例,包括測(cè)試用例編寫、設(shè)計(jì)和場(chǎng)景。之后講述黑盒測(cè)試的方法,包括等價(jià)類劃分法,邊界值分析法,錯(cuò)誤推測(cè)法,因果圖法,決策表法和場(chǎng)景法。講述白盒測(cè)試的方法:代碼檢查法,靜態(tài)結(jié)構(gòu)分析法,程序插樁技術(shù),邏輯覆蓋法和基本路徑法。講述軟件測(cè)試的一般步驟:?jiǎn)卧獪y(cè)試,集成測(cè)試,系統(tǒng)測(cè)試,驗(yàn)收測(cè)試。最后介紹回歸測(cè)試:面向?qū)ο鬁y(cè)試,自動(dòng)化測(cè)試、軟件調(diào)試、軟件維護(hù)。本章目標(biāo):
掌握軟件測(cè)試原則了解軟件測(cè)試的常用模型了解軟件測(cè)試的分類了解測(cè)試用例及其設(shè)計(jì)方法掌握等價(jià)類劃分法,熟悉黑盒測(cè)試的其他方法掌握邏輯覆蓋法,熟悉白盒測(cè)試的其他方法掌握軟件測(cè)試的一般步驟,以及每個(gè)階段測(cè)試的關(guān)注點(diǎn)了解回歸測(cè)試、面向?qū)ο鬁y(cè)試和自動(dòng)化測(cè)試熟悉軟件調(diào)試、軟件維護(hù)目錄311.1軟件測(cè)試的基本概念11.2軟件測(cè)試的分類11.3測(cè)試用例11.4軟件測(cè)試方法11.5黑盒測(cè)試目錄411.6白盒測(cè)試11.7軟件測(cè)試的一般步驟11.8單元測(cè)試11.9集成測(cè)試11.10系統(tǒng)測(cè)試目錄511.11驗(yàn)收測(cè)試11.12回歸測(cè)試11.13面向?qū)ο蟮能浖y(cè)試11.14軟件調(diào)試、軟件維護(hù)11.1軟件測(cè)試的基本概念軟件測(cè)試的基本概念軟件測(cè)試是發(fā)現(xiàn)軟件中錯(cuò)誤和缺陷的主要手段。為了保證軟件產(chǎn)品的質(zhì)量,軟件開發(fā)人員通過(guò)軟件測(cè)試發(fā)現(xiàn)產(chǎn)品中存在的問(wèn)題,并對(duì)其進(jìn)行及時(shí)的修改??梢哉f(shuō),軟件測(cè)試的過(guò)程就是發(fā)現(xiàn)并改正軟件缺陷的過(guò)程。軟件缺陷是指軟件產(chǎn)品中存在的問(wèn)題,具體表現(xiàn)為用戶所需的功能沒(méi)有實(shí)現(xiàn),無(wú)法滿足用戶的需求。缺陷的產(chǎn)生是不可避免的,軟件測(cè)試的工作是必需的。在軟件開發(fā)過(guò)程的任何階段都可能引入缺陷。缺陷被引入的階段越早,在軟件開發(fā)的后期修復(fù)這些缺陷帶來(lái)的成本損失就越大。7軟件測(cè)試的基本概念
軟件測(cè)試是軟件開發(fā)過(guò)程中的一個(gè)重要階段。在軟件產(chǎn)品正式投入使用之前,軟件開發(fā)人員需要保證軟件產(chǎn)品正確地實(shí)現(xiàn)了用戶的需求,并滿足穩(wěn)定性、安全性、一致性、完全性等各個(gè)方面的要求,通過(guò)軟件測(cè)試對(duì)產(chǎn)品的質(zhì)量加以保證。實(shí)際上,軟件測(cè)試過(guò)程與整個(gè)軟件開發(fā)過(guò)程是同步的,也就是說(shuō),軟件測(cè)試工作應(yīng)該貫穿于整個(gè)開發(fā)過(guò)程。811.1.1軟件測(cè)試的原則
軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程,它并不可能找出所有的錯(cuò)誤,但是卻可以減少潛在的錯(cuò)誤或缺陷。人們?cè)陂L(zhǎng)期進(jìn)行軟件測(cè)試實(shí)踐的過(guò)程中,不斷地總結(jié)出一些軟件測(cè)試的經(jīng)驗(yàn)或原則,可供我們參考。完全測(cè)試是不可能的。測(cè)試中存在風(fēng)險(xiǎn)。軟件測(cè)試只能表明缺陷的存在,而不能證明軟件產(chǎn)品已經(jīng)沒(méi)有缺陷。軟件產(chǎn)品中潛在的錯(cuò)誤數(shù)與已發(fā)現(xiàn)的錯(cuò)誤數(shù)成正比。讓不同的測(cè)試人員參與到測(cè)試工作中。911.1.1軟件測(cè)試的原則讓開發(fā)小組和測(cè)試小組分立,開發(fā)工作和測(cè)試工作不能由同一部分人來(lái)完成。盡早并不斷地進(jìn)行測(cè)試,使測(cè)試工作貫穿于整個(gè)軟件開發(fā)的過(guò)程中。在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)包括輸入數(shù)據(jù)和預(yù)期的輸出結(jié)果兩個(gè)部分,并且,輸入數(shù)據(jù)不僅應(yīng)該包括合法的情況,還應(yīng)該包括非法的輸入情況。要集中測(cè)試容易出錯(cuò)或錯(cuò)誤較多的模塊。應(yīng)該長(zhǎng)期保留所有的測(cè)試用例。1011.1.2
軟件測(cè)試模型軟件測(cè)試模型是指軟件測(cè)試全部過(guò)程、活動(dòng)或任務(wù)的結(jié)構(gòu)框架。通常情況下,一個(gè)軟件測(cè)試模型應(yīng)該闡明的問(wèn)題包括:測(cè)試時(shí)間、測(cè)試步驟、如何對(duì)測(cè)試進(jìn)行計(jì)劃、不同階段測(cè)試中應(yīng)關(guān)注的測(cè)試對(duì)象、測(cè)試中應(yīng)考慮的問(wèn)題、測(cè)試目標(biāo)等。一個(gè)好的軟件測(cè)試模型可以簡(jiǎn)化測(cè)試的工作,加速軟件開發(fā)的進(jìn)程。常用的軟件測(cè)試過(guò)程模型有V模型、W模型和H模型。11V模型是最具代表意義的測(cè)試模型,它是軟件開發(fā)中瀑布模型的變種。V模型的重要意義在于它非常明確地表明了測(cè)試過(guò)程中存在的不同級(jí)別,并且清楚地描述了這些測(cè)試階段和開發(fā)過(guò)程的各階段的對(duì)應(yīng)關(guān)系。不難發(fā)現(xiàn),在V模型中,測(cè)試工作在編碼之后才能進(jìn)行,所以在軟件開發(fā)早期各個(gè)階段引入的錯(cuò)誤不能及時(shí)被發(fā)現(xiàn)。尤其是需求階段的錯(cuò)誤只有等到最后的驗(yàn)收測(cè)試才能被識(shí)別。對(duì)分析、設(shè)計(jì)階段產(chǎn)生的錯(cuò)誤不能及時(shí)發(fā)現(xiàn)并改正的缺點(diǎn)會(huì)對(duì)后期的修復(fù)工作帶來(lái)諸多不便,造成更多資源的浪費(fèi)和時(shí)間的延遲。1211.1.2
軟件測(cè)試模型V模型為了克服V模型開發(fā)和測(cè)試不能同步的問(wèn)題,Evolutif公司發(fā)明了W模型,它在V模型的基礎(chǔ)上,增加了軟件開發(fā)階段中應(yīng)同步進(jìn)行的測(cè)試活動(dòng)。W模型的最大優(yōu)勢(shì)在于,測(cè)試活動(dòng)可以與開發(fā)活動(dòng)并行進(jìn)行,這樣有利于及早地發(fā)現(xiàn)錯(cuò)誤,但是W模型也有一定的局限性。在W模型中,需求、設(shè)計(jì)、編碼等活動(dòng)依然是依次進(jìn)行的,只有上一階段完全結(jié)束,才有可能開始下一階段的工作。與迭代的開發(fā)模型相比,這種線性的開發(fā)模型在靈活性和對(duì)環(huán)境的適應(yīng)性上有很大差距。1311.1.2
軟件測(cè)試模型W模型
H模型強(qiáng)調(diào)測(cè)試的獨(dú)立性和靈活性。在H模型中,軟件測(cè)試活動(dòng)完全獨(dú)立,它貫穿于整個(gè)軟件產(chǎn)品的生命周期,與其他流程并行進(jìn)行。當(dāng)軟件測(cè)試人員認(rèn)為測(cè)試準(zhǔn)備完成,即某個(gè)測(cè)試點(diǎn)準(zhǔn)備就緒時(shí),就可以從測(cè)試準(zhǔn)備階段進(jìn)入到測(cè)試執(zhí)行階段。1411.1.2
軟件測(cè)試模型H模型1511.1.2
軟件測(cè)試模型軟件測(cè)試的分類11.2軟件測(cè)試的分類軟件測(cè)試可以從不同的角度劃分為多種類型,如圖所示。17按照質(zhì)量因素劃分的軟件測(cè)試分類。功能測(cè)試關(guān)注于軟件產(chǎn)品的功能實(shí)現(xiàn),以軟件產(chǎn)品的需求規(guī)格說(shuō)明書為依據(jù),檢驗(yàn)最終的軟件產(chǎn)品是否實(shí)現(xiàn)了需求規(guī)格說(shuō)明書中的所有功能需求??煽啃詼y(cè)試關(guān)注于程序輸出結(jié)果的準(zhǔn)確性,它以需求規(guī)格說(shuō)明書中對(duì)系統(tǒng)的可靠性要求為依據(jù),評(píng)測(cè)最終的軟件產(chǎn)品提供準(zhǔn)確輸出結(jié)果的能力??捎眯詼y(cè)試用來(lái)衡量處理服務(wù)請(qǐng)求時(shí),應(yīng)用程序的可用頻率。顧名思義,它以需求規(guī)格說(shuō)明書中對(duì)系統(tǒng)的可用性要求為依據(jù)??捎眯院涂煽啃缘膮^(qū)別在于,可用性衡量的是一個(gè)應(yīng)用程序處理服務(wù)請(qǐng)求并且在最短時(shí)間內(nèi)從故障中恢復(fù)的能力,而可靠性衡量的是應(yīng)用程序能夠在多長(zhǎng)時(shí)間內(nèi)一直運(yùn)行并且給出期望的結(jié)果值。18按照質(zhì)量因素劃分的軟件測(cè)試分類。軟件系統(tǒng)的性能包括多方面的因素,比如輸入/輸出數(shù)據(jù)的精度、系統(tǒng)的響應(yīng)時(shí)間、更新頻率、數(shù)據(jù)的轉(zhuǎn)換和傳送時(shí)間、操作方式或運(yùn)行環(huán)境變化時(shí)軟件產(chǎn)品的適應(yīng)能力、故障處理能力、資源利用率等。性能測(cè)試主要針對(duì)軟件產(chǎn)品各方面的性能因素,可以細(xì)分為負(fù)載測(cè)試、容量測(cè)試、壓力測(cè)試。安全性測(cè)試主要驗(yàn)證系統(tǒng)的安全性、保密性等措施是否能有效地發(fā)揮作用,包括用戶管理和訪問(wèn)控制、數(shù)據(jù)備份與恢復(fù)、入侵檢測(cè)等。19軟件測(cè)試的分類軟件測(cè)試還包括配置測(cè)試、兼容性測(cè)試、安裝測(cè)試、文檔測(cè)試、軟件國(guó)際化測(cè)試、軟件本地化測(cè)試、α測(cè)試和β測(cè)試等。配置測(cè)試考察軟件系統(tǒng)是否能在多種硬件平臺(tái)上正常運(yùn)行。兼容性測(cè)試是為了檢測(cè)各軟件之間是否能正確地交互和共享信息,它主要關(guān)注軟件的運(yùn)行平臺(tái)和應(yīng)用系統(tǒng)的版本、標(biāo)準(zhǔn)和規(guī)范、數(shù)據(jù)的共享性。安裝測(cè)試是為了發(fā)現(xiàn)軟件在安裝過(guò)程中存在的錯(cuò)誤,驗(yàn)證其與安裝手冊(cè)的內(nèi)容是否一致。與安裝測(cè)試相對(duì)應(yīng)的還有卸載測(cè)試。文檔測(cè)試是指檢驗(yàn)軟件產(chǎn)品的文檔是否清晰、準(zhǔn)確、一致。軟件的國(guó)際化和本地化是相對(duì)應(yīng)的。軟件的國(guó)際化特性要求軟件產(chǎn)品能夠支持Unicode,支持不同時(shí)區(qū)的設(shè)定、顯示和切換,消除一些不容易改變的設(shè)置等。α測(cè)試和β測(cè)試都是屬于驗(yàn)收測(cè)試的范疇,是在系統(tǒng)測(cè)試之后,產(chǎn)品發(fā)布之前進(jìn)行的測(cè)試過(guò)程的最后一個(gè)階段。2011.3測(cè)試用例測(cè)試用例編寫為達(dá)到最佳的測(cè)試效果或高效的揭露隱藏的錯(cuò)誤而精心設(shè)計(jì)的少量測(cè)試數(shù)據(jù)并執(zhí)行,稱之為測(cè)試用例。簡(jiǎn)單的說(shuō),測(cè)試用例就是設(shè)計(jì)一種情況,軟件程序在這種情況下,必須能夠正常運(yùn)行并且達(dá)到程序所設(shè)計(jì)的執(zhí)行結(jié)果。我們不可能進(jìn)行窮舉測(cè)試,為了節(jié)省時(shí)間和資源,提高測(cè)試效率,必須要從數(shù)量極大的可用測(cè)試數(shù)據(jù)中精心挑選出具有代表性或特殊性的測(cè)試數(shù)據(jù)來(lái)進(jìn)行測(cè)試。一個(gè)好的測(cè)試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤。22測(cè)試用例設(shè)計(jì)在測(cè)試用例設(shè)計(jì)過(guò)程中,有一些經(jīng)驗(yàn)和方法可循。我們?cè)诮酉聛?lái)的章節(jié)中將會(huì)介紹其中的幾種方法。在任何情況下都必須選擇邊界值分析方法。經(jīng)驗(yàn)表明用這種方法設(shè)計(jì)出測(cè)試用例發(fā)現(xiàn)程序錯(cuò)誤的能力最強(qiáng);必要時(shí)用等價(jià)類劃分法補(bǔ)充一些測(cè)試用例;用錯(cuò)誤推測(cè)法再追加一些測(cè)試用例;對(duì)照程序邏輯,檢查已設(shè)計(jì)出的測(cè)試用例的邏輯覆蓋度。如果沒(méi)有達(dá)到要求的邏輯覆蓋標(biāo)準(zhǔn),應(yīng)當(dāng)再補(bǔ)充足夠的測(cè)試用例;如果程序的功能說(shuō)明中如果程序的功能說(shuō)明中含有輸入條件的組合情況,則可選用因果圖法。從測(cè)試用例設(shè)計(jì)的角度,我們經(jīng)常使用的軟件測(cè)試方法主要包括黑盒測(cè)試和白盒測(cè)試。含有輸入條件的組合情況,則可選用因果圖法。從測(cè)試用例設(shè)計(jì)的角度,我們經(jīng)常使用的軟件測(cè)試方法主要包括黑盒測(cè)試和白盒測(cè)試。23測(cè)試用例場(chǎng)景用例場(chǎng)景是通過(guò)描述流經(jīng)用例的路徑來(lái)確定的過(guò)程,這個(gè)流經(jīng)過(guò)程要從用例開始到結(jié)束遍歷其中所有基本流和備選流。24開始用例結(jié)束用例結(jié)束用例基本流備選流3備選流1備選流2備選流411.4軟件測(cè)試方法軟件測(cè)試方法按照?qǐng)?zhí)行測(cè)試時(shí)是否需要運(yùn)行程序,軟件測(cè)試可以劃分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。靜態(tài)測(cè)試以人工測(cè)試為主,通過(guò)測(cè)試人員認(rèn)真閱讀文檔和代碼,仔細(xì)分析其正確性、一致性及邏輯結(jié)構(gòu)的正確性,從而找出軟件產(chǎn)品中的錯(cuò)誤或缺陷。靜態(tài)測(cè)試對(duì)自動(dòng)化工具的依賴性較小,通過(guò)人腦的思考和邏輯判斷來(lái)查找錯(cuò)誤,因而可以更好地發(fā)揮人的主觀能動(dòng)性。根據(jù)軟件開發(fā)實(shí)踐的總結(jié),靜態(tài)測(cè)試的成效非常顯著,一般靜態(tài)測(cè)試檢測(cè)出的錯(cuò)誤數(shù)可以達(dá)到總錯(cuò)誤數(shù)的80%以上。26軟件測(cè)試方法審查和走查是靜態(tài)測(cè)試的常用形式。審查是指通過(guò)閱讀并討論各種設(shè)計(jì)文檔以及程序代碼,來(lái)檢查其是否有錯(cuò)。審查的工作可以獨(dú)自進(jìn)行,也可以通過(guò)會(huì)議的形式將相關(guān)的人員召集起來(lái)共同發(fā)現(xiàn)并糾正錯(cuò)誤。而走查的對(duì)象只是代碼,不包括設(shè)計(jì)文檔。代碼走查以小組會(huì)議的形式進(jìn)行,相關(guān)測(cè)試人員提供所需的測(cè)試用例,參會(huì)人員模擬計(jì)算機(jī),跟蹤程序的執(zhí)行過(guò)程,對(duì)其邏輯和功能提出各種疑問(wèn),并通過(guò)討論發(fā)現(xiàn)問(wèn)題??偠灾?,靜態(tài)測(cè)試的效率比較高,而且要求測(cè)試人員具有豐富的經(jīng)驗(yàn)。27軟件測(cè)試方法與靜態(tài)測(cè)試不同的是,動(dòng)態(tài)測(cè)試需要通過(guò)實(shí)際運(yùn)行被測(cè)程序來(lái)發(fā)現(xiàn)問(wèn)題。測(cè)試人員可以輸入一系列的測(cè)試用例,通過(guò)觀察測(cè)試用例的輸出結(jié)果是否與預(yù)期相符來(lái)檢驗(yàn)系統(tǒng)內(nèi)潛在的問(wèn)題或缺陷。動(dòng)態(tài)測(cè)試中有兩種非常流行的測(cè)試技術(shù),即黑盒測(cè)試和白盒測(cè)試。2811.5黑盒測(cè)試黑盒測(cè)試在黑盒測(cè)試?yán)?,測(cè)試人員把被測(cè)試的軟件系統(tǒng)看成是一個(gè)黑盒子,并不需要關(guān)心盒子的內(nèi)部結(jié)構(gòu)和內(nèi)部特性,而只關(guān)注軟件產(chǎn)品的輸入數(shù)據(jù)和輸出結(jié)果,從而檢查軟件產(chǎn)品是否符合它的功能說(shuō)明。與黑盒測(cè)試不同,白盒測(cè)試關(guān)注軟件產(chǎn)品的內(nèi)部細(xì)節(jié)和邏輯結(jié)構(gòu),即把被測(cè)的程序看成是一個(gè)透明的盒子。30軟件實(shí)現(xiàn)細(xì)節(jié)黑盒測(cè)試白盒測(cè)試黑盒測(cè)試不論是黑盒測(cè)試還是白盒測(cè)試,它們都可以發(fā)現(xiàn)被測(cè)系統(tǒng)的問(wèn)題。但是由于它們側(cè)重的角度不同,所以發(fā)現(xiàn)的問(wèn)題也不盡相同。一般在軟件測(cè)試的過(guò)程中,既要用到黑盒測(cè)試,又要用到白盒測(cè)試。大的功能模塊采用黑盒測(cè)試,小的構(gòu)件采用白盒測(cè)試??梢哉f(shuō),黑盒測(cè)試和白盒測(cè)試都是基于用例的測(cè)試方法,因?yàn)樗鼈兌纪ㄟ^(guò)運(yùn)行測(cè)試用例來(lái)發(fā)現(xiàn)問(wèn)題。根據(jù)設(shè)計(jì)用例的方法的不同,黑盒測(cè)試包括等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測(cè)法、因果圖法等,而白盒測(cè)試包括邏輯覆蓋測(cè)試方法和基本路徑測(cè)試等方法。下面將重點(diǎn)對(duì)黑盒測(cè)試和白盒測(cè)試進(jìn)行詳細(xì)的介紹。31等價(jià)類劃分法等價(jià)類劃分是把程序的輸入域劃分為若干子集,然后從每個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)用作測(cè)試用例,所選取的輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的。對(duì)于測(cè)試來(lái)說(shuō),某個(gè)等價(jià)類的代表值與該等價(jià)類的其他值是等價(jià)的,因此可以把所有的輸入數(shù)據(jù)劃分為若干等價(jià)類,在每一個(gè)等價(jià)類中取少部分?jǐn)?shù)據(jù)進(jìn)行測(cè)試。等價(jià)類分為有效等價(jià)類和無(wú)效等價(jià)類。有效等價(jià)類是指對(duì)程序的規(guī)格說(shuō)明是有意義的、合理的輸入數(shù)據(jù)所構(gòu)成的集合。無(wú)效等價(jià)類是指對(duì)程序的規(guī)格說(shuō)明是無(wú)意義的、不合理的輸入數(shù)據(jù)構(gòu)成的集合。32在劃分等價(jià)類時(shí),有一些可供遵循的原則。如果輸入條件規(guī)定了取值范圍或個(gè)數(shù),則可確定一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。例如,輸入值是選課人數(shù),在0到100之間,那么有效等價(jià)類是“0≤學(xué)生人數(shù)≤100”,無(wú)效等價(jià)類是“學(xué)生人數(shù)<0”和“學(xué)生人數(shù)>100”。如果輸入條件規(guī)定了輸入值的集合或是規(guī)定了“必須如何”的條件,則可確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。例如,輸入值是日期類型的數(shù)據(jù),那么有效等價(jià)類是:日期類型的數(shù)據(jù);無(wú)效等價(jià)類是:非日期類型的數(shù)據(jù)。如果輸入條件是布爾表達(dá)式,則可以分為一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。例如,要求密碼非空,則有效等價(jià)類為非空密碼,無(wú)效等價(jià)類為空密碼。33在劃分等價(jià)類時(shí),有一些可供遵循的原則。如果輸入條件是一組值,且程序?qū)Σ煌闹涤胁煌奶幚矸绞?,則每個(gè)允許的輸入值對(duì)應(yīng)一個(gè)有效等價(jià)類,所有不允許的輸入值的集合為一個(gè)無(wú)效等價(jià)類。例如,輸入條件“職稱”的值是初級(jí)、中級(jí)或高級(jí),那么有效等價(jià)類應(yīng)該有3個(gè),即初級(jí),中級(jí),高級(jí),無(wú)效等價(jià)類有一個(gè),即其他任何職稱。如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,則可以劃分出一個(gè)有效的等價(jià)類(符合規(guī)則)和若干個(gè)無(wú)效的等價(jià)類(從不同的角度違反規(guī)則)。例如,在Pascal語(yǔ)言中對(duì)變量標(biāo)識(shí)符規(guī)定為“以字母為開頭的....串”,那么其有效等價(jià)類是“以字母開頭的串”,而“以非字母開頭的串”為其中的一個(gè)無(wú)效等價(jià)類。如已劃分的等價(jià)類各元素在程序中的處理方式不同,則應(yīng)將此等價(jià)類進(jìn)一步劃分成更小的等價(jià)類,如最終用戶與系統(tǒng)交互的提示。34劃分好等價(jià)類后,就可以設(shè)計(jì)測(cè)試用例了。設(shè)計(jì)測(cè)試用例的步驟可以歸結(jié)為以下3步。對(duì)每個(gè)輸入和外部條件進(jìn)行等價(jià)類劃分,畫出等價(jià)類表,并為每個(gè)等價(jià)類進(jìn)行編號(hào)。設(shè)計(jì)一個(gè)測(cè)試用例,使其盡可能多地覆蓋有效等價(jià)類,重復(fù)這一步,直到所有的有效等價(jià)類被覆蓋。為每一個(gè)無(wú)效等價(jià)類設(shè)計(jì)一個(gè)測(cè)試用例。35邊界值分析法人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)中得知,大量的錯(cuò)誤往往發(fā)生在輸入和輸出范圍的邊界上,而不是范圍的內(nèi)部。因此,針對(duì)邊界情況設(shè)計(jì)測(cè)試用例,能夠更有效的發(fā)現(xiàn)錯(cuò)誤。邊界值分析法是一種補(bǔ)充等價(jià)類劃分法的黑盒測(cè)試方法,它不是選擇等價(jià)類中的任意元素,而是選擇等價(jià)類邊界的測(cè)試用例。實(shí)踐證明,這些測(cè)試用例往往能取得很好的測(cè)試效果。邊界值分析法不僅重視輸入范圍邊界,也從輸出范圍中導(dǎo)出測(cè)試用例。通常情況下,軟件測(cè)試所包含的邊界條件有以下幾種類型:數(shù)字、字符、位置、質(zhì)量、大小、速度、方位、尺寸、空間等;對(duì)應(yīng)的邊界值應(yīng)該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最長(zhǎng)、空/滿等情況。36用邊界值分析法設(shè)計(jì)測(cè)試用例時(shí)應(yīng)當(dāng)遵守幾條原則:如果輸入條件規(guī)定了取值范圍,應(yīng)以該范圍的邊界內(nèi)及剛剛超范圍的邊界外的值作為測(cè)試用例。如以a和b作為輸入條件,測(cè)試用例應(yīng)當(dāng)包括a和b,以及略大于a和略小于b的值;若規(guī)定了值的個(gè)數(shù),應(yīng)分別以最大、最小個(gè)數(shù)和稍小于最小和稍大于最大個(gè)數(shù)作為測(cè)試用例。例如,一個(gè)輸入文件有1-300個(gè)記錄,設(shè)計(jì)測(cè)試用例時(shí)則可以分別設(shè)計(jì)有1個(gè)記錄、300個(gè)記錄以及0個(gè)記錄和301個(gè)記錄的輸入文件;針對(duì)每個(gè)輸出條件,也使用上面的兩條原則;如果程序規(guī)格說(shuō)明書中提到的輸入或輸出范圍是有序的集合,如順序文件、表格等,應(yīng)注意選取有序集的第一個(gè)和最后一個(gè)元素作為測(cè)試用例;分析規(guī)格說(shuō)明,找出其他的可能邊界條件。3711.5.3錯(cuò)誤推測(cè)法錯(cuò)誤推測(cè)法在很大程度上靠直覺(jué)和經(jīng)驗(yàn)進(jìn)行。它的基本想法是列舉出程序中可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,并且根據(jù)它們選擇測(cè)試方案。例如,輸入數(shù)據(jù)為零或輸出數(shù)據(jù)為零往往容易發(fā)生錯(cuò)誤;如果輸入或輸出的數(shù)目允許變化(如被檢索的或生成的表的項(xiàng)數(shù)),則輸入或輸出的數(shù)目為0和1的情況(如表為空或只有一項(xiàng))是容易出錯(cuò)的情況。還應(yīng)該仔細(xì)分析程序規(guī)格說(shuō)明書,注意找出其中遺漏或省略的部分,以便設(shè)計(jì)相應(yīng)的測(cè)試方案,檢測(cè)程序員對(duì)這些部分的處理是否正確。3811.5.4因果圖法等價(jià)類劃分法和邊界值分析法都主要考慮的是輸入條件,而沒(méi)有考慮輸入條件的各種組合以及各個(gè)輸入條件之間的相互制約關(guān)系。然而,如果在測(cè)試時(shí)考慮到輸入條件的所有組合方式,可能其本身非常大甚至是個(gè)天文數(shù)字。因此,必須考慮描述多種條件的組合,相應(yīng)的產(chǎn)生多個(gè)動(dòng)作的形式來(lái)考慮設(shè)計(jì)測(cè)試用例。這就需要利用因果圖法。因果圖法是一種黑盒測(cè)試方法,它從自然語(yǔ)言書寫的程序規(guī)格說(shuō)明書中尋找因果關(guān)系,即輸入條件與輸出和程序狀態(tài)的改變,通過(guò)因果圖產(chǎn)生判定表。它能夠幫助人們按照一定的步驟高效的選擇測(cè)試用例,同時(shí)還能指出程序規(guī)格說(shuō)明書中存在的問(wèn)題。3911.5.4因果圖法在因果圖中,用C表示原因,E表示結(jié)果,各節(jié)點(diǎn)表示狀態(tài),取值0表示某狀態(tài)不出現(xiàn),取值1表示某狀態(tài)出現(xiàn)。因果圖有四種關(guān)系符號(hào),如圖所示。4011.5.4因果圖法恒等:若原因出現(xiàn)則結(jié)果出現(xiàn),原因不出現(xiàn)則結(jié)果不出現(xiàn)。非:原因出現(xiàn)則結(jié)果不出現(xiàn),原因不出現(xiàn)則結(jié)果出現(xiàn)?;颍簬讉€(gè)原因中有一個(gè)出現(xiàn)則結(jié)果出現(xiàn),所有原因都不出現(xiàn)則結(jié)果不出現(xiàn)。與:幾個(gè)原因都出現(xiàn)則結(jié)果出現(xiàn),有一個(gè)原因不出現(xiàn)則結(jié)果不出現(xiàn)4111.5.4因果圖法為了表示原因與原因之間,結(jié)果與結(jié)果之間可能存在的約束關(guān)系,在因果圖中可以附加一些表示約束的符號(hào):E(互斥):原因a和b不同時(shí)成立,最多有一個(gè)成立。I(包含):原因a和b至少有一個(gè)必須成立。O(唯一):原因a和b必須有且僅有一個(gè)成立。R(要求):表示a出現(xiàn)時(shí),b也必須出現(xiàn)。M(強(qiáng)制):表示a是1時(shí),b必須為0。4211.5.4因果圖法4311.5.4因果圖法因果圖法設(shè)計(jì)測(cè)試用例的步驟如下:分析程序規(guī)格說(shuō)明書的描述中,哪些是原因,哪些是結(jié)果,原因常常是輸入條件或輸入條件的等價(jià)類,而結(jié)果常常是輸出條件;分析程序規(guī)格說(shuō)明書中描述的語(yǔ)義內(nèi)容,并將其表示成連接各個(gè)原因與各個(gè)結(jié)果的因果圖;由于語(yǔ)法或環(huán)境的限制,有些原因和結(jié)果的組合情況是不可能出現(xiàn)的,為表明這些特定的情況,在因果圖上使用若干特殊的符號(hào)標(biāo)明約束條件;把因果圖轉(zhuǎn)化為決策表;為決策表中每一列表示的情況設(shè)計(jì)測(cè)試用例。4411.5.5決策表法在一些數(shù)據(jù)處理問(wèn)題中,某些操作是否實(shí)施依賴于多個(gè)邏輯條件的取值。在這些邏輯條件取值的組合所構(gòu)成的多種情況下,分別執(zhí)行不同的操作。處理這類問(wèn)題的一個(gè)非常有力的工具就是決策表。決策表(也稱判定表)是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況的工具,可以把復(fù)雜邏輯關(guān)系和多種條件組合的情況表達(dá)的比較明確。決策表通常由4部分組成,如圖所示45條件樁:列出問(wèn)題的所有條件。條件項(xiàng):列出所列條件下的取值,在所有可能情況下的真假值。動(dòng)作樁:列出問(wèn)題規(guī)定可能采取的動(dòng)作。動(dòng)作項(xiàng):列出在條件項(xiàng)的各種取值下應(yīng)采取的動(dòng)作。11.5.5決策表法決策表的建立應(yīng)當(dāng)根據(jù)軟件規(guī)格說(shuō)明書,分為以下幾個(gè)步驟:確定規(guī)則個(gè)數(shù);列出所有條件樁和動(dòng)作樁;填入條件項(xiàng);填入動(dòng)作項(xiàng),制定初始決策表;簡(jiǎn)化,合并相似規(guī)則或者相同動(dòng)作。在簡(jiǎn)化并得到最終決策表后,只要選擇適當(dāng)?shù)妮斎?,使決策表每一列的輸入條件得到滿足即可生成測(cè)試用例。4611.5.6場(chǎng)景法現(xiàn)在軟件很多都是用事件觸發(fā)來(lái)控制流程,事件觸發(fā)時(shí)的情形變形成場(chǎng)景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成了事件流。這種在軟件設(shè)計(jì)中的思想也可以應(yīng)用到軟件測(cè)試中,可生動(dòng)地描繪出事件觸發(fā)時(shí)的情形,有利于測(cè)試者執(zhí)行測(cè)試用例,同時(shí)測(cè)試用例也更容易得到理解和執(zhí)行。用例場(chǎng)景是通過(guò)描述流經(jīng)用例的路徑來(lái)確定的過(guò)程,這個(gè)流經(jīng)過(guò)程要從用例開始到結(jié)束遍歷其中所有的基本流和備選流?;玖鳎翰捎煤谥本€表示,是經(jīng)過(guò)用例的最簡(jiǎn)單路徑,表示無(wú)任何差錯(cuò),程序從開始執(zhí)行到結(jié)束;備選流:采用不同顏色表示,一個(gè)備選流可以從基本流開始,在某個(gè)特定條件下執(zhí)行,然后重新加入基本流中,也可以起源于另一個(gè)備選流,或終止用例,不再加入到基本流中。4711.5.6場(chǎng)景法應(yīng)用場(chǎng)景法進(jìn)行黑盒測(cè)試的步驟如下:根據(jù)規(guī)格說(shuō)明,描述出程序的基本流和各個(gè)備選流;根據(jù)基本流和各個(gè)備選流生成不同的場(chǎng)景;對(duì)每一個(gè)場(chǎng)景生成相應(yīng)的測(cè)試用例;對(duì)生成的所有測(cè)試用例進(jìn)行復(fù)審,去掉多余的測(cè)試用例,對(duì)每一個(gè)測(cè)試用例確定測(cè)試數(shù)據(jù)。4811.5.7黑盒測(cè)試選擇此外,黑盒測(cè)試還有正交實(shí)驗(yàn)設(shè)計(jì)法等方法。黑盒測(cè)試的每種測(cè)試方法都有各自的優(yōu)缺點(diǎn),需要測(cè)試人員根據(jù)實(shí)際項(xiàng)目特點(diǎn)和需要選擇合適的方法設(shè)計(jì)測(cè)試用例。以下是選擇方法的幾條經(jīng)驗(yàn):在任何情況下都必須選擇邊界值分析方法。經(jīng)驗(yàn)表明用這種方法設(shè)計(jì)出的測(cè)試用例發(fā)現(xiàn)程序錯(cuò)誤的能力最強(qiáng);必要時(shí)用等價(jià)類劃分法補(bǔ)充一些測(cè)試用例;用錯(cuò)誤推測(cè)法再追加一些測(cè)試用例;如果程序的功能說(shuō)明中含有輸入條件的組合情況,則可選用因果圖法和決策表法。選擇合適的測(cè)試方法能夠極大地提高黑盒測(cè)試的效率和效果。除了上述的幾條經(jīng)驗(yàn),還需要測(cè)試人員積累實(shí)際的測(cè)試經(jīng)驗(yàn),做出合適的選擇。4911.6白盒測(cè)試代碼檢查法靜態(tài)結(jié)構(gòu)分析法程序插樁技術(shù)邏輯覆蓋法基本路徑法白盒測(cè)試方法選擇11.6白盒測(cè)試白盒測(cè)試,有時(shí)也稱為玻璃盒測(cè)試,它關(guān)注軟件產(chǎn)品的內(nèi)部細(xì)節(jié)和邏輯結(jié)構(gòu),即把被測(cè)的程序看成是一個(gè)透明的盒子。白盒測(cè)試?yán)脴?gòu)件層設(shè)計(jì)的一部分而描述的控制結(jié)構(gòu)來(lái)生成測(cè)試用例。白盒測(cè)試需要對(duì)系統(tǒng)內(nèi)部結(jié)構(gòu)和工作原理有一個(gè)清楚的了解。白盒測(cè)試也有多種技術(shù),比如:代碼檢查法、邏輯覆蓋測(cè)試、基本路徑測(cè)試等。5111.6.1代碼檢查法代碼檢查法包括桌面檢查、代碼審查和走查等。它主要檢查代碼和設(shè)計(jì)的一致性,代碼對(duì)標(biāo)準(zhǔn)的遵循,可讀性,代碼邏輯表達(dá)正確性,代碼結(jié)構(gòu)合理性等方面;發(fā)現(xiàn)程序中不安全、不明確和模糊部分,找出程序中不可移植部分;發(fā)現(xiàn)違背程序編寫風(fēng)格問(wèn)題。其中包括變量檢查、命名和類型審查、程序邏輯審查、程序語(yǔ)法檢查和程序結(jié)構(gòu)檢查等內(nèi)容。5211.6.1代碼檢查法代碼檢查應(yīng)該在編譯和動(dòng)態(tài)測(cè)試之前進(jìn)行。在檢查前,應(yīng)準(zhǔn)備好需求描述文檔、程序設(shè)計(jì)文檔、程序的源代碼清單、代碼編寫標(biāo)準(zhǔn)和代碼錯(cuò)誤檢查表等。在實(shí)際使用中,代碼檢查法能快速找到缺陷,發(fā)現(xiàn)30%到70%的邏輯設(shè)計(jì)和編碼缺陷,而且代碼檢查法看到的是問(wèn)題本身而非征兆。但是代碼檢查法非常耗費(fèi)時(shí)間,并且需要經(jīng)驗(yàn)和知識(shí)的積累。代碼檢查法可以使用測(cè)試軟件進(jìn)行自動(dòng)化測(cè)試,以提高測(cè)試效率,降低勞動(dòng)強(qiáng)度;或者使用人工進(jìn)行測(cè)試,以充分發(fā)揮人力的邏輯思維能力。5311.6.1代碼檢查法如圖所示,是一段未經(jīng)過(guò)桌面檢查的源代碼,由集成開發(fā)環(huán)境進(jìn)行了初步的檢查,并指出了基本的拼寫、語(yǔ)法、標(biāo)點(diǎn)錯(cuò)誤。第28行:返回?cái)?shù)據(jù)類型應(yīng)該為int,寫成了Int;第33行:缺少標(biāo)點(diǎn)符號(hào)“;”;第37行:返回的關(guān)鍵字“return”拼寫錯(cuò)誤;第41行:關(guān)鍵字“this”,寫成了“that”。5411.6.2靜態(tài)結(jié)構(gòu)分析法靜態(tài)結(jié)構(gòu)分析主要是以圖的形式表現(xiàn)程序的內(nèi)部結(jié)構(gòu),供測(cè)試人員對(duì)程序結(jié)構(gòu)進(jìn)行分析。程序結(jié)構(gòu)形式是白盒測(cè)試的主要依據(jù)。研究表明,程序員38%的時(shí)間花費(fèi)在理解軟件系統(tǒng)上,因?yàn)榇a以文本格式被寫入多重文件中,這是很難閱讀理解的,需要其他一些東西來(lái)幫助人們閱讀理解,如各種圖表等,而靜態(tài)結(jié)構(gòu)分析滿足了這樣的需求。5511.6.2靜態(tài)結(jié)構(gòu)分析法靜態(tài)結(jié)構(gòu)分析是一種對(duì)代碼機(jī)械性的、程式化的特性進(jìn)行分析的方法。在靜態(tài)結(jié)構(gòu)分析中,測(cè)試者通過(guò)使用測(cè)試工具分析程序源代碼的系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)接口、內(nèi)部控制邏輯等內(nèi)部結(jié)構(gòu),生成函數(shù)調(diào)用關(guān)系圖、模塊控制流圖、內(nèi)部文件調(diào)用關(guān)系圖、子程序表、宏和函數(shù)參數(shù)表等各類圖形圖表,可以清晰地標(biāo)識(shí)整個(gè)軟件系統(tǒng)的組成結(jié)構(gòu),使其便于閱讀和理解,然后可以通過(guò)分析這些圖表,檢查軟件有沒(méi)有存在缺陷或錯(cuò)誤。包括控制流分析、數(shù)據(jù)流分析、信息流分析、接口分析、表達(dá)式分析等。5611.6.3程序插樁技術(shù)在調(diào)試程序時(shí),常常需要插入一些打印語(yǔ)句,進(jìn)而在執(zhí)行程序時(shí)能夠打印有關(guān)信息,進(jìn)一步通過(guò)這些信息來(lái)了解程序執(zhí)行時(shí)的一些動(dòng)態(tài)特性,比如程序的執(zhí)行路徑或特定變量在特定時(shí)刻的取值。這一思想發(fā)展出來(lái)的程序插樁技術(shù)在軟件動(dòng)態(tài)測(cè)試中,作為一種基本的測(cè)試手段,有著廣泛的應(yīng)用。簡(jiǎn)單來(lái)說(shuō),程序插樁技術(shù)是借助往被測(cè)程序中插入操作來(lái)實(shí)現(xiàn)測(cè)試目的的方法,即向源程序中添加一些語(yǔ)句,實(shí)現(xiàn)對(duì)程序語(yǔ)句的執(zhí)行、變量的變化等情況進(jìn)行檢查。例如想要了解一個(gè)程序在某次運(yùn)行中所有可執(zhí)行語(yǔ)句被覆蓋的情況,或是每個(gè)語(yǔ)句的實(shí)際執(zhí)行次數(shù),就可以利用程序插樁技術(shù)。5711.6.4邏輯覆蓋法邏輯覆蓋法以程序內(nèi)在的邏輯結(jié)構(gòu)為基礎(chǔ),根據(jù)程序的流程圖設(shè)計(jì)測(cè)試用例。根據(jù)覆蓋的目標(biāo)不同,又可分為語(yǔ)句覆蓋、分支覆蓋、條件覆蓋、分支—條件覆蓋、條件組合覆蓋和路徑覆蓋。5811.6.5基本路徑法基本路徑測(cè)試法是在程序控制流圖的基礎(chǔ)上,通過(guò)分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行的路徑集合,從而設(shè)計(jì)測(cè)試用例的方法。在基本路徑測(cè)試中,設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中程序的每條可執(zhí)行語(yǔ)句至少執(zhí)行一次。在基本路徑法中,需要使用程序的控制流圖進(jìn)行可視化表達(dá)。程序的控制流圖是描述程序控制流的一種圖示方法。其中,圓圈稱為控制流圖的一個(gè)結(jié)點(diǎn),表示一個(gè)或多個(gè)無(wú)分支的語(yǔ)句或源程序語(yǔ)句;箭頭稱為邊或連接,代表控制流。在將程序流程圖簡(jiǎn)化成控制流圖時(shí),應(yīng)注意:在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個(gè)匯聚結(jié)點(diǎn);邊和結(jié)點(diǎn)圈定的區(qū)域叫做區(qū)域,當(dāng)對(duì)區(qū)域計(jì)數(shù)時(shí),圖形外的區(qū)域也應(yīng)記為一個(gè)區(qū)域。5911.6.5基本路徑法控制流圖表示60環(huán)路復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測(cè)度的軟件度量,將該度量用于計(jì)算程序基本的獨(dú)立路徑數(shù)目,為確保所有語(yǔ)句至少執(zhí)行一次的測(cè)試數(shù)量的上界。獨(dú)立路徑必須包含一條在定義前不曾用到的邊。環(huán)路復(fù)雜度有3種計(jì)算方式:1.流圖中區(qū)域的數(shù)量對(duì)應(yīng)于環(huán)路復(fù)雜度。2.給定流圖G的環(huán)路復(fù)雜度V(G),定義為V(G)=E–N+2,E是流圖中邊的數(shù)量,N是結(jié)點(diǎn)的數(shù)量。3.給定流圖G的環(huán)路復(fù)雜度V(G),定義為V(G)=P+1,其中P是流圖中判定結(jié)點(diǎn)的數(shù)量11.6.5基本路徑法基本路徑測(cè)試法適用于模塊的詳細(xì)設(shè)計(jì)及源程序。其步驟如下:以詳細(xì)設(shè)計(jì)或源代碼為基礎(chǔ),導(dǎo)出程序的控制流圖;計(jì)算得出控制流圖G的環(huán)路復(fù)雜度V(G);確定線性無(wú)關(guān)的路徑的基本集;生成測(cè)試用例,確?;韭窂郊忻織l路徑的執(zhí)行。6111.6.6白盒測(cè)試方法選擇此外,白盒測(cè)試還有靜態(tài)質(zhì)量度量、域測(cè)試、Z路徑覆蓋等方法,本書不再展開敘述。白盒測(cè)試的每種測(cè)試方法都有各自的優(yōu)點(diǎn)和不足,需要測(cè)試人員根據(jù)實(shí)際軟件特點(diǎn)、實(shí)際測(cè)試目標(biāo)和測(cè)試階段選擇合適的方法設(shè)計(jì)測(cè)試用例,這樣能有效地發(fā)現(xiàn)軟件錯(cuò)誤,提高測(cè)試效率和測(cè)試覆蓋率。以下是選擇方法的幾條經(jīng)驗(yàn):在測(cè)試中,可采取先靜態(tài)再動(dòng)態(tài)的組合方式,先進(jìn)行代碼檢查和靜態(tài)結(jié)構(gòu)分析,再進(jìn)行覆蓋測(cè)試;利用靜態(tài)分析的結(jié)果作為引導(dǎo),通過(guò)代碼檢查和動(dòng)態(tài)測(cè)試的方式對(duì)靜態(tài)分析的結(jié)果做進(jìn)一步確認(rèn);覆蓋測(cè)試是白盒測(cè)試的重點(diǎn),一般可使用基本路徑測(cè)試法達(dá)到語(yǔ)句覆蓋標(biāo)準(zhǔn),對(duì)于軟件的重點(diǎn)模塊,應(yīng)使用多種覆蓋標(biāo)準(zhǔn)衡量測(cè)試的覆蓋率;在不同的測(cè)試階段測(cè)試重點(diǎn)不同,在單元測(cè)試階段,以代碼檢查、覆蓋測(cè)試為主,在集成測(cè)試階段,需要增加靜態(tài)結(jié)構(gòu)分析等,在系統(tǒng)測(cè)試階段,應(yīng)根據(jù)黑盒測(cè)試的結(jié)果,采用相應(yīng)的白盒測(cè)試方法。6211.6白盒測(cè)試與黑盒測(cè)試白盒測(cè)試和黑盒測(cè)試是兩類軟件測(cè)試方法,傳統(tǒng)的軟件測(cè)試活動(dòng)基本上都可以劃分到這兩類測(cè)試方法中。下表給出了兩種方法的一個(gè)基本比較。63
白盒測(cè)試黑盒測(cè)試考察程序邏輯結(jié)構(gòu)不涉及程序結(jié)構(gòu)用程序結(jié)構(gòu)信息生成測(cè)試用例用軟件規(guī)格說(shuō)明書生成測(cè)試用例主要適用于單元測(cè)試和集成測(cè)試可適用于從單元測(cè)試到系統(tǒng)驗(yàn)收測(cè)試對(duì)所有邏輯路徑進(jìn)行測(cè)試某些代碼段得不到測(cè)試11.6白盒測(cè)試與黑盒測(cè)試
白盒測(cè)試和黑盒測(cè)試各有側(cè)重點(diǎn),不能相互取代,在實(shí)際測(cè)試活動(dòng)中,這兩種測(cè)試方法不是截然分開的。通常在白盒測(cè)試中交叉著黑盒測(cè)試,黑盒測(cè)試中交叉著白盒測(cè)試。相對(duì)來(lái)說(shuō),白盒測(cè)試比黑盒測(cè)試成本要高得多,它需要測(cè)試在可以被計(jì)劃前產(chǎn)生源代碼,并且在確定合適數(shù)據(jù)和決定軟件是否正確方面需要花費(fèi)更多的工作量。
在實(shí)際測(cè)試活動(dòng)中,應(yīng)當(dāng)盡可能使用可獲得的軟件規(guī)格從黑盒測(cè)試方法開始測(cè)試計(jì)劃,白盒測(cè)試計(jì)劃應(yīng)當(dāng)在黑盒測(cè)試計(jì)劃已成功通過(guò)之后再開始,使用已經(jīng)產(chǎn)生的流程圖和路徑判定。路徑應(yīng)當(dāng)根據(jù)黑盒測(cè)試計(jì)劃進(jìn)行檢查并且決定和使用額外需要的測(cè)試。6411.6灰盒測(cè)試灰盒測(cè)試是介于白盒測(cè)試和黑盒測(cè)試之間的測(cè)試方法,它關(guān)注輸出對(duì)于輸入的正確性,同時(shí)也關(guān)注內(nèi)部表現(xiàn),但是不像白盒測(cè)試那樣詳細(xì)、完整,只是通過(guò)一些表征性的現(xiàn)象、事件、標(biāo)志來(lái)判斷內(nèi)部的運(yùn)行狀態(tài)。有時(shí)候輸出是正確的,但是程序內(nèi)部已經(jīng)是錯(cuò)誤的,這種情況非常多,如果每次都通過(guò)白盒測(cè)試來(lái)操作,效率會(huì)很低,因此可采取灰盒測(cè)試這種方法。灰盒測(cè)試結(jié)合了白盒測(cè)試和黑盒測(cè)試的要素,考慮了用戶端、特定的系統(tǒng)知識(shí)和操作環(huán)境。它在系統(tǒng)組件的協(xié)同性環(huán)境中評(píng)價(jià)應(yīng)用軟件的設(shè)計(jì)。可以認(rèn)為,集成測(cè)試就是一類灰盒測(cè)試。關(guān)于灰盒測(cè)試本書不再展開敘述。6511.7軟件測(cè)試的一般步驟11.7軟件測(cè)試的一般步驟
除非是測(cè)試一個(gè)小程序,否則一開始就把整個(gè)系統(tǒng)作為一個(gè)單獨(dú)實(shí)體來(lái)測(cè)試是不現(xiàn)實(shí)的。與開發(fā)過(guò)程類似,測(cè)試過(guò)程也必須分步驟進(jìn)行后一個(gè)步驟再邏輯上是前一個(gè)步驟的繼續(xù)。
從過(guò)程的觀點(diǎn)考慮測(cè)試,在軟件工程環(huán)境中的測(cè)試過(guò)程,實(shí)際上是順序進(jìn)行的4個(gè)步驟的序列。最開始,著重測(cè)試每個(gè)單獨(dú)的模塊,以確保它作為一個(gè)單元來(lái)說(shuō)功能是正確的,這種測(cè)試稱為單元測(cè)試。單元測(cè)試大量使用白盒測(cè)試技術(shù),檢查模塊控制結(jié)構(gòu)中的特定路徑,以確保做到完全覆蓋并發(fā)現(xiàn)最大數(shù)量的錯(cuò)誤。6711.7軟件測(cè)試的一般步驟
接下來(lái),必須把模塊裝配(即集成)在一起形成完整的軟件包,在裝配的同時(shí)進(jìn)行測(cè)試,因此稱為集成測(cè)試。集成測(cè)試同時(shí)解決程序驗(yàn)證和程序構(gòu)造這兩個(gè)問(wèn)題。在集成過(guò)程中最常用的是黑盒測(cè)試用例設(shè)計(jì)技術(shù)。當(dāng)然,為了保證覆蓋主要的控制路徑,也可能使用一定數(shù)量的白盒測(cè)試。在軟件集成完成之后,還需要進(jìn)行一系列高級(jí)測(cè)試。必須測(cè)試在需求分析階段確定下來(lái)的確認(rèn)標(biāo)準(zhǔn),確認(rèn)測(cè)試是對(duì)軟件滿足所有功能的、行為的和性能需求的最終保證。在確認(rèn)測(cè)試過(guò)程中僅使用黑盒測(cè)試技術(shù)。
軟件一旦經(jīng)過(guò)確認(rèn)之后,就必須和其他系統(tǒng)元素(如硬件、人員、數(shù)據(jù)庫(kù))結(jié)合在一起。系統(tǒng)測(cè)試的任務(wù)是,驗(yàn)證所有系統(tǒng)元素都能正常配合,從而可以完成整個(gè)系統(tǒng)的功能,并能達(dá)到預(yù)期的性能。驗(yàn)收測(cè)試以用戶測(cè)試為主,分為a測(cè)試和b測(cè)試。a測(cè)試指的是由用戶、測(cè)試人員、開發(fā)人員等共同參與的內(nèi)部測(cè)試,而b測(cè)試指的是完全交給最終用戶的測(cè)試。6811.8單元測(cè)試單元測(cè)試概述單元測(cè)試內(nèi)容單元測(cè)試方法11.8.1單元測(cè)試概述單元測(cè)試是開發(fā)者通過(guò)編寫代碼檢驗(yàn)被測(cè)代碼的某單元功能是否正確而進(jìn)行的測(cè)試。通常而言,一個(gè)單元測(cè)試是用于判斷某個(gè)特定條件(或者場(chǎng)景)下某個(gè)特定函數(shù)的行為。例如,將一個(gè)很大的值放入一個(gè)有序表中,然后確認(rèn)該值是否出現(xiàn)在表的尾部,或者從字符串中刪除匹配某種模式的字符,然后確認(rèn)字符串確實(shí)不再包含這些字符。單元測(cè)試與其他測(cè)試不同,可以看作是編碼工作的一部分,是由程序員自己完成的,最終受益的也是程序員自己。可以這么說(shuō),程序員有責(zé)任編寫功能代碼,同時(shí)也就有責(zé)任為自己的代碼進(jìn)行單元測(cè)試。執(zhí)行單元測(cè)試,就是為了證明這段代碼的行為與我們期望的一致。經(jīng)過(guò)了單元測(cè)試的代碼才是已完成的代碼,提交產(chǎn)品代碼時(shí)也要同時(shí)提交測(cè)試代碼。單元測(cè)試是軟件測(cè)試的基礎(chǔ),其效果會(huì)直接影響到軟件后期的測(cè)試,最終在很大程度上影響軟件質(zhì)量。做好單元測(cè)試能夠在接下來(lái)的集成測(cè)試等活動(dòng)中節(jié)省很多時(shí)間;發(fā)現(xiàn)很多集成測(cè)試和系統(tǒng)測(cè)試無(wú)法發(fā)現(xiàn)的深層次問(wèn)題;降低定位問(wèn)題和解決問(wèn)題的成本;從整體上提高軟件質(zhì)量。7011.8.2單元測(cè)試內(nèi)容單元測(cè)試側(cè)重于模塊的內(nèi)部處理邏輯和數(shù)據(jù)結(jié)構(gòu),利用構(gòu)件級(jí)設(shè)計(jì)描述作為指南,測(cè)試重要的控制路徑以發(fā)現(xiàn)模塊內(nèi)的錯(cuò)誤。測(cè)試的相對(duì)復(fù)雜度和這類測(cè)試發(fā)現(xiàn)的錯(cuò)誤受到單元測(cè)試約束范圍的限制,測(cè)試可以對(duì)多個(gè)構(gòu)件并行執(zhí)行。模塊………………………………..模塊接口局部數(shù)據(jù)結(jié)構(gòu)獨(dú)立路徑錯(cuò)誤處理邊界條件測(cè)試用例單元測(cè)試內(nèi)容11.8.3單元測(cè)試方法一般情況下,單元測(cè)試在代碼編寫之后,就可以進(jìn)行。測(cè)試用例設(shè)計(jì)應(yīng)與復(fù)審工作結(jié)合,根據(jù)設(shè)計(jì)規(guī)約選取數(shù)據(jù),增大發(fā)現(xiàn)各類錯(cuò)誤的可能。在進(jìn)行單元測(cè)試時(shí),被測(cè)試的單元本身不是獨(dú)立的程序,需要為其開發(fā)驅(qū)動(dòng)模塊和樁模塊。驅(qū)動(dòng)模塊是用來(lái)模擬待測(cè)試模塊的上級(jí)模塊。驅(qū)動(dòng)模塊在集成測(cè)試中接受測(cè)試數(shù)據(jù),將相關(guān)的數(shù)據(jù)傳送給待測(cè)模塊,啟動(dòng)待測(cè)模塊,并打印出相應(yīng)的結(jié)果;樁模塊也稱為存根程序,用以模擬待測(cè)模塊工作過(guò)程中所調(diào)用的模塊。樁模塊由待測(cè)模塊調(diào)用,它們一般只進(jìn)行很少的數(shù)據(jù)處理,例如打印入口和返回,以便于檢驗(yàn)待測(cè)模塊與下級(jí)模塊的接口。驅(qū)動(dòng)模塊和樁模塊都是額外的開銷,屬于必須開發(fā)但是又不能和最終軟件一起提交的部分。如果驅(qū)動(dòng)模塊和樁模塊相對(duì)簡(jiǎn)單,則額外開銷相對(duì)較低;在比較復(fù)雜的情況下,完整的測(cè)試需要推遲到集成測(cè)試階段才能完成。7211.9集成測(cè)試11.9.1集成測(cè)試概述集成是指把多個(gè)單元組合起來(lái)形成更大的單元。集成測(cè)試是在假定各個(gè)軟件單元已經(jīng)通過(guò)了單元測(cè)試的前提下,檢查各個(gè)軟件單元之間的接口是否正確。集成測(cè)試是構(gòu)造軟件體系結(jié)構(gòu)的系統(tǒng)化技術(shù),同時(shí)也是進(jìn)行一些旨在發(fā)現(xiàn)與接口相關(guān)的錯(cuò)誤的測(cè)試。其目標(biāo)是利用已通過(guò)單元測(cè)試的構(gòu)件建立設(shè)計(jì)中描述的程序結(jié)構(gòu)。在集成測(cè)試之前,單元測(cè)試應(yīng)該已經(jīng)完成,集成測(cè)試中所使用的對(duì)象應(yīng)該是已經(jīng)經(jīng)過(guò)單元測(cè)試的軟件單元。這一點(diǎn)很重要,因?yàn)槿绻唤?jīng)過(guò)單元測(cè)試,那么集成測(cè)試的效果將會(huì)受到很大程度的影響,并且會(huì)大幅增加軟件單元代碼糾錯(cuò)的代價(jià)。單元測(cè)試和集成測(cè)試所關(guān)注的范圍不同,因此它們發(fā)現(xiàn)問(wèn)題的集合上包含不相交的區(qū)域,因此二者之間不能相互替代。7411.9.2集成測(cè)試分析集成測(cè)試分析可以從以下方面進(jìn)行:體系結(jié)構(gòu)分析:可以首先從需求角度出發(fā),劃分出系統(tǒng)實(shí)現(xiàn)上的結(jié)構(gòu)層次;其次需要?jiǎng)澐殖鰳?gòu)件之間的依賴關(guān)系圖,通過(guò)分析該圖,劃分出集成測(cè)試的粒度。模塊分析:是集成測(cè)試分析最關(guān)鍵的活動(dòng)之一,模塊劃分的好壞會(huì)直接影響集成測(cè)試的工作量、進(jìn)度以及質(zhì)量接口分析:包括接口劃分,接口分類和接口數(shù)據(jù)分析。集成測(cè)試策略分析:主要根據(jù)被測(cè)試對(duì)象選擇合適的集成策略。7511.9集成測(cè)試1.非增量式集成測(cè)試通常存在進(jìn)行非增量式集成的傾向,即利用“一步到位”方式構(gòu)造程序。非增量式集成測(cè)試在對(duì)所有模塊分別進(jìn)行單元測(cè)試后,按程序結(jié)構(gòu)將各模塊連接起來(lái),再作為一個(gè)整體來(lái)測(cè)試,其結(jié)果往往混亂不堪。76ABCDGFEASBSCSDDABDDGDCFDCEDACSFSEDADSG程序結(jié)構(gòu)各個(gè)模塊的測(cè)試單元11.9集成測(cè)試2.增量式集成測(cè)試增量式集成測(cè)試中單元的集成是逐步實(shí)現(xiàn)的,集成測(cè)試也是逐步完成的。按照實(shí)施的不同次序,增量式集成測(cè)試可以分為自頂向下和自底向上兩種方式。(1)自頂向下增量式集成測(cè)試自頂向下增量式集成測(cè)試表示逐步集成和逐步測(cè)試是按結(jié)構(gòu)圖自上而下進(jìn)行的,即模塊集成順序是首先集成主控模塊,然后按照軟件控制層次接口向下進(jìn)行集成。從屬于主控模塊的模塊按照深度優(yōu)先策略或廣度優(yōu)先策略集成到結(jié)構(gòu)中去。深度優(yōu)先策略:首先集成在結(jié)構(gòu)中的一個(gè)主控路徑下的所有模塊,主控路徑的選擇是任意的,一般根據(jù)問(wèn)題的特性來(lái)確定;廣度優(yōu)先策略:首先沿著水平方向,把每一層中所有直接隸屬于上一層的模塊集成起來(lái),直至最底層。7711.9集成測(cè)試自頂向下的集成方式的測(cè)試步驟如下:以主模塊為被測(cè)模塊,主模塊的直接下屬模塊則用樁模塊代替。采用深度優(yōu)先或廣度優(yōu)先策略,用實(shí)際模塊替換相應(yīng)的樁模塊(每次僅替換一個(gè)或少量幾個(gè)樁模塊,視模塊接口的復(fù)雜程度而定),它們的直接下屬模塊則又用樁模塊代替,與已測(cè)試的模塊或子系統(tǒng)集成為新的子系統(tǒng)。對(duì)新形成的子系統(tǒng)進(jìn)行測(cè)試,發(fā)現(xiàn)和排除模塊集成過(guò)程中引起的錯(cuò)誤,并做回歸測(cè)試。若所有模塊都已集成到系統(tǒng)中,則結(jié)束集成,否則轉(zhuǎn)到步驟2)。7811.9集成測(cè)試79ASBSCSDABSCSDABCSDSFSEABCSDFEABCDSGFEABCDGFEABCSDSFE自頂向下增量式集成測(cè)試11.9集成測(cè)試(2)自底向上增量式集成測(cè)試自底向上增量式集成策略是從最底層的模塊開始,按結(jié)構(gòu)圖自下而上逐步進(jìn)行集成并逐步進(jìn)行測(cè)試工作。由于是從最底層開始集成,測(cè)試到較高層模塊時(shí),所需的下層模塊功能已經(jīng)具備,因此不需要再使用被調(diào)用模擬子模塊來(lái)輔助測(cè)試。因?yàn)槭亲缘紫蛏线M(jìn)行組裝,對(duì)于一個(gè)給定層次的模塊,它的所有下屬模塊已經(jīng)組裝并測(cè)試完成,所以不再需要樁模塊。測(cè)試步驟如下:1)為最底層模塊開發(fā)驅(qū)動(dòng)模塊,對(duì)最底層模塊進(jìn)行并行測(cè)試。2)用實(shí)際模塊替換驅(qū)動(dòng)模塊,與其已被測(cè)試過(guò)的直屬子模塊集成為一個(gè)子系統(tǒng)。3)為新形成的子系統(tǒng)開發(fā)驅(qū)動(dòng)模塊(若新形成的子系統(tǒng)對(duì)應(yīng)為主控模塊,則不必開發(fā)驅(qū)動(dòng)模塊),對(duì)該子系統(tǒng)進(jìn)行測(cè)試。4)若該子系統(tǒng)已對(duì)應(yīng)為主控模塊,即最高層模塊,則結(jié)束集成,否則轉(zhuǎn)到步驟2)。8011.9集成測(cè)試81DABDDGDCFDCEDACFEDADGABCDGFE自底向上增量式集成測(cè)試11.9集成測(cè)試三明治集成測(cè)試三明治集成測(cè)試是將自頂向下測(cè)試與自底向上測(cè)試兩種模式有機(jī)結(jié)合起來(lái),采用并行的自頂向下、自底向上集成方式形成的方法。三明治集成測(cè)試更重要的是采取持續(xù)集成的策略,軟件開發(fā)中各個(gè)模塊不是同時(shí)完成的,根據(jù)進(jìn)度將完成的模塊盡可能早地進(jìn)行集成,有助于盡早發(fā)現(xiàn)缺陷,避免集成階段大量缺陷涌現(xiàn)。同時(shí),自底向上集成時(shí),先期完成的模塊將是后期模塊的驅(qū)動(dòng)模塊,從而使后期模塊的單元測(cè)試和集成測(cè)試出現(xiàn)了部分交叉,不僅節(jié)省了測(cè)試代碼的編寫,也有利于提高工作效率。8211.10系統(tǒng)測(cè)試10.1系統(tǒng)測(cè)試概述系統(tǒng)測(cè)試的對(duì)象包括源程序、需求分析階段到詳細(xì)設(shè)計(jì)階段中的各技術(shù)文檔、管理文檔、提交給用戶的文檔、軟件所依賴的硬件、外設(shè)甚至包括某些數(shù)據(jù)、某些支持軟件及其接口等。隨著測(cè)試概念的發(fā)展,當(dāng)前系統(tǒng)測(cè)試已逐漸側(cè)重于驗(yàn)證系統(tǒng)是否符合需求規(guī)定的非功能指標(biāo)。其測(cè)試范圍可分為功能測(cè)試、性能測(cè)試、壓力測(cè)試、容量測(cè)試、安全性測(cè)試、圖形用戶界面測(cè)試、可用性測(cè)試、安裝測(cè)試、配置測(cè)試、異常測(cè)試、備份測(cè)試、健壯性測(cè)試、文檔測(cè)試、在線幫助測(cè)試、網(wǎng)絡(luò)測(cè)試、穩(wěn)定性測(cè)試等。8311.10系統(tǒng)測(cè)試11.10.2系統(tǒng)測(cè)試類型(1)功能測(cè)試功能測(cè)試是系統(tǒng)測(cè)試中最基本的測(cè)試,它不管軟件內(nèi)部是如何實(shí)現(xiàn)的,而只是根據(jù)需求規(guī)格說(shuō)明書和測(cè)試需求列表,驗(yàn)證產(chǎn)品的功能是否符合需求規(guī)格。(2)性能測(cè)試性能測(cè)試是用來(lái)測(cè)試軟件系統(tǒng)在實(shí)際的集成系統(tǒng)中運(yùn)行性能的。因?yàn)樵跓o(wú)論是單元測(cè)試,還是集成測(cè)試中,都沒(méi)有將系統(tǒng)作為一個(gè)整體放入實(shí)際環(huán)境中運(yùn)行,因此,只有在性能測(cè)試階段,才能夠真正看到系統(tǒng)的實(shí)際性能。對(duì)于實(shí)時(shí)系統(tǒng)和嵌入式系統(tǒng),提供符合功能需求但不符合性能需求的軟件是不能接受的。性能測(cè)試的目的是度量系統(tǒng)相對(duì)于預(yù)定義目標(biāo)的差距。需要的性能級(jí)別針對(duì)于實(shí)際的性能級(jí)別進(jìn)行比較,并把其中的差距文檔化。8411.10系統(tǒng)測(cè)試(3)安裝測(cè)試安裝測(cè)試用來(lái)確保軟件在正常情況和異常情況的不同條件下都不丟失數(shù)據(jù)或者功能,具體測(cè)試活動(dòng)包括首次安裝、升級(jí)、完整安裝、自定義安裝、卸載等。測(cè)試對(duì)象包括測(cè)試安裝代碼以及安裝手冊(cè)。安裝代碼提供安裝一些程序能夠運(yùn)行的基礎(chǔ)數(shù)據(jù),安裝手冊(cè)提供如何進(jìn)行安裝。(4)可用性測(cè)試所謂可用性測(cè)試,即是對(duì)軟件“可用性”進(jìn)行測(cè)試,檢驗(yàn)其是否達(dá)到可用性標(biāo)準(zhǔn)。目前的可用性測(cè)試方法超過(guò)20種,按照參與可用性測(cè)試的人員劃分,可以分為專家測(cè)試和用戶測(cè)試;按照測(cè)試所處于的軟件開發(fā)階段,可以將可用性測(cè)試劃分為形成性測(cè)試和總結(jié)性測(cè)試。形成性測(cè)試是指在軟件開發(fā)或改進(jìn)過(guò)程中,請(qǐng)用戶對(duì)產(chǎn)品或原型進(jìn)行測(cè)試,通過(guò)測(cè)試后收集的數(shù)據(jù)來(lái)改進(jìn)產(chǎn)品或設(shè)計(jì)直至達(dá)到所要求的可用性目標(biāo)。形成性測(cè)試的目標(biāo)是發(fā)現(xiàn)盡可能多的可用性問(wèn)題,通過(guò)修復(fù)可用性問(wèn)題實(shí)現(xiàn)軟件可用性的提高,總結(jié)性測(cè)試的目的是橫向測(cè)試多個(gè)版本或者多個(gè)產(chǎn)品,輸出測(cè)試數(shù)據(jù)進(jìn)行對(duì)比。8511.10系統(tǒng)測(cè)試(5)壓力測(cè)試壓力測(cè)試是一種基本的質(zhì)量保證行為,它是每個(gè)重要軟件測(cè)試工作的一部分。壓力測(cè)試的基本思路很簡(jiǎn)單:不是在常規(guī)條件下運(yùn)行手動(dòng)或自動(dòng)測(cè)試,而是長(zhǎng)時(shí)間或超大負(fù)荷地運(yùn)行測(cè)試軟件,來(lái)測(cè)試被測(cè)系統(tǒng)的性能、可靠性、穩(wěn)定性等。通俗地講,壓力測(cè)試是為了發(fā)現(xiàn)在什么條件下應(yīng)用程序的性能會(huì)變得不可接受。性能測(cè)試和壓力測(cè)試常常被人混淆,認(rèn)為二者是同一種測(cè)試。其實(shí)性能測(cè)試和壓力測(cè)試的測(cè)試過(guò)程和方法沒(méi)有太大區(qū)別,它們二者主要的區(qū)別在于它們不同的測(cè)試目的。軟件性能測(cè)試是為了檢查系統(tǒng)的反應(yīng)、運(yùn)行速度等性能指標(biāo),它的前提是要求在一定負(fù)載下,如檢查一個(gè)網(wǎng)站在100人同時(shí)在線的情況下的性能指標(biāo),每個(gè)用戶是否都還可以正常地完成操作等。概括就是:在負(fù)載一定時(shí),測(cè)試獲得系統(tǒng)的性能指標(biāo)。軟件壓力測(cè)試是為了測(cè)試系統(tǒng)在異常情況下,執(zhí)行可重復(fù)的負(fù)載測(cè)試,以檢查程序?qū)Ξ惓G闆r的抵抗能力,找出性能瓶頸和隱藏缺陷。異常情況主要指那些峰值、極限值、大量數(shù)據(jù)的長(zhǎng)時(shí)間處理等。比如某個(gè)網(wǎng)站的用戶峰值為500,則檢查用戶數(shù)為750~1000時(shí)系統(tǒng)的性能指標(biāo)。所以一句話概括就是:在異常情況下,測(cè)試獲得系統(tǒng)的性能指標(biāo)。8611.10系統(tǒng)測(cè)試(6)容量測(cè)試在進(jìn)行壓力測(cè)試時(shí),如果發(fā)現(xiàn)了被測(cè)系統(tǒng)在可接受的性能范圍內(nèi)的極限負(fù)載,則在一定程度上完成了容量測(cè)試。容量測(cè)試的目的是通過(guò)測(cè)試預(yù)先分析出反映軟件系統(tǒng)應(yīng)用特征的某項(xiàng)指標(biāo)的極限值(如最大并發(fā)用戶數(shù)、數(shù)據(jù)庫(kù)記錄數(shù)等),系統(tǒng)在該極限值下沒(méi)有出現(xiàn)任何軟件故障或還能保持主要功能正常運(yùn)行?;蛘哒f(shuō)容量測(cè)試是為了確定測(cè)試對(duì)象在給定時(shí)間內(nèi)能夠持續(xù)處理的最大負(fù)載或工作量。例如對(duì)于一個(gè)從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)的測(cè)試,在功能測(cè)試階段,只需驗(yàn)證能夠正確檢索出結(jié)果即可,數(shù)據(jù)庫(kù)中的數(shù)據(jù)量可能只有幾十條。但進(jìn)行容量測(cè)試時(shí),就需要往數(shù)據(jù)庫(kù)中添加幾十萬(wàn)甚至上百萬(wàn)條數(shù)據(jù),測(cè)試這時(shí)的檢索時(shí)間是否在用戶可接受的范圍內(nèi),并要找出數(shù)據(jù)庫(kù)中數(shù)據(jù)數(shù)量級(jí)達(dá)到多少時(shí)性能變得不可接受。容量測(cè)試的完成標(biāo)準(zhǔn)可以定義為:所計(jì)劃的測(cè)試已全部執(zhí)行,而且達(dá)到或超出指定的系統(tǒng)限制時(shí)沒(méi)有出現(xiàn)任何軟件故障。8711.10系統(tǒng)測(cè)試(7)安全性測(cè)試安全性測(cè)試的目的是驗(yàn)證系統(tǒng)的保護(hù)機(jī)制能否在實(shí)際的工作環(huán)境中抵御非法入侵、惡意攻擊等非法行為。任何包含敏感信息或能夠?qū)€(gè)人造成不正當(dāng)傷害的計(jì)算機(jī)系統(tǒng)都會(huì)成為被攻擊的目標(biāo)。入侵的形式非常廣泛,包括僅僅為了練習(xí)技術(shù)而入侵的黑客,為了報(bào)復(fù)而試圖破壞系統(tǒng)的內(nèi)部人員,以及為了牟取非法利益而試圖入侵系統(tǒng)的個(gè)人或組織。(8)健壯性測(cè)試健壯性指在故障存在的情況下,軟件還能正常運(yùn)行的能力。健壯性測(cè)試包含容錯(cuò)性測(cè)試與恢復(fù)性測(cè)試。容錯(cuò)性測(cè)試通常依靠輸入異常數(shù)據(jù)或進(jìn)行異常操作,以檢驗(yàn)系統(tǒng)保護(hù)性,如果容錯(cuò)性好,系統(tǒng)只會(huì)給出提示或內(nèi)部消化而不會(huì)出錯(cuò)甚至崩潰。恢復(fù)測(cè)試通過(guò)各種手段讓軟件強(qiáng)制性發(fā)生故障,然后驗(yàn)證已保存的用戶數(shù)據(jù)是否會(huì)丟失,系統(tǒng)和數(shù)據(jù)是否可以盡快恢復(fù)。8811.10系統(tǒng)測(cè)試(9)圖形用戶界面測(cè)試圖形化用戶接口(GraphicUserInterface,GUI)測(cè)試包含兩方面內(nèi)容,一是界面實(shí)現(xiàn)與界面設(shè)計(jì)是否吻合;二是界面功能是否正確。為了更好地進(jìn)行GUI測(cè)試,一般將界面與功能分離設(shè)計(jì),比如分成:界面層、界面與功能接口層、功能層。這樣GUI的測(cè)試重點(diǎn)就可以放在前兩層上。(10)文檔測(cè)試文檔的種類包括:開發(fā)文檔、管理文檔、用戶文檔。這3類文檔中,一般最主要測(cè)試的是用戶文檔,因?yàn)橛脩粑臋n中的錯(cuò)誤可能會(huì)誤導(dǎo)用戶對(duì)軟件的使用,而且如果用戶在使用軟件時(shí)遇到的問(wèn)題沒(méi)有通過(guò)用戶文檔中的解決方案得到解決,用戶將因此對(duì)軟件質(zhì)量產(chǎn)生不信賴感,甚至厭惡使用該軟件,這對(duì)軟件的宣傳和推廣是很不利的。8911.11驗(yàn)收測(cè)試11.11.1驗(yàn)收測(cè)試概述驗(yàn)收測(cè)試是在系統(tǒng)測(cè)試之后進(jìn)行的測(cè)試,目的是為了驗(yàn)證新建系統(tǒng)產(chǎn)品是否能夠滿足用戶的需要,產(chǎn)品通過(guò)驗(yàn)收測(cè)試工作才能最終結(jié)束。具體說(shuō)來(lái),驗(yàn)收測(cè)試就是根據(jù)各自需求說(shuō)明書的標(biāo)準(zhǔn),利用工具進(jìn)行的一項(xiàng)檢查工作,其中包括對(duì)進(jìn)程的驗(yàn)收、進(jìn)程質(zhì)量是否達(dá)到需求說(shuō)明書的要求,以及是否符合工程的設(shè)計(jì)要求等,可分為前階段驗(yàn)收和竣工驗(yàn)收兩個(gè)階段。驗(yàn)收測(cè)試是依據(jù)軟件開發(fā)商和用戶之間的合同、軟件需求說(shuō)明書以及相關(guān)行業(yè)標(biāo)準(zhǔn)、國(guó)家標(biāo)準(zhǔn)、法律法規(guī)等的要求對(duì)軟件的功能、性能、可靠性、易用性、可維護(hù)性、可移植性等特性進(jìn)行嚴(yán)格的測(cè)試,驗(yàn)證軟件的功能和性能及其他特性是否與用戶需求一致。9011.11驗(yàn)收測(cè)試11.2驗(yàn)收測(cè)試內(nèi)容驗(yàn)收測(cè)試是在軟件開發(fā)結(jié)束后,用戶實(shí)際使用軟件產(chǎn)品之前,進(jìn)行的最后一次質(zhì)量檢驗(yàn)活動(dòng),主要回答開發(fā)的軟件是否符合預(yù)期的各項(xiàng)要求以及用戶能否接受的問(wèn)題。驗(yàn)收測(cè)試主要驗(yàn)證軟件功能的正確性和需求符合性。單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試的目的是發(fā)現(xiàn)軟件錯(cuò)誤,將軟件缺陷排除在交付客戶之前;驗(yàn)收測(cè)試需要客戶共同參與,目的是確認(rèn)軟件符合需求規(guī)格。9111.11驗(yàn)收測(cè)試驗(yàn)收測(cè)試主要包括配置復(fù)審、合法性檢查、文檔檢查、軟件一致性檢查、軟件功能和性能測(cè)試與測(cè)試結(jié)果評(píng)審等內(nèi)容。9211.11驗(yàn)收測(cè)試11.11.3α測(cè)試和β測(cè)試α測(cè)試是用戶在開發(fā)環(huán)境下的測(cè)試,或者是開發(fā)公司組織內(nèi)部人員模擬各類用戶行為,對(duì)即將面市的軟件產(chǎn)品進(jìn)行的測(cè)試,它是由開發(fā)人員或測(cè)試人員進(jìn)行的測(cè)試。在α測(cè)試中,主要是對(duì)使用的功能和任務(wù)進(jìn)行確認(rèn),測(cè)試的內(nèi)容由用戶需求說(shuō)明書決定。α測(cè)試是試圖發(fā)現(xiàn)軟件產(chǎn)品的錯(cuò)誤的測(cè)試,它的關(guān)鍵在于盡可能逼真地模擬實(shí)際運(yùn)行環(huán)境和用戶對(duì)軟件產(chǎn)品的操作并盡最大努力涵蓋所有可能的用戶操作方式。β測(cè)試由最終用戶實(shí)施,通常開發(fā)(或其他非最終用戶)組織對(duì)其的管理很少或不進(jìn)行管理。β測(cè)試是所有驗(yàn)收測(cè)試策略中最主觀的:測(cè)試員負(fù)責(zé)創(chuàng)建自己的環(huán)境、選擇數(shù)據(jù),并決定要研究的功能、特性或任務(wù),采用的方法完全由測(cè)試員決定。9311.12回歸測(cè)試回歸測(cè)試不是一個(gè)測(cè)試階段,而是一種可以用于單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試各個(gè)測(cè)試過(guò)程的測(cè)試技術(shù)?;貧w測(cè)試指軟件系統(tǒng)被修改或擴(kuò)充后重新進(jìn)行的測(cè)試,回歸測(cè)試是為了保證對(duì)軟件修改后,沒(méi)有引入新的錯(cuò)誤而重復(fù)進(jìn)行的測(cè)試。每當(dāng)軟件增加了新的功能,或軟件中的缺陷被修正,這些變更都可能影響軟件原來(lái)的結(jié)構(gòu)和功能。為了防止軟件變更產(chǎn)生的無(wú)法預(yù)料的副作用,不僅要對(duì)內(nèi)容進(jìn)行測(cè)試,還要重復(fù)進(jìn)行過(guò)去已經(jīng)進(jìn)行的測(cè)試,以證明修改沒(méi)有引起未曾預(yù)料的后果,或證明修改后軟件仍能夠滿足實(shí)際的需求。9411.13面向?qū)ο蟮能浖y(cè)試
在基于面向?qū)ο笏枷氲能浖_發(fā)中,由于面向?qū)ο蟮能浖こ谭椒ㄅc傳統(tǒng)的軟件工程方法有諸多不同,傳統(tǒng)的軟件測(cè)試模型對(duì)面向?qū)ο蟮能浖到y(tǒng)已經(jīng)不再適用。實(shí)際上,在面向?qū)ο蟮能浖_發(fā)中,人們已經(jīng)拋棄了傳統(tǒng)的測(cè)試模型。針對(duì)面向?qū)ο蟮拈_發(fā)模型中面向?qū)ο蠓治觯∣OA)、面向?qū)ο笤O(shè)計(jì)(OOD)、面向?qū)ο髮?shí)現(xiàn)(OOP)三個(gè)階段,同時(shí)結(jié)合傳統(tǒng)的測(cè)試步驟的劃分,面向?qū)ο蟮能浖y(cè)試可以分為:面向?qū)ο蠓治龅臏y(cè)試;面向?qū)ο笤O(shè)計(jì)的測(cè)試;面向?qū)ο髮?shí)現(xiàn)的測(cè)試;面向?qū)ο蟮膯卧獪y(cè)試;面向?qū)ο蟮募蓽y(cè)試;面向?qū)ο蟮南到y(tǒng)測(cè)試及驗(yàn)收測(cè)試。9511.13面向?qū)ο蟮能浖y(cè)試面向?qū)ο蠓治龅臏y(cè)試結(jié)構(gòu)化需求分析把目標(biāo)系統(tǒng)看成是一個(gè)由若干功能模塊組成的集合,而面向?qū)ο笮枨蠓治鲆袁F(xiàn)實(shí)世界中的概念為模型結(jié)構(gòu)。前者關(guān)注系統(tǒng)的行為,即功能結(jié)構(gòu),而后者更關(guān)注于系統(tǒng)的邏輯結(jié)構(gòu)。對(duì)面向?qū)ο笮枨蠓治龅臏y(cè)試,要考慮:對(duì)認(rèn)定的對(duì)象或類的測(cè)試;對(duì)定義的屬性和操作的測(cè)試;對(duì)類之間層次關(guān)系的測(cè)試;對(duì)對(duì)象之間交互行為的測(cè)試;對(duì)系統(tǒng)邏輯模型的測(cè)試等。9611.13面向?qū)ο蟮能浖y(cè)試97面向?qū)ο笤O(shè)計(jì)的測(cè)試與傳統(tǒng)的軟件工程方法不同的是,面向?qū)ο蠓治龊兔嫦驅(qū)ο笤O(shè)計(jì)之間并沒(méi)有嚴(yán)格的界限。實(shí)際上,面向?qū)ο笤O(shè)計(jì)是對(duì)面向?qū)ο蠓治鼋Y(jié)果的進(jìn)一步細(xì)化、糾正和完善。對(duì)面向?qū)ο笤O(shè)計(jì)的測(cè)試涉及了面向?qū)ο蠓治龅臏y(cè)試內(nèi)容,但是會(huì)更加關(guān)注對(duì)類及其類之間關(guān)系的測(cè)試和對(duì)類庫(kù)支持情況的測(cè)試。11.13面向?qū)ο蟮能浖y(cè)試3.面向?qū)ο髮?shí)現(xiàn)的測(cè)試面向?qū)ο蟮某绦蚓哂蟹庋b、繼承和多態(tài)的特性。測(cè)試多態(tài)的特性時(shí)要尤為注意,因?yàn)樗沟猛欢未a的行為復(fù)雜化,測(cè)試時(shí)需要考慮不同的執(zhí)行情況和行為。由于系統(tǒng)功能的實(shí)現(xiàn)分布在類中,所以本階段的測(cè)試中還要重點(diǎn)評(píng)判類是否實(shí)現(xiàn)了要求的功能。4.面向?qū)ο蟮膯卧獪y(cè)試面向?qū)ο蟮膯卧獪y(cè)試以類或?qū)ο鬄閱挝?。由于類包含一組不同的操作,并且某些特殊的操作可能被多個(gè)類共享,因此單元測(cè)試不能孤立地測(cè)試某個(gè)操作,而是將操作作為類的一部分。9811.13面向?qū)ο蟮能浖y(cè)試5.面向?qū)ο蟮募蓽y(cè)試面向?qū)ο蟮募蓽y(cè)試采用基于線程或者基于使用的測(cè)試方法。基于線程的測(cè)試是指把回應(yīng)系統(tǒng)外界輸入的一組相關(guān)的類集成起來(lái),對(duì)線程進(jìn)行集成并測(cè)試?;谑褂玫臏y(cè)試方法按照類對(duì)服務(wù)器的依賴以及對(duì)其他類的依賴程度,把類劃分為獨(dú)立類和依賴類。獨(dú)立類是指那些幾乎不使用服務(wù)器的類。在進(jìn)行基于使用的測(cè)試的時(shí)候,先對(duì)獨(dú)立類進(jìn)行測(cè)試。依賴類是使用獨(dú)立類的類,即它們對(duì)獨(dú)立類存在著某種程度的依賴。在測(cè)試完獨(dú)立類后,就可以對(duì)依賴類進(jìn)行測(cè)試了。依賴類中可能還劃分為多個(gè)層次,測(cè)試時(shí)按照逐層向下的順序,直到測(cè)試完整個(gè)系統(tǒng)。996.面向?qū)ο蟮南到y(tǒng)測(cè)試及驗(yàn)收測(cè)試在系統(tǒng)測(cè)試的過(guò)程中,軟件開發(fā)人員要盡量搭建與用戶的實(shí)際使用環(huán)境相同的平臺(tái),對(duì)目標(biāo)系統(tǒng)是否能作為一個(gè)整體,滿足用戶在性能、功能、安全性、可靠性等各個(gè)方面對(duì)系統(tǒng)的要求做出檢測(cè)和評(píng)估。面向?qū)ο蟮南到y(tǒng)測(cè)試要以面向?qū)ο笮枨蠓治龅慕Y(jié)果為依據(jù),對(duì)需求分析中描述的對(duì)象模型、交互模型等各種分析模型進(jìn)行檢驗(yàn)。驗(yàn)收測(cè)試是以用戶為主的測(cè)試,是將軟件產(chǎn)品正式交付給用戶或市場(chǎng)發(fā)布之前的最后一個(gè)測(cè)試階段。10011.13面向?qū)ο蟮能浖y(cè)試自動(dòng)化測(cè)試就是利用策略、工具等減少人工介入的非技術(shù)性、重復(fù)性、冗長(zhǎng)的測(cè)試活動(dòng),實(shí)際工作中就是執(zhí)行某種自動(dòng)測(cè)試程序,控制被測(cè)試軟件的執(zhí)行。全自動(dòng)化測(cè)試就是指在測(cè)試過(guò)程中完全不需要人工干預(yù),由程序自動(dòng)生成測(cè)試的全部過(guò)程。半自動(dòng)化測(cè)試就是指在測(cè)試過(guò)程中,需要由人工輸入測(cè)試用例或選擇測(cè)試路徑,再由測(cè)試程序按照人工制訂的要求完成自動(dòng)測(cè)試10111.14自動(dòng)化測(cè)試手工測(cè)試指測(cè)試員通過(guò)安裝和運(yùn)行被測(cè)軟件,根據(jù)測(cè)試文檔要求執(zhí)行測(cè)試用例,觀察運(yùn)行是否正常的過(guò)程。手工測(cè)試具有如下局限性:無(wú)法覆蓋所有代碼路徑;簡(jiǎn)單功能測(cè)試不可缺少,且存在機(jī)械重復(fù),工作量大;很難捕捉到與時(shí)序,死鎖,多線程等有關(guān)的錯(cuò)誤;難以用大量數(shù)據(jù)進(jìn)行負(fù)載或性能測(cè)試;無(wú)法實(shí)現(xiàn)高可靠性測(cè)試要求的超長(zhǎng)運(yùn)行時(shí)間;大量測(cè)試用例難以短時(shí)間完成;回歸測(cè)試難以做到全面測(cè)試等等。10211.14手工測(cè)試與自動(dòng)化測(cè)試自動(dòng)化測(cè)試具有如下優(yōu)點(diǎn):1.提高測(cè)試執(zhí)行速度,節(jié)省時(shí)間;2.提高測(cè)試效率;3.提高測(cè)試精確度和準(zhǔn)確度;4.更好地利用資源;5.模擬測(cè)試條件;6.具有一致性和可重復(fù)性;7.修改性比較低,更加經(jīng)濟(jì);但是自動(dòng)化測(cè)試也有如下的缺點(diǎn)或局限:1.不能完全代替人工尤其是帶智力性質(zhì)的測(cè)試;2.測(cè)試用例的設(shè)計(jì),測(cè)試員的經(jīng)驗(yàn)和推測(cè)能力不可替代;3.界面和用戶體驗(yàn)測(cè)試難以用工具實(shí)現(xiàn)完全的評(píng)判;4.缺乏對(duì)正確性的檢查能力;5.有時(shí)也會(huì)降低測(cè)試效率;6.自動(dòng)化測(cè)試并非如期望那樣可以發(fā)現(xiàn)大量錯(cuò)誤;7.技術(shù)問(wèn)題,組織問(wèn)題,腳本維護(hù)問(wèn)題。10311.14自動(dòng)化測(cè)試的優(yōu)缺點(diǎn)根據(jù)測(cè)試方法不同,可分為白盒測(cè)試工具和黑盒測(cè)試工具。根據(jù)測(cè)試對(duì)象和目的,可分為單元測(cè)試工具,功能測(cè)試工具,負(fù)載測(cè)試工具,性能測(cè)試工具等等。10411.14自動(dòng)化測(cè)試工具針對(duì)被測(cè)源程序進(jìn)行測(cè)試,測(cè)試所發(fā)現(xiàn)的缺陷可以定位到代碼級(jí)。根據(jù)測(cè)試原理,可以分為靜態(tài)和動(dòng)態(tài)測(cè)試工具。靜態(tài)測(cè)試工具在不執(zhí)行程序的情況下分析軟件特性,主要集中在需求文檔,設(shè)計(jì)文檔及程序結(jié)構(gòu)方面,具體包括:代碼審查、一致性檢查、接口分析、數(shù)據(jù)流分析、復(fù)雜度分析等等。動(dòng)態(tài)測(cè)試工具直接執(zhí)行被測(cè)程序以提供測(cè)試活動(dòng),需要實(shí)際運(yùn)行被測(cè)系統(tǒng),并設(shè)置斷點(diǎn),向代碼生成的可執(zhí)行文件中插入一些監(jiān)測(cè)代碼,掌握斷點(diǎn)這一時(shí)刻的運(yùn)行數(shù)據(jù),具體包括:功能確認(rèn)與接口測(cè)試、覆蓋測(cè)試、性能測(cè)試等等。10511.14白盒測(cè)試工具常用的動(dòng)態(tài)自動(dòng)化測(cè)試工具有Jtest、Jcontract和XUnit系列開源框架等。常用的功能測(cè)試工具有WinRunner、QARun、RationalRobot和QuickTestPro等。常用的性能測(cè)試工具有LoadRunner、JMeter、OpenSTA和QALoad等。常用的測(cè)試管理工具有TestDirector、TestManager、Bugzilla和JIRA等。10611.14白盒測(cè)試工具11.15軟件調(diào)試調(diào)試(也稱為糾錯(cuò))作為成功的測(cè)試的后果而出現(xiàn),也就是說(shuō),調(diào)試是在測(cè)試發(fā)現(xiàn)錯(cuò)誤之后排除錯(cuò)誤的過(guò)程。雖然調(diào)試可以而且應(yīng)該是一個(gè)有序的過(guò)程,但是在很大程度上它仍然是一項(xiàng)技巧。軟件工程師在評(píng)估測(cè)試結(jié)果時(shí),往往僅面對(duì)著軟件問(wèn)題的癥狀,也就是說(shuō),錯(cuò)誤的外部表現(xiàn)和它的內(nèi)在原因之間可能并沒(méi)有明顯的聯(lián)系。調(diào)試就是把癥狀和原因聯(lián)系起來(lái)的尚未被人很好理解的智力過(guò)程。調(diào)試不是測(cè)試,但總是發(fā)生在測(cè)試之后。調(diào)試過(guò)程總會(huì)有兩種結(jié)果之一:找到問(wèn)題原因并把問(wèn)題改正或排除;未找到問(wèn)題原因。后一種情況下調(diào)試人員可以猜想原因,并設(shè)計(jì)測(cè)試用例來(lái)驗(yàn)證,重復(fù)此過(guò)程直到找到原因并改正錯(cuò)誤。10715.2調(diào)試途徑無(wú)論采用什么方法,調(diào)試的根本目標(biāo)都是尋找軟件錯(cuò)誤的原因并改正之。這個(gè)目標(biāo)是通過(guò)把系統(tǒng)地評(píng)估、直覺(jué)和運(yùn)氣組合起來(lái)實(shí)現(xiàn)的。一般來(lái)說(shuō),有下列3種調(diào)試途徑可以采用:蠻干法、回溯法和原因排除法。每一種方法都可以使用調(diào)試工具輔助完成,但是工具并不能代替對(duì)全部設(shè)計(jì)文檔和源程序的仔細(xì)評(píng)估。如果各種調(diào)試方法和調(diào)試工具都用過(guò)了卻仍然找不出錯(cuò)誤的原因,則應(yīng)該請(qǐng)求別人幫助。把遇到的問(wèn)題向同行陳述并一起分析討論,往往能開闊思路,很快找出錯(cuò)誤原因。10811.15軟件調(diào)試11.15軟件維護(hù)軟件維護(hù)是軟件產(chǎn)品生命周期的最后一個(gè)階段。在產(chǎn)品交付并且投入使用之后,為了解決在使用過(guò)程中不斷發(fā)現(xiàn)的各種問(wèn)題,保證系統(tǒng)正常運(yùn)行,同時(shí)使系統(tǒng)功能隨著用戶需求的更新而不斷升級(jí),軟件維護(hù)的工作是非常必要的。概括地說(shuō),軟件維護(hù)就是指在軟件產(chǎn)品交付給用戶之后,為了改正軟件測(cè)試階段未發(fā)現(xiàn)的缺陷,改進(jìn)軟件產(chǎn)品的性能,補(bǔ)充軟件產(chǎn)品的新功能等,所進(jìn)行的修改軟件的過(guò)程。10911.15軟件維護(hù)進(jìn)行軟件維護(hù)通常需要軟件維護(hù)人員與用戶建立一種工作關(guān)系,使軟件維護(hù)人員能夠充分了解用戶的需要,及時(shí)解決系統(tǒng)中存在的問(wèn)題。通常,軟件維護(hù)是軟件生命周期中延續(xù)時(shí)間最長(zhǎng)、工作量最大的階段。據(jù)統(tǒng)計(jì),軟件開發(fā)機(jī)構(gòu)60%以上的精力都用在維護(hù)已有的軟件產(chǎn)品上了。對(duì)于大型的軟件系統(tǒng),一般開發(fā)周期是1~3年,而維護(hù)周期會(huì)高達(dá)5~10年,維護(hù)費(fèi)用甚至?xí)哌_(dá)開發(fā)費(fèi)用的4~5倍。軟件維護(hù)不僅工作量大、任務(wù)重,而且如果維護(hù)的不恰當(dāng),還會(huì)產(chǎn)生副作用,引入新的軟件缺陷。因此,進(jìn)行維護(hù)工作要相當(dāng)謹(jǐn)慎。11011.15軟件維護(hù)11.15.1軟件維護(hù)的過(guò)程典型的軟件維護(hù)的過(guò)程可以概括為:建立維護(hù)機(jī)構(gòu)用戶提出維護(hù)申請(qǐng)并提交維護(hù)申請(qǐng)報(bào)告維護(hù)人員確認(rèn)維護(hù)類型并實(shí)施相應(yīng)的維護(hù)工作整理維護(hù)記錄并對(duì)維護(hù)工作進(jìn)行評(píng)審對(duì)維護(hù)工作進(jìn)行評(píng)價(jià)11111.15軟件維護(hù)11211.15.2軟件維護(hù)的分類軟件維護(hù)的分類11.15軟件維護(hù)11.15.3軟件的可維護(hù)性軟件的可維護(hù)性是用來(lái)衡量對(duì)軟件產(chǎn)品進(jìn)行維護(hù)的難易程度的標(biāo)準(zhǔn),它是軟件質(zhì)量的主要特征之一。軟件產(chǎn)品的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西藏藏醫(yī)藥大學(xué)《數(shù)字視頻特技》2023-2024學(xué)年第二學(xué)期期末試卷
- 渤海石油職業(yè)學(xué)院《Python語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 陽(yáng)泉師范高等??茖W(xué)?!督煌üぞ咴O(shè)計(jì)(Ⅰ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川華新現(xiàn)代職業(yè)學(xué)院《食品添加劑線上》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年江蘇省東臺(tái)市第一中學(xué)高三上學(xué)期12月份階段測(cè)試歷史試卷
- 2025年安徽省安全員《B證》考試題庫(kù)
- 中山大學(xué)《DMAXD》2023-2024學(xué)年第二學(xué)期期末試卷
- 武漢晴川學(xué)院《工程經(jīng)濟(jì)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古大學(xué)創(chuàng)業(yè)學(xué)院《產(chǎn)品設(shè)計(jì)與市場(chǎng)營(yíng)銷》2023-2024學(xué)年第二學(xué)期期末試卷
- 泰山護(hù)理職業(yè)學(xué)院《行政學(xué)原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津2025年天津中德應(yīng)用技術(shù)大學(xué)輔導(dǎo)員崗位招聘7人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年湘西民族職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年海南職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 北京市西城區(qū)2024-2025學(xué)年高三上學(xué)期期末考試語(yǔ)文試題(解析版)
- 2025年春新人教版數(shù)學(xué)一年級(jí)下冊(cè)課件 第六單元 數(shù)量間的加減關(guān)系 第2課時(shí) 求比1個(gè)數(shù)多(少)幾的數(shù)
- 語(yǔ)文課堂中的多媒體教學(xué)方法研究
- 民用無(wú)人機(jī)操控員執(zhí)照(CAAC)考試復(fù)習(xí)重點(diǎn)題庫(kù)500題(含答案)
- 北京市朝陽(yáng)區(qū)2025下半年事業(yè)單位招聘149人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 肩袖損傷課件
- DB3207-T 1047-2023 羊肚菌-豆丹綜合種養(yǎng)技術(shù)規(guī)程
- 鋼筋安裝施工技術(shù)交底
評(píng)論
0/150
提交評(píng)論