




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件測試基礎(chǔ)全套PPT課件1軟件測試基礎(chǔ).ppt2軟件測試模型與過程.ppt3軟件測試管理.ppt4-1邊界值.ppt4-2等價類.ppt4-3基于判定表的測試.ppt4-4因果圖.ppt4-5其它黑盒測試法.ppt5白盒測試.ppt6單元測試.ppt7集成測試.ppt8Web測試.ppt8系統(tǒng)測試.ppt9面向?qū)ο鬁y試new.ppt10自動化測試.ppt11Web系統(tǒng)測試案例.ppt本章內(nèi)容軟件質(zhì)量軟件測試軟件缺陷軟件測試分類問題引入軟件缺陷與軟件故障案例第一個Bug的故事“千年蟲”問題Intel奔騰處理芯片缺陷火星登陸事故愛國者導(dǎo)彈防御系統(tǒng)迪斯尼的圣誕節(jié)禮物北京奧運(yùn)門票系統(tǒng)1945.9,GraceHopper第一個Bug的故事格蕾斯.哈珀:計(jì)算機(jī)科學(xué)家、美國海軍將軍、編譯器的發(fā)明者COBOL語言的開發(fā)負(fù)責(zé)人20世紀(jì)70年代,計(jì)算機(jī)存儲空間小,為節(jié)省字節(jié),將四位的年份用兩位表示。只有到數(shù)十年后的2000年1月1日才會出現(xiàn)問題,這期間肯定會升級或更改系統(tǒng)。各種系統(tǒng)中這類問題的解決費(fèi)用估計(jì)超過數(shù)億美元。
千年蟲問題(Y2K)(4195835/3145727)*3145727-4195835算式的結(jié)果應(yīng)為0;如果結(jié)果不為0,則有浮點(diǎn)除法軟件缺陷。由于只有在精度要求很高的計(jì)算中才會出錯(發(fā)生的概率是幾十億分之一),Intel管理層認(rèn)為不嚴(yán)重,未修正。更換芯片的費(fèi)用:4億美元。Intel奔騰處理芯片缺陷(PentiumFDIVbug)1994年弗吉尼亞州數(shù)學(xué)教授尼斯利1999年12月3日,美國航天局的火星基地登陸飛船在試圖登陸火星表面時失蹤。原因:控制登陸推進(jìn)器的某個數(shù)據(jù)位在未著地時就意外更改,導(dǎo)致推進(jìn)器在未著陸時就被關(guān)閉,飛船墜毀?;鹦堑顷懯鹿?MarsPolarLander)在海灣戰(zhàn)爭中對抗伊拉克飛毛腿導(dǎo)彈的防御戰(zhàn),其中一枚在沙特阿拉伯的多哈擊斃了28名美軍士兵。原因:一個很小的系統(tǒng)時鐘錯誤累積起來就可能延遲14小時,造成跟蹤系統(tǒng)失去準(zhǔn)確度。在多哈襲擊戰(zhàn)中,系統(tǒng)被延遲100多個小時。愛國者導(dǎo)彈防御系統(tǒng)1991年94年秋,迪斯尼公司發(fā)布了面向兒童的游戲“LionKingAnimatedStorybook”(獅子王歷險記),進(jìn)行了大量的宣傳和促銷,銷售額可觀。12月26日,開始收到大量投訴:游戲無法正常運(yùn)行,輿論嘩然。原因:沒有對市場上的各種PC機(jī)型進(jìn)行測試,該軟件只能在少數(shù)系統(tǒng)中正常工作,但在大眾常用的系統(tǒng)中不行。迪斯尼的圣誕禮物:1994-1995事故過程:訂票系統(tǒng)半小時即癱瘓北京奧運(yùn)訂票網(wǎng)站癱瘓2007年火車票訂票網(wǎng)站:1230612306網(wǎng)站于2011年6月1日正式上線。2012年春節(jié)期間和2012年中秋國慶長假來臨前因訪問量過大而癱瘓?;疖嚻庇喥本W(wǎng)站:123062014年春運(yùn)購票首日,萬眾矚目的鐵總12306還是出了故障:出現(xiàn)串號問題。逢節(jié)必癱為什么需要軟件測試有缺陷的軟件帶給用戶的問題不好的感覺,產(chǎn)生不信任感;無法正常使用;系統(tǒng)崩潰,損害用戶利益;為什么需要軟件測試有缺陷的軟件帶給軟件企業(yè)的問題企業(yè)形象下降,產(chǎn)生信任危機(jī)高額的維護(hù)費(fèi)用產(chǎn)生隱性的商業(yè)損失1.1軟件質(zhì)量Nokia:科技,以人為本IBM:把產(chǎn)品質(zhì)量作為最重要的因素去考慮”微軟:足夠好的軟件華為:為客戶服務(wù)是華為存在的唯一理由
首先、最后和永遠(yuǎn)讓客戶滿意共同的主線--產(chǎn)品質(zhì)量軟件質(zhì)量軟件質(zhì)量具體表現(xiàn)在軟件產(chǎn)品固有的特性,如產(chǎn)品的功能性、可靠性、易使用性、效率、可維護(hù)性、可移植性和安全性等。高質(zhì)量軟件具備的特性滿足用戶的需求;合理處理進(jìn)度、成本、功能的關(guān)系;具備一定的可擴(kuò)展性和靈活性,適應(yīng)需求變化;具備一定的可靠性,能有效處理例外情況;保持成本和性能的平衡。質(zhì)量成本預(yù)防成本;質(zhì)量評估成本;缺陷修復(fù)成本;1.2軟件測試1.軟件測試的發(fā)展歷程20世紀(jì)50-60年代軟件測試才開始與調(diào)試區(qū)別開來,成為一種發(fā)現(xiàn)軟件缺陷的活動70年代以后軟件技術(shù)的成熟和完善使得軟件測試的規(guī)模和復(fù)雜度加大,軟件測試也逐漸形成了一套完整的體系,逐漸走向規(guī)范化。1.軟件測試的發(fā)展歷程(續(xù))20世紀(jì)80年代早期“質(zhì)量”的號角才開始吹響20世紀(jì)90年代測試工具終于盛行起來?與一些發(fā)達(dá)國家相比,國內(nèi)測試工作還存在一定的差距。國內(nèi)測試人員所占比例小,但是,在軟件測試實(shí)現(xiàn)方面都是相當(dāng)?shù)?,而且向產(chǎn)業(yè)化方向發(fā)展。2.軟件測試的現(xiàn)狀1.2.1軟件測試的定義Myers認(rèn)為(1979年)“軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”,明確提出了“尋找錯誤”是測試目的。1983年IEEE對軟件測試的定義“使用人工或自動手段運(yùn)行或測定某個系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別”。明確地提出軟件測試以檢驗(yàn)是否滿足需求為目標(biāo)。2002年,軟件測試的定義使用人工或者自動手段來運(yùn)行或測試被測試件的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求并弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。它是幫助識別開發(fā)完成的計(jì)算機(jī)軟件的正確度(correctness)、完全度(completeness)和質(zhì)量(quality)的軟件過程;在代碼完成后,通過運(yùn)行程序或軟件來查找程序代碼或者軟件系統(tǒng)中的錯誤。局限性:不能及時發(fā)現(xiàn)軟件在需求、設(shè)計(jì)等上的缺陷,不利于保證軟件質(zhì)量。軟件測試的狹義觀點(diǎn)為了盡早發(fā)現(xiàn)問題,降低軟件質(zhì)量成本,將傳統(tǒng)的軟件測試范圍延伸到需求評審、設(shè)計(jì)評審、代碼評審等活動中去。廣義觀點(diǎn)將軟件測試分為靜態(tài)測試動態(tài)測試軟件測試的廣義觀點(diǎn)(1)測試是為了證明程序有錯,而不是證明程序無錯;(2)一個好的測試用例在于它發(fā)現(xiàn)至今沒有發(fā)現(xiàn)的錯誤;(3)一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試;軟件測試辯證統(tǒng)一觀點(diǎn)“一個好的測試用例在于發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤”,體現(xiàn)了軟件測試的經(jīng)濟(jì)成本觀點(diǎn)。不充分的測試是不負(fù)責(zé)任的。過分的測試是一種資源的浪費(fèi)。軟件測試的經(jīng)濟(jì)成本觀點(diǎn)注意測試和調(diào)試的區(qū)別測試:找錯誤(證明程序有錯)調(diào)試:改錯誤(使程序正確)1.2.2軟件測試的目的軟件測試的目標(biāo)是盡快盡早地將被測件中所存在的缺陷找出來,并盡快解決這些缺陷,并評估被測件的質(zhì)量水平。缺陷!一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的缺陷。
測試的“成敗”就在于:能否發(fā)現(xiàn)缺陷!注意:測試只能說明軟件中存在缺陷,而不能證明軟件中不存在缺陷。主要原因是:測試覆蓋率幾乎不可能達(dá)到100%;去除現(xiàn)有的缺陷可能會產(chǎn)生新的缺陷;測試工程師對產(chǎn)品的理解不能完全代表用戶的理解;測試的模擬環(huán)境不能完全代表用戶的實(shí)際使用環(huán)境;1.2.3軟件測試的原則1.可追溯性所有的測試都應(yīng)追溯到用戶的需求。系統(tǒng)中最嚴(yán)重的錯誤是那些導(dǎo)致程序無法滿足用戶需求的錯誤。
2.盡早開展預(yù)防性測試在軟件生命周期各階段都可能產(chǎn)生錯誤;缺陷的修改成本隨著階段的推移將急劇上升;缺陷具有放大的特點(diǎn);問題發(fā)現(xiàn)越早,解決問題的代價就越小。缺陷存在放大趨勢3.不可能完全的測試輸入量太大執(zhí)行路徑太多軟件測試最致命的缺陷就是:
不能進(jìn)行徹底的測試。
若X、Y為所有可能的整數(shù),在字長32位機(jī)上測試:
X1、Y1
Z1
. . .
Xn、Yn
Zn
測試次數(shù):n=232232=2641.841019程序PXYZ輸入輸出例1:例2:循環(huán)次數(shù) 01 2………20獨(dú)立路徑數(shù) 51+52+53+……+521≈1014 每個測試用例(考慮、執(zhí)行、驗(yàn)證結(jié)果)5分鐘共需測試時間 10億年M1D1D2D3D4M2M3M4M5M6M7D5<=20次應(yīng)該針對用戶最容易遇到的錯誤進(jìn)行測試,以便改進(jìn)測試的有效性。軟件中有許多錯誤用戶遇到的錯誤(只占很小比例)4.投入/產(chǎn)出原則不充分的測試是不負(fù)責(zé)任的;過分的測試是一種資源的浪費(fèi);在滿足軟件預(yù)期的質(zhì)量標(biāo)準(zhǔn)時,確定質(zhì)量的投入/產(chǎn)出比。5.80-20原則測試發(fā)現(xiàn)的錯誤中80%很可能起源于20%的模塊中。應(yīng)孤立這些疑點(diǎn)模塊重點(diǎn)測試。在所測程序段中,若發(fā)現(xiàn)錯誤數(shù)目多,則殘存錯誤數(shù)目也比較多。6.設(shè)立獨(dú)立的測試機(jī)構(gòu)或委托第三方測試避免測試自己的程序1.程序員輕易不會承認(rèn)自己寫的程序有錯誤;2.程序員的測試思路有局限性,做測試時很容易受到編程思路的影響;3.程序員測試不具有典型性。7.回歸測試程序修改后必須進(jìn)行回歸測試,避免引入新的錯誤。8.設(shè)計(jì)周密的測試用例軟件測試的本質(zhì)就是針對要測試的內(nèi)容確定一組測試用例。測試用例至少應(yīng)包括:執(zhí)行測試用例前,應(yīng)滿足的前提條件輸入預(yù)期輸出設(shè)計(jì)測試用例時,應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。人們對軟件測試的誤解誤解一:測試是開發(fā)后期的一個階段軟件測試不等于程序測試,軟件測試應(yīng)該涵蓋整個軟件生命周期;誤解二:測試技術(shù)要求不高,比編程容易多了好的測試人員不僅要掌握各種測試技術(shù)和測試工具,還要具備豐富的編程經(jīng)驗(yàn)和對BUG的敏感。誤解三:軟件測試是測試人員的事,與開發(fā)人員無關(guān)。誤解四:好的測試一定要使用很多的測試工具。誤解五:軟件測試就是運(yùn)行一下軟件,看看結(jié)果對不對。誤解六:軟件出了重大問題,是測試人員的事。1.3軟件缺陷缺陷:最終產(chǎn)品同用戶的期望不一致。功能錯誤;功能遺漏;超出需求的部分;性能不符合要求;……世上不存在沒有缺陷的軟件軟件缺陷的范圍很廣:
1.軟件未達(dá)到產(chǎn)品說明書要求的功能;2.軟件出現(xiàn)了產(chǎn)品說明書指明不會出現(xiàn)的錯誤;3.軟件功能超出產(chǎn)品說明書指明范圍;4.軟件未達(dá)到產(chǎn)品說明書雖未指出但應(yīng)達(dá)到的目標(biāo);5.軟件難以理解、不易使用、運(yùn)行速度緩慢、最終用戶認(rèn)為不好等。難以說清的軟件缺陷如果軟件中的缺陷沒有被人發(fā)現(xiàn)它算不算軟件缺陷?
眼見為實(shí)古諺語:“一片樹葉飄落在森林中沒有人聽見,誰能說它發(fā)出了聲音?”1.3軟件測試分類軟件測試按階段劃分單元測試系統(tǒng)測試驗(yàn)收測試按測試技術(shù)灰盒測試白盒測試黑盒測試是否執(zhí)行程序動態(tài)測試靜態(tài)測試回歸測試集成測試
一、按照開發(fā)階段劃分:單元測試(UnitTesting)集成測試(IntegrationTesting)系統(tǒng)測試(SystemTesting)驗(yàn)收測試(VerificationTesting)二、按測試實(shí)施組織劃分開發(fā)方測試用戶測試(β測試)第三方測試三、按是否執(zhí)行軟件(程序)
靜態(tài)測試不運(yùn)行被測程序,而是通過在對軟件進(jìn)行分析、檢查和審閱達(dá)到測試目的的動態(tài)測試通過運(yùn)行軟件來檢驗(yàn)軟件的動態(tài)行為和運(yùn)行結(jié)果的正確性靜態(tài)測試①代碼檢查:代碼審查、代碼走查、桌面檢查②靜態(tài)分析;③技術(shù)評審;靜態(tài)測試除了進(jìn)行人工測試外,還可以借助于計(jì)算機(jī)輔助分析。靜態(tài)測試工具:Logiscope、PcLint例如:
PI=3.14;
a=0;
while(a<100){
b=b+100;
c=b*PI;
}程序存在什么問題?動態(tài)測試(按是否了解源代碼)黑盒測試(Black-BoxTesting)白盒測試(White-BoxTesting)灰盒測試(Gray-BoxTesting)黑盒測試邊界分析;等價類劃分;因果圖;判定表;正交試驗(yàn)設(shè)計(jì);狀態(tài)測試;場景測試;白盒測試邏輯覆蓋基路徑測試數(shù)據(jù)流測試域測試程序插裝變異測試四、按是否使用工具劃分手工測試自動化測試五、按測試行為劃分有計(jì)劃測試隨機(jī)測試測試類型按照企業(yè)中實(shí)際工作需要,測試包含下面的類型:功能測試功能測試的基本方法是構(gòu)造一些合理輸入(在需求范圍之內(nèi)),檢查輸出是否與期望的相同。性能測試性能測試主要測試軟件的性能,包括負(fù)載測試,強(qiáng)度測試,數(shù)據(jù)庫容量測試,基準(zhǔn)測試以及基準(zhǔn)測試用戶界面測試測試用戶界面的風(fēng)格是否滿足客戶要求,文字是否正確,頁面是否美觀,文字,圖片組合是否完美,操作是否友好等等。數(shù)據(jù)和數(shù)據(jù)庫完整性測試測試關(guān)系型數(shù)據(jù)庫完整性原則以及數(shù)據(jù)合理性測試。安全性和訪問控制測試應(yīng)用程序級別的安全性(對數(shù)據(jù)或業(yè)務(wù)功能的訪問)系統(tǒng)級別的安全性(對系統(tǒng)的登錄或遠(yuǎn)程訪問)健壯性測試健壯性是指在異常情況下,軟件還能正常運(yùn)行的能力。兼容性測試測試軟件在一個特定的硬件/軟件/操作系統(tǒng)/網(wǎng)絡(luò)等環(huán)境下的性能如何。安裝/反安裝測試安裝測試包括測試安裝代碼以及安裝手冊。故障轉(zhuǎn)移和恢復(fù)測試
指當(dāng)主機(jī)軟硬件發(fā)生災(zāi)難時候,備份機(jī)器是否能夠正常啟動,使系統(tǒng)是否可以正常運(yùn)行。文檔測試文檔測試主要包括需求文檔測試,設(shè)計(jì)文檔測試等。本地化測試(語言測試)
是指為各個地方開發(fā)產(chǎn)品的測試,如英文版,中文版等等,包括程序是否能夠正常運(yùn)行,界面是否符合當(dāng)?shù)亓?xí)俗等等,特別測試在A語言環(huán)境下運(yùn)行B語言軟件,是否正常。分辨率測試測試在不同分辨率下,界面的美觀程度。α測試α測試是指軟件開發(fā)公司組織內(nèi)部人員模擬各類用戶行對即將面市軟件產(chǎn)品(稱為α版本)進(jìn)行測試。α測試的關(guān)鍵在于盡可能逼真地模擬實(shí)際運(yùn)行環(huán)境和用戶對軟件產(chǎn)品的操作。經(jīng)過α測試調(diào)整的軟件產(chǎn)品稱為β版本。
β測試β測試是指軟件開發(fā)公司組織各方面的典型用戶在日常工作中實(shí)際使用β版本,并要求用戶報告異常情況、提出批評意見。然后軟件開發(fā)公司再對β版本進(jìn)行改錯和完善。練習(xí)請例舉出10各你在生活中遇到的缺陷,并簡單說明給你帶來的影響或不便。問題與討論軟件測試模型與過程本章內(nèi)容軟件測試模型軟件測試流程軟件的一般實(shí)現(xiàn)過程測試與軟件開發(fā)各階段的關(guān)系軟件開發(fā)是一個自頂向下,逐步細(xì)化的過程。需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測試集成測試系統(tǒng)測試需求規(guī)格說明概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼瀑布式生命周期測試過程是依相反順序安排的,是自底向上,逐步集成的過程。2.1軟件測試模型V模型W模型H模型X模型測試前置模型(測試驅(qū)動模型)思考軟件是什么?軟件測試需要測什么?V模型由PaulRook在20世紀(jì)80年代后期提出的。從左到右,描述了基本的開發(fā)過程和測試行為。非常明確地標(biāo)明了測試過程中存在的不同級別,描述了這些測試階段和開發(fā)過程期間各階段的對應(yīng)關(guān)系。需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測試集成測試系統(tǒng)測試驗(yàn)收測試V模型(測試與開發(fā)階段對應(yīng)關(guān)系)單元和集成測試檢測程序的執(zhí)行是否滿足軟件設(shè)計(jì)的要求;系統(tǒng)測試檢測系統(tǒng)功能、性能的質(zhì)量特性是否達(dá)到系統(tǒng)要求的指標(biāo);驗(yàn)收測試確定軟件的實(shí)現(xiàn)是否滿足用戶需要或合同的要求。V模型的缺陷僅僅把測試過程作為在需求分析、系統(tǒng)設(shè)計(jì)及編碼之后的一個階段。只針對程序進(jìn)行的尋找錯誤的活動,忽視了測試活動對需求分析,系統(tǒng)設(shè)計(jì)等活動的驗(yàn)證和確認(rèn)的功能,直到后期的驗(yàn)收測試才被發(fā)現(xiàn)。W模型W模型由Evolutif公司提出。W模型從V模型演化過來,實(shí)際上開發(fā)是V,測試也是與此并行的V。相對于V模型,W模型增加了軟件各開發(fā)階段中應(yīng)同步進(jìn)行的驗(yàn)證和確認(rèn)活動。需求測試設(shè)計(jì)需求分析集成測試設(shè)計(jì)概要設(shè)計(jì)單元測試設(shè)計(jì)詳細(xì)設(shè)計(jì)單元測試編碼驗(yàn)收測試交付系統(tǒng)測試實(shí)施集成測試集成W模型用戶需求驗(yàn)收測試設(shè)計(jì)W模型優(yōu)點(diǎn)軟件測試貫穿于整個開發(fā)周期;測試與開發(fā)可同步進(jìn)行;每個軟件開發(fā)活動結(jié)束后就可以執(zhí)行相應(yīng)的測試,如:在需求分析結(jié)束后,就可以進(jìn)行需求分析測試。W模型缺點(diǎn)在W模型中,需求、設(shè)計(jì)、編碼等活動被視為串行的,同時,測試和開發(fā)活動也保持著一種線性的前后關(guān)系,上一階段完全結(jié)束,才可正式開始下一個階段工作。這樣就無法支持迭代的開發(fā)模型。對于當(dāng)前軟件開發(fā)復(fù)雜多變的情況,W模型并不能解除測試管理面臨的困惑。X模型X模型很好地處理測試與開發(fā)的交接過程(交接的過程是一個時間段,而不是一個點(diǎn))左邊描述的是針對單獨(dú)程序片段所進(jìn)行的相互分離的編碼和測試,此后將進(jìn)行頻繁的交接,通過集成最終合成為可執(zhí)行的程序,然后再對這些可執(zhí)行程序進(jìn)行測試。己通過集成測試的成品可以進(jìn)行封裝并提交給用戶,也可以作為更大規(guī)模和范圍內(nèi)集成的一部分。多根并行的曲線表示變更可以在各個部分發(fā)生。X模型還定位了探索性測試,這是不進(jìn)行事先計(jì)劃的特殊類型的測試,給有經(jīng)驗(yàn)的測試人員在測試計(jì)劃之外發(fā)現(xiàn)更多的軟件缺陷。H模型測試準(zhǔn)備測試執(zhí)行測試流程其他流程測試就緒點(diǎn)H模型示意圖H模型特點(diǎn)H模型充分地體現(xiàn)了測試過程。H模型說明:1、軟件測試不僅僅指測試的執(zhí)行,還包括很多其他的活動。2、軟件測試是一個獨(dú)立的流程,貫穿產(chǎn)品的整個開發(fā)周期,與其它流程并發(fā)進(jìn)行。3、軟件測試要盡早準(zhǔn)備,盡早執(zhí)行。2.2軟件測試流程軟件測試工作必須要通過制定測試計(jì)劃、測試設(shè)計(jì)、測試開發(fā)、測試執(zhí)行、測試評估幾個階段來完成。軟件測試流程軟件測試流程
回歸測試制定測試計(jì)劃
測試設(shè)計(jì)
測試開發(fā)
執(zhí)行測試評估測試缺陷測試計(jì)劃是對每個產(chǎn)品,或是對各個開發(fā)階段的產(chǎn)品開展測試的策略。一個完整的測試計(jì)劃應(yīng)該包含以下幾個方面:對測試范圍的界定;風(fēng)險的確定;資源的規(guī)劃;時間表的制定;(1)制定測試計(jì)劃測試設(shè)計(jì)階段要設(shè)計(jì)測試用例和測試過程,要保證測試用例完全覆蓋測試需求。測試設(shè)計(jì)階段最重要的是如何將測試需求分解,如何設(shè)計(jì)測試用例。(2)測試設(shè)計(jì)a.準(zhǔn)備測試資源(1)測試技術(shù)準(zhǔn)備(2)配置軟件、硬件環(huán)境(3)人員b.獲得測試數(shù)據(jù)
(1)正常事務(wù)的測試(2)使用無效數(shù)據(jù)的測試(3)測試開發(fā)c.測試腳本所謂腳本,是完整的一系列相關(guān)終端的活動。一般測試腳本有5個級別:單元腳本并發(fā)腳本集成腳本回歸腳本強(qiáng)度/性能腳本d.輔助測試工具優(yōu)秀的辦公處理軟件錯誤跟蹤系統(tǒng)自動測試工具軟件分析工具好的操作系統(tǒng)多樣化平臺(4)測試執(zhí)行測試執(zhí)行的過程由4個部分組成:輸入:要完成工作所必須的入口標(biāo)準(zhǔn)或可交付的結(jié)果。執(zhí)行過程:從輸入到輸出的過程或工作任務(wù)。檢查過程:確定輸出是否滿足標(biāo)準(zhǔn)的處理過程。輸出:推出標(biāo)準(zhǔn)或工作流程產(chǎn)生的可交付的結(jié)果。軟件測試的主要評測方法包括:覆蓋評測質(zhì)量評測性能評測(5)評估測試a.覆蓋評測覆蓋指標(biāo)提供了“測試的完全程度如何?”這一問題的答案。最常用的覆蓋評測是基于需求的測試覆蓋和基于代碼的測試覆蓋。b.質(zhì)量評測在測試過程中,已發(fā)現(xiàn)缺陷的評估提供了最佳的軟件質(zhì)量指標(biāo)。
c.性能評測評估測試對象的性能時,側(cè)重于獲取與行為相關(guān)的數(shù)據(jù),如響應(yīng)時間、事務(wù)處理數(shù)、內(nèi)存占用率、操作可靠性等。
測試用例測試用例:是為某個特定測試目標(biāo)而設(shè)計(jì)的,是測試操作過程序列、條件、期望結(jié)果及相關(guān)數(shù)據(jù)的一個特定的集合。使用測試用例的好處避免盲目測試,提高測試效率;估算測試工作量;降低工作強(qiáng)度、縮短項(xiàng)目周期;方便書寫軟件測試缺陷報告;測試用例包括:測試目標(biāo):為什么測試測試對象:測什么測試環(huán)境:執(zhí)行測試用例運(yùn)行的環(huán)境測試前提:什么條件下測試輸入數(shù)據(jù)操作步驟預(yù)期結(jié)果設(shè)計(jì)時需考慮如下基本因素:測試用例應(yīng)具有代表性、典型性;考慮正確的輸入,錯誤或異常的輸入;不僅檢查程序是否實(shí)現(xiàn)預(yù)期功能,還應(yīng)檢查程序是否作了不該做的事;考慮用戶實(shí)際使用場景;測試用例要基于用戶實(shí)際的可能場景,從用戶角度模擬系統(tǒng)的輸入測試用例模板課堂練習(xí):說明:用戶pass/pass為有效登錄用戶;用戶past/pass為無效登錄用戶;用戶pass’jean/password為有效登錄用戶;練習(xí)有一個“計(jì)算下一天”的程序,請?jiān)O(shè)計(jì)測試輸入數(shù)據(jù)。軟件測試管理計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院本章內(nèi)容測試團(tuán)隊(duì)建設(shè)與管理軟件測試計(jì)劃缺陷管理測試系統(tǒng)的組成測試管理測試管理的內(nèi)容包括:測試團(tuán)隊(duì)建設(shè)測試過程和方法建設(shè)測試管理測試執(zhí)行測試活動測試活動包括:靜態(tài)評審需求評審、概要設(shè)計(jì)評審、詳細(xì)設(shè)計(jì)評審動態(tài)測試單元測試、集成測試、系統(tǒng)測試、驗(yàn)收測試版本發(fā)布維護(hù)測試活動的輸入輸出標(biāo)準(zhǔn):見教材P253.1測試團(tuán)隊(duì)建設(shè)與管理相傳釋迦牟尼曾問他的弟子:“一滴水怎樣才能不干涸?”弟子們面面相覷,無法回答。釋迦牟尼說:“把它放到大海里去。”個人再完美,也就是一滴水;一個優(yōu)秀的團(tuán)隊(duì)就是大海。3.1測試團(tuán)隊(duì)建設(shè)與管理團(tuán)隊(duì)概念
團(tuán)隊(duì)是指一群互助互利、團(tuán)結(jié)一致為統(tǒng)一目標(biāo)和標(biāo)準(zhǔn)而堅(jiān)毅奮斗到底的一群人。
團(tuán)隊(duì)不僅強(qiáng)調(diào)個人的業(yè)務(wù)成果,更強(qiáng)調(diào)團(tuán)隊(duì)的整體業(yè)績。
1+1>2
古人云:人心齊,泰山移。在非洲的草原上如果見到羚羊在奔逃,那一定是獅子來了;如果見到獅子在躲避,那就是象群發(fā)怒了;如果見到成百上千的獅子和大象集體逃命的壯觀景象,那是什么來了呢?——是螞蟻軍團(tuán)來了!
集大家智慧于一體的團(tuán)隊(duì),力量才是最強(qiáng)大的!團(tuán)隊(duì)的力量3.1.1測試團(tuán)隊(duì)建設(shè)招募測試人員;測試團(tuán)隊(duì)制度建設(shè);測試流程建設(shè);測試人員職責(zé)分工;團(tuán)隊(duì)成員能力的提高;測試團(tuán)隊(duì)的建設(shè)有效的軟件測試團(tuán)隊(duì)的特征:對軟件項(xiàng)目的測試目標(biāo)有清晰的理解;對每位測試工程師的角色和職責(zé)有明確的期望;以目標(biāo)為導(dǎo)向;高度的互助合作;測試團(tuán)隊(duì)的基本職責(zé):盡早地發(fā)現(xiàn)盡可能多的缺陷;協(xié)助開發(fā)人員盡快解決產(chǎn)品中的缺陷;協(xié)助項(xiàng)目管理人員制定合理的開發(fā)計(jì)劃和項(xiàng)目測試計(jì)劃;對缺陷進(jìn)行跟蹤、分析和總結(jié);評估軟件產(chǎn)品的當(dāng)前質(zhì)量狀態(tài);培養(yǎng)測試工程師的測試技能;測試團(tuán)隊(duì)常見問題:目標(biāo)不明確;角色和職責(zé)不明確;項(xiàng)目結(jié)構(gòu)不健全;工作缺乏投入;溝通不夠:沒有溝通就沒有效率唐僧團(tuán)隊(duì)3.1.2測試小組分類按測試小組的獨(dú)立性來劃分可分為:非獨(dú)立測試小組;相對獨(dú)立測試小組;獨(dú)立測試小組;各種測試組織的優(yōu)點(diǎn)和缺點(diǎn)見教材28頁1.計(jì)算機(jī)專業(yè)技能測試專業(yè)技能測試?yán)碚摐y試技術(shù)測試工具測試管理3.1.3測試團(tuán)隊(duì)成員的合適人選1.計(jì)算機(jī)專業(yè)技能(續(xù))軟件編程技術(shù)程序編寫和調(diào)式測試腳本編寫和調(diào)試計(jì)算機(jī)基礎(chǔ)知識網(wǎng)絡(luò)操作系統(tǒng):Windows,Linux,Unix,DOS等;數(shù)據(jù)庫:SQLserver、Orical、MySQL應(yīng)用服務(wù)器軟件企業(yè)涉及的領(lǐng)域金融行業(yè)證券行業(yè)電子商務(wù)醫(yī)藥行業(yè)教育行業(yè)電信行業(yè)……2.行業(yè)領(lǐng)域知識3.個人素養(yǎng)自信心責(zé)任心專注力細(xì)心耐心洞察力懷疑精神、探索精神溝通能力浮躁的人容易問:我到底該學(xué)什么;----別問,學(xué)就對了;
浮躁的人容易問:XXX有錢途嗎;----行行出狀元;
浮躁的人容易說:我要中文版!我英文不行!----不行就學(xué);浮躁的人經(jīng)常說:今天放松一下,從明天開始我一定認(rèn)真學(xué);
浮躁的人分兩種:只觀望而不學(xué)的人;只學(xué)而不堅(jiān)持的人;
浮躁的人永遠(yuǎn)不是一個高手。請不要做浮躁的IT人4.團(tuán)隊(duì)協(xié)作團(tuán)隊(duì)協(xié)作是一種為達(dá)到既定目標(biāo)所顯現(xiàn)出來的自愿合作和協(xié)同努力的精神。
測試是一門武功,流程是套路、工具是武器,有簡單的花拳秀腿,也有深奧的少林武功!測試好比戰(zhàn)爭,知己知彼,方能百戰(zhàn)不殆!測試好比破案,精心推斷,方能柳暗花明!有人說世界不缺少美,而是缺少發(fā)現(xiàn)。其實(shí)軟件不缺少問題,而是缺少發(fā)現(xiàn)!
以精深的少林武功、用藝術(shù)工程的眼光、破案的縝密思維去發(fā)現(xiàn)軟件世界“美”吧!軟件測試職業(yè)發(fā)展方向可以分為:管理路線技術(shù)路線管理技術(shù)路線
結(jié)合當(dāng)前國內(nèi)外軟件測試行業(yè)現(xiàn)狀提出的職業(yè)發(fā)展流程,提出了“雙V模型”軟件測試職業(yè)發(fā)展白盒測試工程師性能測試工程師測試工程師管理技術(shù)測試主管配置管理工程師質(zhì)量保證工程師業(yè)務(wù)測試工程師自動化測試工程師配置管理經(jīng)理質(zhì)量保證經(jīng)理產(chǎn)品經(jīng)理業(yè)務(wù)專家測試經(jīng)理資深自動化測試工程師資深白盒測試工程師資深性能測試工程師安全測試工程師測試總監(jiān)咨詢域?qū)<矣蚋呒壷屑壋跫壾浖y試工程師就業(yè)形勢軟件測試工程師是目前IT行業(yè)短缺的金貴人才,未來5年IT行業(yè)最炙手可熱的高薪職位。中國軟件業(yè)每年新增約20萬測試崗位就業(yè)機(jī)會,而企業(yè)、學(xué)校培養(yǎng)出的測試人才卻不足需求量的1/10,測試人才需求與供給間的差距仍在拉大。軟件測試人才緊缺:中國軟件產(chǎn)業(yè)正在快速增長,需要大量軟件相關(guān)人才;軟件企業(yè)的發(fā)展要求軟件測試人才達(dá)到一個合適的比例。軟件企業(yè)開始重視軟件測試,但由于歷史的原因,找不到合適的軟件測試人員。測試人員職位工作職責(zé)
1、負(fù)責(zé)軟件系統(tǒng)測試驗(yàn)證工作,包括測試需求分析、測試方案設(shè)計(jì)、測試用例設(shè)計(jì)、腳本以及測試代碼開發(fā)、測試執(zhí)行等。
2、編寫軟件系統(tǒng)幫助文檔,維護(hù)系統(tǒng)百科網(wǎng)站;
3、對其他部門人員進(jìn)行軟件系統(tǒng)使用培訓(xùn)與功能答疑任職要求
1、良好的軟件基礎(chǔ)知識,了解軟件工程。
2、掌握軟件測試?yán)碚摵头椒ā?/p>
3、具有較強(qiáng)的學(xué)習(xí)能力,能在短時間內(nèi)理解軟件的設(shè)計(jì)思想并掌握操作流程。
4、工作細(xì)致,嚴(yán)謹(jǐn),具有良好的分析、溝通和表達(dá)能力,以及良好的文檔寫作能力。
5、1年以上軟件測試經(jīng)驗(yàn)。例:3.2軟件測試計(jì)劃測試與撈魚有人把開發(fā)比作打靶,目標(biāo)明確,即按照需求說明書去實(shí)現(xiàn)系統(tǒng)的功能。把測試比作撈魚,目標(biāo)不明確,自己判斷哪些地方魚多,就去哪些地方撈;如果只撈大魚(嚴(yán)重缺陷),網(wǎng)眼就可以大些、撒網(wǎng)區(qū)域相對比較集中(測試點(diǎn)集中在主要功能)。如果想把大大小小的魚撈上來,網(wǎng)眼就要小、普遍撒網(wǎng),不放過任何一塊區(qū)域(測試點(diǎn)遍及所有功能)。3.2軟件測試計(jì)劃在測試計(jì)劃活動中,要確認(rèn)測試目標(biāo)、范圍和需求,然后制定測試策略、并對測試任務(wù)、時間、資源、成本和風(fēng)險等進(jìn)行估算或者評估。在測試計(jì)劃中,需要解決的問題:測試的目標(biāo)和范圍;測試工期估算、進(jìn)度安排和資源配置;測試風(fēng)險評估;確定不同測試階段的過渡條件;測試版本的管理;測試計(jì)劃模版測試計(jì)劃(GB8567——88).docSOVO網(wǎng)站(第二版)系統(tǒng)測試計(jì)劃書.doc3.3缺陷管理什么是缺陷缺陷分類缺陷管理流程缺陷數(shù)據(jù)分析測試有效性度量缺陷管理工具1.什么是缺陷?功能沒有實(shí)現(xiàn)或與規(guī)格說明不一致;不能工作(死機(jī)、沒反應(yīng));不兼容;邊界條件未做處理;界面、消息、提示、幫助不夠準(zhǔn)確;屏幕顯示、打印結(jié)果不正確;響應(yīng)速度慢;……舉例1文本文件保存錯誤:在WindowsXP桌面上新建一個文本文檔,輸入“聯(lián)通”兩個字,并保存退出。退出后再次打開這個文本文件時,剛才輸入的內(nèi)容變成了亂碼。舉例2替換字符串長度未作限定:Word2000中,如果替換字符串長度過長,則會引起程序崩潰。在Word中輸入:=rand(200,99)回車
會出現(xiàn)一大段文字。舉例3共享文件夾名超長時提示錯誤:WindowsXP支持的最大共享文件夾名長度為80個英文字母或40個漢字,但設(shè)置共享文件夾名時可輸入的范圍是80個英文字符或80個漢字,如果共享文件夾名在41~80個漢字之間,系統(tǒng)會提示“該共享名包含無效的字符”。其實(shí)真正的原因是共享文件夾名超長。例舉5個你在使用軟件過程中遇到的軟件缺陷。功能方面;性能方面;安全方面;兼容性方面;課堂練習(xí)缺陷的處理方式郎中治病的故事
在中國古代,有一家三兄弟全是郎中。其中老三是名醫(yī),人們問他:“你們兄弟三人誰的醫(yī)術(shù)最高?”
他回答說:“我常用猛藥給病危者醫(yī)治,偶爾有些病危者被我救活,于是我的醫(yī)術(shù)遠(yuǎn)近聞名并成了名醫(yī)。我二哥通常在人們剛剛生病的時候馬上就治愈他們,臨近村莊的人說他是好郎中。我大哥不外出治病,他深知人們生病的原因,所以能夠預(yù)防家里人生病,他的醫(yī)術(shù)只有我們家里才知道?!崩洗笾尾〉姆绞阶罡呙魈岣哕浖|(zhì)量最好的辦法是:在開發(fā)過程中有效地防止工作成果產(chǎn)生缺陷,將高質(zhì)量內(nèi)建于開發(fā)過程之中。提高軟件質(zhì)量措施:提高技術(shù)水平規(guī)范化管理老二治病的方式就是醫(yī)院的模式當(dāng)工作成果剛剛產(chǎn)生時馬上進(jìn)行質(zhì)量檢查,及時找出并消除工作成果中的缺陷。最常用的方法技術(shù)評審軟件測試過程檢查老三治病的方式代價最高可是在現(xiàn)實(shí)之中,大多數(shù)軟件企業(yè)采用老三的方式來對付質(zhì)量問題。典型現(xiàn)象是:在軟件交付之前,沒有及時消除缺陷。2.缺陷分類為了更好地分析缺陷,需要對缺陷在嚴(yán)重程度、優(yōu)先級以及狀態(tài)上加以區(qū)分。缺陷優(yōu)先級;缺陷狀態(tài);缺陷起源;缺陷來源;缺陷嚴(yán)重級別缺陷優(yōu)先級級別描述
立即解決(Immediately)缺陷必須被立即解決。正常排隊(duì)(NormalQueue)缺陷需要正常排隊(duì)等待修復(fù)或列入軟件發(fā)布清單。不緊急(NotUrgent)缺陷可以在方便時被糾正。缺陷狀態(tài)缺陷狀態(tài)描述已提交(Submitted)已提交的缺陷確認(rèn)(Open)確認(rèn)“提交的缺陷”,等待處理已拒絕(Rejected)拒絕“提交的缺陷”,不需要修復(fù)或不是缺陷已解決(Resolved)缺陷被修復(fù)已關(guān)閉(Closed)確認(rèn)被修復(fù)的缺陷,將其關(guān)閉缺陷起源起源描述需求(Requirement)在需求階段發(fā)現(xiàn)的缺陷架構(gòu)(Architecture)在架構(gòu)階段發(fā)現(xiàn)的缺陷設(shè)計(jì)(Design)在設(shè)計(jì)階段發(fā)現(xiàn)的缺陷代碼(Code)在編碼階段發(fā)現(xiàn)的缺陷測試(Test)在測試階段發(fā)現(xiàn)的缺陷缺陷嚴(yán)重級別缺陷嚴(yán)重等級描述嚴(yán)重缺陷(Critical)不能執(zhí)行正常工作功能或重要功能?;蛘呶<叭松戆踩]^嚴(yán)重缺陷(Major)嚴(yán)重地影響系統(tǒng)要求或基本功能的實(shí)現(xiàn),且沒有辦法更正。一般缺陷(AverageServerity)嚴(yán)重地影響系統(tǒng)要求或基本功能的實(shí)現(xiàn),但存在合理的更正辦法。次要缺陷(Minor)使操作者不方便或遇到麻煩,但它不影響執(zhí)行工作功能或重要功能。改進(jìn)型缺陷(Enhancement)其它錯誤在缺陷管理系統(tǒng)中,通常將缺陷的狀態(tài)分為:新缺陷(New):測試中新發(fā)現(xiàn)的缺陷;打開(Open):被確認(rèn)并分配給開發(fā)人員處理拉;修正(Fixed):開發(fā)人員已經(jīng)完成,等待測試人員驗(yàn)證;拒絕(Declined):拒絕修改缺陷;延期(Deferred):不在當(dāng)前版本修復(fù),在下一版本修復(fù);關(guān)閉(Closed):缺陷已被修復(fù);重新打開(Reopen):缺陷重新出現(xiàn),需開發(fā)人員重新處理;3.缺陷管理流程缺陷管理流程(續(xù))缺陷管理的一般流程:測試人員發(fā)現(xiàn)缺陷,提交新缺陷入庫,缺陷狀態(tài)為New;測試經(jīng)理審閱。確為缺陷,分配給相應(yīng)的開發(fā)人員,并設(shè)置為Open狀態(tài);若不是缺陷,則拒絕,設(shè)置為Declined狀態(tài)。開發(fā)人員對標(biāo)記為Open狀態(tài)的缺陷進(jìn)行確認(rèn),若不是缺陷,狀態(tài)修改為Declined;如果是缺陷則修復(fù),并置狀態(tài)為Fixed。不能解決的缺陷,留下文字說明并保持Open狀態(tài)。缺陷修復(fù)后由測試人員驗(yàn)證后,確認(rèn)已修復(fù),可關(guān)閉,狀態(tài)改為Closed。如果仍有問題,狀態(tài)改為Reopen。Bug的生命周期4.缺陷數(shù)據(jù)分析缺陷趨勢分析缺陷的趨勢分析是缺陷在時間軸上對缺陷進(jìn)行分析,有助于進(jìn)度控制和測試過程的管理。在一個成熟的軟件開發(fā)過程中,缺陷趨勢一般會遵循一種和預(yù)測比較接近的模式向前發(fā)展。缺陷數(shù)據(jù)分析(續(xù))缺陷數(shù)據(jù)分析(續(xù))缺陷分布分析缺陷分布分析是缺陷的橫向分布,即空間上的分布??梢葬槍σ粋€或多個缺陷參數(shù)(如項(xiàng)目、功能點(diǎn)、來源、嚴(yán)重級別等)進(jìn)行缺陷分析。5.測試有效性度量缺陷去除率(DRE)測試有效性度量(續(xù))缺陷損耗缺陷損耗可定義為:6.測試管理工具測試管理工具對測試需求、測試計(jì)劃、測試用例、測試實(shí)施進(jìn)行管理,并且測試管理工具還包括對缺陷的跟蹤管理。常用的測試管理工具IBM公司TestManager、ClearQuest,HP公司的QualityCenter,TestDirector,Compureware公司的TrackRecord,Atlassian公司的JIRA,開源:Bugzilla,TestLink、Mantis等。演示:TestLink1.安裝與配置2.界面介紹3.使用課后練習(xí)選擇一個網(wǎng)站和或者應(yīng)用軟件,撰寫一份測試計(jì)劃;(兩周內(nèi)交電子稿)問題與討論黑盒測試(1)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院軟件測試方法邊界值測試等價類測試基于決策表的測試因果圖本章內(nèi)容軟件測試方法軟件測試方法一般分為兩種:白盒測試(WhiteBoxTesting)黑盒測試(Black-boxTesting)黑盒測試黑盒測試(Black-boxTesting)軟件輸入輸出又叫功能測試,數(shù)據(jù)驅(qū)動測試或基于規(guī)格說明的測試。黑盒測試過程需求說明產(chǎn)生被測程序測試結(jié)果輸出比較黑盒測試的目標(biāo)黑盒測試試圖發(fā)現(xiàn)以下類型的錯誤:功能錯誤或遺漏;界面錯誤,不美觀;外部信息訪問錯誤;性能錯誤;初始化和終止錯誤;在接口上,能否正確地接受輸入數(shù)據(jù),能否產(chǎn)生正確地輸出信息;徹底的黑盒測試?yán)狠斎肴切蔚娜龡l邊長,判斷三角形的形狀。判斷三角形的形狀輸入輸出ABC三角形的形狀黑盒測試的難點(diǎn)黑盒測試的難點(diǎn)在于如何構(gòu)造有效的輸入。由于輸入空間通常是無限的,窮舉測試顯然行不通。尋找最小最重要的用例集合以精簡測試復(fù)雜性。黑盒測試方法黑盒測試的測試用例設(shè)計(jì)方法邊界值分析等價類劃分基于決策表的測試因果圖錯誤推測4.1邊界值測試邊界條件邊界值分析健壯性測試最壞情況測試特殊值測試隨機(jī)測試1.邊界條件數(shù)值的邊界值字符的邊界值其他邊界條件見教材41頁任何值得測試的范圍的臨界點(diǎn),可分為:邊界值:在規(guī)格說明書中明確定義;次邊界:隱含在軟件中必須經(jīng)過分析才能獲得;
例如:屏幕上光標(biāo)在最左上、最右下位置;報表的第一行和最后一行;數(shù)組元素的第一個和最后一個;C++語言中,intA[10]:A[0]…A[9]
循環(huán)的第0次、第1次和倒數(shù)第2次、最后一次;2.邊界值分析邊界值分析的原理邊界值分析的思想邊界值分析測試用例設(shè)計(jì)方法(1)邊界值分析的基本原理邊界值分析關(guān)注輸入空間的邊界,并從中標(biāo)識測試用例?;驹礤e誤更可能出現(xiàn)在輸入變量的極值附近。(2)邊界值分析的基本思想在最小值、略高于最小值、正常值、略低于最大值和最大值處取輸入變量值。表示方法min、min+、nom、max-、和max例如:涉及兩個變量的函數(shù)x1,x2X1的取值x1min,x1min+,x1nom,x1max-,x1maxX2的取值x2min,x2min+,x2nom,x2max-,x2max邊界值分析的取值“單缺陷”假設(shè)“單缺陷”假設(shè)失效極少是由兩個或多個缺陷的同時發(fā)生引起的“單缺陷”假設(shè)是邊界值分析的關(guān)鍵假設(shè)(3)邊界值分析測試用例邊界值分析獲得測試用例的方法:使所有變量取正常值,只使一個變量取極值;對于一個n變量函數(shù),邊界值分析會產(chǎn)生4n+1個測試用例。X1取值:x1min,x1min+,x1nom,x1max-,x1maxX2取值:x2min,x2min+,x2nom,x2max-,x2max兩個變量函數(shù)的邊界值分析測試用例
{<x1nom,x2min>,<x1nom,x2min+>,<x1nom,x2nom>,<x1nom,x2max->,<x1nom,x2max>,<x1min,x2nom>,<x1min+,x2nom>,<x1max-,x2nom>,<x1max,x2nom>}兩個變量函數(shù)邊界值分析測試用例X2兩個變量函數(shù)邊界值分析測試用例舉例:三角形問題三角形問題描述三條邊a,b,c取整數(shù)值,且各邊的取值范圍是:[1,200]邊界值分析設(shè)計(jì)測試用例每條邊的取值:1,2,100,199,200測試用例數(shù)目:4n+1三角形問題(n=3):用例數(shù)為13(4)邊界值分析優(yōu)缺點(diǎn)邊界值測試分析采用了可靠性理論的單缺陷假設(shè)。優(yōu)點(diǎn):簡便易行;生成測試數(shù)據(jù)的成本很低;局限性:測試用例不充分;不能發(fā)現(xiàn)測試變量之間的依賴關(guān)系;不考慮含義和性質(zhì);結(jié)論:只能作為初步測試用例使用3.健壯性測試健壯性是指在異常情況下,軟件還能正常運(yùn)行的能力。健壯性有兩層含義:容錯能力恢復(fù)能力(1)健壯性測試的基本思想健壯性測試是邊界值分析的一種簡單擴(kuò)展,除了使用五個邊界值分析取值,還要過采用:一個略超過最大值(max+)的取值一個略小于最小值(min-)的取值X2兩個變量函數(shù)的健壯性測試用例(2)健壯性測試的討論健壯性測試最有意思的部分不是輸入而是預(yù)期的輸出健壯性測試的主要價值是觀察異常情況的處理軟件質(zhì)量要素的衡量標(biāo)準(zhǔn):軟件的容錯性軟件容錯性的度量:從非法輸入中恢復(fù)健壯性測試的測試用例個數(shù)
一個變量個數(shù)為n的函數(shù)的健壯性測試會產(chǎn)生多少個測試用例?思考:練習(xí):NextDate函數(shù)程序輸入條件Month:1≤月份≤12Day:1≤日期≤31Year:1812≤年≤2012輸入日期,計(jì)算其下一天。請用健壯性邊界值分析設(shè)計(jì)測試用例。請有興趣的同學(xué)在課后編寫NextDate函數(shù)或其他程序,在后續(xù)課程中進(jìn)行更深入的測試。4.最壞情況測試最壞情況測試的基本思想邊界值測試分析采用了可靠性理論的單缺陷假設(shè)最壞情況測試拒絕這種假設(shè),關(guān)心當(dāng)多個變量取極值時會出現(xiàn)什么情況?(1)最壞情況測試用例設(shè)計(jì)方法對每一個變量首先進(jìn)行包含最小值、略高于最小值、正常值、略低于最大值、最大值五個元素集合的測試,然后對這些集合進(jìn)行笛卡爾積計(jì)算,以生成測試用例。一個變量個數(shù)為n的函數(shù)的最壞情況測試會產(chǎn)生5n個測試用例。兩變量函數(shù)的最壞情況測試用例X2(2)最壞情況與邊界值分析的比較基本邊界值分析測試用例是最壞情況測試用例的真子集。最壞情況測試顯然更徹底;最壞情況測試工作量大得多;n變量函數(shù)的最壞情況測試會產(chǎn)生5的n次方個測試用例,邊界值分析只產(chǎn)生4n+1個測試用例最壞情況測試舉例(1)三角形問題三條邊a,b,c取整數(shù)值,且各邊的取值范圍是:[1,200]最壞情況測試用例每條邊的取值:1,2,100,199,200測試用例數(shù)目:5n三角形問題(n=3):用例數(shù)為125測試用例:見教材76頁NextDate的測試用例輸入條件1≤月份≤121≤日期≤311812≤年≤2012最壞情況測試用例設(shè)計(jì)月份取值:1,2,6,11,12日期取值:1,2,15,30,31年取值:1812,1813,1912,2011,2012最壞情況測試舉例(2)NextDate的測試用例測試用例數(shù)目
n=3,5n=125錯誤的測試用例1812年2月30日遺漏重要的測試用例日期取28或29閏年:2000年最壞情況測試舉例(2)5.健壯最壞情況測試對每一個變量,首先進(jìn)行包含最小值、略高于最小值、正常值、略低于最大值、最大值五個元素集合的測試,還要采用一個略超過最大值的取值,以及一個略小于最小值的取值。然后對這些集合進(jìn)行笛卡爾積計(jì)算以生成測試用例。兩變量函數(shù)的健壯最壞情況測試用例邊界值測試比較適合運(yùn)用在有下列情況:數(shù)值字母位置數(shù)量速度大小……6.特殊值測試邊界值分析假定n個變量是相互獨(dú)立的,沒有考慮這些變量之間的相互依賴關(guān)系;特殊值測試使用領(lǐng)域知識、使用類似程序的經(jīng)驗(yàn)設(shè)計(jì)測試用例的特殊值。特殊值測試特點(diǎn):最直觀、最不一致、具有高度主觀性。特殊值測試特別依賴測試人員的能力。雖然特殊值測試是高度主觀性的,但是能更有效地發(fā)現(xiàn)缺陷。7.隨機(jī)測試隨機(jī)測試的基本思想不是永遠(yuǎn)選取有界變量的最小值、略高于最小值、正常值、略低于最大值和最大值,而是使用隨機(jī)數(shù)生成器選出測試用例值。隨機(jī)測試的一種實(shí)現(xiàn)方法有界變量a≤x≤b值的一個VisualBasic應(yīng)用程序生成的x,滿足下式:
x=Int(b-a+1)*Rnd+a函數(shù)Int返回浮點(diǎn)數(shù)的整數(shù)部分函數(shù)Rnd生成區(qū)間[0,1]內(nèi)的隨機(jī)數(shù)思考:需要考慮哪些邊界問題?課堂練習(xí)
有一個小程序,能夠求出三個在0到9999間整數(shù)中的最大者,請分別用邊界值分析和健壯性測試方法設(shè)計(jì)測試用例。黑盒測試(2)等價類等價類測試類型用等價類設(shè)計(jì)測試用例案例本節(jié)內(nèi)容問題引入測試的矛盾為保證軟件產(chǎn)品的質(zhì)量,需要進(jìn)行完備(徹底)的測試;但這是不現(xiàn)實(shí)的,因?yàn)椋狠斎肓刻?輸出結(jié)果太多;軟件實(shí)現(xiàn)途徑太多;如果決定不去測試所有的情況,就選擇了風(fēng)險。問題引入從經(jīng)濟(jì)的角度來說,我們希望測試沒有冗余;一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。軟件質(zhì)量和投入的成本如何平衡?等價類方法可令測試事半功倍。舉例:設(shè)計(jì)測試用例,實(shí)現(xiàn)一個對所有實(shí)數(shù)進(jìn)行開方運(yùn)算(f=sqrt(x))的程序的測試。4.2等價類測試4.2.1等價類等價類的劃分劃分等價類的方法等價類測試類型用等價類設(shè)計(jì)測試用例1.等價類劃分劃分劃分是指互不相交的一組子集,這些子集的并是整個集合。劃分的定義給定集合B,以及B的一組子集A1、A2……、An,這些子集是B的一個劃分,當(dāng)且僅當(dāng):
A1∪A2∪…∪An=B,且
i≠j有Ai∩Aj=Φ劃分在軟件測試中的作用劃分對于測試的作用:完備性無冗余性邊界值分析方法的固有弱點(diǎn)是漏洞和冗余性。等價類測試的主要任務(wù)之一就是:
找出合適的劃分。等價類劃分將輸入定義域進(jìn)行一個劃分,并且劃分的各個子集是由等價關(guān)系決定的。此處的等價關(guān)系是指:在子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。等價類的分類有效等價類對于程序的規(guī)格說明來說,是合理的、有意義的輸入數(shù)據(jù)所構(gòu)成的集合;無效等價類對于程序的規(guī)格說明來說,是不合理的、沒有意義的輸入數(shù)據(jù)所構(gòu)成的集合;等價類測試的思想:把全部的輸入數(shù)據(jù)劃分成若干個等價類,在每一個等價類中取一個數(shù)據(jù)來進(jìn)行測試。在子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤是等效的。等價類測試的假設(shè):測試某等價類的代表值,就等效于對這個等價類中其他值的測試。2.等價類測試等價類的特點(diǎn)完備性無冗余性等價性注意設(shè)計(jì)測試用例時,要同時考慮有效等價類和無效等價類。3.劃分等價類的方法(1)按區(qū)間劃分如果輸入條件規(guī)定了取值范圍或值的個數(shù)就可確定一個有效等價類和兩個無效等價類。例如:輸入學(xué)生成績,范圍是0到100;實(shí)驗(yàn)課一個班選課人數(shù)20至40人;(2)按照數(shù)值劃分如果規(guī)定了輸入數(shù)據(jù)的一組值,且程序要對每一個輸入值分別進(jìn)行處理,要對每一個規(guī)定的輸入值確立一個有效等價類,而對于這組值之外的所有值確立一個無效等價類。例:輸入條件說明學(xué)歷可為:專科、本科、碩士、博士四種之一。(3)按照數(shù)值集合劃分輸入條件規(guī)定了輸入值的集合或是規(guī)定了“必須如何”的條件,則可確定一個有效等價類和一個無效等價類例如:“文件名稱必須以字母開頭,……”(4)如果輸入條件是一個布爾量,則可以確立一個有效等價類和一個無效等價類。例如:用驗(yàn)證碼登錄網(wǎng)站。(5)進(jìn)一步細(xì)分等價類如已劃分的等價類各元素在程序中的處理方式不同,則應(yīng)將此等價類進(jìn)一步劃分成更小的等價類。例如:輸入三條邊,判斷三角形的形狀。(首先判斷是否能構(gòu)成三角形,如果可以構(gòu)成三角形,
再進(jìn)一步判斷三角形的形狀。)4.2.2等價類測試類型單缺陷與多缺陷假設(shè)產(chǎn)生弱等價類與強(qiáng)等價類測試之分;是否進(jìn)行無效數(shù)據(jù)的處理產(chǎn)生健壯與一般等價類測試之分;等價類測試的分類:弱一般等價類測試強(qiáng)一般等價類測試弱健壯等價類測試強(qiáng)健壯等價類測試討論對象一個具有兩個自變量x1和x2的函數(shù)FF實(shí)現(xiàn)為一個程序且輸入變量x1和x2的邊界以及邊界內(nèi)的區(qū)間a≤x1≤d,區(qū)間為[a,b),[b,c),[c,d]e≤x2≤g,區(qū)間為[e,f),[f,g]討論對象(續(xù))1.弱一般等價類測試弱一般等價類測試的假設(shè):“單缺陷”假設(shè)失效極少是由兩個或多個缺陷的同時發(fā)生引起的測試用例設(shè)計(jì):選取的測試用例覆蓋所有的有效等價類。
弱一般等價類測試用例2.強(qiáng)一般等價類測試基于多缺陷假設(shè);測試用例設(shè)計(jì):將每個變量的有效等價類做笛卡爾積,設(shè)計(jì)測試用例覆蓋笛卡爾積的每個元素。
有n個變量的函數(shù),強(qiáng)一般等價類測試會產(chǎn)生多少個測試用例?思考:強(qiáng)一般等價類測試用例3.弱健壯等價類測試弱:基于單缺陷假設(shè)健壯:考慮無效值測試用例設(shè)計(jì):對有效輸入,覆蓋每個有效等價類的一個值對無效輸入,測試用例將擁有一個無效值,并保持其余的值都是有效的弱健壯等價類測試用例4.強(qiáng)健壯等價類測試強(qiáng)健壯等價類測試:基于多缺陷假設(shè),從所有等價類的笛卡爾積的每一個元素中獲得測試用例強(qiáng):多缺陷假設(shè)健壯:考慮無效值強(qiáng)健壯等價類測試用例5.用等價類設(shè)計(jì)測試用例(1)劃分等價類,形成等價類表(2)設(shè)計(jì)一新的測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類,重復(fù)這一步驟,直到所有的有效等價類都被覆蓋為止;(3)設(shè)計(jì)一新測試用例,使其只覆蓋一個無效等價類,重復(fù)這一步驟直到所有無效等價類均被覆蓋;4.2.3案例三角形問題以不同的角度劃分等價類:輸出值域等價類輸入條件(數(shù)據(jù)范圍)的等價類以“整數(shù)相等”關(guān)系劃分的等價類以兩邊之和與第三邊之間的關(guān)系1.輸出值域等價類輸出值域等價類R1={<a,b,c>:有三條邊a、b和c的等邊三角形}R2={<a,b,c>:有三條邊a、b和c的等腰三角形}R3={<a,b,c>:有三條邊a、b和c的一般三角形}R4={<a,b,c>:三條邊a、b和c不能構(gòu)成三角形}2.輸入條件的等價類有效等價類:正整數(shù);三個數(shù);無效等價類:零或負(fù)數(shù);少于三個數(shù);3.“整數(shù)相等”關(guān)系劃分等價類D1={<a,b,c>:a=b=c}D2={<a,b,c>:a=b,a≠c}D3={<a,b,c>:a=c,a≠b}D4={<a,b,c>:b=c,a≠b}D5={<a,b,c>:a≠b,a≠c,b≠c}4.以兩邊之和與第三邊之間的關(guān)系劃分等價類D6={<a,b,c>:a≥b+c}D7={<a,b,c>:b≥a+c}D8={<a,b,c>:c≥a+b}等價類D6的進(jìn)一步劃分D6‘={<abc>:a=b+c}D6"={<abc>:a>b+c}輸入條件有效等價類編號無效等價類編號三個正整數(shù)正整數(shù)1一邊為非正整數(shù)a為非正整數(shù)10b為非正整數(shù)11c為非正整數(shù)12兩邊為非正整數(shù)a,b為非正整數(shù)13a,c為非正整數(shù)14b,c為非正整數(shù)15三邊均為非正整數(shù)16三個數(shù)2只輸入一個數(shù)只給a17只給b18只給c19只輸入兩個數(shù)只給a,b20只給a,c21只給b,c22未輸入數(shù)23三角形的等價類輸入條件有效等價類編號無效等價類編號構(gòu)成一般三角形a+b>c,且a≠b≠c3a+b<c24a+b=c25a+c>b,且a≠b≠c4a+c<b26a+c=b27b+c>a,且a≠b≠c5b+c<a28b+c=a29構(gòu)成等腰三角形a=b,a≠c,且兩邊之和大于第三邊6a=c,a≠b,且兩邊之和大于第三邊7b=c,a≠b,且兩邊之和大于第三邊8構(gòu)成等邊三角形a=b=c9
三角形的等價類電話號碼問題某城市電話號碼由三部分組成,分別是:地區(qū)碼——空白或4位數(shù)字;前綴——為三位數(shù)字,但不能為“0”,“1”;后綴——4位數(shù)字。假定被測程序能接受一切符合上述規(guī)定的電話號碼,拒絕所有不符合規(guī)定的電話號碼。請用強(qiáng)一般等價類方法進(jìn)行測試,設(shè)計(jì)測試用例。思考NextDate問題NextDate
函數(shù)包含三個變量month、day和year,函數(shù)的輸出為輸入日期后面一天的日期。(1800≤year≤2050)用弱健壯等價類測試方法設(shè)計(jì)測試用例。練習(xí)課堂練習(xí)請?jiān)O(shè)計(jì)測試用例,測試登錄功能。等價類測試指導(dǎo)方針和觀察1. 等價類測試的弱形式不如對應(yīng)的強(qiáng)形式的測試全面。2. 如果實(shí)現(xiàn)語言是強(qiáng)類型,則沒有必要使用健壯形式的測試。3. 如果錯誤條件非常重要,則進(jìn)行健壯形式的測試是合適的。4.如果輸入數(shù)據(jù)以離散值區(qū)間和集合定義,則等價類測試是合適的。當(dāng)然也適用于如果變量值越界系統(tǒng)就會出現(xiàn)故障的系統(tǒng)。5. 通過結(jié)合邊界值測試,等價類測試可得到加強(qiáng)。6. 如果程序函數(shù)很復(fù)雜,則等價類測試是被指示的。在這種情況下,函數(shù)的復(fù)雜性可以幫助標(biāo)識有用的等價類。7. 強(qiáng)等價類測試假設(shè)變量是獨(dú)立的,相應(yīng)的測試用例相乘會引起冗余問題。如果存在依賴關(guān)系,則常常會生成錯誤測試用例。8. 在發(fā)現(xiàn)合適的等價關(guān)系之前,可能需要進(jìn)行多次嘗試。小結(jié)等價類等價類分類弱一般等價類測試強(qiáng)一般等價類測試弱健壯等價類測試強(qiáng)健壯等價類測試作業(yè):
教材74頁4題教材74頁5題教材74頁6題教材74頁7題黑盒測試(3)4.3基于判定表的測試判定表的組成基于判定表的測試案例4.3.1判定表判定表的原理判定表的組成判定表建立的步驟1.判定表的原理判定表判定表(DecisionTable),又叫決策表判定表是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的判定表的工具。在程序設(shè)計(jì)發(fā)展的初期,決策表就已被當(dāng)作編寫程序的輔助工具了。2.判定表的組成判定表的組成條件樁(ConditionStub)條件項(xiàng)(ConditionEntity)動作樁(ActionStub)動作項(xiàng)(ActionEntity)判定表的組成規(guī)則任何一個條件組合的特定取值及其相應(yīng)要執(zhí)行的操作稱為規(guī)則;在判定表中貫穿條件項(xiàng)和動作項(xiàng)的一列就是一條規(guī)則;判定表中列出多少組條件取值,也就有多少條規(guī)則,即條件項(xiàng)和動作項(xiàng)有多少列。規(guī)則示例:三角形問題規(guī)則合并規(guī)則合并規(guī)則合并:就是判定表的簡化。有兩條或多條規(guī)則具有相同的動作,并且其條件項(xiàng)之間存在著極為相似的關(guān)系,就可以將規(guī)則合并。兩條規(guī)則合并成一條條件項(xiàng)“—”表示與取值無關(guān)條件項(xiàng)“—”在邏輯上包含其它的條件兩條規(guī)則的進(jìn)一步合并3.基于判定表的測試判定表建立步驟①確定規(guī)則的個數(shù);假如有n個條件,每個條件有兩個取值(0,1),則有2n
種規(guī)則;②列出所有的條件樁和動作樁;③填入條件項(xiàng);④填入動作項(xiàng),得到初始決策表;⑤簡化,合并相似規(guī)則(相同動作)?;谂卸ū淼臏y試基于判定表的測試根據(jù)輸入輸出繪制判定表設(shè)計(jì)測試用例覆蓋判定表中各條規(guī)則4.3.3案例1:考生錄取問題描述某程序規(guī)定:“對總成績大于450分,且各科成績均高于85分或者是優(yōu)秀畢業(yè)生,應(yīng)優(yōu)先錄取,其余情況作其他處理”。請建立判定表。(1)列出所有的條件樁和動作樁總成績大于450分嗎?各科成績均高于85分嗎?優(yōu)秀畢業(yè)生嗎?(2)動作樁有兩項(xiàng):優(yōu)先錄?。蛔髌渌幚?;(3)規(guī)則的個數(shù):12345678條件總成績大于450分嗎YYYYNNNN各科成績均高于85分嗎?YYNNYYNN優(yōu)秀畢業(yè)生嗎?YNYNYNYN動作優(yōu)先錄取;作其他處理(4)繪制判定表(5)簡化后的判定表12345條件總成績大于450分嗎?YYYNN各科成績均高于85分嗎?YNNYN優(yōu)秀畢業(yè)生嗎?—YN——動作優(yōu)先錄取;作其他處理1234條件總成績大于450分嗎?YYYN各科成績均高于85分嗎?YNN—優(yōu)秀畢業(yè)生嗎?—YN—動作優(yōu)先錄??;作其他處理(6)進(jìn)一步簡化4.3.3案例:隔一日問題隔一日問題程序有三個輸入變量month、day、year(month、day和year均為整數(shù)值,并且滿足:1≤month≤12和1≤day≤31),分別作為輸入日期的月份、日、年份,通過程序可以輸出該輸入日期在日歷上隔一天的日期。例如,輸入為2005年11月29日,則該程序的輸出為2005年12月1日。請用判定表測試法進(jìn)行測試。(1)分析各種輸入情況,列出為輸入變量month、day、year劃分的有效等價類。month變量的有效等價類:day變量的有效等價類:year變量的有效等價類:思考:如何劃分等價類?(2)分析程序規(guī)格說明,結(jié)合以上等價類劃分的情況給出問題規(guī)定的可能采取的操作(即列出所有的動作樁)。a1:day+2a2:day=1a3:day=2a4:month+1a5:month=1a6:year+1a7:不可能(3)繪制判定表(4)設(shè)計(jì)測試用例見教材61頁。主持人對甲、乙、丙三人說:“這里有三頂紅帽子,兩頂白帽子?,F(xiàn)在用布蒙上你們的眼睛,給你們每人戴上一頂帽子,然后請你們依次睜開眼睛,能正確說出自己所戴帽子的顏色者有獎。”帶完帽子后,甲拿下布后看了其他兩人的帽子說:“我不知道?!比缓螅医忾_布看了其他兩人的帽子后說:“我不知道。”輪到丙時,他沒有拿下布就正確地說出了自己所戴帽子的顏色。試問:丙戴的是什么帽子?他是怎樣得出結(jié)論的?
一個游戲一個游戲1234567甲RRRRWWW乙RRWWRRW丙RWRWRWR甲不知乙不知丙知道課堂練習(xí)貨運(yùn)收費(fèi)策略:鐵路運(yùn)費(fèi)時,若收貨地點(diǎn)在本省以內(nèi),快件每公斤1.5元,慢件每公斤1元。若收貨地點(diǎn)在外省,重量小于或等于20公斤,快件每公斤2元,慢件每公斤1元,若重量大于20公斤,超重部分每公斤0.2元。請繪制判定表。指導(dǎo)方針和觀察判定表技術(shù)適用的應(yīng)用程序的特征:if-then-else邏輯很突出輸入變量之間存在邏輯關(guān)系涉及輸入變量子集的計(jì)算輸入與輸出之間存在因果關(guān)系很高的McCabe圈復(fù)雜度判定表的優(yōu)點(diǎn)能把復(fù)雜的問題按各種可能的情況一一列舉出來簡明而易于理解可避免遺漏判定表的缺點(diǎn)不能表達(dá)重復(fù)執(zhí)行的動作,例如循環(huán)結(jié)構(gòu)判定表不能很好地伸縮有n個條件的決策表有2n
個規(guī)則。解決方法使用擴(kuò)展條目判定表、代數(shù)簡化表,將大表“分解”為小表,查找條件項(xiàng)的判定表式作業(yè):
教材75頁:9題、
10題、課后練習(xí)某公司為本科以上學(xué)歷的人重新分配工作,分配原則如下:1.如果年齡不滿20歲,學(xué)歷是本科,男性要求報考研究生,女性擔(dān)任行政工作;2.如果年齡滿20歲不滿50歲,學(xué)歷本科,不分男女,任中層領(lǐng)導(dǎo)職務(wù),學(xué)歷是碩士不分男女,任課題組組長;3.如果年齡滿50歲,學(xué)歷本科,男性任科研人員,女性則擔(dān)任資料員,學(xué)歷是碩士不分男女,任課題組組長。黑盒測試(4)等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系,相互組合等.如果考慮輸入條件之間的相互組合,組合的情況可能會相當(dāng)多.因此必須考慮采用一種適合于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個動作的形式來考慮設(shè)計(jì)測試用例.這就需要利用因果圖。問題引入因果圖本節(jié)內(nèi)容因果圖分析法因果圖介紹利用因果圖導(dǎo)出測試用例舉例1.因果圖分析法因果圖(Cause-EffectGraphics)分析法因果圖分析法最終生成的是判定表,適合于檢查程序輸入條件的各種組合情況。因果圖分析依據(jù)需求規(guī)格說明中的因果關(guān)系。作用能夠按一定步驟,高效率地選擇測試用例;指出程序規(guī)約描述中存在著的問題;2.因果圖的基本符號
恒等c1e1e1=1c1=1e1=0c1=0非c1e1e1=0c1=1e1=1c1=02.因果圖的基本符號
或c1e1c2c3e1=1c1=1或c2=1或c3=1否則e1=0與e1c2e1=1c1=1且c2=1否則e1=0c1輸入條件的約束Ec1c2E(異)E(異):表示c1,c2中至多有一個可能為1,即c1和c2不能同時為1。Ic1c2c2I(或)I(或):表示c1,c2,c3中至少有一個
是1,即c1,c2,c3不能同時為0。
輸入條件的約束Oc1c2O(唯一)O(唯一):表示c1,c2中必須有一個
且僅有一個為1。Rc1c2R(要求)R(要求):表示c1是1時,c2必須是1,即不可能c1是1時c2是0。輸出條件的約束Me1e2M(強(qiáng)制)M(強(qiáng)制):表示如果結(jié)果e1是1時,
則結(jié)果e2強(qiáng)制為0。3.利用因果圖設(shè)計(jì)測試用例1.分析程序規(guī)格說明的描述中,哪些是原因,哪些是結(jié)果?原因常常是輸入條件或是輸入條件的等價類;結(jié)果是程序的輸出;2.分析程序規(guī)約的描述中語義的內(nèi)容,并將其表示成連接各個原因與各個結(jié)果的“因果圖”;3.在因果圖上使用若干個特殊的符號標(biāo)明約束條件;4.把因果圖轉(zhuǎn)換成判定表;5.把判定表中每一列表示的情況寫成測試用例;3.利用因果圖設(shè)計(jì)測試用例案例1:軟件規(guī)格說明書第一列字符必須是A或B,第二列字符必須是一個數(shù)字,在此情況下進(jìn)行文件的修改;但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M;原因和結(jié)果原因
1------第一列字符是A;2------第一列字符是B;3------第二列字符是一數(shù)字結(jié)果
21------修改文件;22------給出信息L;23------給出信息M;因果圖注:11是中間節(jié)有約束的因果圖考慮到原因1和原因2不可能同時為1,因此在因果圖上施加E約根據(jù)因果圖所建立的判定表
最左邊兩列,條件1和2同時為1是不可能的,排除掉,根據(jù)表可設(shè)計(jì)出6個測試用例。Test1:輸入數(shù)據(jù)-A3預(yù)期輸出:修改文件;Test2:輸入數(shù)據(jù)-AM預(yù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級上冊數(shù)學(xué)教案 除數(shù)是整數(shù)的小數(shù)除法(二) 西師大版
- 二年級下冊數(shù)學(xué)教案 第1課時 東西南北 北師大版
- 三年級數(shù)學(xué)下冊教學(xué)設(shè)計(jì)-1.6集郵北師大版
- 六年級下冊數(shù)學(xué)教案-7.2 圖形與位置 ∣蘇教版
- 三年級下冊數(shù)學(xué)教案-5.5 求簡單的經(jīng)過時間丨蘇教版
- 2025年房地產(chǎn)經(jīng)紀(jì)公司補(bǔ)充協(xié)議反饋 副本
- 2025年學(xué)習(xí)雷鋒精神62周年主題活動實(shí)施方案 (3份)
- 湖南省2024年普通高等學(xué)?!緦凇空猩荚嚒編煼额悺繉I(yè)【綜合知識】試題及答案
- 3-乘法-北師大版三年級下冊數(shù)學(xué)單元測試卷(含答案)
- 《晚春》歷年中考古詩欣賞試題匯編(截至2023年)
- 生活會前談心談話提綱
- 比較思想政治教育(第二版)第十二章課件
- 普通外科常見疾病臨床路徑
- 人教版區(qū)域地理課件世界地理之中亞五國【公開課教學(xué)PPT課件】高中地理
- 人教版九年級下冊初中英語全冊作業(yè)設(shè)計(jì)一課一練(課時練)
- 2021新版GJB9001C-2017體系文件內(nèi)審檢查表
- 風(fēng)篩式清選機(jī)的使用與維護(hù)
- 《計(jì)算流體力學(xué)CFD》
- 馬克思主義宗教觀課件
- 語文版九年級下冊課外閱讀練習(xí)
- 【課件】第11課+美術(shù)的曙光-史前與早期文明的美術(shù)+課件高中美術(shù)人教版(2019)美術(shù)鑒賞
評論
0/150
提交評論