軟件測(cè)試過(guò)程和策略講義_第1頁(yè)
軟件測(cè)試過(guò)程和策略講義_第2頁(yè)
軟件測(cè)試過(guò)程和策略講義_第3頁(yè)
軟件測(cè)試過(guò)程和策略講義_第4頁(yè)
軟件測(cè)試過(guò)程和策略講義_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、軟件測(cè)試過(guò)程和策略講義本章概述 軟件產(chǎn)品種類繁多,測(cè)試過(guò)程千變?nèi)f化,為了能夠找到系統(tǒng)中絕大局部的軟件缺陷,必須構(gòu)建各種行之有效的測(cè)試方法與策略。 本章通過(guò)詳細(xì)分析,介紹了軟件測(cè)試的復(fù)雜性和經(jīng)濟(jì)性;通過(guò)講述軟件測(cè)試的整個(gè)流程,從而了解單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試等根本測(cè)試方法;通過(guò)比較分析,介紹了靜態(tài)與動(dòng)態(tài)測(cè)試、黑盒與白盒測(cè)試的根本策略。第2章 軟件測(cè)試過(guò)程與策略2.1 軟件測(cè)試的復(fù)雜性與經(jīng)濟(jì)性分析2.2 軟件測(cè)試流程2.3 靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試2.4 黑盒測(cè)試與白盒測(cè)試小結(jié)習(xí)題2.1 軟件測(cè)試的復(fù)雜性與經(jīng)濟(jì)性分析 人們對(duì)軟件工程開(kāi)發(fā)的常規(guī)認(rèn)識(shí)中,認(rèn)為開(kāi)發(fā)程序是一個(gè)復(fù)雜而困難的

2、過(guò)程,需要花費(fèi)大量的人力、物力和時(shí)間,而測(cè)試一個(gè)程序那么比較容易,不需要花費(fèi)太多的精力。這其實(shí)是人們對(duì)軟件工程開(kāi)發(fā)過(guò)程理解上的一個(gè)誤區(qū)。在實(shí)際的軟件開(kāi)發(fā)過(guò)程中,作為現(xiàn)代軟件開(kāi)發(fā)工業(yè)一個(gè)非常重要的組成局部,軟件測(cè)試正扮演著越來(lái)越重要的角色。隨著軟件規(guī)模的不斷擴(kuò)大,如何在有限的條件下對(duì)被開(kāi)發(fā)軟件進(jìn)行有效的測(cè)試正成為軟件工程中一個(gè)非常關(guān)鍵的課題。2.1.1 軟件測(cè)試的復(fù)雜性 設(shè)計(jì)測(cè)試用例是一項(xiàng)細(xì)致并且需要具備高度技巧的工作,稍有不慎就會(huì)顧此失彼,發(fā)生不應(yīng)有的疏漏。下面分析了容易出現(xiàn)問(wèn)題的根源。(1) 完全測(cè)試是不現(xiàn)實(shí)的(2) 軟件測(cè)試是有風(fēng)險(xiǎn)的(3) 殺蟲(chóng)劑現(xiàn)象(4) 缺陷的不確定性圖2-1的最優(yōu)測(cè)

3、試量示意圖說(shuō)明了發(fā)現(xiàn)軟件缺陷數(shù)量和測(cè)試量之間的關(guān)系,隨著測(cè)試量的增加,測(cè)試本錢將呈幾何數(shù)級(jí)上升,而軟件缺陷降低到某一數(shù)值之后將沒(méi)有明顯的變化,最優(yōu)測(cè)量值就是這兩條曲線的交點(diǎn)。圖2-1 最優(yōu)測(cè)試量示意圖2.1.2 軟件測(cè)試的經(jīng)濟(jì)性軟件測(cè)試的經(jīng)濟(jì)性有兩方面表達(dá):一是表達(dá)在測(cè)試工作在整個(gè)工程開(kāi)發(fā)過(guò)程中的重要地位,二是表達(dá)在應(yīng)該按照什么樣的原那么進(jìn)行測(cè)試,以實(shí)現(xiàn)測(cè)試本錢與測(cè)試效果的統(tǒng)一。測(cè)試是軟件生存期中費(fèi)用消耗最大的環(huán)節(jié)。測(cè)試費(fèi)用除了測(cè)試的直接消耗外,還包括其它的相關(guān)費(fèi)用。影響測(cè)試費(fèi)用的主要因素有:(1) 軟件面向的目標(biāo)用戶(2) 可能出現(xiàn)的用戶數(shù)量(3) 潛在缺陷造成的影響(4) 開(kāi)發(fā)機(jī)構(gòu)的業(yè)務(wù)能

4、力2.1.3 軟件測(cè)試的充分性準(zhǔn)那么軟件測(cè)試的充分性準(zhǔn)那么有以下幾點(diǎn):對(duì)任何軟件都存在有限的充分測(cè)試集合; 當(dāng)一個(gè)測(cè)試的數(shù)據(jù)集和對(duì)于一個(gè)被測(cè)的軟件系統(tǒng)的測(cè)試是充分的,那么再多增加一些測(cè)試數(shù)據(jù)仍然是充分的。這一特性稱為軟件測(cè)試的單調(diào)性;即使對(duì)軟件所有成分都進(jìn)行了充分的測(cè)試,也并不意味著整個(gè)軟件的測(cè)試已經(jīng)充分了。這一特性稱為軟件測(cè)試的非復(fù)合性;即使對(duì)一個(gè)軟件系統(tǒng)整體的測(cè)試是充分的,也并不意味著軟件系統(tǒng)中各個(gè)成分都已經(jīng)充分地得到了測(cè)試。這個(gè)特性稱為軟件測(cè)試的非分解性;軟件測(cè)試的充分性與軟件的需求、軟件的實(shí)現(xiàn)都相關(guān);軟件測(cè)試的數(shù)據(jù)量正比于軟件的復(fù)雜度。這一特性稱為軟件測(cè)試的復(fù)雜性;隨著測(cè)試次數(shù)的增加,

