《軟件測試基礎(chǔ)》由會員分享,可在線閱讀,更多相關(guān)《軟件測試基礎(chǔ)(43頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,2013,All Rights,Reserved.,Dilato Infotech Limited,.,軟件測試技術(shù),Aug.2015,Agenda,軟件測試的概念,和分類,黑盒測,試技術(shù),測試用例的設(shè)計和實施,缺陷,(Bug),管理,軟,件測試的生命周期,軟件測試常識,什么是軟件測試,使用人工或自動手段,來運行或測試某個系統(tǒng)的過程。其目的在于檢驗它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。,軟件測試需要嚴(yán)謹(jǐn)和一絲不茍的精神。,什么是測試用例,評價測試人員的標(biāo)準(zhǔn)主要有兩個,即發(fā)現(xiàn)的有效,Bug,數(shù)和編寫的有
2、效測試用例數(shù)。,測試用例:英文為,Test,Case,,縮寫為,TC,。指的是在測試執(zhí)行之前設(shè)計的一套詳細(xì)的測試方案,包括測試環(huán)境,測試步驟,測試數(shù)據(jù)和預(yù)期結(jié)果。,測試用例,=,輸入,+,輸出,+,測試環(huán)境,Tips,測試用例模板,Bug,模板,公司里測試部門的組織結(jié),構(gòu),用什么工具管理,Test,Case,和,Bug,測試分為幾個組,分別是什么 等等,以上這些根據(jù)公司不同而不同,面試的時候可以問面試官相關(guān)的問題,例如,軟件測試分類,黑盒和白盒測試,靜態(tài)和動態(tài)測試,單元測試、集成測試、系統(tǒng)測試、驗收測試,功,能測試,性能測,試,回歸測,試、,Smoke,測試、隨機測試(探索性測試),黑盒和白盒
3、測試的概念,黑盒測試,(Black-Box Testing),指的是把被測的軟件看作是一個黑盒子,我們不去關(guān)心盒子里面的結(jié)構(gòu)是什么樣子的,只關(guān)心軟件的輸入數(shù)據(jù)和輸出結(jié)果。,白盒測試,(White-Box Testing),指的是把盒子蓋打開,去研究里面的源代碼和程序結(jié)構(gòu)。,在軟件公司里,往往采用黑盒和白盒技術(shù)相結(jié)合的方法,對軟件的整體功能和性能進行黑盒測試,對軟件的源代碼采用白盒測試,。,靜態(tài)和動態(tài)測試,所謂的靜態(tài)測試,(Static Testing),是指不實際運行被測軟件,而只是靜態(tài)的檢查程序代碼、界面或文檔中可能存在的錯誤的過程。,動態(tài)測試,(Dynamic Testing),是指實際運
4、行被測程序,輸入相應(yīng)的測試數(shù)據(jù),檢查實際輸出結(jié)果和預(yù)期結(jié)果是否相符的過程。,所以我們判斷一個測試屬于動態(tài)還是靜態(tài)測試,唯一的標(biāo)準(zhǔn)就是看是否運行程序。,黑盒白盒,靜態(tài)動態(tài)的關(guān)系,它們只是一個測試的不同分類角度而已,而且它們之間還有包含交叉的關(guān)系,總結(jié)一下,4,句話:,黑盒測試有可能也是動態(tài)測,試,(,運行程序,只看輸入和輸出,),也有可能是靜態(tài)測試,(,不運,行程序,,只查看界面,),白盒,測試有可能也是動態(tài)測試,(,運行程序,,并分析代碼結(jié)構(gòu),),也有可能是靜態(tài)測試,(,不運行程序,,只是靜態(tài)查看代碼,),動態(tài),測,試有可能也,是,黑盒,測,試,(,運行程序,,,只看輸入和輸出,),也有可能,
5、是白盒測,試,(,運,行程序,,并分析代碼結(jié)構(gòu),),靜態(tài),測試有可能也是黑盒測試,(,不運,行程序,,只是查,看界面,),也有可能是白盒測試,(,不運,行程序,,,只是靜態(tài)查看代碼,),單元測試、集成測試、系統(tǒng)測試、驗收測,試,軟件測試中基本且重要的概念,它們都是按照軟件測試的階段來劃分的。,單元測試:對軟件中的最小可可測試單元(最小的功能模塊)進行檢查和驗證。,集成測,試:是單元測試的下一個階段,是指將通過測試的單元模塊組裝成系統(tǒng)或者子系統(tǒng),再進行測試,重點測試不同模塊的接口部分。(接口測試),系統(tǒng)測試:是指將整個軟件系統(tǒng)看做,1,個整體進行測試,包括對功能、性能、安全、兼容性進行測試。,驗
6、收測試(,Acceptance Testing,),:,是指在系統(tǒng)測試的后期,以用戶測試為主,或有測試人員共同參與的測試,它也是軟件正式交給用戶使用的最后一道工序。,比較,功能測試和性能測試,功能測試(,Function,Testing):,檢查實際軟件的功能是否符合用戶的需求??杉?xì)分為:,邏輯功能測,試、界面測試、易用性測試、安裝卸載測試、兼容性測試、安全測試。,性能測試,(Performance Testing,):,一般要用到自動化工具。軟件的性能分為時間和空間的性能:,時間性,能:主要指軟件的一個具體事務(wù)的響應(yīng)時間,(Respond Time),空,間性能:主要指軟件運行時所消耗的系統(tǒng)
7、資源(,e.g.CPU,內(nèi)存,硬盤等)。,軟件性能測試的分類:一般性能測試、穩(wěn)定性測試、負(fù)載測試、壓力測試。,性能測試分類,一般性能測試:指被測系統(tǒng)在正常的軟硬件環(huán)境下運行,不向其施加任何壓力的性能測試。,例如只讓,1,個用戶多次登錄,記錄系統(tǒng)資源的消耗情況,(CPU,內(nèi)存等),并記錄單個用戶的平均登錄時間。,穩(wěn)定性測試(,Reliability Testing,),:,是指連續(xù)運行被測系統(tǒng),檢查系統(tǒng)運行時的穩(wěn)定程度。,用錯誤發(fā)生的平均時間間隔,(MTBF),來衡量系統(tǒng)的穩(wěn)定性,,MFBF,越大,系統(tǒng)的穩(wěn)定性越強。,負(fù)載測,試,(Load Testing):,通常是指讓被測系統(tǒng)在其能忍受的壓力
8、的極限范圍之內(nèi)連續(xù)運行,來測試系統(tǒng)的穩(wěn)定性。,例如讓,1,個,,2,個,,5,個,,10-100,個用戶,并發(fā)登錄,在這個過程中每次都觀察資源消耗情況,當(dāng)發(fā)現(xiàn)資源消耗快要達(dá)到臨界值時,(CPU 80%),停止增加用戶,例如現(xiàn)在的并發(fā)用戶數(shù)為,50,,我們就用這,50,個用戶同時多次重復(fù)登錄,直到,系,統(tǒng)出現(xiàn)故障為止。,負(fù)載測試為我們測試系統(tǒng)在臨界狀態(tài)下運行是否穩(wěn)定提供了一種辦法。,壓,力測試,(Stress Testing):,通常是指持續(xù)不斷的給被測系統(tǒng)增加壓力,直到將被測系統(tǒng)壓垮為止,用來測試系統(tǒng)所能承受的最大壓力。,比如我們不斷地增加并發(fā)登錄的用戶數(shù),,120,,,150,,,170,,
9、,200,、當(dāng)增加到,200,個用戶并發(fā)登錄時,系統(tǒng)崩潰了,這是我們就知道此軟件所能承載的最大登錄并發(fā)數(shù)為,200,個左右。,案例,紙杯測試,微軟公司的一道面試題,面試官隨意選一個物品,讓應(yīng)聘者在規(guī)定的時間內(nèi)說出測試策略或是設(shè)計測試用例。,要求應(yīng)聘者有一定的生活常識,了解常用的測試方法,,并且思維要敏,捷,有發(fā)散性。我們可以從 基本功能測試、易用性測試、界面測試、壓力測試、性能測試等角度去思考。比如安全性問題,杯子所用的材料是否符合食品衛(wèi)生標(biāo)準(zhǔn),在內(nèi)外溫度等環(huán)境因素下是否會與所盛各種飲料所應(yīng),而產(chǎn)生對人體有害的物質(zhì)。,以下是相關(guān)的答案,僅供參考:,(1),基本功能測試(邏輯功能測試):,硬,度
10、:是否達(dá)到設(shè)計標(biāo)準(zhǔn)。,裝載能,力:在杯子內(nèi)分別裝入少量的、半杯的、滿杯的,看其裝載量是否達(dá)到設(shè)計標(biāo)準(zhǔn)。,裝載種,類:開水(是否產(chǎn)生異味)、溫水、冷水、冰水、咖啡,有顏色的飲料,(2),界面測試(,UI,測試):,看其形,狀、大小設(shè)計是否適合人方便拿起。,外觀是否吸引,人(廣告嘛),常新悅目,帶廣告的圖案沾水后是否掉色、模糊,(3),易,用性測試:,看其形狀、大小設(shè)計是否適合人方便拿,起。,殘疾人,士用此杯去喝水的容易程度。,杯子設(shè)計是否上大下,小,在運輸過程中可以套在一起有效利用空間,在使用完也可以方便拿走。,穩(wěn)定性測試,裝入液體后記錄其多久以后漏水,安,全性測,試,材料問題,符合食品衛(wèi)生標(biāo)準(zhǔn)
11、,溫度,異味,本地化測,試,,為國際,化和本地化的需要,廣告圖案和文字是否在政治,宗教和文化方面具有廣泛的適用性,。,回歸測試、,Smoke,測試、隨機測試,這,3,個概念也很重要,他們既不屬于測試階段,也不算是具體的測試方法。,回歸測試,(Regression Testing),是指對軟件的新的版本測試時,重復(fù)執(zhí)行上一個版本測試時的用例。,冒煙測,試,(Smoke Testing),是指在對一個新版本進行系統(tǒng)大規(guī)模的測試之前,先驗證一下軟件的基本功能是否實現(xiàn),是否具備可測性。,隨機測試(,Random,Testing,),是指測試中所有的輸入數(shù)據(jù)都是隨機生成的,其目的是模擬用戶的真實操作,并
12、發(fā)現(xiàn)一些邊緣性的錯誤。缺點,不如測試不系統(tǒng),無法統(tǒng)計覆蓋率,/,需求覆蓋率,很難回歸測試等,所以一般都是先作大規(guī)模的正規(guī)測試,如果時間允許的話,就輔助一些隨機測試。,總結(jié),黑盒測試技術(shù),等價類方法,邊界,值方法,因果圖,法,流程圖,法,黑盒測試技術(shù),-,等,價,類方法,等價類技,術(shù),(Equivalence Class Testing),案,例:加法器,有這樣一個語言程序,功能是計算兩個之間整數(shù)的和。其源代碼如下所示:,#include,Void main(void),int a,b,c;,w,hile(1),p,rintf(“,請輸入兩個,1,到,100,之間的整數(shù),:”,);,fflush
13、(stdin);/,清空輸入緩沖區(qū),s,canf(“%d%d”,i,f(a1&a1&b100)/,判斷兩個加數(shù)是否在,100,之間,c=a+b;,p,rintf(“,兩個數(shù)的和為,%dn,”,c),我們知,道,在黑盒測試的時候一般是不看源代碼的。我們現(xiàn)在只根據(jù)需求,(,計算,1100,之間整數(shù)的和,),來設(shè)計測試用例,使用窮舉測試的思想給加法器設(shè)計測試用例:,一共要設(shè)計多少條用例,呢?,加數(shù)有共計個取值,加數(shù)也是,所以一共有,100*100=10000,種組合的可能,但這只是測試了正常范圍內(nèi)的取值,如果輸入的數(shù)據(jù)不在,1100,之間呢?,我們引入等價類的思想。,用例編號,加數(shù),加數(shù),和,1,2
14、,2,3,3,4,黑盒測試技術(shù),-,等價,類方法,等價類劃分法是一種黑盒測試技術(shù),它不考慮程序的內(nèi)部結(jié)構(gòu),只是根據(jù)軟件的需求說明來對輸入的范圍進行細(xì)分,然后再從分出的每一個區(qū)域內(nèi)選取一個有代表性的測試數(shù)據(jù)。如果等價類分的好,這個代表性的測試數(shù)據(jù)的作用就等價于其區(qū)域內(nèi)的其他取值。,等價類又可分,為有效等價類和無效等價類。,有效等價,類:是指符合,需求規(guī)格說明書,,合理地輸入數(shù)據(jù)集合。,無效等價類:是指不符合,需求規(guī)格說明書,,無意義的輸,入數(shù)據(jù)集,合。,那么這個程序,里面,我們怎么劃分等價類呢?,根據(jù)輸入要求將輸入?yún)^(qū)域劃分為個等價類:,):,100:,無效等價類,然后我們從每一個等價類中選取一個
15、代表性的數(shù)據(jù)來測試,測試用例是:,用例編號,所屬等價類,加數(shù),加數(shù),和,),3,40,43,),0,-1,提示,),110,101,提示,等,價,類,方法總結(jié),等價類的定義,等價,類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。,等價,類,劃分的步,驟,(1),先考慮輸入數(shù)據(jù)的數(shù)據(jù)類型(合法和非法的類型),(2),再考慮數(shù)據(jù)范圍(合法類型中的合法區(qū)間和非法區(qū)間),(3),畫出示意圖,區(qū)分等價類,(4),為每一個等價類編號,(5),從一個等價類中選舉一個測試數(shù)據(jù)構(gòu)造測試用例,理論上來,說,如果,等價,類里面的一個數(shù)值能夠發(fā)現(xiàn)缺陷,那么該等價類里面的其他數(shù)值也能
16、夠發(fā)現(xiàn)缺陷。實際過程中,首先要確保等價類的劃分是爭取的,否則也得不到正確的結(jié)果。多看一些案例,將這種思想應(yīng)用到實際工作中。,邊界值方法,(Boundary Value Testing),錯,誤隱含在角落,(Errors Hide in the Corner),大量的測試實踐經(jīng)驗表明,邊界值是最容易出現(xiàn)問題的地方,也是我們的測試重點。,需要說明的,是,在白盒測試中也應(yīng)用到了邊界值得測試思想,邊界值技術(shù)不是黑盒測試的專利。,我們還是,以上一節(jié)的加法器為例來講解邊界值的思想:,輸入要求,是,1100,之間的整數(shù),因此自然產(chǎn)生了,1,和,100,兩個邊界,我們在構(gòu)造測試用例的時候要重點考慮這兩個邊界。,我們在測,試,1,和,100,這兩個邊界的時候,構(gòu)造了,(1,1),、,(100,100),、,(0,0),、,(101,101),這組測試用例,即正好是邊界的值和正好超出邊界的值。結(jié)果發(fā)現(xiàn),(1,1),、,(,100,100),這兩條測試用例未通過:本應(yīng)正確求和,卻提示信息要求輸入正確整數(shù),這是什么?,正確的代,碼應(yīng)該是:,if(,a,=,1,&a,=,1,&b,=,100,),包括,1,和,