軟件測試技術(shù)基礎(chǔ)教程(第3版)高職PPT完整全套教學(xué)課件_第1頁
軟件測試技術(shù)基礎(chǔ)教程(第3版)高職PPT完整全套教學(xué)課件_第2頁
軟件測試技術(shù)基礎(chǔ)教程(第3版)高職PPT完整全套教學(xué)課件_第3頁
軟件測試技術(shù)基礎(chǔ)教程(第3版)高職PPT完整全套教學(xué)課件_第4頁
軟件測試技術(shù)基礎(chǔ)教程(第3版)高職PPT完整全套教學(xué)課件_第5頁
已閱讀5頁,還剩463頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件測試技術(shù)基礎(chǔ)第1章軟件測試概述ch1軟件測試概述ch2白盒測試技術(shù)ch3黑盒測試技術(shù)ch4軟件測試計(jì)劃、文檔及測試用例ch5軟件自動化測試ch6面對對象的軟件測試ch7Web網(wǎng)站測試ch8JUnit測試ch9性能測試工具LoadRunnerch10測試管理平臺主要內(nèi)容軟件測試的背景軟件缺陷軟件測試的復(fù)雜性與經(jīng)濟(jì)性分析軟件測試的認(rèn)識軟件測試人員的素質(zhì)知識的分析重點(diǎn):

軟件缺陷的原因軟件缺陷軟件測試的復(fù)雜性難點(diǎn):

軟件測試的背景userdeveloperproductqualityinspection隨著軟件產(chǎn)業(yè)的日益發(fā)展,軟件系統(tǒng)的規(guī)模和復(fù)雜性與日俱增,軟件的生產(chǎn)成本和軟件中存在的缺陷故障造成的損失也大大增加,甚至?xí)頌?zāi)難性的后果。測試是最有效的排除和防止軟件缺陷與故障的手段,并由此促進(jìn)了軟件測試?yán)碚撆c技術(shù)實(shí)踐的快速發(fā)展。軟件測試發(fā)展歷史70年代以前:與調(diào)試沒有區(qū)分。70年代末~80年代中期:測試基礎(chǔ)理論和實(shí)用技術(shù)形成,測試作為軟件質(zhì)量保證(SQA)的主要職能。80年代末~90年代中期:測試工具在質(zhì)量和數(shù)量上不斷增長,測試與SQA(注重于過程和質(zhì)量監(jiān)督)分離。注重于工具對測試效率的影響。90年后期~目前:關(guān)注有效的過程管理對于軟件測試的重要性,形成各種測試模型、測試能力成熟度模型。軟件測試的現(xiàn)狀目前軟件測試行業(yè)的“缺口”已經(jīng)基本飽和最基礎(chǔ)的功能測試的崗位需求已經(jīng)越來越少軟件測試行業(yè)的門檻,也從真正的零基礎(chǔ),到現(xiàn)在的要求具備計(jì)算機(jī)專業(yè)能力軟件測試在企業(yè)中,特別是在互聯(lián)網(wǎng)行業(yè)的企業(yè)中,也從可有可無發(fā)展到不可或缺軟件測試發(fā)展現(xiàn)狀把測試行業(yè)按照發(fā)展時(shí)期來分,可分為以下2個(gè)階段:1)2010年以前,在絕大多數(shù)企業(yè)中,測試實(shí)踐的重心都放在系統(tǒng)功能的驗(yàn)收階段,測試人員的主要工作基本都圍繞著基于業(yè)務(wù)的黑盒測試,對編碼能力、系統(tǒng)理解能力要求不多;2)2010年后,隨著互聯(lián)網(wǎng)產(chǎn)品的快速發(fā)展,各行各業(yè)對軟件質(zhì)量的強(qiáng)需求,以及大數(shù)據(jù)、云計(jì)算、AI人工智能等前沿技術(shù)的涌入,傳統(tǒng)的測試工作模式和工作范圍越來越無法滿足行業(yè)的需要和產(chǎn)品的質(zhì)量要求。-美迪斯尼公司的獅子王游戲軟件bug

-美航天局火星登陸探測器缺陷

-北京奧運(yùn)會門票暫停第二階段的門票銷售。

-諾基亞Series40手機(jī)平臺存在缺陷案例分析軟件缺陷兼容性銜接性訪問量大漏洞軟件缺陷①軟件未達(dá)到產(chǎn)品說明書要求的功能。②軟件出現(xiàn)了產(chǎn)品說明書指明不會出現(xiàn)的錯(cuò)誤。③軟件功能超出了產(chǎn)品說明書規(guī)定的功能。④軟件未實(shí)現(xiàn)產(chǎn)品說明書雖未明確指出但應(yīng)該實(shí)現(xiàn)的目標(biāo)。⑤軟件難以理解,不易使用,運(yùn)行緩慢或者最終用戶認(rèn)為使用效果不好。定義軟件缺陷產(chǎn)生的原因軟件產(chǎn)品說明書(需求)56%設(shè)計(jì)27%編寫代碼7%其他10%

需求設(shè)計(jì)編碼與測試維護(hù)A開發(fā)前期出現(xiàn)錯(cuò)誤擴(kuò)展

需求設(shè)計(jì)實(shí)現(xiàn)測試維護(hù)錯(cuò)誤修正費(fèi)用軟件缺陷在不同階段發(fā)現(xiàn)時(shí)修復(fù)的費(fèi)用示意圖

軟件測試的復(fù)雜性與經(jīng)濟(jì)性分析不可能對程序?qū)崿F(xiàn)完全的測試殺蟲劑現(xiàn)象軟件測試的代價(jià)不能修復(fù)所有的軟件故障復(fù)雜性測試工作量.軟件缺陷故障數(shù)量測試費(fèi)用遺漏缺陷數(shù)目太少的測試是不負(fù)責(zé)任,過多的測試是一種浪費(fèi)。100%的測試是不可能的復(fù)雜性測試測試項(xiàng)測試資源運(yùn)行平臺測試周期開發(fā)費(fèi)用的40-60%,甚至80%軟件測試的復(fù)雜性與經(jīng)濟(jì)性分析經(jīng)濟(jì)性測試的時(shí)機(jī)軟件的功能目標(biāo)用戶的數(shù)量潛在缺陷造成的影響開發(fā)機(jī)構(gòu)的業(yè)務(wù)能力測試費(fèi)用

軟件測試的復(fù)雜性與經(jīng)濟(jì)性分析經(jīng)濟(jì)性

軟件測試的復(fù)雜性與經(jīng)濟(jì)性分析對任何軟件都存在有限的充分測試集合。軟件測試的單調(diào)性。軟件測試的非復(fù)合性。軟件測試的非分解性。軟件測試的充分性與軟件的需求、軟件的實(shí)現(xiàn)都相關(guān)。軟件測試的復(fù)雜性。軟件測試具有回報(bào)遞減性。充分性準(zhǔn)則軟件測試完全與開發(fā)人員無關(guān)自動化測試可完全替代人工測試軟件測試對技術(shù)要求不高軟件測試是開發(fā)后期的一個(gè)階段誤區(qū)軟件測試的認(rèn)識大量的實(shí)驗(yàn)貫穿整個(gè)項(xiàng)目技術(shù)含量高與開發(fā)對立統(tǒng)一軟件測試的認(rèn)識足夠的耐心和責(zé)任感超強(qiáng)的記憶力和良好的洞察力充分的自信心具備懷疑精神和學(xué)習(xí)能力

良好的溝通能力掌握比較全面的技術(shù)

軟件測試人員的素質(zhì)息了休!軟件測試技術(shù)基礎(chǔ)第2章白盒測試技術(shù)白盒測試技術(shù)邏輯覆蓋測試路徑分析測試白盒測試綜合策略循環(huán)測試代碼檢查法白盒測試的基本概念