5、檢查出軟件缺陷的幾率隨之不斷減少。軟件測(cè)試具有回報(bào)遞減率。2.1.4 軟件測(cè)試的誤區(qū) 在實(shí)際的工程開(kāi)發(fā)與管理中仍然存在很多管理上或者技術(shù)上的誤區(qū)。(1) 期望用測(cè)試自動(dòng)化代替大局部人工勞動(dòng)(2) 無(wú)視需求階段的參與(3) 軟件測(cè)試是技術(shù)要求不高的崗位圖2-2 V模型示意圖2.2.1 軟件開(kāi)發(fā)的V模型1V模型軟件開(kāi)發(fā)流程的V模型是一個(gè)廣為人知的模型,如圖2-2所示。2.2 軟件測(cè)試流程 2軟件測(cè)試過(guò)程軟件測(cè)試過(guò)程按各測(cè)試階段的先后順序可分為單元測(cè)試、集成測(cè)試、確認(rèn)有效性測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收用戶測(cè)試5個(gè)階段,如圖2-3所示。(1) 單元測(cè)試:測(cè)試執(zhí)行的開(kāi)始階段。測(cè)試對(duì)象是每個(gè)單元。測(cè)試目的是保證每

6、個(gè)模塊或組件能正常工作。單元測(cè)試主要采用白盒測(cè)試方法,檢測(cè)程序的內(nèi)部結(jié)構(gòu)。(2) 集成測(cè)試:也稱組裝測(cè)試。在單元測(cè)試根底上,對(duì)已測(cè)試過(guò)的模塊進(jìn)行組裝,進(jìn)行集成測(cè)試。測(cè)試目的是檢驗(yàn)與接口有關(guān)的模塊之間的問(wèn)題。集成測(cè)試主要采用黑盒測(cè)試方法。(3) 確認(rèn)測(cè)試:也稱有效性測(cè)試。在完成集成測(cè)試后,驗(yàn)證軟件的功能和性能及其他特性是否符合用戶要求。測(cè)試目的是保證系統(tǒng)能夠按照用戶預(yù)定的要求工作。確認(rèn)測(cè)試通常采用黑盒測(cè)試方法。(4) 系統(tǒng)測(cè)試:在完成確認(rèn)測(cè)試后,為了檢驗(yàn)它能否與實(shí)際環(huán)境如軟硬件平臺(tái)、數(shù)據(jù)和人員等協(xié)調(diào)工作,還需要進(jìn)行系統(tǒng)測(cè)試??梢哉f(shuō),系統(tǒng)測(cè)試之后,軟件產(chǎn)品根本滿足開(kāi)發(fā)要求。(5) 驗(yàn)收測(cè)試:測(cè)試過(guò)

7、程的最后一個(gè)階段。驗(yàn)收測(cè)試主要突出用戶的作用,同時(shí)軟件開(kāi)發(fā)人員也應(yīng)該參與進(jìn)去。2-3 測(cè)試各階段示意圖軟件測(cè)試階段的輸入信息包括兩類:軟件配置:指測(cè)試對(duì)象。通常包括需求說(shuō)明書(shū)、設(shè)計(jì)說(shuō)明書(shū)和被測(cè)試的源程序等;測(cè)試配置:通常包括測(cè)試方案、測(cè)試步驟、測(cè)試用例以及具體實(shí)施測(cè)試的測(cè)試程序、測(cè)試工具等。對(duì)測(cè)試結(jié)果與預(yù)期的結(jié)果進(jìn)行比較以后,即可判斷是否存在錯(cuò)誤,決定是否進(jìn)入排錯(cuò)階段,進(jìn)行調(diào)試任務(wù)。對(duì)修改以后的程序要進(jìn)行重新測(cè)試,因?yàn)樾薷目赡軙?huì)帶來(lái)新的問(wèn)題。通常根據(jù)出錯(cuò)的情況得到出錯(cuò)率來(lái)預(yù)估被測(cè)軟件的可靠性,這將對(duì)軟件運(yùn)行后的維護(hù)工作有重要價(jià)值。2.2.2 單元測(cè)試 1單元測(cè)試的定義單元測(cè)試Unit Test

8、ing是對(duì)軟件根本組成單元進(jìn)行的測(cè)試。單元測(cè)試的對(duì)象是軟件設(shè)計(jì)的最小單位模塊。一個(gè)菜單、一個(gè)顯示界面或者能夠獨(dú)立完成的具體功能都可以是一個(gè)單元。某種意義上單元的概念已經(jīng)擴(kuò)展為組件component。單元測(cè)試通常是開(kāi)發(fā)者編寫的一小段代碼,用于檢驗(yàn)被測(cè)代碼的一個(gè)很小的、很明確的功能是否正確。通常而言,一個(gè)單元測(cè)試是用于判斷某個(gè)特定條件或者場(chǎng)景下某個(gè)特定函數(shù)的行為。2單元測(cè)試的目標(biāo)單元測(cè)試的主要目標(biāo)是確保各單元模塊被正確地編碼。單元測(cè)試除了保證測(cè)試代碼的功能性,還需要保證代碼在結(jié)構(gòu)上具有可靠性和健全性,并且能夠在所有條件下正確響應(yīng)。進(jìn)行全面的單元測(cè)試,可以減少應(yīng)用級(jí)別所需的工作量,并且徹底減少系統(tǒng)產(chǎn)

