版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章軟件測(cè)試概述1本章概述軟件測(cè)試的發(fā)展歷史軟件測(cè)試技術(shù)的分類方法、測(cè)試標(biāo)準(zhǔn)、測(cè)試原則軟件測(cè)試與軟件開發(fā)的關(guān)系2目錄1.1軟件測(cè)試背景
1.2軟件測(cè)試的基本理論
1.3軟件測(cè)試與軟件開發(fā)31.1軟件測(cè)試背景軟件的質(zhì)量就是軟件的生命,為了保證軟件的質(zhì)量,人們?cè)陂L(zhǎng)期的開發(fā)過程中積累了許多經(jīng)驗(yàn)并形成了許多行之有效的方法。但是借助這些方法,我們只能盡量減少軟件中的錯(cuò)誤和不足,卻不能完全避免所有的錯(cuò)誤。軟件測(cè)試是最有效的排除和防止軟件缺陷與故障的手段,并由此促進(jìn)了軟件測(cè)試?yán)碚撆c技術(shù)實(shí)踐的快速發(fā)展。新的測(cè)試?yán)碚?、測(cè)試方法、測(cè)試技術(shù)手段在不斷涌出,軟件測(cè)試機(jī)構(gòu)和組織也在迅速產(chǎn)生和發(fā)展,由此軟件測(cè)試技術(shù)職業(yè)也同步完善和健全起來。41.1.1軟件缺陷
⒈軟件錯(cuò)誤案例研究⑴迪斯尼的獅子王游戲軟件缺陷-⑵愛國(guó)者導(dǎo)彈防御系統(tǒng)缺陷-⑶千年蟲問題-⑷美國(guó)航天局火星登陸探測(cè)器缺陷-⑸金山詞霸缺陷-⑹英特爾奔騰浮點(diǎn)除法缺陷-51.1.1軟件缺陷⒉軟件缺陷的定義⑴對(duì)于軟件存在的各種問題可稱為軟件缺陷或軟件故障(bug)⑵計(jì)算機(jī)系統(tǒng)或者程序中存在的任何一種破壞正常運(yùn)行能力的問題、錯(cuò)誤,或者隱藏的功能缺陷、瑕疵⑶對(duì)于軟件缺陷的準(zhǔn)確定義,通常有以下5條描述:①軟件未實(shí)現(xiàn)產(chǎn)品說明書要求的功能。②軟件出現(xiàn)了產(chǎn)品說明書指明不會(huì)出現(xiàn)的錯(cuò)誤。③軟件超出實(shí)現(xiàn)了產(chǎn)品說明書提到的功能。④軟件實(shí)現(xiàn)了產(chǎn)品說明書雖未明確指出但應(yīng)該實(shí)現(xiàn)的目標(biāo)。⑤軟件難以理解,不易使用,運(yùn)行緩慢或者終端用戶認(rèn)為不好。6例如:計(jì)算器說明有使用。計(jì)算器的產(chǎn)品說明書聲稱它能夠準(zhǔn)確無誤地進(jìn)行加、減、乘、除運(yùn)算。當(dāng)你拿到計(jì)算器后,按下(+)鍵,結(jié)果什么反應(yīng)也沒有,這是一個(gè)缺陷。假如得到錯(cuò)誤答案,這同樣是一個(gè)缺陷。若產(chǎn)品說明書聲稱計(jì)算器永遠(yuǎn)不會(huì)崩潰、鎖死或者停止反應(yīng)。當(dāng)你任意敲鍵盤,計(jì)算器停止接受輸入,這是一個(gè)缺陷。若用計(jì)算器進(jìn)行測(cè)試,發(fā)現(xiàn)除了加、減、乘、除之外它還可以求平方根,說明書中從沒提到這一功能,這是軟件缺陷。若在測(cè)試計(jì)算器時(shí),會(huì)發(fā)現(xiàn)電池沒電會(huì)導(dǎo)致計(jì)算不正確,但產(chǎn)品說明書未指出這個(gè)問題。這是個(gè)缺陷。如“=”鍵布置的位置使其極其不好按;或在明亮光下顯示屏難以看清。這些都是缺陷。1.1.1軟件缺陷—①軟件未實(shí)現(xiàn)產(chǎn)品說明書要求的功能—②軟件出現(xiàn)了產(chǎn)品說明書指明不會(huì)出現(xiàn)的錯(cuò)誤—③軟件超出實(shí)現(xiàn)了產(chǎn)品說明書提到的功能—④軟件實(shí)現(xiàn)了產(chǎn)品說明書雖未明確指出但應(yīng)該實(shí)現(xiàn)的目標(biāo)—⑤軟件難以理解,不易使用,運(yùn)行緩慢或者終端用戶認(rèn)為不好71.1.1軟件缺陷⒊軟件缺陷的原因軟件缺陷的產(chǎn)生,首先是不可避免的。造成軟件缺陷的原因,歸納如下:(1)技術(shù)問題算法錯(cuò)誤。語法錯(cuò)誤。計(jì)算和精度問題。系統(tǒng)結(jié)構(gòu)不合理,造成系統(tǒng)性能問題。接口參數(shù)不匹配出現(xiàn)問題。81.1.1軟件缺陷⒉團(tuán)隊(duì)工作系統(tǒng)分析時(shí)對(duì)客戶的需求不是十分清楚,或者和用戶的溝通存在一些困難。不同階段的開發(fā)人員相互理解不一致,軟件設(shè)計(jì)對(duì)需求分析結(jié)果的理解偏差,編程人員對(duì)系統(tǒng)設(shè)計(jì)規(guī)格說明書中某些內(nèi)容重視不夠,或存在著誤解。設(shè)計(jì)或編程上的一些假定或依賴性,沒有得到充分的溝通。91.1.1軟件缺陷⒊軟件本身文檔錯(cuò)誤、內(nèi)容不正確或拼寫錯(cuò)誤。數(shù)據(jù)考慮不周全引起強(qiáng)度或負(fù)載問題。對(duì)邊界考慮不夠周全,漏掉某幾個(gè)邊界條件造成的錯(cuò)誤。對(duì)一些實(shí)時(shí)應(yīng)用系統(tǒng),保證精確的時(shí)間同步,否則容易引起時(shí)間上不協(xié)調(diào)、不一致性帶來的問題。沒有考慮系統(tǒng)崩潰后在系統(tǒng)安全性、可靠性的隱患。硬件或系統(tǒng)軟件上存在的錯(cuò)誤。軟件開發(fā)標(biāo)準(zhǔn)或過程上的錯(cuò)誤。101.1.1軟件缺陷⒋軟件缺陷的組成我們知道軟件缺陷是由很多原因造成的,如果把它們按需求分析結(jié)果——規(guī)格說明書,系統(tǒng)設(shè)計(jì)結(jié)果,編程的代碼等歸類起來,比較后發(fā)現(xiàn),結(jié)果規(guī)格說明書是軟件缺陷出現(xiàn)最多的地方,如圖1-1。111.1.1軟件缺陷軟件產(chǎn)品規(guī)格說明書為什么是軟件缺陷存在最多的地方,主要原因有以下幾種。用戶一般是非計(jì)算機(jī)專業(yè)人員,軟件開發(fā)人員和用戶的溝通存在較大困難,對(duì)要開發(fā)的產(chǎn)品功能理解不一致。由于軟件產(chǎn)品還沒有設(shè)計(jì)、開發(fā)、完全靠想象去描述系統(tǒng)的實(shí)現(xiàn)結(jié)果,所以有些特性還不夠清晰。需求變化的不一致性。用戶的需求總是在不斷變化的,這些變化如果沒有在產(chǎn)品規(guī)格說明書中得到正確的描述,容易引起前后文,上下文的矛盾。對(duì)規(guī)格說明書不夠重視,在規(guī)格說明書的設(shè)計(jì)和寫作上投入的人力,時(shí)間不足。沒有在整個(gè)開發(fā)隊(duì)伍中進(jìn)行充分溝通,有時(shí)只有設(shè)計(jì)師或項(xiàng)目經(jīng)理得到比較多的信息。121.1.1軟件缺陷⒌軟件缺陷的修復(fù)費(fèi)用軟件不僅僅是表面上的那些東西——通常要靠有計(jì)劃、有條理的開發(fā)過程來實(shí)現(xiàn)。從開始到計(jì)劃、編程、測(cè)試,到公開使用的過程中,都有可能發(fā)現(xiàn)軟件缺陷。費(fèi)用指數(shù)級(jí)地增長(zhǎng)——也就是說,隨著時(shí)間的推移,費(fèi)用呈十倍地增長(zhǎng)。當(dāng)早期編寫產(chǎn)品說明書時(shí)發(fā)現(xiàn)并修復(fù)缺陷,費(fèi)用只要1美元甚至更少。同樣的缺陷如果直到軟件編寫完成開始測(cè)試時(shí)才發(fā)現(xiàn),費(fèi)用可能要10~100美元。如果是客戶發(fā)現(xiàn)的,費(fèi)用可能達(dá)到數(shù)千甚至數(shù)百萬美元。131.1.2軟件測(cè)試技術(shù)的發(fā)展歷史和現(xiàn)狀⒈軟件測(cè)試技術(shù)的發(fā)展歷史隨著計(jì)算機(jī)的誕生——在軟件行業(yè)發(fā)展初期就已經(jīng)開始實(shí)施軟件測(cè)試,但只有是一種類似調(diào)試的測(cè)試。20世紀(jì)50年代后期到20世紀(jì)60年代,測(cè)試的重點(diǎn)也逐步轉(zhuǎn)入到使用高級(jí)語言編寫的軟件系統(tǒng)中來。這一時(shí)期軟件測(cè)試的理論和方法發(fā)展比較緩慢。20世紀(jì)70年代以后,隨著軟件開發(fā)技術(shù)的成熟和完善,很多測(cè)試?yán)碚摵蜏y(cè)試方法應(yīng)運(yùn)而生,逐漸形成了一套完整的體系,培養(yǎng)和造就了一批批出色的測(cè)試人才。如今在整個(gè)軟件開發(fā)過程中,測(cè)試已經(jīng)不再只是基于程序代碼進(jìn)行的活動(dòng),而是一個(gè)基于整個(gè)軟件生命周期的質(zhì)量控制活動(dòng),貫穿于軟件開發(fā)的各個(gè)階段。141.1.2軟件測(cè)試技術(shù)的發(fā)展歷史和現(xiàn)狀⒉軟件測(cè)試的現(xiàn)狀在我國(guó),軟件測(cè)試可能算不上一個(gè)真正的產(chǎn)業(yè),軟件開發(fā)企業(yè)對(duì)軟件測(cè)試認(rèn)識(shí)淡薄,軟件測(cè)試人員與軟件開發(fā)人員往往比例失調(diào),而在發(fā)達(dá)國(guó)家和地區(qū)軟件測(cè)試已經(jīng)成了一個(gè)產(chǎn)業(yè),微軟的開發(fā)工程師與測(cè)試工程師的比例是1:2,國(guó)內(nèi)一般公司是6:1。與一些發(fā)達(dá)國(guó)家相比,國(guó)內(nèi)測(cè)試工作還存在一定的差距。主要體現(xiàn)在測(cè)試意識(shí)以及測(cè)試?yán)碚摰难芯?,大型測(cè)試工具軟件的開發(fā)以及從業(yè)人員數(shù)量等方面。但是,我們?cè)谲浖y(cè)試實(shí)現(xiàn)方面并不比國(guó)外差,國(guó)際上優(yōu)秀的測(cè)試工具,我們基本都有,這些工具所體現(xiàn)的思想我們也有深刻的理解,很多大型系統(tǒng)在國(guó)內(nèi)都得到了很好的測(cè)試。151.2軟件測(cè)試的基本理論1.2.1軟件測(cè)試定義和目標(biāo)⒈軟件測(cè)試的定義軟件測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程。具體說,它是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)出一批測(cè)試用例,并利用測(cè)試用例來運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過程。⒉軟件測(cè)試的目標(biāo)⑴測(cè)試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯(cuò)誤,不能證明程序的正確性,僅限于處理有限種的情況。⑵檢查系統(tǒng)是否滿足需求,這也是測(cè)試的期望目標(biāo)。⑶一個(gè)好的測(cè)試用例在于發(fā)現(xiàn)還未曾發(fā)現(xiàn)的錯(cuò)誤;成功的測(cè)試是發(fā)現(xiàn)了錯(cuò)誤的測(cè)試。161.2.2軟件測(cè)試標(biāo)準(zhǔn)⒈軟件測(cè)試的目標(biāo)在于揭示錯(cuò)誤。測(cè)試人員要始終站在用戶的角度去看問題,系統(tǒng)中最嚴(yán)重的錯(cuò)誤的是那些導(dǎo)致程序無法滿足用戶需求的錯(cuò)誤。⒉軟件測(cè)試必須基于“質(zhì)量第一”的思想去開展各項(xiàng)工作。⒊事先定義好產(chǎn)品的質(zhì)量標(biāo)準(zhǔn)。只有建立了質(zhì)量標(biāo)準(zhǔn),才能根據(jù)測(cè)試的結(jié)果,對(duì)產(chǎn)品的質(zhì)量進(jìn)行分析和評(píng)估。⒋軟件項(xiàng)目一啟動(dòng),軟件測(cè)試也就開始,而不是等程序?qū)懲?,才開始進(jìn)行測(cè)試。⒌測(cè)試用例是設(shè)計(jì)出來的,不是寫出來的,所以要根據(jù)測(cè)試的目的,采用相應(yīng)的方法去設(shè)計(jì)測(cè)試用例,從而提高測(cè)試的效率,更多的發(fā)現(xiàn)錯(cuò)誤,提高程序的可靠性。⒍對(duì)發(fā)現(xiàn)錯(cuò)誤較多的程序段,應(yīng)進(jìn)行更深入的測(cè)試。171.2.3軟件測(cè)試原則-1⒈應(yīng)當(dāng)把盡早地和不斷地進(jìn)行軟件測(cè)試作為軟件開發(fā)者的座右銘。堅(jiān)持在軟件開發(fā)的各個(gè)階段的技術(shù)評(píng)審,這樣才能在開發(fā)過程中盡早發(fā)現(xiàn)和預(yù)防錯(cuò)誤,把出現(xiàn)的錯(cuò)誤克服在早期,杜絕某些隱患,提高軟件質(zhì)量。⒉測(cè)試用例應(yīng)由測(cè)試輸入數(shù)據(jù)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。如果對(duì)測(cè)試輸入數(shù)據(jù)沒有給出預(yù)期的程序輸出結(jié)果,那么就缺少了檢驗(yàn)實(shí)測(cè)結(jié)果的基準(zhǔn),就有可能把一個(gè)似是而非的錯(cuò)誤結(jié)果當(dāng)成正確結(jié)果。⒊程序員應(yīng)避免檢查自己的程序。如果由別人來測(cè)試程序員編寫的程序,可能會(huì)更客觀,更有效,并更容易取得成功。⒋在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。181.2.3軟件測(cè)試原則-2⒌充分注意測(cè)試中的群集現(xiàn)象。測(cè)試時(shí)不要以為找到了幾個(gè)錯(cuò)誤問題就已解決,不需繼續(xù)測(cè)試了。應(yīng)當(dāng)對(duì)錯(cuò)誤群集的程序段進(jìn)行重點(diǎn)測(cè)試,以提高測(cè)試投資的效益。⒍嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。對(duì)于測(cè)試計(jì)劃,要明確規(guī)定,不要隨意解釋。⒎應(yīng)當(dāng)對(duì)每一個(gè)測(cè)試結(jié)果做全面檢查。這是一條最明顯的原則,但常常被忽視。必須對(duì)預(yù)期的輸出結(jié)果明確定義,對(duì)實(shí)測(cè)的結(jié)果仔細(xì)分析檢查,抓住關(guān)鍵,暴露錯(cuò)誤。⒏妥善保存測(cè)試計(jì)劃,測(cè)試用例,出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。191.2.4軟件測(cè)試分類-1⒈從是否需要執(zhí)行被測(cè)軟件的角度分類靜態(tài)測(cè)試(StaticTesting)和動(dòng)態(tài)測(cè)試(DynamicTesting)靜態(tài)測(cè)試就是通過對(duì)被測(cè)程序的靜態(tài)審查,發(fā)現(xiàn)代碼中潛在的錯(cuò)誤。它一般用人工方式脫機(jī)完成,故亦稱人工測(cè)試或代碼評(píng)審(CodeReview);也可借助于靜態(tài)分析器在機(jī)器上以自動(dòng)方式進(jìn)行檢查,但不要求程序本身在機(jī)器上運(yùn)行。按照評(píng)審的不同組織形式,代碼評(píng)審又可分為代碼會(huì)審,走查以及辦公桌檢查,同行評(píng)分4種。對(duì)某個(gè)具體的程序,通常只使用一種評(píng)審方式。動(dòng)態(tài)測(cè)試:動(dòng)態(tài)測(cè)試的對(duì)象必須是能夠由計(jì)算機(jī)真正運(yùn)行的被測(cè)試的程序。它分為黑盒測(cè)試和白盒測(cè)試,也是我們下面將要介紹的內(nèi)容。20靜態(tài)測(cè)試-1靜態(tài)方法的主要特征是在用計(jì)算機(jī)測(cè)試源程序時(shí),計(jì)算機(jī)并不真正運(yùn)行被測(cè)試的程序,只對(duì)被測(cè)試程序進(jìn)行特性分析。靜態(tài)測(cè)試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。靜態(tài)測(cè)試可以完成的工作如下:(1)可以發(fā)現(xiàn)如下的程序缺陷:錯(cuò)用了局部變量和全局變量;不匹配的參數(shù);未定義的變量;不適當(dāng)?shù)难h(huán)嵌套或分支嵌套;無終止的死循環(huán);不允許的遞歸;調(diào)用不存在的子程序;遺漏了標(biāo)號(hào)或代碼。21靜態(tài)測(cè)試-2(2)找出如下問題的根源:未使用過的變量;不會(huì)執(zhí)行到的代碼;從未引用過的標(biāo)號(hào);潛在的死循環(huán)。(3)提供程序缺陷的如下間接信息:標(biāo)識(shí)符的使用方式;過程的調(diào)用層次;所用變量和常量的交叉應(yīng)用表;是否違背編碼規(guī)則。(4)為進(jìn)一步查錯(cuò)做準(zhǔn)備。(5)選擇測(cè)試用例。實(shí)踐表明:靜態(tài)測(cè)試可發(fā)現(xiàn)大約1/3-2/3的邏輯設(shè)計(jì)和編碼錯(cuò)誤。22動(dòng)態(tài)測(cè)試動(dòng)態(tài)測(cè)試是真正運(yùn)行被測(cè)程序,在執(zhí)行過程中,通過輸入有效的測(cè)試用例,對(duì)其輸入與輸出的對(duì)應(yīng)關(guān)系進(jìn)行分析,以達(dá)到檢測(cè)的目的。動(dòng)態(tài)測(cè)試方法的基本步驟:⑴選取定義域有效值,或定義域外無效值;⑵對(duì)已選取值決定預(yù)期的結(jié)果;⑶用選取值執(zhí)行程序;⑷執(zhí)行結(jié)果與預(yù)期的結(jié)果相比,不吻合程序有錯(cuò)。231.2.4軟件測(cè)試分類-2⒉從軟件測(cè)試用例設(shè)計(jì)方法的角度分類黑盒測(cè)試(Black-BoxTesting)和白盒測(cè)試(White-BoxTesting)24黑盒測(cè)試黑盒測(cè)試(Black-boxTesting)又稱為功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試和基于規(guī)格說明的測(cè)試。是一種從用戶觀點(diǎn)出發(fā)的測(cè)試。黑盒測(cè)試的基本觀點(diǎn)是:任何程序都可以看作是從輸入定義域映射到輸出值域的函數(shù)過程,被測(cè)程序被認(rèn)為是一個(gè)打不開的黑盒子,黑盒中的內(nèi)容(實(shí)現(xiàn)過程)完全不知道,只明確要做到什么。黑盒測(cè)試作為軟件功能的測(cè)試手段,是重要的測(cè)試方法。它主要根據(jù)規(guī)格說明設(shè)計(jì)測(cè)試用例,并不涉及程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性,只依靠被測(cè)程序輸入和輸出之間的關(guān)系或程序的功能設(shè)計(jì)測(cè)試用例。黑盒測(cè)試的具體技術(shù)方法主要包括:邊界值分析法、等價(jià)類劃分法、比較測(cè)試法、決策表法、因果圖法等。25白盒測(cè)試白盒測(cè)試(White-boxTesting)也稱作結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,它是知道產(chǎn)品內(nèi)部工作過程,可通過測(cè)試來檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行。按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,檢驗(yàn)程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能。白盒測(cè)試的主要方法有:邏輯覆蓋、基本路徑測(cè)試等,主要用于軟件驗(yàn)證。通常的程序邏輯覆蓋有:語句覆蓋;判斷覆蓋;條件覆蓋;判斷/條件覆蓋;條件組合覆蓋;路徑覆蓋。26黑盒測(cè)試與白盒測(cè)試黑盒測(cè)試白盒測(cè)試優(yōu)點(diǎn)①適用于各個(gè)測(cè)試階段;②從產(chǎn)品功能角度進(jìn)行測(cè)試;③容易入手生成測(cè)試數(shù)據(jù)。①可構(gòu)成測(cè)試數(shù)據(jù)使特定程序部分得到測(cè)試;②有一定充分性度量手段;③可獲較多工具支持。缺點(diǎn)①某些代碼得不到測(cè)試;②如果規(guī)則說明有誤,無法發(fā)現(xiàn);③不易進(jìn)行充分行測(cè)試。①不易生成測(cè)試數(shù)據(jù);②無法對(duì)未實(shí)現(xiàn)規(guī)格說明的部分進(jìn)行測(cè)試;③工作量大,通常只用于單元測(cè)試,有應(yīng)用局限性。性質(zhì)一種確認(rèn)技術(shù),目的是確認(rèn)“設(shè)計(jì)的系統(tǒng)是否正確”。一種驗(yàn)證技術(shù),目的是驗(yàn)證“系統(tǒng)的設(shè)計(jì)是否正確”。271.2.4軟件測(cè)試分類-3⒊從軟件測(cè)試的策略和過程的角度分類單元測(cè)試(UnitTesting),集成測(cè)試(IntegrationTesting),確認(rèn)測(cè)試(ValidationTesting),系統(tǒng)測(cè)試(SystemTesting)和驗(yàn)收測(cè)試(VerificationTesting)單元測(cè)試是針對(duì)每個(gè)單元的測(cè)試,是軟件測(cè)試的最小單位。它確保每個(gè)模塊能正常工作。單元測(cè)試多數(shù)使用白盒測(cè)試,用以發(fā)現(xiàn)內(nèi)部錯(cuò)誤。集成測(cè)試是對(duì)已測(cè)試過的模塊進(jìn)行組裝,進(jìn)行集成測(cè)試的目的主要在于檢驗(yàn)與軟件設(shè)計(jì)相關(guān)的程序結(jié)構(gòu)問題。集成測(cè)試一般通過黑盒測(cè)試方法來完成。確認(rèn)測(cè)試是檢驗(yàn)所開發(fā)的軟件能否滿足所有功能和性能需求的最后手段,通常采用黑盒測(cè)試方法。系統(tǒng)測(cè)試的主要任務(wù)是檢測(cè)被測(cè)軟件與系統(tǒng)的其他部分的協(xié)調(diào)性。驗(yàn)收測(cè)試是軟件產(chǎn)品質(zhì)量的最后一關(guān)。這一環(huán)節(jié),測(cè)試主要從用戶的角度著手,其參與者主要是用戶和少量的程序開發(fā)人員。281.3軟件測(cè)試與軟件開發(fā)⒈測(cè)試與軟件開發(fā)各階段的關(guān)系軟件開發(fā)過程是一個(gè)自頂向下,逐步細(xì)化的過程,首先在軟件計(jì)劃階段定義了軟件的作用域,然后進(jìn)行軟件需求分析,建立軟件的數(shù)據(jù)域、功能和性能需求、約束和一些有效性準(zhǔn)則。接著進(jìn)入軟件開發(fā),首先是軟件設(shè)計(jì),然后再把設(shè)計(jì)用某種程序設(shè)計(jì)語言轉(zhuǎn)換成程序代碼。測(cè)試過程則是依相反的順序安排的自底向上,逐步集成的過程,低一級(jí)測(cè)試為上一級(jí)測(cè)試準(zhǔn)備條件。291.3軟件測(cè)試與軟件開發(fā)⒉測(cè)試與開發(fā)模型軟件測(cè)試不僅僅是執(zhí)行測(cè)試,而是一個(gè)包含很多復(fù)雜活動(dòng)的過程,并且這些過程應(yīng)該貫穿于整個(gè)軟件開發(fā)過程。在軟件開發(fā)過程中,應(yīng)該什么時(shí)候進(jìn)行測(cè)試,如何更好地把軟件開發(fā)和測(cè)試活動(dòng)集成到一起?其實(shí)這也是軟件測(cè)試工作人員必須考慮的問題,因?yàn)橹挥羞@樣,才能提高軟件測(cè)試工作的效率,提高軟件產(chǎn)品的質(zhì)量,最大限度地降低軟件開發(fā)與測(cè)試的成本,減少重復(fù)勞動(dòng)。如圖1-4所示,即為軟件測(cè)試與開發(fā)的完整流程。30小結(jié)本章從軟件缺陷實(shí)例為出發(fā)點(diǎn)介紹了軟件測(cè)試背景和測(cè)試發(fā)展的歷程,以及它在國(guó)內(nèi)的發(fā)展?fàn)顩r。隨著軟件開發(fā)過程和開發(fā)技術(shù)的不斷改進(jìn),軟件測(cè)試?yán)碚摵头椒ㄒ苍诓粩嗤晟?,測(cè)試工具也在蓬勃發(fā)展。軟件測(cè)試是軟件質(zhì)量保證的手段,本章講述了軟件測(cè)試的定義,并以最少的時(shí)間和人力找出軟件中潛在的各種錯(cuò)誤和缺陷作為測(cè)試目標(biāo),闡述了軟件測(cè)試執(zhí)行的標(biāo)準(zhǔn)和軟件測(cè)試的原則。從不同角度,對(duì)軟件測(cè)試進(jìn)行了分類:從是否需要執(zhí)行被測(cè)軟件的角度可分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試;從軟件測(cè)試用例設(shè)計(jì)方法的角度可分為黑盒測(cè)試和白盒測(cè)試;從軟件測(cè)試的策略和過程的角度又可分為單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試。最后介紹了軟件開發(fā)與軟件測(cè)試的相輔相成的關(guān)系。31⑴迪斯尼的獅子王游戲軟件缺陷1994年秋天,迪斯尼公司發(fā)布了第一個(gè)面向兒童的多媒體光盤游戲——獅子王動(dòng)畫故事書(TheLionKingAnimatedStorybook)。盡管已經(jīng)有許多其他公司在兒童游戲市場(chǎng)上運(yùn)作多年,但是這次是迪斯尼公司首次進(jìn)軍這個(gè)市場(chǎng),所以進(jìn)行了大量促銷宣傳。結(jié)果,銷售額非??捎^,該游戲成為孩子們那年節(jié)假日的“必買游戲”。然而后來卻飛來橫禍。12月26日,圣誕節(jié)的后一天,迪斯尼公司的客戶支持電話開始響個(gè)不停。很快,電話支持技術(shù)員們就淹沒在來自于憤怒的家長(zhǎng)并伴隨著玩不成游戲的孩子們哭叫的電話之中。報(bào)紙和電視新聞進(jìn)行了大量的報(bào)道。后來證實(shí),迪斯尼公司未能對(duì)市面上投入使用的許多不同類型的PC機(jī)型進(jìn)行廣泛的測(cè)試。軟件在極少數(shù)系統(tǒng)中工作正?!?例如在迪斯尼程序員用來開發(fā)游戲的系統(tǒng)中——但在大多數(shù)公眾使用的系統(tǒng)中卻不能運(yùn)行。32⑵愛國(guó)者導(dǎo)彈防御系統(tǒng)缺陷愛國(guó)者導(dǎo)彈防御系統(tǒng)是里根總統(tǒng)提出的戰(zhàn)略防御計(jì)劃(即星球大戰(zhàn)計(jì)劃)的縮略版本,它首次應(yīng)用在海灣戰(zhàn)爭(zhēng)中對(duì)抗伊拉克飛毛腿導(dǎo)彈的防御戰(zhàn)中。盡管對(duì)系統(tǒng)贊譽(yù)的報(bào)道不絕于耳,但是它確實(shí)在對(duì)抗幾枚導(dǎo)彈中失利,包括一次在沙特阿拉伯的多哈擊斃了28名美國(guó)士兵。分析發(fā)現(xiàn)癥結(jié)在于一個(gè)軟件缺陷,系統(tǒng)時(shí)鐘的一個(gè)很小的計(jì)時(shí)錯(cuò)誤積累起來到14小時(shí)后,跟蹤系統(tǒng)不再準(zhǔn)確。在多哈的這次襲擊中,系統(tǒng)已經(jīng)運(yùn)行了100多個(gè)小時(shí)。33⑶千年蟲問題20世紀(jì)70年代早期的某個(gè)時(shí)間,某位程序員正在為本公司設(shè)計(jì)開發(fā)工資系統(tǒng)。他使用的計(jì)算機(jī)存儲(chǔ)空間很小,迫使他盡量節(jié)省每一個(gè)字節(jié)。他將自己的程序壓縮得比其他任何人都緊湊。使用的其中一個(gè)方法是把4位數(shù)年份,例如1973年,縮減為2位數(shù),73。因?yàn)楣べY系統(tǒng)相當(dāng)信賴于日期的處理,所以需要節(jié)省大量的存儲(chǔ)空間。他簡(jiǎn)單的認(rèn)為只有在到達(dá)2000年,那時(shí)他的程序開始計(jì)算00或01這樣的年份時(shí)問題才會(huì)產(chǎn)生。雖然他知道會(huì)出這樣的問題,但是他認(rèn)定在25年之內(nèi)程序肯定會(huì)升級(jí)或替換,而且眼前的任務(wù)比現(xiàn)在計(jì)劃遙不可及的未來更加重要。然而這一天畢竟到來了。1995年他的程序仍然在使用,而他退休了,誰也不會(huì)想到如何深入到程序中檢查2000年兼容問題,更不用說去修改了。估計(jì)全球各地更換或升級(jí)類似的前者程序以解決潛在的2000問題的費(fèi)用已經(jīng)達(dá)數(shù)千億美元。34⑷美國(guó)航天局火星登陸探測(cè)器缺陷1999年12月3日,美國(guó)航天局的火星極地登陸者號(hào)探測(cè)器試圖在火星表面著陸時(shí)失蹤。一個(gè)故障評(píng)估委員會(huì)調(diào)查了故障,認(rèn)定出現(xiàn)故障的原因極可能是一個(gè)數(shù)據(jù)位被意外置位。最令人警醒的問題是為什么沒有在內(nèi)部測(cè)試時(shí)發(fā)現(xiàn)呢。從理論上看,著陸的計(jì)劃是這樣的:當(dāng)探測(cè)器向火星表面降落時(shí),它將打開降落傘減緩探測(cè)器的下降速度。降落傘打開幾秒鐘后,探測(cè)器的三條腿將迅速撐開,并鎖定位置,準(zhǔn)備著陸。當(dāng)探測(cè)器離地面1800米時(shí),它將丟棄降落傘,點(diǎn)燃著陸推進(jìn)器,緩緩地降落到地面。美國(guó)航天局為了省錢,簡(jiǎn)化了確定何時(shí)關(guān)閉著陸推進(jìn)器的裝置。為了替代其他太空船上使用的貴重雷達(dá),他們?cè)谔綔y(cè)器的腳部裝了一個(gè)廉價(jià)的觸點(diǎn)開關(guān),在計(jì)算機(jī)中設(shè)置一個(gè)數(shù)據(jù)位來控制觸點(diǎn)開關(guān)關(guān)閉燃料。很簡(jiǎn)單,探測(cè)器的發(fā)動(dòng)機(jī)需要一直點(diǎn)火工作,直到腳“著地”為止。遺憾的是,故障評(píng)估委員會(huì)在測(cè)試中發(fā)現(xiàn),許多情況下,當(dāng)探測(cè)器的腳迅速撐開準(zhǔn)備著陸時(shí),機(jī)械震動(dòng)也會(huì)觸發(fā)著陸觸點(diǎn)開關(guān),設(shè)置致命的錯(cuò)誤數(shù)據(jù)位。設(shè)想探測(cè)器開始著陸時(shí),計(jì)算機(jī)極有可能關(guān)閉著陸推進(jìn)器,這樣火星極地登陸者號(hào)探測(cè)器飛船下墜1800米之后沖向地面,撞成碎片。結(jié)果是災(zāi)難性的,但背后的原因卻很簡(jiǎn)單。登陸探測(cè)器經(jīng)過了多個(gè)小組測(cè)試。其中一個(gè)小組測(cè)試飛船的腳折疊過程,另一個(gè)小組測(cè)試此后的著陸過程。前一個(gè)小組不去注意著地?cái)?shù)據(jù)是否置位——這不是他們負(fù)責(zé)的范圍;后一個(gè)小組總是在開始復(fù)位之前復(fù)位計(jì)算機(jī),清除數(shù)據(jù)位。雙方獨(dú)立工作都做得很好,但合在一起就
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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年學(xué)生保險(xiǎn)全保障協(xié)議
- 2025標(biāo)識(shí)標(biāo)牌行業(yè)發(fā)展趨勢(shì)分析與預(yù)測(cè)合同3篇
- 二零二五版辦公區(qū)域租賃合同(含物業(yè)增值服務(wù))
- 二手住宅交易服務(wù)合同(2024年版)3篇
- 二零二五年度上市公司專項(xiàng)財(cái)務(wù)咨詢與輔導(dǎo)協(xié)議
- 二零二五年度股權(quán)分割協(xié)議書模板
- 2025年度礦業(yè)權(quán)出讓與地質(zhì)安全監(jiān)管合同
- 2025年度車輛借出免責(zé)及車輛使用責(zé)任界定協(xié)議
- 二零二五年度文化藝術(shù)活動(dòng)派遣協(xié)議范本
- 2025年度城市綜合體物業(yè)保安勞務(wù)管理合同
- 小兒甲型流感護(hù)理查房
- 霧化吸入療法合理用藥專家共識(shí)(2024版)解讀
- 2021年全國(guó)高考物理真題試卷及解析(全國(guó)已卷)
- 拆遷評(píng)估機(jī)構(gòu)選定方案
- 趣味知識(shí)問答100道
- 鋼管豎向承載力表
- 2024年新北師大版八年級(jí)上冊(cè)物理全冊(cè)教學(xué)課件(新版教材)
- 人教版數(shù)學(xué)四年級(jí)下冊(cè)核心素養(yǎng)目標(biāo)全冊(cè)教學(xué)設(shè)計(jì)
- JJG 692-2010無創(chuàng)自動(dòng)測(cè)量血壓計(jì)
- 三年級(jí)下冊(cè)口算天天100題(A4打印版)
- CSSD職業(yè)暴露與防護(hù)
評(píng)論
0/150
提交評(píng)論