白盒測試又稱結(jié)構(gòu)測試、邏輯驅(qū)動測試或基于程序本身的測試,也可稱為程序員測試。voidDoWork(intx,inty,intz){intk=0,j=0;if((x>3)&&(z<10)){k=x*y-1;j=sqrt(k);}//語句塊1if((x==4)||(y>5)){j=x*y+10;}//語句塊2j=j%3;//語句塊3}白盒測試的基本概念白盒測試的基本概念主要用于軟件驗(yàn)證,使用程序設(shè)計(jì)的控制結(jié)構(gòu)導(dǎo)出測試用例。按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗(yàn)程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能。測試方法:窮舉路徑的測試方法白盒測試的基本概念白盒測試的原則一個(gè)模塊中的所有獨(dú)立路徑至少被測試一次所有邏輯值均需測試真和假情況檢查程序內(nèi)部數(shù)據(jù)結(jié)構(gòu),保證其結(jié)構(gòu)的有效性在上下邊界及可操作范圍內(nèi)運(yùn)行所有循環(huán)獨(dú)立路徑邏輯值內(nèi)部數(shù)據(jù)結(jié)構(gòu)邊界白盒測試的基本概念路徑分析測試邏輯覆蓋測試白盒測試技術(shù)白盒測試的基本概念判定-條件覆蓋條件覆蓋條件組合覆蓋路徑覆蓋判定覆蓋語句覆蓋邏輯結(jié)構(gòu)白盒測試技術(shù)—邏輯覆蓋測試方法IF(A>1)AND(B=0)THENX=X/A;IF(A=2)OR(X>1)THENX=X+1;開始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce邏輯覆蓋測試邏輯覆蓋測試-語句覆蓋可執(zhí)行語句測試輸入:A=2,B=0,X=4開始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce開始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce邏輯覆蓋測試-判定覆蓋(分支覆蓋)判定(A>1)AND(B=0)真:T1假:-T1(A=2)OR(X>1)真:T2假:-T2測試輸入:A=2,B=0,X=3覆蓋T1,T2A=1,B=0,X=1覆蓋-T1,-T2開始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdceA>1真:T1

假:-T1B=0

真:T2

假:-T2A=2真:T3

假:-T3X>1真:T4

假:-T4邏輯覆蓋測試-條件覆蓋條件測試輸入:A=2,B=0,X=3覆蓋T1,T2,T3,T4A=1,B=-1,X=1覆蓋-T1,-T2,-T3,-T4判定條件邏輯覆蓋測試-判定/條件覆蓋開始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce判定條件判定條件條件測試輸入:A=2,B=0,X=3覆蓋:條件:t1,t2,t3,t4;判定:T1,T2A=1,B=1,X=1覆蓋:條件:-t1,-t2,-t3,-t4;判定:-T1,-T2邏輯覆蓋測試-條件組合覆蓋A>1,B=0組合記:1A>1,B≠0組合記:2A≯1,B=0組合記:3A≯1,B≠0組合記:4A=2,X>1組合記:5A=2,X≯1組合記:6A≠2,X>1組合記:7A≠2,X≯1組合記:8開始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce條件組合測試輸入:A=2,B=0,X=3A=2,B=1,X=1A=1,B=1,X=1A=1,B=0,X=3覆蓋的組合:1,52,64,83,7針對同一判定中的各條件的組合?。÷窂剑篴bdaceabeacd

邏輯覆蓋測試-路徑覆蓋開始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce路徑測試輸入:A=2,B=0,X=3A=2,B=1,X=1A=1,B=0,X=1A=3,B=0,X=3FTTdce語句覆蓋:設(shè)計(jì)若干個(gè)測試用例,運(yùn)行被測程序,使程序中的每一條可執(zhí)行語句至少執(zhí)行一次。判定覆蓋(也稱為分支覆蓋):設(shè)計(jì)若干個(gè)測試用例,運(yùn)行被測程序,使程序中每個(gè)判定的取真分支和取假分支至少執(zhí)行一次。邏輯覆蓋測試小結(jié)條件覆蓋:設(shè)計(jì)足夠多的測試用例,運(yùn)行被測程序,使程序中每個(gè)判定包含的每個(gè)條件的每個(gè)可能取值至少執(zhí)行一次。邏輯覆蓋測試小結(jié)判定/條件覆蓋:設(shè)計(jì)足夠多的測試用例,運(yùn)行被測程序,使程序中每個(gè)判定包含的每個(gè)條件的所有可能取值至少執(zhí)行一次,并且每個(gè)可能的判定結(jié)果也至少執(zhí)行一次。條件組合覆蓋:設(shè)計(jì)足夠多的測試用例,運(yùn)行被測程序,使程序中每個(gè)判定的所有可能的條件取值組合至少執(zhí)行一次。路徑覆蓋:設(shè)計(jì)足夠多的測試用例,運(yùn)行被測程序,要求覆蓋程序中所有可能的路徑。邏輯覆蓋測試小結(jié)邏輯覆蓋的強(qiáng)弱關(guān)系圖邏輯覆蓋測試小結(jié)467810111314程序流程圖

控制流圖467148101113節(jié)點(diǎn)邊4白盒測試的基本概念-控制流圖控制流圖是對程序流程圖進(jìn)行簡化后得到的,它可以更加突出的表示程序的控制流的結(jié)構(gòu)。組成:節(jié)點(diǎn)和控制流線。(1)節(jié)點(diǎn)由帶有標(biāo)號的圓圈表示,可以代表一個(gè)或多個(gè)語句、一個(gè)處理框序列和一個(gè)條件判定框(假設(shè)不包含復(fù)合條件)。(2)控制流線由帶箭頭的弧或線表示,可稱為邊。它代表程序中的控制流。白盒測試的基本概念-控制流圖小結(jié)常見結(jié)構(gòu)的控制流圖

判定節(jié)點(diǎn):包含條件的節(jié)點(diǎn),其發(fā)出的邊必須終止于某一個(gè)節(jié)點(diǎn)。

區(qū)域:邊和節(jié)點(diǎn)所限定的范圍。白盒測試的基本概念-控制流圖

復(fù)合條件:條件語句中用到一個(gè)或多個(gè)布爾運(yùn)算符(邏輯OR,AND,NAND,NOR)。!!!對于復(fù)合條件,可將其分解為多個(gè)單個(gè)條件.1ifaorb

2x

3else

4y白盒測試的基本概念-控制流圖控制流圖voidDoWork(intx,inty,intz){intk=0,j=0;if((x>3)&&(z<10)){k=x*y-1;j=sqrt(k);}//語句塊1if((x==4)||(y>5)){j=x*y+10;}//語句塊2j=j%3;//語句塊3}例題31245語句塊3語句塊2語句塊121011430315課堂練習(xí)思考題目下例程序流程圖描述了最多輸入50個(gè)值(以–1作為輸入結(jié)束標(biāo)志),計(jì)算其中有效的學(xué)生分?jǐn)?shù)的個(gè)數(shù)、總分?jǐn)?shù)和平均值,請畫出其控制流圖。

路徑分析測試路徑覆蓋簡化

在不能做到所有路徑覆蓋的前提下,如果某一程序的每一個(gè)獨(dú)立路徑都被測試過,那么可以認(rèn)為程序中的每個(gè)語句都已經(jīng)檢驗(yàn)過了,即達(dá)到了語句覆蓋。路徑分析測試獨(dú)立路徑獨(dú)立路徑程序中至少引進(jìn)一個(gè)新的處理語句集合或一個(gè)新條件的任一路徑。在控制流圖中必須至少包含一條在本次定義路徑之前不曾用到的邊。環(huán)形復(fù)雜度(圈復(fù)雜度)值=獨(dú)立路徑數(shù)量,即提供了確保所有語句至少執(zhí)行一次的測試數(shù)量的上界。基本概念路徑分析測試方法計(jì)算方法包括:

1、控制流圖中區(qū)域的數(shù)量=環(huán)形復(fù)雜度(V(G))。

2、控制流圖的環(huán)形復(fù)雜度V(G)=E-N+2,E是邊的數(shù)量,N是節(jié)點(diǎn)數(shù)量。

3、控制流圖的環(huán)形復(fù)雜度V(G)=P+1,P是判定節(jié)點(diǎn)的數(shù)量。環(huán)形復(fù)雜度路徑分析測試?yán)喝?fù)雜度,計(jì)算如下:V(G)=10條邊-8結(jié)點(diǎn)+2=4;V(G)=3個(gè)判定結(jié)點(diǎn)+1=4。流圖中有四個(gè)區(qū)域;467148101113邊和節(jié)點(diǎn)所限定的范圍計(jì)算區(qū)域時(shí)應(yīng)包括圖外部的范圍

1234畫出程序的控制流圖環(huán)形復(fù)雜度獨(dú)立路徑測試用例控制流圖計(jì)算程序的環(huán)形復(fù)雜度。導(dǎo)出基本路徑集,確定程序的獨(dú)立路徑。據(jù)各條獨(dú)立路徑,設(shè)計(jì)測試用例。獨(dú)立路徑測試步驟路徑分析測試voidSort(intiRecordNum,intiType)1{2intx=0;3inty=0;4while(iRecordNum-->0)5{6 If(iType==0)7 x=y+2;8else9 If(iType==1)10x=y+10;11else12x=y+20;13}14}例題467910121314467149101213程序流程圖