9、生錯(cuò)誤的可能性。如果手動(dòng)執(zhí)行,單元測(cè)試可能需要大量的工作,自動(dòng)化測(cè)試會(huì)提高測(cè)試效率。3單元測(cè)試的內(nèi)容單元測(cè)試的主要內(nèi)容有:模塊接口測(cè)試;局部數(shù)據(jù)結(jié)構(gòu)測(cè)試;獨(dú)立路徑測(cè)試;錯(cuò)誤處理測(cè)試;邊界條件測(cè)試。如圖2-4所示,這些測(cè)試都作用于模塊,共同完成單元測(cè)試任務(wù)。 圖2-4 單元測(cè)試任務(wù) 4單元測(cè)試的步驟通常單元測(cè)試在編碼階段進(jìn)行。當(dāng)源程序代碼編制完成,經(jīng)過(guò)評(píng)審和驗(yàn)證,確認(rèn)沒(méi)有語(yǔ)法錯(cuò)誤之后,就開(kāi)始進(jìn)行單元測(cè)試的測(cè)試用例設(shè)計(jì)。利用設(shè)計(jì)文檔,設(shè)計(jì)可以驗(yàn)證程序功能、找出程序錯(cuò)誤的多個(gè)測(cè)試用例。對(duì)于每一組輸入,應(yīng)有預(yù)期的正確結(jié)果。模塊并不是一個(gè)獨(dú)立的程序,在考慮測(cè)試模塊時(shí),同時(shí)要考慮它和外界的聯(lián)系,用一些輔助

10、模塊去模擬與被測(cè)模塊相關(guān)聯(lián)的其它模塊。這些輔助模塊可分為兩種:(1) 驅(qū)動(dòng)模塊driver:相當(dāng)于被測(cè)模塊的主程序。它接收測(cè)試數(shù)據(jù),把這些數(shù)據(jù)傳送給被測(cè)模塊,最后輸出實(shí)測(cè)結(jié)果。(2) 樁模塊stub:用以代替被測(cè)模塊調(diào)用的子模塊。樁模塊可以做少量的數(shù)據(jù)操作,不需要把子模塊所有功能都帶進(jìn)來(lái),但不允許什么事情也不做。被測(cè)模塊、與它相關(guān)的驅(qū)動(dòng)模塊以及樁模塊共同構(gòu)成了一個(gè)“測(cè)試環(huán)境,如圖2-5所示。圖2-5 單元測(cè)試環(huán)境5采用單元測(cè)試的原因程序員編寫代碼時(shí),一定會(huì)反復(fù)調(diào)試保證其能夠編譯通過(guò)。如果是編譯沒(méi)有通過(guò)的代碼,沒(méi)有任何人會(huì)愿意交付給自己的老板。但代碼通過(guò)編譯,只是說(shuō)明了它的語(yǔ)法正確,程序員卻無(wú)法

11、保證它的語(yǔ)義也一定正確。沒(méi)有任何人可以輕易承諾這段代碼的行為一定是正確的。單元測(cè)試這時(shí)會(huì)為此做出保證。編寫單元測(cè)試就是用來(lái)驗(yàn)證這段代碼的行為是否與軟件開(kāi)發(fā)人員期望的一致。有了單元測(cè)試,程序員可以自信的交付自己的代碼,而沒(méi)有任何的后顧之憂。圖2-6 各測(cè)試階段發(fā)現(xiàn)缺陷的費(fèi)用單元測(cè)試的本錢效率大約是集成測(cè)試的兩倍、系統(tǒng)測(cè)試的三倍,如圖2-6所示。2.2.3 集成測(cè)試 1集成測(cè)試的定義 集成測(cè)試的定義是根據(jù)實(shí)際情況對(duì)程序模塊采用適當(dāng)?shù)募蓽y(cè)試策略組裝起來(lái),對(duì)系統(tǒng)的接口以及集成后的功能進(jìn)行正確校驗(yàn)的測(cè)試工作。 集成測(cè)試是針對(duì)程序整體結(jié)構(gòu)的測(cè)試。2集成測(cè)試的層次 軟件的開(kāi)發(fā)過(guò)程是一個(gè)從需求到概要設(shè)計(jì)、詳

