《軟件測(cè)試》RonPantton讀書筆記_第1頁(yè)
《軟件測(cè)試》RonPantton讀書筆記_第2頁(yè)
《軟件測(cè)試》RonPantton讀書筆記_第3頁(yè)
《軟件測(cè)試》RonPantton讀書筆記_第4頁(yè)
《軟件測(cè)試》RonPantton讀書筆記_第5頁(yè)
已閱讀5頁(yè),還剩14頁(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è)試背景1.1 臭名昭著的軟件錯(cuò)誤案例研究1.1.1 迪斯尼的獅子王,19941995沒(méi)有對(duì)市場(chǎng)上投入使用的各種PC機(jī)型進(jìn)行正確的測(cè)試1.1.2 英特爾奔騰浮點(diǎn)除法軟件缺陷,1994這個(gè)故事重要的不是軟件缺陷,而是英特爾解決問(wèn)題的方式:1. 他們的軟件測(cè)試工程師在芯片發(fā)布之前進(jìn)行內(nèi)部測(cè)試時(shí)發(fā)現(xiàn)了這個(gè)問(wèn)題,英特爾的管理層認(rèn)為這沒(méi)有嚴(yán)重到要保證修正,甚至公開(kāi);2. 當(dāng)軟件缺陷被發(fā)現(xiàn)時(shí),英特爾通過(guò)新聞發(fā)布和公開(kāi)聲明試圖掩飾這個(gè)問(wèn)題的嚴(yán)重性;3. 受到壓力時(shí),英特爾承諾更換有問(wèn)題的芯片,但要求用戶必須證明自己受到軟件缺陷的影響。由于這個(gè)缺陷,英特爾公開(kāi)道歉并拿出了4億多美元來(lái)致富更換壞芯片的費(fèi)用。(代價(jià)慘重呀,汗?。?.1.3 美國(guó)航天局火星極地登陸,1999由多個(gè)小組測(cè)試該項(xiàng)目,各自分工不同,但就是中間空隙出錯(cuò)了。1.1.4 愛(ài)國(guó)者導(dǎo)彈防御系統(tǒng),1991系統(tǒng)時(shí)鐘錯(cuò)誤積累起來(lái)拖延100多個(gè)小時(shí)。1.1.5 前年蟲,大約1974當(dāng)時(shí)發(fā)現(xiàn)錯(cuò)誤但沒(méi)有修改,只是著重眼前的任務(wù),不去考慮2000年的兼容問(wèn)題,導(dǎo)致?lián)p失過(guò)億。1.2 軟件缺陷是什么1.2.1 描述軟件失敗的術(shù)語(yǔ)19缺點(diǎn) (defect)謬誤 (fault)問(wèn)題 (problt)錯(cuò)誤 (error)毛病 (incident)異常 (anomaly)偏差 (variance)失敗 (failure)矛盾(incosistency)特殊 (feature)缺陷 (bug)怎樣描述測(cè)試結(jié)果根據(jù)開(kāi)發(fā)小組的個(gè)性1.2.2 軟件缺陷:正式定義1. 軟件未達(dá)到產(chǎn)品說(shuō)明書標(biāo)明的功能;2. 軟件出現(xiàn)了產(chǎn)品說(shuō)明書指明不會(huì)出現(xiàn)的錯(cuò)誤;3. 軟件功能超出產(chǎn)品說(shuō)明書指明范圍;4. 軟件未達(dá)到產(chǎn)品說(shuō)明書雖未指出但應(yīng)達(dá)到的目標(biāo);5. 軟件測(cè)試員認(rèn)為軟件難以理解、不易使用、運(yùn)行速度緩慢,或者最終用戶認(rèn)為不好。注意:作為測(cè)試人員,在運(yùn)用第5條測(cè)試規(guī)則時(shí)應(yīng)記住要編寫令所有用戶都喜歡的軟件是不可能的,但是最好能全面地客觀評(píng)價(jià),做到合情合理。1.3 為什么會(huì)出現(xiàn)軟件缺陷導(dǎo)致軟件缺陷最大的原因是產(chǎn)品說(shuō)明書,第二大來(lái)源是設(shè)計(jì)方案,三是代碼,四是某些軟件缺陷產(chǎn)生的條件被錯(cuò)誤地認(rèn)定。1.4 軟件缺陷的修復(fù)費(fèi)用費(fèi)用呈幾何數(shù)級(jí),隨著時(shí)間的推移,數(shù)十倍地增長(zhǎng)。1.5 軟件測(cè)試員究竟做些什么軟件測(cè)試員的目標(biāo)是發(fā)現(xiàn)軟件缺陷。怎樣成為優(yōu)秀軟件測(cè)試員軟件測(cè)試員應(yīng)具備的素質(zhì):1. 探索精神2. 故障排除能手3. 不懈努力4. 創(chuàng)造性5. 追求完美6. 判斷準(zhǔn)確7. 老練穩(wěn)重8. 說(shuō)服力9. 除了這些素質(zhì),在軟件編程方面受過(guò)的教育也是重要的。10. 軟件的功能為了解決現(xiàn)實(shí)問(wèn)題,因此,教學(xué)烹飪航空木工醫(yī)療等知識(shí)都將對(duì)查找該領(lǐng)域軟件的缺陷有莫大幫助軟件測(cè)試很有趣!第2章 軟件開(kāi)發(fā)過(guò)程2.1 產(chǎn)品的組成部分2.1.1 軟件產(chǎn)品需要多少投入產(chǎn)品說(shuō)明書、產(chǎn)品審查、設(shè)計(jì)文檔、進(jìn)度、來(lái)自上一版本的反饋、競(jìng)爭(zhēng)對(duì)手情況、測(cè)試計(jì)劃、客戶調(diào)查、易用性數(shù)據(jù)、觀察和感受說(shuō)明書、軟件、軟件代碼、大量看不到的努力2.1.2 客戶要求利用焦點(diǎn)人群觀察軟件功能2.1.3 產(chǎn)品說(shuō)明書2.1.4 進(jìn)度表2.1.5 軟件設(shè)計(jì)文檔構(gòu)架、數(shù)據(jù)流示意圖、流程圖、注釋代碼2.1.6 測(cè)試文檔測(cè)試計(jì)劃、測(cè)試案例、軟件缺陷報(bào)告、歸納、統(tǒng)計(jì)、總結(jié)2.1.7 軟件產(chǎn)品由哪些部分組成幫助文件、用戶手冊(cè)、樣本和示例、標(biāo)簽和帖子、產(chǎn)品支持信息、圖標(biāo)和標(biāo)志、錯(cuò)誤信息、廣告和宣傳材料、安裝、說(shuō)明文件、錯(cuò)誤提示信息這些都是要測(cè)試的,書中尤其提到了不要忘了測(cè)試錯(cuò)誤提示信息(錯(cuò)誤提示信息是軟件產(chǎn)品最容易忽視的部分,通常是有程序員而不是訓(xùn)練有素的稿手來(lái)寫的。這些信息很少照顧到修復(fù)軟件缺陷的需要,還常常造成麻煩。軟件測(cè)試員也難以找到并顯示全部信息。在軟件中不要加入嚇人和不友好的錯(cuò)誤提示信息。)2.2 軟件項(xiàng)目成員l 項(xiàng)目管理員、程序管理員或者監(jiān)制人:始終驅(qū)動(dòng)整個(gè)項(xiàng)目,負(fù)責(zé)編寫產(chǎn)品說(shuō)明書、管理進(jìn)度、進(jìn)行重大決策和取舍。l 設(shè)計(jì)師或者系統(tǒng)工程師:是軟件小組的技術(shù)專家,設(shè)計(jì)整個(gè)系統(tǒng)架構(gòu)或軟件構(gòu)思。l 程序員、開(kāi)發(fā)人員或者代碼制作者:設(shè)計(jì)、編寫并修復(fù)軟件中的缺陷。l 測(cè)試員或者質(zhì)量評(píng)判員:負(fù)責(zé)找出并報(bào)告軟件產(chǎn)品的問(wèn)題。l 技術(shù)作者、用戶手冊(cè)、用戶培訓(xùn)專員、手冊(cè)編寫人員或者文案專員編制軟件產(chǎn)品附帶的文件和聯(lián)機(jī)文檔。l 軟件管理員或者制作人員:負(fù)責(zé)把程序員編寫的全部文檔資料合成為一個(gè)軟件包;2.3 軟件開(kāi)發(fā)模式從最初構(gòu)思到公開(kāi)發(fā)行軟件產(chǎn)品的過(guò)程稱為軟件開(kāi)發(fā)模式。大棒模式、編寫邊改式、流水式、螺旋式1.大棒式:所有精力都在開(kāi)發(fā)軟件和編寫代碼上2.邊寫邊改式:沒(méi)有時(shí)間做好,總有時(shí)間返工哈哈!這句話經(jīng)典,測(cè)試者幾乎每天都拿到一個(gè)新版本,新版本出來(lái)的時(shí)候,舊版本還沒(méi)測(cè)完!而新版本還包含新的或者經(jīng)過(guò)修改的功能)3.流水式:創(chuàng)意-分析-設(shè)計(jì)-開(kāi)發(fā)-測(cè)試-最終產(chǎn)品,只許前進(jìn)不能后退!4.螺旋式:開(kāi)始不必詳細(xì)定義所有細(xì)節(jié)。從小開(kāi)始,定義重要功能,努力實(shí)現(xiàn),接受客戶反饋,然后進(jìn)入下一階段。(一個(gè)螺旋包括6個(gè)步驟:1.確定目標(biāo),可選方案和限制條件;2.指出并解決風(fēng)險(xiǎn);3.評(píng)估方案;4.本階段開(kāi)發(fā)和測(cè)試;5.計(jì)劃下一階段;6.確定進(jìn)入下一階段的方法。 )測(cè)試一直在進(jìn)行,知道最后宣布成功!第3章 軟件測(cè)試的實(shí)質(zhì)3.1 測(cè)試原則3.1.1 完全測(cè)試程序是不可能的原因:1、輸入量太大;2、輸出結(jié)果太多;3、軟件實(shí)現(xiàn)途徑太多;4、軟件說(shuō)明書沒(méi)有客觀標(biāo)準(zhǔn),從不同的角度看,軟件缺陷的標(biāo)準(zhǔn)不同。3.1.2 軟件測(cè)試是有風(fēng)險(xiǎn)的行為3.1.3 測(cè)試無(wú)法現(xiàn)實(shí)潛伏的軟件缺陷3.1.4 找到的軟件缺陷越多,就說(shuō)明軟件缺陷越多3.1.5 殺蟲劑怪事為了克服殺蟲劑怪事,軟件測(cè)試員必須不斷編寫不同的新測(cè)試程序,對(duì)程序的不同部分進(jìn)行測(cè)試,以找出更多的軟件缺陷。3.1.6 并非所有軟件缺陷都能修復(fù)l 沒(méi)有足夠的時(shí)間l 不算真正的軟件缺陷l 修復(fù)的風(fēng)險(xiǎn)太大l 不值得修復(fù)3.1.7 難以說(shuō)清的軟件缺陷3.1.8 產(chǎn)品說(shuō)明書不斷變化3.1.9 軟件測(cè)試員在產(chǎn)品小組中不受歡迎3.1.10 軟件測(cè)試是一項(xiàng)講究條理的技術(shù)專業(yè)3.2 軟件測(cè)試的術(shù)語(yǔ)和定義1. 精確和準(zhǔn)確軟件測(cè)試要精度還是準(zhǔn)確讀很大程度上取決于產(chǎn)品是什么,最終取決于開(kāi)發(fā)小組的目標(biāo)。2. 驗(yàn)證和合法性檢查驗(yàn)證:保證軟件符合產(chǎn)品說(shuō)明書的過(guò)程合法性檢驗(yàn):保證軟件滿足用戶要求的過(guò)程3. 質(zhì)量和可靠性4. 測(cè)試和質(zhì)量評(píng)判第4章 檢查產(chǎn)品說(shuō)明書4.1 開(kāi)始測(cè)試產(chǎn)品說(shuō)明書通常是利用文字和圖形描述產(chǎn)品的書面文檔。確保最終產(chǎn)品符合客戶要求以及正確計(jì)劃測(cè)試的唯一方法是在產(chǎn)品說(shuō)明書中完整描述產(chǎn)品。4.1.1 黑盒子和白盒子測(cè)試注意:進(jìn)行白盒子測(cè)試要冒一些風(fēng)險(xiǎn),因?yàn)橐{(diào)整測(cè)試程序以適應(yīng)代碼操作,所以很容易形成偏見(jiàn)而無(wú)法進(jìn)行客觀測(cè)試。4.1.2 靜態(tài)和動(dòng)態(tài)測(cè)試靜態(tài)測(cè)試:是指測(cè)試不運(yùn)行的部分只是檢查和審閱。動(dòng)態(tài)測(cè)試:是指通常意義上的測(cè)試運(yùn)行和使用軟件。4.1.3 靜態(tài)黑盒子測(cè)試,測(cè)試產(chǎn)品說(shuō)明書注意:無(wú)論針對(duì)何種形式的產(chǎn)品說(shuō)明書,都可以利用靜態(tài)黑盒子技術(shù)進(jìn)行測(cè)試。產(chǎn)品說(shuō)明書是書面文檔還是圖示,或者兼而有之都無(wú)所謂。通過(guò)詢問(wèn)軟件的設(shè)計(jì)者和編制者甚至可以測(cè)試沒(méi)有寫出來(lái)的產(chǎn)品說(shuō)明書。4.2 對(duì)產(chǎn)品說(shuō)明書進(jìn)行高級(jí)審查測(cè)試產(chǎn)品說(shuō)明書的第一步不是鉆進(jìn)去找軟件缺陷,而是在一個(gè)高度上審視。4.2.1 設(shè)身處地為客戶著想了解客戶所想是很重要的,質(zhì)量的定義是“滿足客戶要求”。軟件測(cè)試員必須了解被測(cè)試軟件是否符合那些要求。如果審查產(chǎn)品說(shuō)明書的某一部分時(shí)不理解,要盡早的了解它。4.2.2 研究現(xiàn)有的標(biāo)準(zhǔn)和規(guī)范注意:標(biāo)準(zhǔn)和規(guī)范的差別在于程度不同。標(biāo)準(zhǔn)比規(guī)范更加確定,標(biāo)準(zhǔn)要嚴(yán)格遵守,規(guī)范是可選的,但應(yīng)該遵守。如:公司慣用語(yǔ)和約定、行業(yè)要求、國(guó)家標(biāo)準(zhǔn)、圖形用戶界面(GUI)、硬鍵和網(wǎng)絡(luò)標(biāo)準(zhǔn)等4.2.3 審查和測(cè)試同類軟件l 規(guī)模:軟件是小型的還是大型的?這在測(cè)試中有何不同?l 復(fù)雜性:軟件是否復(fù)雜?這會(huì)影響測(cè)試嗎?l 測(cè)試性:是否有足夠的資源、時(shí)間和經(jīng)驗(yàn)來(lái)測(cè)試軟件?l 質(zhì)量/可靠性:軟件時(shí)候完全依據(jù)質(zhì)量標(biāo)準(zhǔn)計(jì)劃編寫的?可靠性如何?4.3 產(chǎn)品說(shuō)明書的低級(jí)測(cè)試技術(shù)4.3.1 產(chǎn)品說(shuō)明書屬性檢查清單1. 完整:是否有遺漏和丟失?完全嗎?單獨(dú)使用是否包含全部?jī)?nèi)容?2. 準(zhǔn)確:既定解決方案正確嗎?目標(biāo)明確嗎?有沒(méi)有錯(cuò)誤?3. 精確、不含糊、清晰:描述是否一清二楚?還是自說(shuō)自畫?容易看懂和理解嗎?4. 一致:產(chǎn)品功能描述是否自相矛盾?與其它功能有沒(méi)有沖突?5. 貼切:描述功能的陳述是否必要?有沒(méi)有多余信息?功能是否原來(lái)的客戶要求?6. 合理:在特定的預(yù)算和進(jìn)度下,以現(xiàn)有人力、物力和資源能否實(shí)現(xiàn)?7. 代碼無(wú)關(guān):是否堅(jiān)持定義產(chǎn)品,而不是定義其所依賴的軟件設(shè)計(jì)、架構(gòu)和代碼?8. 可測(cè)試:特性能否測(cè)試?測(cè)試員建立驗(yàn)證操作的測(cè)試程序是否提供足夠的信息?4.3.2 產(chǎn)品說(shuō)明書用語(yǔ)檢查清單1. 總是、每一種、所有、沒(méi)有、從不如果砍刀此類絕對(duì)或肯定的,切實(shí)認(rèn)定的敘述,軟件測(cè)試員就可以著手設(shè)計(jì)針?shù)h相對(duì)的案例2. 當(dāng)然、因此、明顯、顯然、必然這些話意圖誘使接受假定情況,不要中了圈套3. 某些、有時(shí)、常常、通常、慣常、經(jīng)常、大多、幾乎這些話太過(guò)模糊,無(wú)法測(cè)試4. 等等、諸如此類、以此類推以這樣的次結(jié)束的功能清單無(wú)法測(cè)試,功能清單要絕對(duì)或者解釋明確,以免讓人迷惑,不知如何推論5. 良好、迅速、兼價(jià)、高效、小、穩(wěn)定這些是不確定的說(shuō)法,不可測(cè)試,如果產(chǎn)品說(shuō)明書中出現(xiàn),就必須進(jìn)一步指明含義6. 已處理、已拒絕、已忽略、已消除這些說(shuō)法可能會(huì)隱藏大量需要說(shuō)明的功能7. 如果那么(沒(méi)有否則)找出“如果那么”而缺少配套的“否則”結(jié)構(gòu)的陳述,想一想“如果”沒(méi)有發(fā)生會(huì)怎樣?4.4 小結(jié)高級(jí)審查技術(shù)可以查出遺漏和丟失之處,低級(jí)測(cè)試技術(shù)用于保證所有細(xì)節(jié)都被定義。第5章 閉著眼睛測(cè)試軟件5.1 動(dòng)態(tài)黑盒子測(cè)試,閉著眼睛測(cè)試軟件1、 不深入代碼細(xì)節(jié)的軟件測(cè)試方法稱為動(dòng)態(tài)黑盒子測(cè)試,也稱為行為。2、 清楚作為測(cè)試對(duì)象的軟件的輸入和輸出之后,接下來(lái)要開(kāi)始定義測(cè)試案例。3、 測(cè)試案例是指進(jìn)行試驗(yàn)用的輸入,以及測(cè)試軟件用的程序。4、 注意:準(zhǔn)確評(píng)估風(fēng)險(xiǎn),把不可能窮盡的可能性減少到可以控制的范圍是成功的訣竅。5、 在沒(méi)有產(chǎn)品說(shuō)明書時(shí)使用探索測(cè)試:把軟件當(dāng)產(chǎn)品說(shuō)明書來(lái)對(duì)待,分步驟地逐項(xiàng)探索軟 件特性,紀(jì)錄軟件執(zhí)行情況,詳細(xì)描述功能,運(yùn)用靜態(tài)黑盒子技術(shù)進(jìn)行測(cè)試,然后運(yùn)用動(dòng)態(tài)黑盒子技術(shù)進(jìn)行測(cè)試。在這種情況下,無(wú)法像有產(chǎn)品說(shuō)明書那樣完整測(cè)試軟件,但是可以進(jìn)行系統(tǒng)測(cè)試,找到軟件缺陷幾乎是肯定的。5.2 通過(guò)測(cè)試和失敗測(cè)試通過(guò)測(cè)試是確認(rèn)軟件至少能做什么,而不會(huì)考驗(yàn)其能力。注意:在設(shè)計(jì)和執(zhí)行測(cè)試案例時(shí),總是先進(jìn)行通過(guò)測(cè)試,在破壞性試驗(yàn)之前看看軟件基本功能是否實(shí)現(xiàn)是很重要的,否則在正常使用軟件時(shí)就會(huì)奇怪為什么有那么多的軟件缺陷。確信軟件在普通情況下正確運(yùn)行之后,就可以采取各種手段搞垮軟件來(lái)找出缺陷。純粹為了破壞軟件而設(shè)計(jì)和執(zhí)行的測(cè)試案例稱為失敗測(cè)試或者迫使出錯(cuò)測(cè)試。錯(cuò)誤提示信息:通過(guò)測(cè)試還是失敗測(cè)試?不用費(fèi)力去區(qū)分它們,重要的是設(shè)法迫使指定的錯(cuò)誤提示信息出現(xiàn),設(shè)計(jì)迫使提到的錯(cuò)誤暴露出來(lái)。5.3 等價(jià)分配(等價(jià)劃分)l 是指分步驟地把過(guò)多(無(wú)限)的測(cè)試案例減小到同樣有效的小范圍的過(guò)程。l 提醒:等價(jià)類別或者等價(jià)區(qū)間是指測(cè)試相同目標(biāo)或者暴露相同軟件缺陷的一組測(cè)試案例。l 注意:在尋找等價(jià)區(qū)間時(shí),想辦法把軟件的相似輸入、輸出、操作分成組。這些組就是等價(jià)區(qū)間。l 等價(jià)分配的目標(biāo)是把可能的測(cè)試案例組合縮減到仍然足以測(cè)試軟件的控制范圍。因?yàn)檫x擇了不完全測(cè)試,就要冒一定的風(fēng)險(xiǎn)。l 如果為了減少測(cè)試案例的數(shù)量過(guò)度進(jìn)行等價(jià)分配,測(cè)試的風(fēng)險(xiǎn)就會(huì)增加。l 等價(jià)區(qū)間的劃分沒(méi)有一定的標(biāo)準(zhǔn),只要足以覆蓋測(cè)試對(duì)象就行了。5.4 數(shù)據(jù)測(cè)試軟件由數(shù)據(jù)(或其領(lǐng)域)和程序組成。數(shù)據(jù)包括鍵盤輸入、鼠標(biāo)單擊、磁盤文件、打印輸出等等;程序指可執(zhí)行的流程、轉(zhuǎn)換、邏輯和運(yùn)算。軟件測(cè)試常用的一個(gè)方法是吧測(cè)試工作按同樣的形式劃分;對(duì)數(shù)據(jù)進(jìn)行軟件測(cè)試,就是在檢查用戶輸入的信息、返回結(jié)果以及中間計(jì)算結(jié)果是否正確。主要根據(jù)下列原則來(lái)進(jìn)行等價(jià)分配,以合理減少測(cè)試案例:邊界條件,次邊界條件,空值和無(wú)效數(shù)據(jù)。情況一:不是沒(méi)有輸入的信息,而是根本沒(méi)有輸入任何內(nèi)容,單單按了Enter鍵。 這種情況在產(chǎn)品說(shuō)明書中常常被忽視,程序員也經(jīng)常遺忘,但是在實(shí)際使用中卻時(shí)有發(fā)生。好的軟件會(huì)處理這種情況。它通常將輸入內(nèi)容默認(rèn)為合法邊界內(nèi)的最小值,或者合法區(qū)間內(nèi)某個(gè)合理值,或者返回錯(cuò)誤提示信息。(默認(rèn)、空白、空值、零值、無(wú))情況二:垃圾數(shù)據(jù)。經(jīng)過(guò)邊界測(cè)試、次邊界測(cè)試和默認(rèn)測(cè)試等測(cè)試證實(shí)軟件能夠工作之后,就該進(jìn)行破壞試驗(yàn)了。(非法、錯(cuò)誤、不正確、垃圾數(shù)據(jù))5.5 狀態(tài)測(cè)試注意:軟件測(cè)試員必須測(cè)試程序的狀態(tài)及其轉(zhuǎn)換。5.5.1 測(cè)試軟件的邏輯流程解決方法是運(yùn)用等價(jià)分配技術(shù)選擇狀態(tài)和分支。5.5.2 建立狀態(tài)轉(zhuǎn)換圖第一步:建立軟件的狀態(tài)轉(zhuǎn)換圖;第二步:靜態(tài)測(cè)試。注意:狀態(tài)轉(zhuǎn)換圖會(huì)變得非常龐大,如果預(yù)計(jì)狀態(tài)圖如此復(fù)雜,那么就找一些商業(yè)軟件來(lái)繪制和管理。l 狀態(tài)轉(zhuǎn)換圖應(yīng)該包括以下項(xiàng)目:1、軟件可能進(jìn)入的每一種獨(dú)立狀態(tài)。1. 大拇指規(guī)則:如果不能斷定是否為獨(dú)立狀態(tài),它就可能是;如果以后發(fā)現(xiàn)不是,隨時(shí)可以將其剔除;2、從一種狀態(tài)轉(zhuǎn)入另一種狀態(tài)所需的輸入和條件。3、進(jìn)入或退出某種狀態(tài)時(shí)的設(shè)置條件及輸出結(jié)果。注意:因?yàn)檎谶M(jìn)行黑盒子測(cè)試,所以不必了解代碼中設(shè)置的底層變量,從軟件用戶的角度建立狀態(tài)圖即可。5.5.3 減少要測(cè)試的狀態(tài)及轉(zhuǎn)換的數(shù)量1. 每種狀態(tài)至少訪問(wèn)一次。2. 測(cè)試看起來(lái)最常見(jiàn)最普遍的狀態(tài)轉(zhuǎn)換。3. 測(cè)試狀態(tài)之間最不常用的分支。4. 測(cè)試所有錯(cuò)誤狀態(tài)及其返回值。5. 測(cè)試隨即狀態(tài)轉(zhuǎn)換。5.5.4 怎樣進(jìn)行具體測(cè)試5.6 失敗狀態(tài)測(cè)試1.競(jìng)爭(zhēng)條件和時(shí)序錯(cuò)亂:在真正的多任務(wù)環(huán)境中軟件設(shè)計(jì)絕對(duì)不能想當(dāng)然,必須處理隨時(shí)被中斷的情況,能夠與其它任何軟件在系統(tǒng)中同時(shí)運(yùn)行,并且共享內(nèi)存、磁盤、通信設(shè)備以及其它硬件資源。這一切的的結(jié)果就可能導(dǎo)致競(jìng)爭(zhēng)條件問(wèn)題.這些問(wèn)題的幾個(gè)事件恰好擠在一起,軟件未預(yù)料到的操作過(guò)程被中斷,時(shí)序就會(huì)發(fā)生錯(cuò)亂。競(jìng)爭(zhēng)條件測(cè)試難以設(shè)計(jì),最好是首先仔細(xì)查看狀態(tài)轉(zhuǎn)換圖中的每一個(gè)狀態(tài),以找出哪些外部影響會(huì)中斷該狀態(tài)。考慮要使用數(shù)據(jù)如果沒(méi)有準(zhǔn)備好,或者在用到時(shí)發(fā)生了變化,狀態(tài)會(huì)怎樣。數(shù)條弧線或者直線同時(shí)相連的情形如何。下是要面臨競(jìng)爭(zhēng)條件的典型情形:A.兩個(gè)不同的程序同時(shí)保存或打開(kāi)同一個(gè)文檔。B.共享同一臺(tái)打印機(jī)、通信端口或者其它外圍設(shè)備。C.當(dāng)軟件處于讀取或者修改狀態(tài)時(shí)按鍵或者單擊鼠標(biāo)。D.同時(shí)關(guān)閉或者啟動(dòng)軟件的多個(gè)實(shí)例。E.同時(shí)使用不同的程序方位一個(gè)共同數(shù)據(jù)庫(kù)。2.重復(fù)、壓迫和重負(fù)測(cè)試的目標(biāo)是處理那些連程序員都沒(méi)有想到的惡劣條件下產(chǎn)生的問(wèn)題的能力。A.重復(fù)測(cè)試是不斷執(zhí)行同樣的操作。最簡(jiǎn)單的是不停地啟動(dòng)和關(guān)閉程序,或者反復(fù)讀寫數(shù)據(jù)或者選擇同一個(gè)操作。這種測(cè)試的主要目的是看內(nèi)存是否不足。如果內(nèi)存被分配進(jìn)行某項(xiàng)操作,但操作完成時(shí)沒(méi)有完全釋放,就會(huì)產(chǎn)生一個(gè)常見(jiàn)的軟件問(wèn)題。B.壓迫測(cè)試是使軟件在不夠理想的條件下運(yùn)行內(nèi)存小、磁盤空間少、CPU速度慢、調(diào)制解調(diào)器速率低等等。觀察軟件對(duì)外部資源的要求和依賴程度。壓迫測(cè)試就是將支持降到最低限度,目的在于盡可能的限制軟件的必要條件。C.重負(fù)測(cè)試和壓迫測(cè)試相反。壓迫測(cè)試是盡量限制軟件,而重負(fù)測(cè)試是盡量提供條件任其發(fā)揮。讓軟件處理盡可能大的數(shù)據(jù)文件。最大限度的發(fā)掘軟件的能力,讓它不堪重負(fù)。比如:軟件對(duì)打印機(jī)或通信端口進(jìn)行操作,就把能連的都連上;服務(wù)器可以處理幾千個(gè)模擬連接,就按他說(shuō)的做。三者應(yīng)聯(lián)合使用,同時(shí)進(jìn)行。注意事項(xiàng): A.項(xiàng)目管理員和小組程序員可能不完全接受軟件測(cè)試員這樣打破軟件的做法。但是軟件測(cè)試員的任務(wù)就是確保軟件在這樣惡劣的條件下正常工作,否則就報(bào)告軟件缺陷。如何以最佳方式報(bào)告軟件缺陷,使其得到嚴(yán)肅對(duì)待和修復(fù),也是一門學(xué)問(wèn)。B.無(wú)數(shù)次重復(fù)和上千次的連接對(duì)于手工操作是不可能的。因而需要借助自動(dòng)化測(cè)試工具來(lái)實(shí)現(xiàn)。5.7 其它黑盒測(cè)試技術(shù)1.像新用戶那樣做,隨意操作.2.在已經(jīng)找到軟件缺陷的地方再找找(80%的缺陷通常集中在20%的模塊)3.憑借經(jīng)驗(yàn)、直覺(jué)和預(yù)感. (軟件測(cè)試確實(shí)是越有經(jīng)驗(yàn)越吃香啊!,像我們這樣的只能好好學(xué)習(xí),多多實(shí)踐,多多積累,不斷總結(jié))第6章 檢查代碼6.1 靜態(tài)白盒子測(cè)試:檢查設(shè)計(jì)和代碼注意:開(kāi)發(fā)小組沒(méi)有專人負(fù)責(zé)白盒子測(cè)試。6.2 正式審查從2個(gè)程序員的交談到代碼的嚴(yán)格檢查均屬于此過(guò)程;正式審查有4個(gè)基本要素:1. 確定問(wèn)題。2. 遵守規(guī)則。3. 準(zhǔn)備。4. 編寫報(bào)告。間接效果:1. 交流;2. 質(zhì)量;3. 小組同志化;4. 解決方案。6.2.1 同事審查6.2.2 公開(kāi)陳述6.2.3 檢驗(yàn)6.3 編碼標(biāo)準(zhǔn)和規(guī)范可靠性:事實(shí)證明按照某種標(biāo)準(zhǔn)和規(guī)范的代碼比不這樣做的代碼更加可靠,軟件缺陷更少??勺x性/維護(hù)性:符合設(shè)備標(biāo)準(zhǔn)和規(guī)范的易于閱讀、理解和維護(hù)。移植性:代碼常常需要在不同的硬件上運(yùn)行,或者使用不同的編譯器編譯。如果代碼符合設(shè)備標(biāo)準(zhǔn),遷移到另一個(gè)平臺(tái)就會(huì)輕而易舉,甚至完全沒(méi)有障礙。獲取計(jì)算機(jī)語(yǔ)言和信息技術(shù)的國(guó)家和國(guó)際標(biāo)準(zhǔn)途徑:l 美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)(ANST):l 國(guó)際工程協(xié)議(IEC):l 信息技術(shù)標(biāo)準(zhǔn)國(guó)家委員會(huì)(NCITS):l 計(jì)算機(jī)械聯(lián)合會(huì)(ACM):l 電子電氣工程學(xué)會(huì)(IEEE):6.4 通用代碼審查清單1. 數(shù)據(jù)引用錯(cuò)誤:是指使用未經(jīng)正確初始化用法和引用方式的變量、常量、數(shù)組、字符串而導(dǎo)致的軟件缺陷。2. 數(shù)據(jù)聲明錯(cuò)誤:原因是不正確地聲明或使用變量和常量。3. 計(jì)算錯(cuò)誤:屬于數(shù)學(xué)邏輯問(wèn)題。4. 比較錯(cuò)誤:比較和判斷錯(cuò)誤很可能是邊界條件問(wèn)題。5. 控制流程錯(cuò)誤:原因是編程語(yǔ)言中循環(huán)等控制結(jié)構(gòu)未按預(yù)期方式工作。6. 子程序參數(shù)錯(cuò)誤:來(lái)源是軟件子程序不正確地傳遞數(shù)據(jù)。7. 輸入/輸出錯(cuò)誤:包括文件讀取、接受鍵盤或者鼠標(biāo)輸入以及向打印機(jī)或者屏幕等輸出設(shè)備寫入錯(cuò)誤。8. 其它檢查第7章 帶上X光眼鏡檢查軟件7.1 動(dòng)態(tài)白盒子測(cè)試是指利用查看代碼功能和實(shí)現(xiàn)方式得到的信息來(lái)確定那些要測(cè)試,那些不要測(cè)試,如何開(kāi)展測(cè)試。也稱為結(jié)構(gòu)測(cè)試,包括4個(gè)部分:1. 直接測(cè)試底層功能、過(guò)程、子程序和庫(kù),即應(yīng)用程序編程接口(API)。2. 以完整程序的方式從頂層測(cè)試軟件,但是根據(jù)對(duì)軟件運(yùn)行的了解調(diào)整測(cè)試案例。3. 從軟件獲得讀取變量和狀態(tài)信息的訪問(wèn)權(quán),以便確定測(cè)試與預(yù)期結(jié)果是否相符,同時(shí),強(qiáng)制軟件以正常測(cè)試難以實(shí)現(xiàn)的方式運(yùn)行。4. 估算執(zhí)行測(cè)試時(shí)“命中”的代碼量和具體代碼,然后調(diào)整測(cè)試,去掉多余的,補(bǔ)充遺漏的。7.2 動(dòng)態(tài)白盒子測(cè)試和調(diào)試測(cè)試的目標(biāo)是尋找軟件,調(diào)試的目標(biāo)是修復(fù)它們。7.3 分段測(cè)試產(chǎn)生稿費(fèi)有的原因:1、難以甚至不可能導(dǎo)致問(wèn)題的原因;2、某些軟件缺陷掩蓋了其它軟件缺陷。注意:在進(jìn)行白盒子測(cè)試之前,一定要根據(jù)說(shuō)明書建立黑盒子測(cè)試案例。7.4 數(shù)據(jù)范圍1. 數(shù)據(jù)流2. 次邊界3. 公式和等式4. 錯(cuò)誤強(qiáng)制7.5 代碼范圍為了全面,除了測(cè)試數(shù)據(jù),還必須測(cè)試程序的狀態(tài)以及其中的程序流程,必須設(shè)法進(jìn)入和退出每一個(gè)模塊,執(zhí)行每一行代碼,追蹤每一條邏輯和決策分支。在級(jí)別詳細(xì)檢查軟件稱為代碼范圍分析。最簡(jiǎn)單的形式是利用編譯環(huán)境的調(diào)試器通過(guò)單步執(zhí)行程序查看代碼。還有專門的代碼分析起的專用工具,它可以知道測(cè)試案例沒(méi)有覆蓋軟件的那些部分;哪些測(cè)試案例是多余的;為了使范圍更準(zhǔn)確,需要建立什么樣的新的測(cè)試案例。如果測(cè)試案例覆蓋了軟件90%而未發(fā)現(xiàn)任何軟件缺陷,就說(shuō)明軟件質(zhì)量非常好;相反,如果測(cè)試只覆蓋軟件的50%仍然發(fā)現(xiàn)了一些軟件缺陷,就說(shuō)明軟件還要大加改進(jìn)。試圖覆蓋軟件中的所有路徑稱為路徑測(cè)試,最簡(jiǎn)單的形式稱為分支范圍測(cè)試。第8章 配制測(cè)試8.1 配制軟件綜述主機(jī)、組件、外設(shè)、接口、可選項(xiàng)和內(nèi)存、設(shè)備驅(qū)動(dòng)程序8.1.1 分離配制缺陷注意:判斷缺陷是配制問(wèn)題而不僅是普通最可靠的方法是,在另一臺(tái)有完全不同配置的計(jì)算機(jī)上一步步執(zhí)行導(dǎo)致問(wèn)題的相同操作。如果缺陷沒(méi)有產(chǎn)生,就極有可能是配制問(wèn)題。如果缺陷在多種配制中出現(xiàn),就可能只有普通缺陷。l 軟件可能包含在多種配制中都會(huì)出現(xiàn)的缺陷。l 軟件可能包含只在某一個(gè)特殊配制中出現(xiàn)的缺陷。l 硬件設(shè)備或者其設(shè)備驅(qū)動(dòng)程序可能包含僅由軟件揭示的缺陷。l 硬件設(shè)備或者其設(shè)備驅(qū)動(dòng)程序可能包含借助許多其他軟件才能看出的缺陷。8.1.2 計(jì)算工作量8.2 執(zhí)行任務(wù)8.2.1 確定所需的硬件類型聯(lián)機(jī)注冊(cè):需要把調(diào)制解調(diào)器考慮到配制測(cè)試之中。8.2.2 確定那些硬件商標(biāo)、型號(hào)和驅(qū)動(dòng)程序可用8.2.3 確定可能的硬件特性、模式和選項(xiàng)8.2.4 將明確后的硬件配制縮減為可控制范圍注意:用于把眾多配制等價(jià)分配為較小范圍的決定過(guò)程最終取決于軟件測(cè)試員和開(kāi)發(fā)小組。這沒(méi)有一個(gè)定式,每一個(gè)軟件工程都不相同,都有不同的選擇標(biāo)準(zhǔn)。一定要保證項(xiàng)目小組中的每一個(gè)人,特別是項(xiàng)目管理員,認(rèn)清什么配制要測(cè)試,選擇它們會(huì)引起什么變化。8.2.5 明確使用硬件配置的軟件唯一特性8.2.6 設(shè)計(jì)在每一種配制中執(zhí)行的測(cè)試案例1. 從清單中選擇并建立下一個(gè)測(cè)試配制;2. 啟動(dòng)軟件;3. 打開(kāi)文件configtest.doc;4. 確認(rèn)顯示出來(lái)的文件正確無(wú)誤;5. 打印文檔;6. 確認(rèn)沒(méi)有錯(cuò)誤提示信息,而且打印的文檔符合標(biāo)準(zhǔn);7. 將任何不符之處級(jí)為軟件缺陷。8.2.7 在每種配制中執(zhí)行測(cè)試8.2.8 反復(fù)測(cè)試直到小組對(duì)結(jié)果滿意為止8.3 獲得硬件l 只買可以或者將會(huì)使用的配置。l 與硬件生產(chǎn)廠商聯(lián)系。l 向全公司的人發(fā)送演示版或者電子郵件,問(wèn)他們辦公室甚至家里有什么硬件能否允許對(duì)其進(jìn)行一些測(cè)試。l 如果預(yù)算充足,就和項(xiàng)目管理員一起去專業(yè)配制和兼容性測(cè)試試驗(yàn)室聯(lián)系外協(xié)。第9章 兼容性測(cè)試9.1 兼容性測(cè)試綜述軟件兼容性測(cè)試是指檢查軟件是否正確地交互和共享信息。如果授命對(duì)新軟件進(jìn)行兼容性測(cè)試,就需要解答以下問(wèn)題:l 軟件設(shè)計(jì)要求與何種其他平臺(tái)和軟件保持兼容?如果一個(gè)測(cè)試的軟件是一個(gè)平臺(tái),那么設(shè)計(jì)要求什么應(yīng)用程序在其上運(yùn)行?l 應(yīng)該遵守何種定義軟件之間交互的標(biāo)準(zhǔn)或者規(guī)范?l 軟件使用何種數(shù)據(jù)與其他平臺(tái)和軟件交互和共享信息?9.2 平臺(tái)和應(yīng)用程序版本向后兼容是指可以使用軟件的以前版本;向前兼容是指可以使用軟件的未來(lái)版本。注意:并非所有軟件或者文件都要求向前兼容或者向后兼容,這是軟件設(shè)計(jì)者需要解決的產(chǎn)品特性,而軟件測(cè)試員應(yīng)該為檢查軟件向前和向后兼容性所需的測(cè)試提供相應(yīng)的輸入。在開(kāi)始兼容性測(cè)試任務(wù)之前,需要對(duì)所有可能的軟件組合等價(jià)分配,使其成為驗(yàn)證軟件之間正確交互的最小有效集合。9.3 標(biāo)準(zhǔn)和規(guī)范測(cè)試的第一部應(yīng)該是研究可能適用于軟件或者平臺(tái)的標(biāo)準(zhǔn)和規(guī)范。實(shí)際上這些要求有兩級(jí):低級(jí)和高級(jí)。高級(jí)標(biāo)準(zhǔn)是產(chǎn)品普遍遵守的規(guī)章;低級(jí)標(biāo)準(zhǔn)是本質(zhì)細(xì)節(jié)。第10章 外國(guó)語(yǔ)言測(cè)試10.1 使文字和圖片有意義10.2 翻譯問(wèn)題軟件測(cè)試員或者測(cè)試小組必須對(duì)所測(cè)試的語(yǔ)言基本熟悉,能夠駕馭軟件,看懂軟件顯示的文字,輸入必要的命令執(zhí)行測(cè)試。更多的詳情可以在因特網(wǎng)查找“本地化測(cè)試”相關(guān)的主題。1、可能出現(xiàn)的翻譯問(wèn)題中最直接的例子是稱為文本擴(kuò)展的現(xiàn)象。2、ASC、DBCS和Unicode3、熱鍵和快捷鍵4、擴(kuò)展字符5、字符計(jì)算6、從左向右和從右向左讀7、圖形中的文字8、使文字脫離代碼10.3 本地化問(wèn)題1、內(nèi)容 2、數(shù)據(jù)格式 10.4 配置和兼容性問(wèn)題第11章 易用性測(cè)試11.1 用戶界面測(cè)試用于與軟件程序交互的方式稱為用戶界面或UI,所有軟件都有幾種UI。11.2 優(yōu)秀UI由什么構(gòu)成?l 符合標(biāo)準(zhǔn)和規(guī)范l 直觀性l 一致性l 靈活性l 舒適性l 正確性l 實(shí)用性11.3 為殘疾人測(cè)試:輔助選項(xiàng)測(cè)試注意:如果正在測(cè)試產(chǎn)品的易用性,一定要專門的輔助選項(xiàng)建立測(cè)試案例。第12章 測(cè)試文檔12.1 軟件文檔的類型可以歸于文檔的軟件部分:l 包裝文字和圖形。l 市場(chǎng)宣傳材料、廣告以及其他插頁(yè)。l 授權(quán)/注冊(cè)登記表。l EULA,代表最終用戶許可協(xié)議。l 標(biāo)簽和不干膠條。l 安裝和設(shè)置指導(dǎo)。l 用戶手冊(cè)。l 聯(lián)機(jī)幫助。l 指南、向?qū)Ш虲BT(計(jì)算機(jī)基礎(chǔ)訓(xùn)練)。l 樣例、示例和模版。l 錯(cuò)誤提示信息。12.2 文

溫馨提示

  • 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)論