控制流圖第一步:畫出控制流圖路徑分析測試-基本路徑測試V(G)=10條邊-8結(jié)點(diǎn)+2=4;V(G)=3個(gè)判定結(jié)點(diǎn)+1=4。流圖中有四個(gè)區(qū)域;第二步:計(jì)算圈復(fù)雜度467149101213得出的獨(dú)立路徑如下:路徑1:4-14路徑2:4-6-7-14路徑3:4-6-8-10-13-4-14路徑4:4-6-8-11-13-4-14

第三步:導(dǎo)出獨(dú)立路徑467148101113路徑1:4-14輸入數(shù)據(jù):iRecordNum=0,或者取iRecordNum<0的某一個(gè)值預(yù)期結(jié)果:x=0 路徑2:4-6-7-14輸入數(shù)據(jù):iRecordNum=1,iType=0預(yù)期結(jié)果:x=0路徑3:4-6-8-10-13-4-14輸入數(shù)據(jù):iRecordNum=1,iType=1預(yù)期結(jié)果:x=10路徑4:4-6-8-11-13-4-14輸入數(shù)據(jù):iRecordNum=1,iType=2預(yù)期結(jié)果:y=20第四步:設(shè)計(jì)測試用例 簡單循環(huán)嵌套循環(huán)串接循環(huán)無結(jié)構(gòu)循環(huán)循環(huán)測試的目的:檢查循環(huán)結(jié)構(gòu)的有效性。循環(huán)測試(1)測試簡單循環(huán)(循環(huán)的最大次數(shù)為n):跳過整個(gè)循環(huán);只循環(huán)一次;只循環(huán)兩次;循環(huán)m

次,其中m<n;分別循環(huán)n-1、n和n+1次。循環(huán)測試(2)嵌套循環(huán)測試從最內(nèi)層循環(huán)開始測試,所有外層循環(huán)次數(shù)設(shè)置為最小值;對最內(nèi)層循環(huán)按照簡單循環(huán)的測試方法進(jìn)行;由內(nèi)向外進(jìn)行下一個(gè)循環(huán)的測試,本層循環(huán)的所有外層循環(huán)仍取最小值,而由本層循環(huán)嵌套的循環(huán)取某些“典型”值;重復(fù)上一步的過程,直到測試完所有循環(huán)。循環(huán)測試(3)串接循環(huán)測試

若各個(gè)循環(huán)都相互獨(dú)立,則可分別采用簡單循環(huán)的測試方法;若循環(huán)不獨(dú)立,則推薦使用嵌套循環(huán)的方法進(jìn)行測試。循環(huán)測試(4)非結(jié)構(gòu)循環(huán)測試按結(jié)構(gòu)化程序設(shè)計(jì)的思想將程序結(jié)構(gòu)化后,再進(jìn)行測試。循環(huán)測試Z路徑覆蓋是將程序中的循環(huán)結(jié)構(gòu)簡化為選擇結(jié)構(gòu)的路徑覆蓋。目的:限制循環(huán)的次數(shù),簡化后的循環(huán)測試只考慮執(zhí)行循環(huán)體一次和零次(不執(zhí)行)兩種情況。循環(huán)測試-Z路徑覆蓋要么執(zhí)行要么跳過

代碼檢查法方式:桌面檢查、代碼審查和走查。內(nèi)容:

檢查代碼和設(shè)計(jì)的一致性代碼對標(biāo)準(zhǔn)的遵循、可讀性代碼邏輯表達(dá)的正確性代碼結(jié)構(gòu)的合理性程序編寫與編寫標(biāo)準(zhǔn)的符合性程序中不安全、不明確和模糊的部分編程風(fēng)格問題等

代碼檢查-代碼審查代碼審查小組組成主持人記錄員作者評論員開發(fā)組內(nèi)部進(jìn)行的,采用講解、提問并使用Checklist方式進(jìn)行的查找錯(cuò)誤的活動。一般有正式的計(jì)劃、流程和結(jié)果報(bào)告。代碼檢查-代碼審查代碼檢查-代碼審查審查前代碼計(jì)劃概述審查會議準(zhǔn)備審查報(bào)告返工跟進(jìn)跟進(jìn)審查后代碼代碼審查步驟特點(diǎn):代碼審查并不專注于修正,而是專注于缺陷的檢測。審查人員要為審查會議預(yù)先做好準(zhǔn)備,制訂一份他們發(fā)現(xiàn)的已知問題檢驗(yàn)單。參與者都要被賦予明確的角色。審查的主持人不能由被檢查產(chǎn)品的作者擔(dān)任。代碼檢查-代碼審查審查的主持人應(yīng)該已經(jīng)接受過主持審查會議方面的培訓(xùn)。所有與會者都做好準(zhǔn)備之后才召開審查會議。每次審查所收集的數(shù)據(jù)都會被應(yīng)用到以后的審查中,以便對審查進(jìn)行改進(jìn)。高層管理人員不參加審查會議。核對表關(guān)注的是審查者過去所遇到的問題。通過對源程序代碼進(jìn)行分析、檢驗(yàn)來發(fā)現(xiàn)程序中的錯(cuò)誤。桌面檢查關(guān)注的是變量的值和程序邏輯。方式:表格代碼檢查-桌面檢查表格的設(shè)計(jì)如下:第一列是源程序的行號。待檢查程序中使用的每個(gè)變量占據(jù)一列。變量名作為列標(biāo)題,最好按照字母順序排列。隨著程序流程的執(zhí)行,新的變量值填入對應(yīng)的表格中。條件(Conditions)列。條件的結(jié)果可能為真(T)或假(F)。隨著程序的執(zhí)行,條件值被計(jì)算出來并記錄到表格中。輸入/輸出(input/Output)列。這列用來記錄需要用戶輸入的值和程序輸出的值。輸入數(shù)據(jù)可以表示為:變量名+“?”+變量值,例如,price?200;輸出數(shù)據(jù)可以表示為:變量名+“=”+變量值,例如discount=180。代碼檢查-桌面檢查程序4_4:包含順序執(zhí)行語句。程序描述:將華氏溫度轉(zhuǎn)化為攝氏溫度。代碼:1publicclassFahrenheitToCelsius{2publicstaticvoidmain(String[]args){3StringfahrenheitString=JOptionPane.showInputDialog(null,"請輸入一個(gè)華氏溫度:","華氏溫度轉(zhuǎn)化為攝氏溫度",JOptionPane.QUESTION_MESSAGE);4doublefahrenheit=Double.parseDouble(fahrenheitString);5doublecelsius=(5.0/9.0)*(fahrenheit-32);6System.out.println("攝氏溫度為"+celsius+"度");7System.exit(0);8}9}例題LfahrenheitStringfahrenheitcelsiusInput/Output123“41”fahrenheitString?“41”441.05(5.0/9.0)*(41.0-32)=5.06celsius?5.0789程序4_5:包含選擇語句if-else。程序描述:根據(jù)收入計(jì)算稅費(fèi)。代碼:1publicclassCalcTax{2 publicstaticvoidmain(String[]args){3 Scannerscanner=newScanner(System.in);4 doubletax;5 System.out.println("Enteraninteger:");6 intincome=scanner.nextInt();7 if(income<2000)8 tax=0;9 else{10 if(income<6000)11 tax=(income-2000)*0.1;12 else13 tax=4000*0.1+(income-6000)*0.2;14 }15 System.out.println("Thetaxis:"+tax);16 }17}例題LincometaxConditionsInput/Output1::5Enteraninteger68000income?800078000<2000?isF89108000<6000?isF1112134000*0.1+(8000-6000)*0.2=8001415Tax=8001617開發(fā)組內(nèi)部進(jìn)行的,采用講解、討論和模擬運(yùn)行的方式進(jìn)行的查找錯(cuò)誤的活動。代碼檢查-代碼走查代碼審查-代碼走查代碼審查是一種正式的評審活動,而代碼走查的討論過程是非正式的。代碼走查與代碼審查不同,不是簡單地讀程序和對照核對表進(jìn)行檢查,而是讓與會者“充當(dāng)”計(jì)算機(jī)。首先由測試者為所測程序準(zhǔn)備一批有代表性的測試用例,提交給走查小組。在會議上,與會者集體扮演計(jì)算機(jī)的角色,讓測試用例沿程序的邏輯運(yùn)行一遍,隨時(shí)記錄程序的蹤跡和狀態(tài)(也就是各變量的值),供分析和討論用。白盒測試綜合策略在測試中,應(yīng)盡量先用測試工具進(jìn)行靜態(tài)結(jié)構(gòu)分析。測試中可采取先靜態(tài)后動態(tài)的組合方式。利用靜態(tài)分析的結(jié)果作為引導(dǎo),通過代碼檢查和動態(tài)測試的方式對靜態(tài)分析結(jié)果進(jìn)行進(jìn)一步的確認(rèn),使測試工作更為有效。覆蓋率測試是白盒測試的重點(diǎn)。在不同的測試階段,測試的側(cè)重點(diǎn)不同。最少測試用例的計(jì)算最少測試用例數(shù)計(jì)算(續(xù))測試用例?4a+b->2c+d->22*2=4最少測試用例數(shù)計(jì)算(續(xù))估算最少測試用例個(gè)數(shù)的原則:如果在N-S圖中存在有并列的層次A1、A2,A1和A2的最少測試用例個(gè)數(shù)分別為a1、a2,則由A1、A2兩層所組合的N-S圖對應(yīng)的最少測試用例數(shù)為a1×a2。如果在N-S圖中不存在有并列的層次,則對應(yīng)的最少測試用例數(shù)由并列的操作數(shù)決定,即N-S圖中除謂詞之外的操作框的個(gè)數(shù)。最少測試用例數(shù)計(jì)算(續(xù))例:如下圖所示的兩個(gè)N-S圖,至少需要多少個(gè)測試用例完成邏輯覆蓋?最小測試用例:3最小測試用例:5最少測試用例數(shù)計(jì)算(續(xù))如下圖所示的N-S圖,至少需要多少個(gè)測試用例完成邏輯覆蓋?