12、細(xì)設(shè)計(jì)以及編碼的逐步細(xì)化的過(guò)程,那么單元測(cè)試到集成測(cè)試再到系統(tǒng)測(cè)試就是一個(gè)逆向求證的過(guò)程。集成測(cè)試內(nèi)部對(duì)于傳統(tǒng)軟件和面向?qū)ο蟮膽?yīng)用系統(tǒng)有兩種層次的劃分。對(duì)于傳統(tǒng)軟件來(lái)講,可以把集成測(cè)試劃分為三個(gè)層次:模塊內(nèi)集成測(cè)試;子系統(tǒng)內(nèi)集成測(cè)試;子系統(tǒng)間集成測(cè)試。 對(duì)于面向?qū)ο蟮膽?yīng)用系統(tǒng)來(lái)說(shuō),可以把集成測(cè)試分為兩個(gè)階段:類內(nèi)集成測(cè)試;類間集成測(cè)試。3集成測(cè)試的模式把模塊組裝成為系統(tǒng)的測(cè)試方式有兩種:(1)一次性集成測(cè)試方式No-Incremental Integration一次性集成測(cè)試方式也稱作非增值式集成測(cè)試。先分別測(cè)試每個(gè)模塊,再把所有模塊按設(shè)計(jì)要求放在一起結(jié)合成所需要實(shí)現(xiàn)的程序。圖2-7是按照一次

13、性集成測(cè)試方式的實(shí)例。圖2-7a所示表示的是整個(gè)系統(tǒng)結(jié)構(gòu),共包含6個(gè)模塊。具體測(cè)試過(guò)程如下:如圖2-7b所示,為模塊B配備驅(qū)動(dòng)模塊D1,來(lái)模擬模塊A對(duì)B的調(diào)用。為模塊B配備樁模塊S1,來(lái)模擬模塊C被B調(diào)用。對(duì)模塊B進(jìn)行單元測(cè)試;如圖2-7d所示,為模塊D配備驅(qū)動(dòng)模塊D3以及樁模塊S2。對(duì)模塊D進(jìn)行單元測(cè)試;如圖2-7c、圖2-7e、圖2-7f所示,為模塊C、E、F分別配備驅(qū)動(dòng)模塊D2、D4、D5。對(duì)模塊C、E、F分別進(jìn)行單元測(cè)試;如圖2-7g表示,為主模塊A配備三個(gè)樁模塊S3、S4、S5。對(duì)模塊A進(jìn)行單元測(cè)試;在將模塊A、B、C、D、E分別進(jìn)行了單元測(cè)試之后,再一次性進(jìn)行集成測(cè)試;測(cè)試結(jié)束。圖

14、2-7 一次性集成測(cè)試方式(2)增值式集成測(cè)試方式把下一個(gè)要測(cè)試的模塊同已經(jīng)測(cè)好的模塊結(jié)合起來(lái)進(jìn)行測(cè)試,測(cè)試完畢,再把下一個(gè)應(yīng)該測(cè)試的模塊結(jié)合進(jìn)來(lái)繼續(xù)進(jìn)行測(cè)試。在組裝的過(guò)程中邊連接邊測(cè)試,以發(fā)現(xiàn)連接過(guò)程中產(chǎn)生的問(wèn)題。通過(guò)增值逐步組裝成為預(yù)先要求的軟件系統(tǒng)。增值式集成測(cè)試方式有三種:自頂向下增值測(cè)試方式Top-down Integration主控模塊作為測(cè)試驅(qū)動(dòng),所有與主控模塊直接相連的模塊作為樁模塊;根據(jù)集成的方式深度或廣度,每次用一個(gè)模塊把附屬的樁模塊替換成真正的模塊;在每個(gè)模塊被集成時(shí),都必須已經(jīng)進(jìn)行了單元測(cè)試;進(jìn)行回歸測(cè)試以確定集成新模塊后沒(méi)有引入錯(cuò)誤。這種組裝方式將模塊按系統(tǒng)程序結(jié)構(gòu),

15、沿著控制層次自頂向下進(jìn)行組裝。自頂向下的增值方式在測(cè)試過(guò)程中較早地驗(yàn)證了主要的控制和判斷點(diǎn)。選用按深度方向組裝的方式,可以首先實(shí)現(xiàn)和驗(yàn)證一個(gè)完整的軟件功能。圖2-8表示的是按照深度優(yōu)先方式遍歷的自頂向下增值的集成測(cè)試實(shí)例。具體測(cè)試過(guò)程如下:在樹(shù)狀結(jié)構(gòu)圖中,按照先左后右的順序確定模塊集成路線;如圖2-8a所示,先對(duì)頂層的主模塊A進(jìn)行單元測(cè)試。就是對(duì)模塊A配以樁模塊S1、S2和S3,用來(lái)模擬它所實(shí)際調(diào)用的模塊B、C、D,然后進(jìn)行測(cè)試; 如圖2-8b所示,用實(shí)際模塊B替換掉樁模塊S1,與模塊A連接,再對(duì)模塊B配以樁模塊S4,用來(lái)模擬模塊B對(duì)E的調(diào)用,然后進(jìn)行測(cè)試;圖2-8c是將模塊E替換掉樁模塊S4

16、并與模塊B相連,然后進(jìn)行測(cè)試;判斷模塊E沒(méi)有葉子節(jié)點(diǎn),也就是說(shuō)以A為根節(jié)點(diǎn)的樹(shù)狀結(jié)構(gòu)圖中的最左側(cè)分支深度遍歷結(jié)束。轉(zhuǎn)向下一個(gè)分支;圖2-8d所示,模塊C替換掉樁模塊S2,連到模塊A上,然后進(jìn)行測(cè)試;判斷模塊C沒(méi)有樁模塊,轉(zhuǎn)到樹(shù)狀結(jié)構(gòu)圖的最后一個(gè)分支;如圖2-8e所示,模塊D替換掉樁模塊S3,連到模塊A上,同時(shí)給模塊D配以樁模塊S5,來(lái)模擬其對(duì)模塊F的調(diào)用。然后進(jìn)行測(cè)試;如圖2-8f所示,去掉樁模塊S5,替換成實(shí)際模塊F連接到模塊D,然后進(jìn)行測(cè)試;對(duì)樹(shù)狀結(jié)構(gòu)圖進(jìn)行了完全測(cè)試,測(cè)試結(jié)束。圖2-8 自頂向下增值測(cè)試方式自底向上增值測(cè)試方式Bottom-up Integration組裝從最底層的模塊開(kāi)

17、始,組合成一個(gè)構(gòu)件,用以完成指定的軟件子功能。編制驅(qū)動(dòng)程序,協(xié)調(diào)測(cè)試用例的輸入與輸出;測(cè)試集成后的構(gòu)件;按程序結(jié)構(gòu)向上組裝測(cè)試后的構(gòu)件,同時(shí)除掉驅(qū)動(dòng)程序。這種組裝的方式是從程序模塊結(jié)構(gòu)的最底層的模塊開(kāi)始組裝和測(cè)試。因?yàn)槟K是自底向上進(jìn)行組裝,對(duì)于一個(gè)給定層次的模塊,它的子模塊包括子模塊的所有下屬模塊已經(jīng)組裝并測(cè)試完成,所以不再需要樁模塊。在模塊的測(cè)試過(guò)程中需要從子模塊得到的信息可以直接運(yùn)行子模塊獲得。圖2-9表示的是按照自底向上增值的集成測(cè)試?yán)印J紫?,?duì)處于樹(shù)狀結(jié)構(gòu)圖中葉子節(jié)點(diǎn)位置的模塊E、C、F進(jìn)行單元測(cè)試,如圖2-9a、圖2-9b和圖2-9c所示,分別配以驅(qū)動(dòng)模塊D1、D2和D3,用來(lái)模

18、擬模塊B、模塊A和模塊D對(duì)它們的調(diào)用。然后,如圖2-9d和圖2-9e所示,去掉驅(qū)動(dòng)模塊D1和D3,替換成模塊B和D分別與模塊E和F相連,并且設(shè)立驅(qū)動(dòng)模塊D4和D5進(jìn)行局部集成測(cè)試。最后,如圖2-9f所示,對(duì)整個(gè)系統(tǒng)結(jié)構(gòu)進(jìn)行集成測(cè)試。 圖2-9 自底向上增值測(cè)試方式混合增值測(cè)試方式改進(jìn)的自頂向下增值測(cè)試:根本思想是強(qiáng)化對(duì)輸入輸出模塊和引入新算法模塊的測(cè)試,并自底向上組裝成為功能相當(dāng)完整且相對(duì)獨(dú)立的子系統(tǒng),然后由主模塊開(kāi)始自頂向下進(jìn)行增值測(cè)試;自底向上自頂向下的增值測(cè)試混和法:首先對(duì)含讀操作的子系統(tǒng)自底向上直至根結(jié)點(diǎn)模塊進(jìn)行組裝和測(cè)試,然后對(duì)含寫操作的子系統(tǒng)做自頂向下的組裝與測(cè)試;回歸測(cè)試:這種方

19、式采取自頂向下的方式測(cè)試被修改的模塊及其子模塊,然后將這一局部視為子系統(tǒng),再自底向上測(cè)試,以檢查該子系統(tǒng)與其上級(jí)模塊的接口是否適配。 4.集成測(cè)試的組織和實(shí)施集成測(cè)試是一種正規(guī)測(cè)試過(guò)程,必須精心方案,并與單元測(cè)試的完成時(shí)間協(xié)調(diào)起來(lái)。在制定測(cè)試方案時(shí),應(yīng)考慮如下因素:是采用何種系統(tǒng)組裝方法來(lái)進(jìn)行組裝測(cè)試;組裝測(cè)試過(guò)程中連接各個(gè)模塊的順序;模塊代碼編制和測(cè)試進(jìn)度是否與組裝測(cè)試的順序一致;測(cè)試過(guò)程中是否需要專門的硬件設(shè)備。解決了上述問(wèn)題之后,就可以列出各個(gè)模塊的編制、測(cè)試方案表,標(biāo)明每個(gè)模塊單元測(cè)試完成的日期、首次集成測(cè)試的日期、集成測(cè)試全部完成的日期,以及需要的測(cè)試用例和所期望的測(cè)試結(jié)果。5集成測(cè)

20、試完成的標(biāo)志判定集成測(cè)試過(guò)程是否完成,可按以下幾個(gè)方面檢查:成功地執(zhí)行了測(cè)試方案中規(guī)定的所有集成測(cè)試;修正了所發(fā)現(xiàn)的錯(cuò)誤;測(cè)試結(jié)果通過(guò)了專門小組的評(píng)審。 6采用集成測(cè)試的原因所有的軟件工程都不能擺脫系統(tǒng)集成這個(gè)階段。不管采用什么開(kāi)發(fā)模式,具體的開(kāi)發(fā)工作總得從一個(gè)一個(gè)的軟件單元做起,軟件單元只有經(jīng)過(guò)集成才能形成一個(gè)有機(jī)的整體。 2.2.4 確認(rèn)測(cè)試 1確認(rèn)測(cè)試的定義確認(rèn)測(cè)試是檢驗(yàn)所開(kāi)發(fā)的軟件是否能按用戶提出的要求運(yùn)行。假設(shè)能到達(dá)這一要求,那么認(rèn)為開(kāi)發(fā)的軟件是合格的。因而有的軟件開(kāi)發(fā)部門把確認(rèn)測(cè)試稱為合格性測(cè)試(Qualification Testing)。2確認(rèn)測(cè)試的準(zhǔn)那么經(jīng)過(guò)確認(rèn)測(cè)試,應(yīng)該為已