分析該N-S圖:找出并列的層:2345和67是并列的兩層。計(jì)算并列層的最小的測試用例個(gè)數(shù):5(2345)×3(67)=15計(jì)算總的最小測試用例個(gè)數(shù):15+1=16。例題

本節(jié)就到這里,下節(jié)見!軟件測試技術(shù)基礎(chǔ)

第5章黑盒測試技術(shù)黑盒測試技術(shù)教學(xué)目標(biāo)理解黑盒測試方法的基本概念教學(xué)目標(biāo)掌握黑盒測試的等價(jià)類劃分法、邊界值分析法、因果圖測試法和決策表法技能要求運(yùn)用等價(jià)類劃分法、邊界值分析法、因果圖測試法與決策表法進(jìn)行軟件測試主要內(nèi)容黑盒測試概述等價(jià)類劃分法邊界值分析法決策表法因果圖法測試方法的選擇知識的分析重點(diǎn):

等價(jià)類的劃分決策表化解測試方法的選擇等價(jià)類劃分法邊界值分析法決策表法因果圖法難點(diǎn):

黑盒測試又稱功能測試、數(shù)據(jù)驅(qū)動測試或基于規(guī)格說明的測試,也可被稱為用戶測試。黑盒測試法概述黑盒測試概述purposeprogramfunctionHumanInterfacetoComputerInitializeterminateRequirementsSpecification

?測試用例設(shè)計(jì)方法實(shí)例應(yīng)用常見的劃分形式等價(jià)類劃分法劃分原則等價(jià)類劃分原則劃分等價(jià)類的標(biāo)準(zhǔn)完備性無冗余性所有等價(jià)類的并集就是整個(gè)輸入域,提供一種形式的完備性。等價(jià)類是輸入域的某個(gè)子集合,子集互不相交,保證一種形式的無冗余性。假設(shè)一個(gè)程序P有輸入量X和Y及輸出量Z,在字長為32位的計(jì)算機(jī)上運(yùn)行。若X、Y取整數(shù),按窮舉進(jìn)行測試。窮舉法測試:測試數(shù)據(jù)組:232×232=264時(shí)間:5億年1毫秒/組,365×24小時(shí)/年實(shí)現(xiàn)一個(gè)對所有實(shí)數(shù)進(jìn)行開平方運(yùn)算(y=sqrt(x))的程序的測試。提示:逐一測試,采用窮舉法!局部代表整體!正實(shí)數(shù):+1.4444負(fù)實(shí)數(shù):-2.3450等價(jià)類劃分等價(jià)類測試輸入域劃分1234少數(shù)、代表性測試思想子集1子集3子集4子集2等價(jià)類等價(jià)類劃分法有效等價(jià)類無效等價(jià)類有意義的、合理的輸入數(shù)據(jù)所組成的集合無意義的、不合理的輸入數(shù)據(jù)所構(gòu)成的集合等價(jià)類等價(jià)類劃分程序輸入條件為小于100大于10的整數(shù)x,求其有效等價(jià)類和無效等價(jià)類。解答:有效等價(jià)類為:10<x<100;兩個(gè)無效等價(jià)類為:x≤10和x≥100程序輸入條件為取值為奇數(shù)的整數(shù)x。有效等價(jià)類為:x的值為奇數(shù)的整數(shù),無效等價(jià)類為:x的值不為奇數(shù)的整數(shù)。例題程序輸入條件為以字符‘a(chǎn)’開頭、長度為8的字符串,并且字符串不包含‘a(chǎn)’~‘z’之外的其它字符。

有效等價(jià)類:滿足了上述所有條件的字符串;無效等價(jià)類:不以‘a(chǎn)’開頭的字符串、長度不為8的字符串和包含了‘a(chǎn)’~‘z’之外其它字符的字符串。

等價(jià)類劃分-課堂練習(xí)課堂練習(xí)程序要求密碼非空。有效等價(jià)類:為非空密碼;無效等價(jià)類為:空密碼

等價(jià)類劃分-課堂練習(xí)課堂練習(xí)(1)按照區(qū)間劃分

有效等價(jià)類:1個(gè);無效等價(jià)類:2個(gè)。(2)按照數(shù)值劃分

有效等價(jià)類:n個(gè);無效等價(jià)類:1個(gè)。(3)按照數(shù)值集合劃分有效等價(jià)類:1個(gè);無效等價(jià)類:1個(gè)。

等價(jià)類劃分法劃分依據(jù)(4)按照限制條件或規(guī)則劃分

有效等價(jià)類:1個(gè);無效等價(jià)類:n個(gè)。(5)輸入是布爾表達(dá)式有效等價(jià)類:1個(gè);無效等價(jià)類:1個(gè)(6)細(xì)分等價(jià)類在確知已劃分的等價(jià)類中各元素在程序中的處理方式不同的情況下,則應(yīng)再將該等價(jià)類進(jìn)一步劃分為更小的等價(jià)類,并建立等價(jià)類表。劃分依據(jù)編號有效等價(jià)類無效等價(jià)類為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號。設(shè)計(jì)一個(gè)新的測試用例,使它能夠盡量覆蓋尚未覆蓋的有效等價(jià)類。設(shè)計(jì)一個(gè)新的測試用例,使它僅覆蓋一個(gè)尚未覆蓋的無效等價(jià)類。設(shè)計(jì)步驟等價(jià)類劃分法少而全多而專

某網(wǎng)站用戶申請注冊時(shí),要求用戶必須輸入用戶名、密碼及確認(rèn)密碼,對每一項(xiàng)輸入條件的要求如下:用戶名要求為4~12位,只能使用英文字母、數(shù)字、“-”、“_”這幾種字符組合,并且首字符必須為字母或數(shù)字;密碼要求為6~12位,只能使用英文字母、數(shù)字以及“-”、“_”這幾種字符組合,并且區(qū)分大小寫。等價(jià)類劃分法例題等價(jià)類劃分法1)確定等價(jià)類,列出等價(jià)類表等價(jià)類劃分法

2)確定測試用例針對以下問題:某一種8位計(jì)算機(jī),其十六進(jìn)制常數(shù)的定義是以0x或0X開頭的十六進(jìn)制整數(shù),其取值范圍為-7f~7f(不區(qū)分大小寫字母),如0x13、0x6A、-0x3c。請采用等價(jià)類劃分的方法設(shè)計(jì)測試用例。

課后思考針對是否對無效數(shù)據(jù)進(jìn)行測試,可以將等價(jià)類測試分為標(biāo)準(zhǔn)等價(jià)類測試和健壯等價(jià)類測試。標(biāo)準(zhǔn)等價(jià)類測試——不考慮無效數(shù)據(jù)值,測試用例使用每個(gè)等價(jià)類中的一個(gè)值。健壯等價(jià)類測試——主要的出發(fā)點(diǎn)是考慮了無效等價(jià)類。對有效輸入,測試用例從每個(gè)有效等價(jià)類中取一個(gè)值;對無效輸入,一個(gè)測試用例有一個(gè)無效值,其他值均取有效值。