21、開(kāi)發(fā)的軟件做出結(jié)論性評(píng)價(jià)。不外乎以下兩種情況之一:經(jīng)過(guò)檢驗(yàn)的軟件功能、性能及其它要求均已滿足需求規(guī)格說(shuō)明書(shū)的規(guī)定,因而可被接受,為是合格的軟件;經(jīng)過(guò)檢驗(yàn)發(fā)現(xiàn)與需求說(shuō)明書(shū)有相當(dāng)?shù)钠x,得到一個(gè)各項(xiàng)缺陷的清單。對(duì)于第二種情況,往往很難在交付期以前把發(fā)現(xiàn)的問(wèn)題糾正過(guò)來(lái)。這就需要開(kāi)發(fā)部門和客戶進(jìn)行協(xié)商,找出解決的方法。圖2-10 確認(rèn)測(cè)試階段的工作3進(jìn)行有效性測(cè)試有效性測(cè)試是在模擬的環(huán)境可能是就是開(kāi)發(fā)的環(huán)境下,運(yùn)用黑盒測(cè)試的方法,驗(yàn)證所測(cè)試件是否滿足需求規(guī)格說(shuō)明書(shū)列出的需求。為此,需要首先制定測(cè)試方案,規(guī)定要做測(cè)試的種類,還需要制定一組測(cè)試步驟,描述具體的測(cè)試用例。通過(guò)實(shí)施預(yù)定的測(cè)試方案和測(cè)試步驟,確

22、定軟件的特性是否與需求相符,確保所有的軟件功能需求都能得到滿足,所有的軟件性能需求能到達(dá),所有的文檔都是正確且易于使用。同時(shí),對(duì)其他軟件需求,例如可移植性、兼容性,自動(dòng)恢復(fù)、可維護(hù)性等,也都要進(jìn)行測(cè)試,確認(rèn)是否滿足。4確認(rèn)測(cè)試的結(jié)果在全部軟件測(cè)試的測(cè)試用例運(yùn)行完后,所有的測(cè)試結(jié)果可以分為兩類:測(cè)試結(jié)果與預(yù)期的結(jié)果相符。說(shuō)明軟件的這局部功能或性能特征與需求規(guī)格說(shuō)明書(shū)相符合,從而這局部程序被接受;測(cè)試結(jié)果與預(yù)期的結(jié)果不符。說(shuō)明軟件的這局部功能或性能特征與需求規(guī)格說(shuō)明不一致,因此要為它提交一份問(wèn)題報(bào)告。通過(guò)與用戶的協(xié)商,解決所發(fā)現(xiàn)的缺陷和錯(cuò)誤。確認(rèn)測(cè)試應(yīng)交付的文檔有:確認(rèn)測(cè)試分析報(bào)告、最終的用戶手冊(cè)

23、和操作手冊(cè)、工程開(kāi)發(fā)總結(jié)報(bào)告。5軟件配置審查軟件配置審查是確認(rèn)測(cè)試過(guò)程的重要環(huán)節(jié)。其的目的是保證軟件配置的所有成分都齊全,各方面的質(zhì)量都符合要求,維護(hù)階段所必需的細(xì)節(jié),而且已經(jīng)編排好分類的目錄。除了按合同規(guī)定的內(nèi)容和要求,由工人審查軟件配置之外,在確認(rèn)測(cè)試的過(guò)程,應(yīng)當(dāng)嚴(yán)格遵守用戶手冊(cè)和操作手冊(cè)中規(guī)定的使用步驟,以便檢查這些文檔資料的完整性和正確性。必須仔細(xì)記錄發(fā)現(xiàn)的遺漏和錯(cuò)誤,并且適當(dāng)?shù)匮a(bǔ)充和改正。2.2.5 系統(tǒng)測(cè)試 1系統(tǒng)測(cè)試的定義 系統(tǒng)測(cè)試是將已經(jīng)集成好的軟件系統(tǒng),作為整個(gè)計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行環(huán)境下,對(duì)計(jì)算

24、機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。 2系統(tǒng)測(cè)試的流程 系統(tǒng)測(cè)試流程如圖2-11所示。 3系統(tǒng)測(cè)試的目標(biāo)確保系統(tǒng)測(cè)試的活動(dòng)是按方案進(jìn)行的;驗(yàn)證軟件產(chǎn)品是否與系統(tǒng)需求用例不相符合或與之矛盾;建立完善的系統(tǒng)測(cè)試缺陷記錄跟蹤庫(kù);確保軟件系統(tǒng)測(cè)試活動(dòng)及其結(jié)果及時(shí)通知相關(guān)小組和個(gè)人。 4系統(tǒng)測(cè)試的方針為工程指定一個(gè)測(cè)試工程師負(fù)責(zé)貫徹和執(zhí)行系統(tǒng)測(cè)試活動(dòng);測(cè)試組向各事業(yè)部總經(jīng)理/工程經(jīng)理報(bào)告系統(tǒng)測(cè)試的執(zhí)行狀況;系統(tǒng)測(cè)試活動(dòng)遵循文檔化的標(biāo)準(zhǔn)和過(guò)程;向外部用戶提供經(jīng)系統(tǒng)測(cè)試驗(yàn)收通過(guò)的工程;建立相應(yīng)工程的BUG缺陷庫(kù),用于系統(tǒng)測(cè)試階段工程不同生命周期的缺陷記錄和缺陷狀態(tài)跟蹤;定期對(duì)系統(tǒng)測(cè)試活動(dòng)及結(jié)果進(jìn)行評(píng)估,向

25、各事業(yè)部經(jīng)理/工程辦總監(jiān)/工程經(jīng)理匯報(bào)工程的產(chǎn)品質(zhì)量信息及數(shù)據(jù)。 圖2-11 系統(tǒng)測(cè)試流程5系統(tǒng)測(cè)試的設(shè)計(jì) 為了保證系統(tǒng)測(cè)試質(zhì)量,必須在測(cè)試設(shè)計(jì)階段就對(duì)系統(tǒng)進(jìn)行嚴(yán)密的測(cè)試設(shè)計(jì)。這就需要在測(cè)試設(shè)計(jì)中,從多方面考慮系統(tǒng)規(guī)格的實(shí)現(xiàn)情況。通常需要從以下幾個(gè)層次來(lái)進(jìn)行設(shè)計(jì):用戶層、應(yīng)用層、功能層、子系統(tǒng)層、協(xié)議層。 用戶層:主要是面向產(chǎn)品最終的使用操作者的測(cè)試。這里重點(diǎn)突出的是在操作者角度上,測(cè)試系統(tǒng)對(duì)用戶支持的情況,用戶界面的標(biāo)準(zhǔn)性、友好性、可操作性,以及數(shù)據(jù)的平安性。主要包括:用戶支持測(cè)試、用戶界面測(cè)試、可維護(hù)性測(cè)試、平安性測(cè)試;應(yīng)用層:針對(duì)產(chǎn)品工程應(yīng)用或行業(yè)應(yīng)用的測(cè)試。重點(diǎn)站在系統(tǒng)應(yīng)用的角度,模擬

26、實(shí)際應(yīng)用環(huán)境,對(duì)系統(tǒng)的兼容性、可靠性、性能等進(jìn)行的測(cè)試。主要有:系統(tǒng)性能測(cè)試、系統(tǒng)可靠性、穩(wěn)定性測(cè)試、系統(tǒng)兼容性測(cè)試、系統(tǒng)組網(wǎng)測(cè)試、系統(tǒng)安裝升級(jí)測(cè)試;功能層:針對(duì)產(chǎn)品具體功能實(shí)現(xiàn)的測(cè)試。 主要包括:業(yè)務(wù)功能的覆蓋、業(yè)務(wù)功能的分解、業(yè)務(wù)功能的組合、業(yè)務(wù)功能的沖突;子系統(tǒng)層:針對(duì)產(chǎn)品內(nèi)部結(jié)構(gòu)性能的測(cè)試。關(guān)注子系統(tǒng)內(nèi)部的性能,模塊間接口的瓶頸。主要內(nèi)容:?jiǎn)蝹€(gè)子系統(tǒng)的性能、子系統(tǒng)間的接口瓶頸、子系統(tǒng)間的相互影響;協(xié)議/指標(biāo)層:針對(duì)系統(tǒng)支持的協(xié)議、指標(biāo)的測(cè)試。測(cè)試內(nèi)容:協(xié)議一致性測(cè)試、協(xié)議互通測(cè)試。 6幾種常見(jiàn)的系統(tǒng)測(cè)試方法(1) 恢復(fù)測(cè)試(2) 平安測(cè)試(3) 強(qiáng)度測(cè)試(4) 性能測(cè)試(5) 容量測(cè)試

27、(6) 正確性測(cè)試(7) 可靠性測(cè)試(8) 兼容性測(cè)試(9) Web網(wǎng)站測(cè)試2.2.6 驗(yàn)收測(cè)試 1驗(yàn)收測(cè)試的定義驗(yàn)收測(cè)試是軟件產(chǎn)品完成了功能測(cè)試和系統(tǒng)測(cè)試之后,在產(chǎn)品發(fā)布之前所進(jìn)行的軟件測(cè)試活動(dòng),是技術(shù)測(cè)試的最后一個(gè)階段,通過(guò)了驗(yàn)收測(cè)試,產(chǎn)品正式進(jìn)入發(fā)布階段。2驗(yàn)收測(cè)試的內(nèi)容軟件驗(yàn)收測(cè)試應(yīng)完成的工作內(nèi)容如下:要明確驗(yàn)收工程,規(guī)定驗(yàn)收測(cè)試通過(guò)的標(biāo)準(zhǔn);確定測(cè)試方法;決定驗(yàn)收測(cè)試的組織機(jī)構(gòu)和可利用的資源;選定測(cè)試結(jié)果分析方法;指定驗(yàn)收測(cè)試方案并進(jìn)行評(píng)審;設(shè)計(jì)驗(yàn)收測(cè)試所用的測(cè)試用例;審查驗(yàn)收測(cè)試準(zhǔn)備工作;執(zhí)行驗(yàn)收測(cè)試;分析測(cè)試結(jié)果;做出驗(yàn)收結(jié)論,明確通過(guò)驗(yàn)收或不通過(guò)驗(yàn)收,給出測(cè)試結(jié)果。3驗(yàn)收測(cè)試的標(biāo)