常見等價(jià)類劃分測試法

在三角形問題中,有四種可能的輸出:等邊三角形、等腰三角形、一般三角形和非三角形。利用這些信息能夠確定下列輸出(值域)等價(jià)類。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不能組成三角形}標(biāo)準(zhǔn)等價(jià)類測試用例健壯等價(jià)類測試用例例題三角形問題測試用例abc預(yù)期輸出Test1101010等邊三角形Test210105等腰三角形Test3345一般三角形Test4412非三角形三角形問題的4個(gè)標(biāo)準(zhǔn)等價(jià)類測試用例三角形問題測試用例abc預(yù)期輸出Test1567一般三角形Test2-155a值超出輸入值定義域Test35-15b值超出輸入值定義域Test455-1c值超出輸入值定義域Test510155a值超出輸入值定義域Test651015b值超出輸入值定義域Test755101c值超出輸入值定義域三角形問題的7個(gè)健壯等價(jià)類測試用例思考題目假設(shè)一個(gè)文本輸入?yún)^(qū)域允許輸入1個(gè)到255個(gè)字符。分析:輸入1個(gè)和255個(gè)字符作為有效等價(jià)類;輸入0個(gè)和256個(gè)字符作為無效等價(jià)類,大量的故障往往發(fā)生在輸入定義域或輸出值域的邊界上,而不是在其內(nèi)部。通常情況下,軟件測試所包含的邊界檢驗(yàn)有幾種類型:數(shù)字、字符、位置、質(zhì)量、大小、速度、方位、尺寸、空間等相應(yīng)地,以上類型的邊界值應(yīng)該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最長、空/滿等情況下邊界值分析測試法思考題目假設(shè)一個(gè)文本輸入?yún)^(qū)域允許輸入1個(gè)到255個(gè)字符。分析:輸入1個(gè)和255個(gè)字符作為有效等價(jià)類;輸入0個(gè)和256個(gè)字符作為無效等價(jià)類,不輸入字符內(nèi)部邊界值條件或子邊界值條件小結(jié):在實(shí)際中需要結(jié)合基本邊界值條件和內(nèi)部邊界值條件來設(shè)計(jì)有效的測試用例。確定邊界選取邊界值通常輸入或輸出等價(jià)類的邊界就是應(yīng)該著重測試的邊界情況。5個(gè)邊界值:min、min+、nom、max、max-單故障設(shè)計(jì)步驟邊界值分析測試法有兩個(gè)輸入變量x1(a≤x1≤b)和x2(c≤x2≤d)的程序F,其邊界值為

{<x1nom,x2min>,<x1nom,x2min+>,<x1nom,x2nom>,<x1nom,x2max>,<x1nom,x2max->,<x1min,x2nom>,<x1min+,x2nom>,<x1max,x2nom>,<x1max-,x2nom>}x1x2abcd邊界值分析測試法例2:有二元函數(shù)f(x,y),其中x∈[1,12],y∈[1,31]。

邊界值分析法設(shè)計(jì)的測試用例:{<1,15>,<2,15>,<11,15>,<12,15>,<6,15>,<6,1>,<6,2>,<6,30>,<6,31>}推論:對于一個(gè)含有n個(gè)變量的程序,采用邊界值分析法測試程序會產(chǎn)生4n+1個(gè)測試用例。邊界值分析測試法例題健壯性測試健壯性測試它除了對變量的5個(gè)邊界值分析取值外,還需要增加一個(gè)略大于最大值(max+)以及略小于最小值(min-)的取值。x1x2abcd健壯性測試邊界值分析測試法對于有n個(gè)變量的函數(shù)采用健壯性測試需6n+1個(gè)測試用例。實(shí)例1在三角形問題描述中,除了要求邊長是整數(shù)外,沒有給出其它的限制條件。在此,我們將三角形每邊邊長的取范圍值設(shè)值為[1,100]。實(shí)例2在NextDate函數(shù)中,隱含規(guī)定了變量mouth和變量day的取值范圍為1≤mouth≤12和1≤day≤31,并設(shè)定變量year的取值范圍為1912≤year≤2050。測試用例測試用例例題測試用例abc預(yù)期輸出Test1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等邊三角形等腰三角形非三角形Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形非三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形非三角形測試用例mouthdayyear預(yù)期輸出Test1Test2Test3Test4Test5Test6Test766666661515151515151519111912191319752049205020511911.6.161912.6.161913.6.161975.6.162049.6.162050.6.162051.6.16Test8Test9Test10Test11Test12Test13666666-112303132200120012001200120012001day超出[1…31]2001.6.22001.6.32001.7.1輸入日期超界day超出[1…31]Test14Test15Test16Test17Test18Test19-112111213151515151515200120012001200120012001Mouth超出[1…12]2001.1.162001.2.162001.11.162001.12.16Mouth超出[1…12]因果圖法多種輸入條件的組合會相應(yīng)產(chǎn)生多個(gè)動作因果圖測試法

一種利用圖解法分析輸入的各種組合情況,從而設(shè)計(jì)測試用例的方法。

適合于檢查程序輸入條件的各種組合情況。因果圖法因果圖因果關(guān)系的符號c1e1恒等c1e1非~或c1e1c2c3∨與c1e1c2∧因果11因果圖法ab異Ea和b中最多有一個(gè)可能為1,即a和b不能同時(shí)為1。約束關(guān)系|輸入abcI或a、b、c中至少有一個(gè)必須為1,即a、b、c不能同時(shí)為0。因果圖法ab唯一ORab要求約束關(guān)系|輸入a和b必須有一個(gè)且僅有一個(gè)為1。

a是1時(shí),b必須是1,即a為1時(shí),b不能為0。因果圖法Ma強(qiáng)制約束關(guān)系|輸出若結(jié)果a為1,則結(jié)果b強(qiáng)制為0。因果圖法10b因果圖判定表測試用例據(jù)程序規(guī)格說明書,分析并確定因(輸入條件)和果(輸出結(jié)果或程序狀態(tài)的改變),畫出因果圖。

將得到的因果圖轉(zhuǎn)換為判定表。為判定表中每一列所表示的情況設(shè)計(jì)一個(gè)測試用例。設(shè)計(jì)步驟因果圖法

輸入的第一個(gè)字符必須是#或*,第二個(gè)字符必須是一個(gè)數(shù)字,此情況下進(jìn)行文件的修改;如果第一個(gè)字符不是#或*,則給出信息N,如果第二個(gè)字符不是數(shù)字,則給出信息M。解題步驟:(1)列出原因和結(jié)果。(2)找出因果關(guān)系、約束關(guān)系,畫出因果圖。(3)將因果圖轉(zhuǎn)換成決策表。(4)根據(jù)(3)中的決策表,設(shè)計(jì)測試用例。因果圖法例題(1)列出原因和結(jié)果:因果圖法結(jié)果

e1:給出信息Ne2:修改文件e3:給出信息M原因c1:第一個(gè)字符是#c2:第一個(gè)字符是*c3:第二個(gè)字符是一個(gè)數(shù)字(2)畫出因果圖:因果圖法c1c2c3e110e2e3~E~∨∧中間節(jié)點(diǎn)第一個(gè)字符是#第二個(gè)字符是一個(gè)數(shù)字第一個(gè)字符是*給出信息N修改文件給出信息M(3)將因果圖轉(zhuǎn)換成如下所示的決策表:12345678條件:C1C2C310111110101110010111010100100000動作:e1e2e3不可能√√√√√√√√√規(guī)則選項(xiàng)因果圖法(4)根據(jù)決策表中的每一列設(shè)計(jì)測試用例:測試用例編號輸入數(shù)據(jù)預(yù)期輸出1#3修改文件2#A給出信息M3*6修改文件4*B給出信息M5A1給出信息N6GT給出信息N和信息M因果圖法12345678條件:C1C2C310111110101110010111010100100000動作:e1e2e3不可能√√√√√√√√√規(guī)則選項(xiàng)決策表法多個(gè)邏輯條件下執(zhí)行不同操作?。l件項(xiàng)動作項(xiàng)決策表法條件的取值條件取值下的動作規(guī)則條件項(xiàng)條件項(xiàng)動作項(xiàng)動作項(xiàng)動作樁條件樁組成組成決策表法決策表動作樁條件樁決策表法規(guī)則數(shù)初始決策表簡化決策表確定規(guī)則的個(gè)數(shù)。