28、準(zhǔn)實(shí)現(xiàn)軟件確認(rèn)要通過(guò)一系列黑盒測(cè)試。驗(yàn)收測(cè)試同樣需要制訂測(cè)試方案和過(guò)程,測(cè)試方案應(yīng)規(guī)定測(cè)試的種類和測(cè)試進(jìn)度,測(cè)試過(guò)程那么定義一些特殊的測(cè)試用例,旨在說(shuō)明軟件與需求是否一致。無(wú)是方案還是過(guò)程,都應(yīng)該著重考慮軟件是否滿足合同規(guī)定的所有功能和性能,文檔資料是否完整、準(zhǔn)確人機(jī)界面和其他方面例如,可移植性、兼容性、錯(cuò)誤恢復(fù)能力和可維護(hù)性等是否令用戶滿意。 驗(yàn)收測(cè)試的結(jié)果有兩種可能,一種是功能和性能指標(biāo)滿足軟件需求說(shuō)明的要求,用戶可以接受;另一種是軟件不滿足軟件需求說(shuō)明的要求,用戶無(wú)法接受。工程進(jìn)行到這個(gè)階段才發(fā)現(xiàn)嚴(yán)重錯(cuò)誤和偏差一般很難在預(yù)定的工期內(nèi)改正,因此必須與用戶協(xié)商,尋求一個(gè)妥善解決問(wèn)題的方法。4

29、驗(yàn)收測(cè)試的常用策略選擇的驗(yàn)收測(cè)試的策略通常建立在合同需求、組織和公司標(biāo)準(zhǔn)以及應(yīng)用領(lǐng)域的根底上。實(shí)施驗(yàn)收測(cè)試的常用策略有三種,它們分別是: (1) 正式驗(yàn)收(2) 非正式驗(yàn)收或 Alpha 測(cè)試 (3) Beta 測(cè)試 5驗(yàn)收測(cè)試的過(guò)程驗(yàn)收測(cè)試工作流程如圖2-12所示6驗(yàn)收測(cè)試的總體思路 用戶驗(yàn)收測(cè)試可以分為兩個(gè)大的局部:軟件配置審核可執(zhí)行程序測(cè)試其大致順序可分為:文檔審核、源代碼審核、配置腳本審核、測(cè)試程序或腳本審核、可執(zhí)行程序測(cè)試。 圖2-12 驗(yàn)收測(cè)試工作流程圖2-13 靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試的比喻圖2.3 靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試 2.3.1 靜態(tài)測(cè)試根據(jù)程序是否運(yùn)行可以把軟件測(cè)試方法分為靜態(tài)測(cè)試

30、Static Testing和動(dòng)態(tài)測(cè)試Dynamic Testing兩大類。圖2-13是靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試的比喻圖。靜態(tài)測(cè)試可以完成的工作如下:(1) 可以發(fā)現(xiàn)如下的程序缺陷:錯(cuò)用了局部變量和全局變量;不匹配的參數(shù);未定義的變量;不適當(dāng)?shù)难h(huán)嵌套或分支嵌套;無(wú)終止的死循環(huán);不允許的遞歸;調(diào)用不存在的子程序;遺漏了標(biāo)號(hào)或代碼。(2) 找出如下問(wèn)題的根源:未使用過(guò)的變量;不會(huì)執(zhí)行到的代碼;從未引用過(guò)的標(biāo)號(hào);潛在的死循環(huán)。(3) 提供程序缺陷的如下間接信息:標(biāo)識(shí)符的使用方式;過(guò)程的調(diào)用層次;所用變量和常量的交叉應(yīng)用表;是否違背編碼規(guī)那么。(4) 為進(jìn)一步查錯(cuò)做準(zhǔn)備。(5) 選擇測(cè)試用例。(6) 進(jìn)行

31、符號(hào)測(cè)試。 2.3.2 動(dòng)態(tài)測(cè)試 動(dòng)態(tài)方法是通過(guò)源程序運(yùn)行時(shí)所表達(dá)出來(lái)的特征,來(lái)進(jìn)行執(zhí)行跟蹤、時(shí)間分析以及測(cè)試覆蓋等方面的測(cè)試。動(dòng)態(tài)測(cè)試是真正運(yùn)行被測(cè)程序,在執(zhí)行過(guò)程中,通過(guò)輸入有效的測(cè)試用例,對(duì)其輸入與輸出的對(duì)應(yīng)關(guān)系進(jìn)行分析,以到達(dá)檢測(cè)的目的。動(dòng)態(tài)測(cè)試方法的根本步驟:選取定義域有效值,或定義域外無(wú)效值;對(duì)已選取值決定預(yù)期的結(jié)果;用選取值執(zhí)行程序;執(zhí)行結(jié)果與預(yù)期的結(jié)果相比,不吻合程序有錯(cuò)。2.4 黑盒測(cè)試與白盒測(cè)試 2.4.1 黑盒測(cè)試黑盒測(cè)試Black-box Testing又稱為功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試和基于規(guī)格說(shuō)明的測(cè)試。是一種從用戶觀點(diǎn)出發(fā)的測(cè)試。黑盒測(cè)試的根本觀點(diǎn)是:任何程序都可以看作是從輸入定義域映射到輸出值域的函數(shù)過(guò)程,被測(cè)程序被認(rèn)為是一個(gè)打不開(kāi)的黑盒子,黑盒中的內(nèi)容實(shí)現(xiàn)過(guò)程完全不知

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論