列出所有的條件樁和動作樁;填入條件項(xiàng);填入動作項(xiàng),得到初始決策表。簡化決策表,合并相似規(guī)則。設(shè)計(jì)步驟決策表法條件:n規(guī)則:

2n規(guī)則數(shù):兩條以上動作:相同;條件項(xiàng):相似超市中如果某產(chǎn)品銷售好并且?guī)齑娴?,則繼續(xù)銷售并增加該產(chǎn)品的進(jìn)貨;如果該產(chǎn)品銷售好,但庫存量不低,則繼續(xù)銷售;若該產(chǎn)品銷售不好,但庫存量低,則該產(chǎn)品下架;若該產(chǎn)品銷售不好,且?guī)齑媪坎坏停缬锌肇浖?,則繼續(xù)銷售,如果沒有空貨架,則該產(chǎn)品下架。例題決策表法構(gòu)造初始決策表決策表測試法12345678條件:C1:銷售好?C2:庫存低?C3:有空貨架?TTTTTFTFTTFFFTTFTFFFTFFF動作:a1:增加進(jìn)貨?a2:繼續(xù)銷售?a3:產(chǎn)品下架√√√√√√√√√√例題規(guī)則:23=8簡化初始決策表決策表法123,45,678條件:C1:銷售好?C2:庫存低?C3:有空貨架?TT-TF-FT-FFTFFF動作:a1:增加進(jìn)貨?a2:繼續(xù)銷售?a3:產(chǎn)品下架√√√√√√例題規(guī)則數(shù):兩條以上動作:相同;條件項(xiàng):相似決策表法-課堂練習(xí)NextDate函數(shù)。NextDate函數(shù)包含三個(gè)變量month、day和year,函數(shù)的輸出為輸入日期后一天的日期。例如,輸入為1989年5月16日,則函數(shù)的輸出為1989年5月17日。要求輸入變量month、day和year均為整數(shù)值,并且滿足下列條件:(1)1≤month≤12(2)1≤day≤31(3)1920≤year≤2050若條件(1)~(3)中任何一個(gè)條件失效,則NextDate函數(shù)都會產(chǎn)生一個(gè)輸出,指明相應(yīng)的變量超出取值范圍,比如“month的值不在1-12范圍當(dāng)中”。顯然還存在著大量的year、month、day的無效組合,NextDate函數(shù)將這些組合作統(tǒng)一的輸出:“無效輸入日期”。monthdayyearNextDate12月小月二月大月本月外輸出本月內(nèi)輸入決策表測試法提示動作樁和動作項(xiàng)a1:不可能;a2:day加1;a3:day復(fù)位;a4:month加1;a5:month復(fù)位;a6:year加1決策表測試法條件樁和條件項(xiàng)(等價(jià)類)monthdayyearM1:{month有30天};M2:{month有31天,12月除外};

M3:{month是12月};M4:{month是2月};D1:{day:1≤day≤27};D2:{day:day=28};D3:{day:day=29};D4:{day:day=30};D5:{day:day=31};Y1:{year:year是閏年};Y2:{year:year不是閏年}決策表測試法

12345678911M1M1M1M1M1M2M2M2M2M3D1D2D3D4D5D1D2D3D4D1——————————

條件:c1:month在c2:day在c3:year在動作:A1:不可能A2:day+1A3:day=1A4:month+1A5:month=1A6:year+110M2D4

—√√√√√√√√√√√√√初始決策表初始決策表(續(xù))

12131415161718192022M3M3M3M3M4M4M4M4M4M4D2D3D4D5D1D2D2D3D3D5—————Y1Y2Y1Y2—

條件:c1:month在c2:day在c3:year在動作:A1:不可能A2:day+1A3:day=1A4:month+1A5:month=1A6:year+121M4D4

—√√√√√√√√√√√√√√√

1~3456~91011~1415161719M1M1M1M2M2M3M3M4M4M4D1~D3D4D5D1~D4D5D1~D4D5D1D2D3—————---Y1Y1

條件:c1:month在c2:day在c3:year在動作:A1:不可能A2:day+1A3:day=1A4:month+1A5:month=1A6:year+118M4D2

Y2√√√√√√√√√√√√√2021~22M4M4D3D4D5Y2-

√√√√√√簡化的決策表決策表測試法結(jié)論分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況。在黑盒測試方法中,基于決策表(也稱判定表)的測試是最為嚴(yán)格、最具有邏輯性的測試方法。適用的應(yīng)用程序:if-then-else邏輯突出;輸入變量之間存在邏輯關(guān)系;涉及輸入變量子集的計(jì)算;輸入與輸出之間存在因果關(guān)系。決策表測試法小結(jié)小結(jié)適用于使用決策表設(shè)計(jì)測試用例的條件:規(guī)格說明以決策表形式給出,或較容易轉(zhuǎn)換為決策表。條件的排列順序不會也不應(yīng)影響執(zhí)行的操作。規(guī)則的排列順序不會也不應(yīng)影響執(zhí)行的操作。當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗(yàn)別的規(guī)則。如果某一規(guī)則的條件要執(zhí)行多個(gè)操作,這些操作的執(zhí)行順序無關(guān)緊要。小結(jié)決策表測試法遵循原則:根據(jù)程序的重要性和一旦發(fā)生故障將造成的損失來確定測試等級和測試重點(diǎn)。認(rèn)真選擇測試策略,以便能盡可能少的使用測試用例,發(fā)現(xiàn)盡可能多的程序錯(cuò)誤。測試方法的選擇任何情況下都必須采用邊界值分析法必要時(shí)采用等價(jià)類劃分法采用錯(cuò)誤推斷法再追加測試用例。對照程序邏輯,檢查已設(shè)計(jì)出的測試用例的邏輯覆蓋程度。若程序的功能說明中含有輸入條件的組合情況,則應(yīng)一開始就選用因果圖法。息了休!軟件測試技術(shù)基礎(chǔ)

第6章軟件測試計(jì)劃、文檔和及測試用例教學(xué)目標(biāo)了解測試文檔的種類了解各個(gè)測試階段可交付的文檔教學(xué)目標(biāo)理解測試計(jì)劃在軟件測試過程中的地位理解測試用例的特點(diǎn)技能要求學(xué)會制定測試計(jì)劃學(xué)會設(shè)計(jì)和撰寫測試用例軟件測試文檔及測試用例主要內(nèi)容測試計(jì)劃測試文檔測試用例設(shè)計(jì)知識的分析重點(diǎn):

測試計(jì)劃的內(nèi)容各個(gè)測試階段要交付的文檔測試用例的著眼點(diǎn)測試計(jì)劃的定義測試計(jì)劃的內(nèi)容測試用例的定義測試用例的撰寫難點(diǎn):

測試計(jì)劃-地位測試計(jì)劃IEEEStd829-2008Testdocumentationoverview測試計(jì)劃一個(gè)敘述了預(yù)定的測試活動的范圍、途徑、資源及進(jìn)度安排的文檔。它確認(rèn)了測試項(xiàng)、被測特征、測試任務(wù)、人員安排,以及任何偶發(fā)事件的風(fēng)險(xiǎn)。

測試計(jì)劃定義測試計(jì)劃基本信息具體目標(biāo)策略通過標(biāo)準(zhǔn)停測標(biāo)準(zhǔn)內(nèi)容1284測試用例基本支持部門責(zé)任分工人力資源分配進(jìn)度安排風(fēng)險(xiǎn)估計(jì)和危機(jī)處理5739106A明確測試的目標(biāo),增強(qiáng)其實(shí)用性

B堅(jiān)持“5W”規(guī)則,明確測試的內(nèi)容與過程

C采用評審和更新機(jī)制,保證其滿足實(shí)際需求

D分別創(chuàng)建測試計(jì)劃與測試詳細(xì)規(guī)格、測試用例

測試計(jì)劃編制原則測試計(jì)劃模板測試計(jì)劃測試文檔測試用例測試報(bào)告測試計(jì)劃測試文檔核心需求分析審查需求定義中問題列表,批準(zhǔn)的需求分析文檔、測試計(jì)劃書的起草RequirementsReview設(shè)計(jì)審查DesignReview設(shè)計(jì)問題列表、批準(zhǔn)的各類設(shè)計(jì)文檔、系統(tǒng)和功能的測試計(jì)劃和測試用例測試文檔單元測試缺陷報(bào)告、跟蹤報(bào)告;完善的測試用例、測試計(jì)劃UnitTesting功能測試缺陷報(bào)告、代碼完成狀態(tài)報(bào)告、功能驗(yàn)證測試報(bào)告UnitTesting系統(tǒng)測試IntegrationTesting缺陷報(bào)告、系統(tǒng)性能分析報(bào)告、缺陷狀態(tài)報(bào)告、階段性測試報(bào)告測試文檔集成測試IntegrationTesting缺陷報(bào)告、跟蹤報(bào)告;完善的測試用例、測試計(jì)劃;集成測試分析報(bào)告版本發(fā)布當(dāng)前版本已知問題的清單、版本發(fā)布報(bào)告Release維護(hù)Maintance缺陷報(bào)告、更改跟蹤報(bào)告、測試報(bào)告

測試文檔驗(yàn)收測試AcceptanceTesting用戶驗(yàn)收報(bào)告、缺陷報(bào)告審查、版本審查最終測試報(bào)告

測試文檔項(xiàng)目計(jì)劃測試項(xiàng)實(shí)際測試項(xiàng)【Y】項(xiàng)【P】項(xiàng)【N】項(xiàng)【N/A】項(xiàng)備注數(shù)量百分比測試結(jié)果統(tǒng)計(jì)表問題號問題描述問題級別問題分析與策略避免措施備注問題程度嚴(yán)重問題一般問題微小問題其他統(tǒng)計(jì)項(xiàng)問題合計(jì)數(shù)量百分比測試問題表問題統(tǒng)計(jì)表測試文檔測試項(xiàng)目計(jì)劃起始時(shí)間計(jì)劃結(jié)束時(shí)間實(shí)際起始時(shí)間實(shí)際結(jié)束時(shí)間進(jìn)度描述項(xiàng)目編號項(xiàng)目名稱項(xiàng)目開發(fā)經(jīng)理項(xiàng)目測試經(jīng)理測試人員測試環(huán)境(軟件、硬件)軟件總體描述:測試工作總結(jié):測試進(jìn)度表測試總結(jié)表

測試文檔測試用例測試用例是為特定的目的而設(shè)計(jì)的一組測試輸入、執(zhí)行條件和預(yù)期的結(jié)果。測試用例定義測試用例最有可能抓住錯(cuò)誤的;不是重復(fù)的、多余的;一組相似測試用例中最有效的;既不是太簡單,也不是太復(fù)雜。測試用例特征基本準(zhǔn)則代表性可判定性可再現(xiàn)性測試用例稀有一般用戶著眼點(diǎn)其他設(shè)備特殊基本功能極端“多、快、好、省”測試用例書寫標(biāo)準(zhǔn)測試項(xiàng)測試環(huán)境標(biāo)識符輸出標(biāo)準(zhǔn)輸入標(biāo)準(zhǔn)測試用例間的關(guān)系測試用例測試用例息了休!軟件測試技術(shù)基礎(chǔ)

第5章軟件自動化測試教學(xué)目標(biāo)了解常用的軟件自動化測試的工具教學(xué)目標(biāo)理解軟件自動化測試的基本概念理解軟件自動化測試生存周期方法學(xué)及其應(yīng)用技能要求學(xué)會用Selenium進(jìn)行測試軟件自動化測試主要內(nèi)容軟件自動化測試基礎(chǔ)軟件自動化測試方法軟件自動化測試工具自動化測試工具Selenium知識的分析重點(diǎn):

自動化測試流程自動化測試工具的選用自動化測試的定義自動化測試的方法難點(diǎn):

軟件自動化測試基礎(chǔ)沒有測試手工測試自動測試手工測試的局限性.軟件自動化測試基礎(chǔ)手工測試自動測試自動化測試的好處關(guān)聯(lián)自動化測試并不能完全取代手工測試。自動化測試的目的著重于發(fā)現(xiàn)舊的軟件故障,手工測試的目的則在于發(fā)現(xiàn)新的軟件故障。軟件自動化測試基礎(chǔ)小結(jié)軟件自動化測試方法

借助于自動化測試工具或其他手段,按照預(yù)定的計(jì)劃進(jìn)行自動測試的活動。自動測試回歸測試大量不同的數(shù)據(jù)輸入的功能測試手工測試難以完成軟件自動化測試方法自動化測試選用軟件自動化測試方法

借助于自動化測試工具或其他手段,按照預(yù)定的計(jì)劃進(jìn)行自動測試的活動。自動測試錄制-回放腳本自動生成軟件自動化測試方法人工完成一遍需要測試的流程,記錄下這期間客戶端和服務(wù)器的通信信息(通常是一些協(xié)議和數(shù)據(jù))形成特定的腳本(Script)。運(yùn)行該腳本,測試的流程重復(fù)執(zhí)行測試流程,實(shí)現(xiàn)程序的自動運(yùn)行和測試。軟件自動化測試工具測試用例的生成。測試的執(zhí)行與控制。測試結(jié)果與標(biāo)準(zhǔn)輸出的對比。不吻合測試結(jié)果的分析處理。測試狀態(tài)的統(tǒng)計(jì)和報(bào)表的產(chǎn)生。自動化測試與開發(fā)中產(chǎn)品每日構(gòu)件的配合。采用自動比較技術(shù)。運(yùn)用軟件自動化測試工具確定系統(tǒng)最優(yōu)的硬件配置。檢查系統(tǒng)的可靠性。檢查系統(tǒng)硬件和軟件的升級情況。檢測軟件和硬件對系統(tǒng)性能的影響有多大。評估新產(chǎn)品。作用記錄業(yè)務(wù)流程、生成腳本的能力。對各種終端的模仿能力。用有限的資源生成高質(zhì)量虛擬用戶的能力。對于整個(gè)系統(tǒng)中各個(gè)部分的監(jiān)控能力。對于測試結(jié)果的表現(xiàn)和分析能力。優(yōu)勢軟件自動化測試工具產(chǎn)生的問題.不現(xiàn)實(shí)的期望缺乏測試經(jīng)驗(yàn)測試工具本身會影響測試質(zhì)量存在安全性的錯(cuò)覺自動測試的維護(hù)軟件自動化測試工具軟件自動化測試工具白盒測試工具黑盒測試工具靜態(tài)測試工具動態(tài)測試工具Telelogic的LogiscopePerforce的PRQACompuware的DevPartnerRational的Purify功能測試工具性能測試工具Rational的TeamTestCompuware的QACenterRadview的WebLoadMicrosoft的WebStressRational的Robot分類性能測試工具測試管理工具數(shù)據(jù)庫測試工具性能優(yōu)化測試工具TestBytesEcoScopeMercuryInteractive的TestDirectorIBMRational的ClearQuest負(fù)載測試工具LoadRunner軟件自動化測試工具分類自動化測試工具Selenium

Selenium是一個(gè)Web應(yīng)用的自動化框架。通過它,測試人員可以寫出自動化程序讓其像人一樣在瀏覽器里操作web界面,如點(diǎn)擊界面按鈕,在文本框中輸入文字等。

Selenium也能從web界面獲取信息,如獲取招聘網(wǎng)站職位信息,財(cái)經(jīng)網(wǎng)站股票價(jià)格信息等等,然后用程序進(jìn)行對相關(guān)信息進(jìn)行分析處理。Selenium的介紹自動化測試工具Selenium

測試人員寫的自動化程序需要使用客戶端庫。而程序的自動化請求都是通過這個(gè)庫里面的編程接口發(fā)送給瀏覽器的。舉個(gè)例子,如果要模擬用戶點(diǎn)擊界面按鈕,自動化程序里面就應(yīng)該調(diào)用客戶端庫相應(yīng)的函數(shù),發(fā)送點(diǎn)擊元素的請求給瀏覽器驅(qū)動。然后,瀏覽器驅(qū)動再轉(zhuǎn)發(fā)這個(gè)請求給瀏覽器。Selenium的原理自動化程序Selenium客戶端瀏覽器驅(qū)動瀏覽器自動化測試工具SeleniumSelenium的安裝1.命令行安裝pipinstallselenium2.在其他IDE中進(jìn)行安裝常見的PythonIDE如pycharm可以在IDE中安裝對應(yīng)的python庫函數(shù)。自動化測試工具SeleniumSelenium的安裝3.安裝瀏覽器驅(qū)動可以在這個(gè)網(wǎng)站上下載對應(yīng)的瀏覽器/mirrors/chromedriver/,我們以chrome為例,找到對應(yīng)瀏覽器的驅(qū)動。自動化測試工具SeleniumSelenium的簡單demo#引用seleniumfromselenium.webdriverimportChrome#定義一個(gè)瀏覽器對象browser=Chrome()#打開百度browser.get('')上述代碼可以通過selenium打開百度頁面。自動化測試工具SeleniumSelenium中元素的選擇1、在瀏覽器中按下f12進(jìn)入開發(fā)者模式自動化測試工具SeleniumSelenium中元素的選擇2、選取到輸入框,對應(yīng)到網(wǎng)頁上的dom元素(右鍵,然后選擇“Copy”再選擇“Copyselector”,關(guān)于元素選擇我們會在下文詳細(xì)介紹)自動化測試工具SeleniumSelenium中元素的選擇3、使用selenium工具選取到網(wǎng)頁,輸入關(guān)鍵字。引用seleniumfromselenium.webdriverimportChrome#提供模擬鍵盤操作的方法frommon.keysimportKeys#定義一個(gè)瀏覽器對象browser=Chrome()#設(shè)置隱式等待時(shí)間5sbrowser.implicitly_wait(5)#進(jìn)入中國日報(bào)網(wǎng)browser.get('/')#選取到輸入框,輸入經(jīng)濟(jì),敲下(模擬)鍵盤回車鍵browser.find_element_by_css_selector('#searchText').send_keys('經(jīng)濟(jì)',Keys.ENTER)自動化測試工具SeleniumSelenium中元素的選擇4、在這里我們調(diào)用了“find_element_by_css_selector”這個(gè)api,它是通過選取CSS表達(dá)式來定位到元素的,CSS表達(dá)式的值為“#searchText”。CSS表達(dá)式是我們常見的選擇元素方法之一,但除了CSS表達(dá)式外我們還有很多種選擇器可以方便我們定位到元素。自動化測試工具Selenium基本元素定位文本值

find_element_by_link_text()id值

find_element_by_id()name屬性

find_element_by_name()CSS表達(dá)式

find_element_by_css_selector()Xpath選擇器find_element_by_xpath()自動化測試工具Selenium其他操作思考時(shí)間設(shè)置browser.implicitly_wait(時(shí)間)點(diǎn)擊操作

browser.find_element_by_xpath(Element).click()模擬鍵盤輸入

browser.find_element_by_xpath(Element).send_keys(字符串)下拉框

Select(browser.find_element_by_xpath(Element)).select_by_visible_text(匹配文本)自動化測試工具Selenium習(xí)題1.簡述軟件測試自動化的意義和作用。2.簡述自動化測試和手工測試有什么主要區(qū)別。3.自動化測試工具大致可以分為幾類?舉例說明幾種與之相對應(yīng)的測試工具。4.簡述對常用自動化測試工具的認(rèn)識。5.試從網(wǎng)絡(luò)上免費(fèi)下載自動化測試工具,并在客戶機(jī)或服務(wù)器上安裝和運(yùn)行。6.下載本章所介紹的白盒測試、黑盒測試、負(fù)載測試等工具,學(xué)習(xí)其主要功能及使用方法,嘗試進(jìn)行實(shí)例測試。7.安裝selenium并嘗試執(zhí)行本章介紹的案例。課外思考息了休!軟件測試技術(shù)基礎(chǔ)

第5章面對對象的軟件測試面對對象的軟件測試教學(xué)目標(biāo)理解面對對象的基本概念教學(xué)目標(biāo)掌握面向?qū)ο蟮念悳y試、面對對象交互測試、面對對象系統(tǒng)測試技能要求運(yùn)用類測試、面對對象交互測試、面對對象系統(tǒng)測試進(jìn)行軟件測試主要內(nèi)容面向?qū)ο蟮能浖y試基礎(chǔ)類測試面對對象交互測試面對對象系統(tǒng)測試知識的分析重點(diǎn):

類測試交互測試系統(tǒng)測試類測試交互測試系統(tǒng)測試難點(diǎn):

目前面向?qū)ο筌浖呀?jīng)獲得了越來越廣泛的應(yīng)用,在面向?qū)ο蟮姆治?、設(shè)計(jì)技術(shù)及面向?qū)ο蟮某绦蛟O(shè)計(jì)語言方面,也獲得了很豐富的研究成果與工程實(shí)際應(yīng)用。

與之相比較,面向?qū)ο筌浖y試技術(shù)的研究還相對薄弱。面向?qū)ο蠹夹g(shù)給軟件開發(fā)帶來了巨大的變化,而這些變化又對軟件測試方面產(chǎn)生了很大的影響。面對對象的軟件測試基礎(chǔ)測試視角從測試視角的角度看待面向?qū)ο蟮母拍顝臏y試視角看待面向?qū)ο鬁y試面向?qū)ο筌浖牟煌瑴y試面向?qū)ο筌浖牟煌瑥木幊陶Z言看,面向?qū)ο缶幊痰奶匦燥@然會對測試的某些方面有影響。面向?qū)ο蟮拈_發(fā)過程及分析和設(shè)計(jì)方法也對測試產(chǎn)生了影響。測試視角測試視角包含以下幾個(gè)方面:質(zhì)疑:想驗(yàn)證軟件的質(zhì)量。客觀:確保不能憑空想象。徹底:確保不要遺漏重要的部分。系統(tǒng):檢查是可再現(xiàn)的。從測試視角的角度看待面向?qū)ο蟮母拍?/p>

面向?qū)ο蠹夹g(shù)主要包括以下的基本概念:對象、消息、接口、類、繼承、多態(tài)。對象:對象是指包含了一組屬性及對這些屬性的操作的封裝體。消息:消息描述了對象執(zhí)行操作的規(guī)格說明。接口:接口是行為聲明的集合。類:類是具有相同屬性和相同行為的對象的集合。繼承:繼承是在已有類的基礎(chǔ)上定義新類的機(jī)制,新類可以復(fù)用已有類的接口或?qū)崿F(xiàn)。多態(tài):多態(tài)是指同一個(gè)操作作用于不同的對象可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。面向?qū)ο鬁y試的層次

如果把類看做單元,則變成了三層測試,即類、集成和系統(tǒng)測試。類測試:等價(jià)類劃分法、因果圖法、邊值分析法、邏輯覆蓋法、路徑分析法等。集成測試:只能對整個(gè)編譯后的程序做基于黑盒的集成測試。系統(tǒng)測試:功能測試、強(qiáng)度測試、性能測試、安全測試、恢復(fù)測試、可用性測試、安裝/卸載測試等。面向?qū)ο蟮能浖y試模型

面向?qū)ο蟮能浖_發(fā)模型突破了傳統(tǒng)的瀑布模型,將開發(fā)分為面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)和面向?qū)ο缶幊?個(gè)階段??梢园衙嫦?qū)ο蟮能浖y試模型分為:面向?qū)ο蠓治龅臏y試(OOATest)。面向?qū)ο笤O(shè)計(jì)的測試(OODTest)。面向?qū)ο缶幊痰臏y試(OOPTest)。面向?qū)ο蟮膯卧獪y試(OOUnitTest)。面向?qū)ο蟮募蓽y試(OOIntegrateTest)。面向?qū)ο蟮南到y(tǒng)測試(OOSystemTest)。面向?qū)ο蠓治龅臏y試

傳統(tǒng)的面向過程分析是一個(gè)功能分解的過程,把一個(gè)系統(tǒng)看成可以分解的功能的集合。

OOA直接映射問題空間,全面地將問題空間中的現(xiàn)實(shí)功能抽象化。因此對OOA的測試應(yīng)從以下方面考慮:對認(rèn)定的對象的測試。對認(rèn)定的結(jié)構(gòu)的測試。對認(rèn)定的主題的測試。對定義的屬性和實(shí)例關(guān)聯(lián)的測試。對定義的服務(wù)和消息關(guān)聯(lián)的測試。OOA中認(rèn)定的對象是對問題空間中的結(jié)構(gòu)、其他系統(tǒng)、設(shè)備、被記憶的事件、系統(tǒng)涉及的人員等實(shí)際實(shí)例的抽象。面向?qū)ο蠓治龅臏y試對屬性和實(shí)例關(guān)聯(lián)的測試從如下方面考慮:定義的屬性是否對相應(yīng)的對象和分類結(jié)構(gòu)的每個(gè)現(xiàn)實(shí)實(shí)例都適用。定義的屬性在現(xiàn)實(shí)世界是否與這種實(shí)例關(guān)系密切。定義的屬性在問題空間是否與這種實(shí)例關(guān)系密切。定義的屬性是否能夠不依賴于其他屬性被獨(dú)立理解。定義的屬性在分類結(jié)構(gòu)中的位置是否恰當(dāng),低層對象的共有屬性是否在上層對象屬性中體現(xiàn)。在問題空間中每個(gè)對象的屬性是否定義完整。定義的實(shí)例關(guān)聯(lián)是否符合

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論