Ch2-軟件測試基礎(chǔ)_第1頁
Ch2-軟件測試基礎(chǔ)_第2頁
Ch2-軟件測試基礎(chǔ)_第3頁
Ch2-軟件測試基礎(chǔ)_第4頁
Ch2-軟件測試基礎(chǔ)_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1軟件測試方法和技術(shù)

-Ch.2軟件測試基礎(chǔ)erdonghs@126.com陳涵生2第一章回顧軟件特點軟件開發(fā)過程軟件質(zhì)量與測試軟件測試環(huán)境與測試用例3第二章軟件測試基礎(chǔ)2.1軟件測試的原則2.2軟件測試的分類2.3靜態(tài)測試技術(shù)2.4軟件測試流程2.6軟件測試3維空間和各種測試2.7軟件測試注意事項2.8終止軟件測試的標(biāo)準(zhǔn)4m2.1軟件測試的原則軟件測試的原則所有測試的標(biāo)準(zhǔn)都是建立在用戶需求之上。軟件測試必須基于“質(zhì)量第一”的思想去開展各項工作,當(dāng)時間和質(zhì)量沖突時,時間要服從質(zhì)量。事先定義好產(chǎn)品的質(zhì)量標(biāo)準(zhǔn),只有有了質(zhì)量標(biāo)準(zhǔn),才能根據(jù)測試的結(jié)果,對產(chǎn)品的質(zhì)量進行分析和評估。軟件項目一啟動,軟件測試也就是開始,而不是等程序?qū)懲?,才開始進行測試。窮舉測試是不可能的。甚至一個大小適度的程序,其路徑排列的數(shù)量也非常大,因此,在測試中不可能運行路徑的每一種組合。5軟件測試的原則6第三方進行測試會更客觀,更有效。7

軟件測試計劃是做好軟件測試工作的前提。8

測試用例是設(shè)計出來的。所以要根據(jù)測試的目的,采用相應(yīng)的方法去設(shè)計測試用例,從而提高測試的效率,更多地發(fā)現(xiàn)錯誤,提高程序的可靠性。9

對發(fā)現(xiàn)錯誤較多的程序段,應(yīng)進行更深入的測試。一般來說,一段程序中已發(fā)現(xiàn)的錯誤數(shù)越多,其中存在的錯誤概率也就越大。10重視文檔,妥善保存一切測試過程文檔(測試計劃、測試用例、測試報告等)6缺陷的二八定理11缺陷的二八定理是指:一般情況下,軟件的80%的缺陷集中在20%的模塊中我們要投入主要的人力和精力重點測試這20%的模塊,以提高我們的測試效率通常也把缺陷的二八定理稱為缺陷的集群現(xiàn)象!72.2軟件測試的分類黑盒子和白盒子靜態(tài)的和動態(tài)的文檔、代碼審查數(shù)據(jù)輸入邊界條件法等價劃分、數(shù)據(jù)流程圖狀態(tài)變換圖邏輯路徑法8軟件測試按開發(fā)階段劃分按執(zhí)行狀態(tài)劃分按是否查看源代碼劃分按執(zhí)行主體劃分系統(tǒng)測試驗收測試靜態(tài)測試適合性安全性性能測試時間特性測試功能測試白盒測試動態(tài)測試黑盒測試準(zhǔn)確性互操作性資源利用性測試開發(fā)方測試用戶測試第三方測試測試分類表集成測試確認(rèn)測試單元測試灰盒測試按測試內(nèi)容分類可靠性測試文檔測試功能依從性易用性測試可移植性測試92.2.1按照開發(fā)階段劃分按照軟件開發(fā)階段劃分,軟件測試貫穿軟件開發(fā)的整個過程,分為:單元測試集成測試確認(rèn)測試系統(tǒng)測試驗收測試等102.2.2按照執(zhí)行主體劃分開發(fā)方測試:開發(fā)方測試通稱也為“驗收測試”或“α測試”。在軟件開發(fā)環(huán)境中,開發(fā)者檢測與證實軟件的實現(xiàn)是否滿足軟件設(shè)計說明或軟件需求的要求用戶測試:用戶測試是用戶在真實的應(yīng)用環(huán)境下,通過運行和使用軟件,檢測與核實軟件是否符合自己預(yù)期的要求。用戶測試又稱為“β測試”。它把軟件有計劃地、免費地分發(fā)到目標(biāo)市場,讓用戶大量使用、評價、檢查軟件。第三方測試:是指由第三方測試測試機構(gòu)來進行的測試,也稱為獨立測試。它由在技術(shù)、管理和財務(wù)上與開發(fā)組織相對獨立的組織執(zhí)行驗證和確認(rèn)(IV&V)過程軟件。112.2.3按照執(zhí)行狀態(tài)劃分從是否要執(zhí)行被測軟件的角度,可分為:靜態(tài)測試:靜態(tài)測試是在不運行軟件的情況下檢查軟件系統(tǒng)是否與其規(guī)格說明相符。例如,對規(guī)格說明的測試屬于靜態(tài)測試靜態(tài)測試的方法主要有審查和評審動態(tài)測試:通過運行軟件來檢驗軟件的動態(tài)行為和運行結(jié)果的正確性。動態(tài)測試的兩個基本要素是被測試程序和測試用例。動態(tài)測試又分為:基于功能和性能的方法(黑盒測試)基于結(jié)構(gòu)的方法(白盒測試)基于功能的測試方法側(cè)重于測試軟件產(chǎn)品的功能基于結(jié)構(gòu)的測試方法側(cè)重于檢查軟件產(chǎn)品的內(nèi)部工作12靜態(tài)的和動態(tài)的主持人作者記錄員列席人員內(nèi)審員技術(shù)專業(yè)人員用戶代表不正式正式互審

走讀審查會議運行程序13靜態(tài)測試和動態(tài)測試根據(jù)程序是否運行可以把軟件測試方法分為靜態(tài)測試(StaticTesting)和動態(tài)測試(DynamicTesting)兩大類。下圖是靜態(tài)測試與動態(tài)測試的比喻圖靜態(tài)測試與動態(tài)測試的比喻圖14靜態(tài)測試和動態(tài)測試在測試不同階段的使用情況測試階段執(zhí)行人靜態(tài)測試動態(tài)測試可行性評審開發(fā)人員,用戶√需求評審開發(fā)人員,用戶√設(shè)計評審開發(fā)人員√單元測試開發(fā)人員√集成測試開發(fā)人員,用戶√系統(tǒng)測試開發(fā)人員在用戶的協(xié)助下完成√驗收測試用戶√152.2.4按照對被測試對象的了解劃分黑盒測試:又稱功能測試或數(shù)據(jù)驅(qū)動測試,它是對已知產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個功能是否都能正常使用。在測試時,把程序看做是一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口處進行測試。白盒測試:又稱結(jié)構(gòu)測試或邏輯驅(qū)動測試。它知道內(nèi)部的功過程,檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都按預(yù)定要求正確地工作。灰盒測試:介于黑盒測試和白盒測試之間,主要用于測試各個組件之間的邏輯關(guān)系是否正確。16黑盒子和白盒子功能測試數(shù)據(jù)驅(qū)動測試結(jié)構(gòu)測試邏輯驅(qū)動測試

客戶需求事件驅(qū)動輸入輸出17黑盒測試和白盒測試的比較項目黑盒測試法白盒測試法規(guī)劃方面功能測試結(jié)構(gòu)測試性質(zhì)是一種確認(rèn)技術(shù)是一種驗證技術(shù)優(yōu)點方面1)確保從用戶角度出發(fā)2)適用于各階段測試3)從產(chǎn)品功能角度測試4)容易入手生成測試數(shù)據(jù)1)針對程序內(nèi)部的特定部分進行覆蓋測試2)可構(gòu)成測試數(shù)據(jù)讓特定程序部分得到測試3)有一定充分性度量手段4)可獲得較多工具的支持缺點方面1)無法測試程序內(nèi)部的特定部分2)某些代碼得不到測試3)如果規(guī)格說明有誤,則無法發(fā)現(xiàn)4)不易進行充分的測試1)無法測試程序的外部特性2)不易生成測試數(shù)據(jù)(通常)3)無法對未實現(xiàn)規(guī)格說明的部分進行測試4)工作量大,通常只用于單元測試應(yīng)用范圍邊界分析法,等價類劃分法,決策表測試語句覆蓋,判定覆蓋,條件覆蓋,路徑覆蓋等18黑盒白盒、動態(tài)靜態(tài)之間的交叉關(guān)系黑盒測試有可能是動態(tài)測試(運行程序,只看輸入和輸出),也有可能是靜態(tài)測試(不運行程序,只是查看界面)白盒測試有可能是動態(tài)測試(運行程序,并分析代碼結(jié)構(gòu)),也有可能是靜態(tài)測試(不運行程序,只是查看代碼)動態(tài)測試有可能是黑盒測試(運行程序,只看輸入和輸出),也有可能是白盒測試(運行程序,并分析代碼結(jié)構(gòu))靜態(tài)測試有可能是黑盒測試(不運行程序,只看界面),也有可能是白盒測試(不運行程序,只是靜態(tài)查看代碼)192.3靜態(tài)測試技術(shù)靜態(tài)測試是指不運行被測試程序而尋找程序代碼中可能存在的錯誤或評估程序代碼的過程。靜態(tài)測試的特點是不需要運行代碼,也不需要對代碼編譯、鏈接和生成可執(zhí)行文件。它是通過分析或檢查源程序的方法、結(jié)構(gòu)、過程、接口等來檢查程序的正確性。目的在于找出缺陷和可疑之處,糾正軟件系統(tǒng)的描述、表示和規(guī)格上的錯誤,也是進一步執(zhí)行其它測試的前提。在實際使用中,靜態(tài)代碼檢查比動態(tài)測試更有效率,更能快速找到缺陷。按經(jīng)驗估算,一般能發(fā)現(xiàn)30%~70%的邏輯設(shè)計和編碼錯誤的缺陷。但是靜態(tài)代碼檢查非常耗費時間,而且代碼檢查需要豐富的知識和經(jīng)驗積累20靜態(tài)測試技術(shù)靜態(tài)測試要完成的主要工作:檢查算法的邏輯正確性,確定算法是否實現(xiàn)了所要求的功能;檢查模塊接口的正確性,確定形參的個數(shù)、數(shù)據(jù)類型、順序是否正確,確定返回值類型及返回值的正確性;檢查調(diào)用其他模塊的接口是否正確,檢查實參類型、實參個數(shù)是否正確,返回值是否正確。若被調(diào)用模塊出現(xiàn)異?;蝈e誤,程序是否有適當(dāng)?shù)某鲥e處理代碼;檢查是否有合適的錯誤處理,以便在程序出錯時,能對出錯部分進行重做安排,保證其邏輯的正確性;檢查表達式、語句書寫是否正確,是否含有二義性。例如,下列表達式或運算符的優(yōu)先級:<=、=、>=、&&、||、++、--等;檢查程序風(fēng)格的一致性、規(guī)范性,代碼是否符合行業(yè)規(guī)范檢查代碼是否可以優(yōu)化,算法效率是否最高;檢查代碼注釋是否完整,是否正確反映了代碼的功能,并查找錯誤的注釋。21為什么要靜態(tài)測試?在G.J.Myers的經(jīng)典著作《軟件測試之藝術(shù)》(TheArtofSoftwareTesting)中,軟件測試被定義為:程序測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。他認(rèn)為測試是執(zhí)行程序的過程,也就是在代碼完成后,通過運行程序來發(fā)現(xiàn)程序代碼或軟件系統(tǒng)中錯誤的過程。但是,這種測試方式并不能在代碼完成之前就發(fā)現(xiàn)系統(tǒng)需求、系統(tǒng)設(shè)計上的缺陷,而是把需求、設(shè)計上的問題遺留到后期,結(jié)果就會造成設(shè)計、編程的部分返工。而且,需求階段和設(shè)計階段的缺陷還會產(chǎn)生放大效應(yīng),大大增加了軟件開發(fā)的成本和周期。這是非常不利于保證軟件質(zhì)量的,這種測試思想主要是受軟件開發(fā)瀑布模型影響。

一般來說,在進行系統(tǒng)測試的功能測試階段時,基本上編碼工作已經(jīng)完成。這個時候所發(fā)現(xiàn)的缺陷問題,是需要付出比較高的代價去修正它的。在分析缺陷成本上,有以下公認(rèn)的結(jié)論,就是缺陷發(fā)現(xiàn)的越晚,修正的成本就越高。測試階段修正缺陷的成本是編碼階段約4倍的關(guān)系。所以,為了減少修正成本,缺陷被發(fā)現(xiàn)的越早越好!

22靜態(tài)測試的主要方面靜態(tài)測試:主要涉及3個方面:對于代碼的測試。主要測試測試代碼是否符合相應(yīng)的標(biāo)準(zhǔn)和規(guī)范對于界面的測試。主要測試軟件的實際界面與需求中說明的是否相符對于文檔測試。主要測試用戶手冊和需求說明是否真正符合用戶的實際需求。對界面和文檔的靜態(tài)測試相對要容易一些,只要測試人員對用戶需求很熟悉,就容易發(fā)現(xiàn)界面的文檔中的缺陷對程序代碼的靜態(tài)測試要復(fù)雜些,需要我們按照相應(yīng)的語言的代碼規(guī)范模板來逐行檢查程序代碼23靜態(tài)測試技術(shù)針對代碼的靜態(tài)測試包括:代碼檢查:一般在編譯和動態(tài)測試之前進行,實施方法很多,如:走查、審查和評審等靜態(tài)結(jié)構(gòu)分析:以圖形方式表現(xiàn)程序的內(nèi)部結(jié)構(gòu),如:函數(shù)調(diào)用關(guān)系圖、函數(shù)內(nèi)部控制流圖等。代碼質(zhì)量度量:代碼質(zhì)量的度量方式有Line度量(以代碼行數(shù)為計算基準(zhǔn))、Halstead復(fù)雜度(以程序中使用到的運算符與運算元的數(shù)量作為計數(shù)目標(biāo))和McCabe復(fù)雜度(又稱為圈復(fù)雜度,用圖論來計算軟件的復(fù)雜度)。24編碼規(guī)范為了保證代碼的質(zhì)量,代碼應(yīng)符合如下編碼規(guī)范:排版:例如,程序塊要采用縮進風(fēng)格編寫,縮進得空個為4個注釋:例如,一般情況下,源代碼的有效注釋量必須在20%以上標(biāo)識符命名:標(biāo)識符命名要清晰、明了,有明確的含義可讀性:例如,用括號明確表達式的操作順序,避免使用缺省優(yōu)先級變量:例如,去掉不必要的公共變量。函數(shù)、過程:例如,對所調(diào)用函數(shù)的錯誤返回碼要仔細(xì)、全面地處理可測性:例如,在同一項目組或產(chǎn)品組內(nèi),測試時打印出的信息串的格式要有統(tǒng)一形式。信息串中至少要有所在模塊名(或源文件名)及行號。25C語言編碼規(guī)范(簡裝版)規(guī)范編號規(guī)范內(nèi)容是否通過1一行代碼只做一件事,易于閱讀2代碼行的最大長度宜控制在70-80個字內(nèi)3函數(shù)和函數(shù)之間/定義語句和執(zhí)行語句之間最好加空行4在程序開頭加注釋,說明程序的基本信息;在重要的函數(shù)模塊處加注釋,說明各函數(shù)的功能5低一層次的語句比高一層次的語句縮進一個Tab鍵6不要漏掉函數(shù)的參數(shù)和返回值.如果沒有,則用VOID表示26C/C++語言的靜態(tài)分析#include<iostream.h>該程序功能:在主函數(shù)中輸入兩個單精度數(shù)

a和b,然后調(diào)用max函數(shù),將大數(shù)輸出!

max(floatx,floaty)發(fā)現(xiàn)了什么問題?{ floatz; z=x>y?x:y; return(z);}voidmain(){ floata,b; intc; cin>>a; cin>>b; c=max(a,b); cout<<"Maxis:"<<c<<'\n';}27C/C++語言的靜態(tài)分析通過這個簡單C/C++語言小程序來討論如何進行代碼的靜態(tài)檢測。我們把問題分為兩種,一種是必須修改的,另一種是建議修改的必須修改的問題有3個:程序沒有注釋。注釋是程序中很重要的組成部分。一般注釋語句最好占到代碼總行數(shù)的1/5到1/4。注釋包括程序的基本信息,如:作者、版本號、創(chuàng)建日期,以及主要功能模塊的含義。子函數(shù)max沒有返回值的類型。我們可以在max(floatx,floaty)前面加一個flioat類型聲明精度丟失問題。注意:”c=max(a,b)”語句中,c整數(shù)類型,賦值時將去掉小數(shù)部分。28C/C++語言的靜態(tài)分析2建議修改的問題也有3個:盡管該main函數(shù)沒有返回類型和參數(shù)列表。但我們應(yīng)將其改為voidmain(void),來表明main函數(shù)的返回值和參數(shù)都為空。在有的白盒測試工具的編碼規(guī)范中,如果不寫void會認(rèn)為是一個錯誤。1行代碼只定義1個變量,使程序結(jié)構(gòu)更看起來更清晰程序適當(dāng)加些空行,使程序結(jié)構(gòu)更清晰29動態(tài)測試的運行結(jié)果動態(tài)測試(dynamictesting)是指實際運行被測程序,輸入相應(yīng)的測試數(shù)據(jù),檢查實際的輸出結(jié)果與預(yù)期結(jié)果是否相符合的過程。舉例:實際運行修改后的上面程序,輸入1.2和3.5兩個實數(shù),按回車,得到結(jié)果3.5,與我們預(yù)期相符。這就是一個動態(tài)測試的過程。30上機實習(xí)1按“C/C++語言的靜態(tài)分析舉例”中發(fā)現(xiàn)了3個主要問題和3個建議性問題,給出修改后的程序!動態(tài)測試該修改后的程序!實際運行修改后的上面程序。例如,輸入1.2和3.5兩個實數(shù),按回車,得到結(jié)果3.5,與我們預(yù)期相符。312.4軟件測試的流程軟件測試過程按各測試階段的先后順序可分為單元測試、集成測試、確認(rèn)(有效性)測試、系統(tǒng)測試和驗收(用戶)測試5個階段。(1)單元測試:測試執(zhí)行的開始階段。測試對象是每個單元。測試目的是保證每個模塊或組件能正常工作。單元測試主要采用白盒測試方法,檢測程序的內(nèi)部結(jié)構(gòu)。(2)集成測試:也稱組裝測試。在單元測試基礎(chǔ)上,對已測試過的模塊進行組裝,進行集成測試。測試目的是檢驗與接口有關(guān)的模塊之間的問題。集成測試主要采用黑盒測試方法。(3)確認(rèn)測試:也稱有效性測試。在完成集成測試后,驗證軟件的功能和性能及其他特性是否符合用戶要求。測試目的是保證系統(tǒng)能夠按照用戶預(yù)定的要求工作。確認(rèn)測試通常采用黑盒測試方法。(4)系統(tǒng)測試:在完成確認(rèn)測試后,為了檢驗它能否與實際環(huán)境(如軟硬件平臺、數(shù)據(jù)和人員等)協(xié)調(diào)工作,還需要進行系統(tǒng)測試??梢哉f,系統(tǒng)測試之后,軟件產(chǎn)品基本滿足開發(fā)要求。(5)驗收測試:測試過程的最后一個階段。驗收測試主要突出用戶的作用,同時軟件開發(fā)人員也應(yīng)該參與進去。322.4軟件測試的流程軟件測試階段的輸入信息包括兩類:軟件配置:指測試對象。通常包括需求說明書、設(shè)計說明書和被測試的源程序等;測試配置:通常包括測試計劃、測試步驟、測試用例以及具體實施測試的測試程序、測試工具等。對測試結(jié)果與預(yù)期的結(jié)果進行比較以后,即可判斷是否存在錯誤,決定是否進入排錯階段,進行調(diào)試任務(wù)。對修改以后的程序要進行重新測試,因為修改可能會帶來新的問題。通常根據(jù)出錯的情況得到出錯率來預(yù)估被測軟件的可靠性,這將對軟件運行后的維護工作有重要價值。33單元測試什么是單元測試單元測試(unittesting),是指對軟件中最小可測試單元進行檢查和驗證。所謂“單元”,在C語言中,單元一般指1個函數(shù);在Java語言中,單元一般指1個類;在圖形化的軟件中,單元也可指1個窗口、1個菜單等什么時候進行單元測試通常在程序員編碼之后,代碼已經(jīng)通過編譯后進行單元測試,而且在前期就應(yīng)該做一些準(zhǔn)備工作,比如,撰寫單元測試計劃、編寫單元測試用例等。3.由誰來進行單元測試單元測試一般由白盒測試工程師或開發(fā)人員來測試。如果由開發(fā)人員來測試,最好做到交叉測試,避免只1個人測試自己的代碼34單元測試4.單元測試的依據(jù)是什么依據(jù)主要有兩個:源程序本身,包括代碼和注釋項目的《詳細(xì)設(shè)計》文檔5.單元測試的通過標(biāo)準(zhǔn)是什么程序通過所有單元測試的用例語句的覆蓋率達到100%分支的覆蓋率達到85%6.如何進行單元測試單元測試主要用白盒測試方法,一般先靜態(tài)地檢查代碼是否符合規(guī)范,然后動態(tài)地運行代碼,檢查其實際運行結(jié)果。運行結(jié)果正確是最基本要求。還要檢查很多項。35集成測試什么是集成測試集成測試(integrationtesting)是單元測試的下一階段,是指將通過測試的單元模塊組裝成系統(tǒng)或子系統(tǒng),再進行測試,重點是測試不同模塊的接口部分集成測試就是用來檢查各個單元模塊結(jié)合到一起能否協(xié)調(diào)配合,正常運行。什么時候進行集成測試?yán)碚撋?,集成測試在單元測試之后進行,但實際上,我們不可能等到所有的單元模塊都測試完后再進行集成測試往往是單元和集成同步進行:在單元測試中先測試幾個函數(shù)的自身功能,然后在集成測試一下這幾個函數(shù)的接口(即參數(shù)傳遞)。36集成測試3.由誰來進行集成測試一般由白盒測試工程師或開發(fā)人員進行4.集成測試的依據(jù)是什么集成測試的依據(jù)是單元測試的模塊以及《概要設(shè)計》文檔37確認(rèn)測試1.確認(rèn)測試的定義確認(rèn)測試最簡明、最嚴(yán)格的解釋是檢驗所開發(fā)的軟件是否能按用戶提出的要求運行。若能達到這一要求,則認(rèn)為開發(fā)的軟件是合格的。因而有的軟件開發(fā)部門把確認(rèn)測試稱為合格性測試(QualificationTesting)。確認(rèn)測試又稱為有效性測試。它的任務(wù)是驗證軟件的功能和性能及其特性是否與客戶的要求一致。對軟件的功能和性能要求在軟件需求規(guī)格說明中已經(jīng)明確規(guī)定。確認(rèn)測試階段工作如下圖所示。2.確認(rèn)測試的準(zhǔn)則經(jīng)過確認(rèn)測試,應(yīng)該為已開發(fā)的軟件做出結(jié)論性評價。這不外乎是以下兩種情況之一:經(jīng)過檢驗的軟件功能、性能及其他要求均已滿足需求規(guī)格說明書的規(guī)定,因而可被接受,視為是合格的軟件;經(jīng)過檢驗發(fā)現(xiàn)與需求說明書有相當(dāng)?shù)钠x,得到一個各項缺陷的清單。對于第二種情況,往往很難在交付期以前把發(fā)現(xiàn)的問題糾正過來。這就需要開發(fā)部門和客戶進行協(xié)商,找出解決的辦法。38確認(rèn)測試3.進行確認(rèn)測試確認(rèn)測試是在模擬的環(huán)境(可能是就是開發(fā)的環(huán)境)下,運用黑盒測試的方法,驗證所測試件是否滿足需求規(guī)格說明書列出的需求。4.軟件配置審查軟件配置審查是確認(rèn)測試過程的重要環(huán)節(jié)。其的目的是保證軟件配置的所有成分都齊全,各方面的質(zhì)量都符合要求,具備維護階段所必需的資料并且已經(jīng)編排好分類的目錄。除了按合同規(guī)定的內(nèi)容和要求,由工人審查軟件配置之外,在確認(rèn)測試的過程,應(yīng)當(dāng)嚴(yán)格遵守用戶手冊和操作手冊中規(guī)定的使用步驟,以便檢查這些文檔資料的完整性和正確性。必須仔細(xì)記錄發(fā)現(xiàn)的遺漏和錯誤,并且適當(dāng)?shù)匮a充和改正。39確認(rèn)測試確認(rèn)測試階段的工作40系統(tǒng)測試和驗收測試系統(tǒng)測試(systemtesting)指的是:將整個軟件系統(tǒng)看做一個整體進行測試,包括對功能、性能、以及軟件所運行的軟硬件環(huán)境進行測試。目前系統(tǒng)測試主要由黑盒測試工程師在整個系統(tǒng)集成完畢后進行的測試,前期主要測試系統(tǒng)的功能,后期主要測試系統(tǒng)運行的性能是否滿足需求,以及系統(tǒng)在標(biāo)題軟硬件環(huán)境中的兼容性等。系統(tǒng)測試的主要依據(jù)是《系統(tǒng)規(guī)格說明書》文檔41系統(tǒng)測試和驗收測試驗收測試的目的是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作,驗證軟件的功能和性能如同用戶所合理期待的那樣驗收測試(acceptancetesting)指的是:在系統(tǒng)測試的后期,以用戶測試為主,或有測試人員等質(zhì)量保證人員共同參與的測試,它也是軟件正式交付給用戶使用的最后一道工序。驗收測試又分為α測試和β測試。α測試是指由用戶、測試人員、開發(fā)人員等共同參與的內(nèi)部測試β測試是指內(nèi)部測試后的公開測試,即完全交給最終用戶測試。42單元、集成、系統(tǒng)、驗收測試比較測試名稱測試對象測試依據(jù)人員測試方法單元測試最小模塊,如函數(shù)、類等《詳細(xì)設(shè)計》白盒測試工程師或開發(fā)人員主要采用白盒測試集成測試模塊間接口,如參數(shù)傳遞《概要設(shè)計》白盒測試工程師或開發(fā)人員黑盒和白盒測試相結(jié)合系統(tǒng)測試整個系統(tǒng),包括軟硬件《需求規(guī)格說明書》黑盒測試工程師黑盒測試驗收測試整個系統(tǒng),包括軟硬件《需求規(guī)格說明書》,驗收標(biāo)準(zhǔn)主要為用戶,還可能有測試工程師等黑盒測試432.5按照測試內(nèi)容分類按照軟件測試的內(nèi)容可以將測試劃分為:功能性測試可靠性測試易用性測試性能測試可移植性測試文檔測試441功能性測試功能測試(functiontesting)應(yīng)該從適合性、準(zhǔn)確性、互操作性、安全性、功能的依從性等方面進行考查。適合性。適合性測試是檢驗系統(tǒng)是否提供了滿足需求的功能,以及系統(tǒng)所提供的功能需求的適合程度的測試工作準(zhǔn)確性。準(zhǔn)確性測試是檢驗處理數(shù)據(jù)是否準(zhǔn)確,以及處理數(shù)據(jù)的精度是否符合需求的測試工作互操作性?;ゲ僮餍允菣z查系統(tǒng)的相關(guān)功能與其它特定系統(tǒng)之間的交互能力的測試工作。安全性。安全性測試市檢驗系統(tǒng)的安全性、防止對系統(tǒng)及數(shù)據(jù)菲授權(quán)的故意或意外訪問、防止重要數(shù)據(jù)丟失等方面的測試工作。45功能測試5.功能的依從性。功能依從性測試檢驗軟件產(chǎn)品的功能是否遵循有關(guān)的標(biāo)準(zhǔn)、約定、法規(guī)的測試工作。以測試計算器的邏輯功能為例來說明功能測試。需編寫一系列測試用例來測試計算器的加、乘、除、取余數(shù)、求平方根、求倒數(shù)等運算。46邏輯功能測試用例編號操作步驟輸入數(shù)據(jù)期望結(jié)果1依次點擊按鈕“6”、“+”、”1”、”=”6,172依次點擊按鈕“5”、“-”、”7”、”=”5,7-23依次點擊按鈕“2”、“.”、”5”、“-”、”2”、”=”2.5,20.54依次點擊按鈕“1”、“/”、”0”、”=”1,0提示”除數(shù)不能為0”5依次點擊按鈕“+/-”、“2”、”sqrt”、”=”-2提示”負(fù)數(shù)不能求平方根”472可靠性測試可靠性測試應(yīng)該從成熟性、容錯性、易恢復(fù)性等方面進行考查成熟性測試,檢驗軟件系統(tǒng)故障導(dǎo)致失效的可能程度的測試工作容錯性測試,檢驗軟件系統(tǒng)在出現(xiàn)故障或違反指定接口的情況下,是否能維持規(guī)定的性能水平的測試工作易恢復(fù)性測試,主要檢驗失效后,重建其直接受影響的數(shù)據(jù),以及為達到目的所需的時間和相關(guān)工作的軟件屬性。483易用性測試易用性測試是指從軟件使用的合理性和方便性等角度對軟件系統(tǒng)進行檢查,來發(fā)現(xiàn)軟件中不方便用戶使用的地方。易用性測試應(yīng)該從易理解性、易學(xué)習(xí)性、易操作性幾個方面進行考查易用性測試用例例子見下表49易用性測試用例編號測試項1常用功能要有快捷方式2將功能相同或相近的控件劃分到一個區(qū)域,方便用戶查找3對于等待時間較長的操作,應(yīng)提供取消功能,并顯示進度4工具欄上的圖標(biāo)要直觀5必須提供友好的軟件聯(lián)機幫助,用戶按F1時可以調(diào)出6如果軟件在運行時出現(xiàn)問題,要在提示信息中提供相應(yīng)的支持聯(lián)系方式7根據(jù)實際需要,提供自動過濾空格功能8對于反饋時間較長的操作,最好能用進度條提示50界面測試(UItesting)界面測試的內(nèi)容很多,以單班機的Windows程序為例,主要有:窗口下拉式菜單和鼠標(biāo)操作數(shù)據(jù)項等測試用例可以檢查單(checklist)形式表示,它不涉及菜單的具體邏輯功能實現(xiàn),只是關(guān)于布局、字體、風(fēng)格等界面上的問題下表為一個通用Windows檢查單例子51編號測試項1軟件窗口的長度和寬度接近黃金比例2窗口上按鈕的布局要與界面一致3界面上的字體一般為宋體,字號一般為8-12號4顏色搭配要賞心悅目5菜單深度不要超過3級6無錯別字,無中英文混合7字體樣式統(tǒng)一8測試窗體在常用分辨率下的顯示情況,包括800×600,1024×768等9屏幕對角線交叉點的上方是最容易吸引用戶的位置,要重點測試10工具欄上的圖標(biāo)簡潔,盡量符合其真實含義11狀態(tài)欄上要實時顯示操作后的窗體發(fā)生的變化524效率測試(性能測試)效率測試是指對計算機系統(tǒng)的時間消耗及資源利用特性的測試。多數(shù)情況下,效率測試是指性能測試。時間特性測試:主要考查的是系統(tǒng)執(zhí)行效率。對系統(tǒng)的事務(wù)處理平均響應(yīng)時間、90%的事務(wù)處理響應(yīng)時間、事務(wù)處理速率等相關(guān)參數(shù)進行測試,考查系統(tǒng)在各種情況下的性能表現(xiàn)。資源利用性測試:主要是檢測系統(tǒng)的設(shè)備效率與網(wǎng)絡(luò)效率。設(shè)備效率測試:主要指對系統(tǒng)CPU占用率、內(nèi)存占用率、磁盤占用率等相關(guān)參數(shù)進行測試;網(wǎng)絡(luò)效率測試:主要指網(wǎng)絡(luò)吞吐量、網(wǎng)絡(luò)的使用頻度與帶占用情況等。53性能測試一般性能測試:讓被測系統(tǒng)在正常的軟硬件環(huán)境下運行,不向其施加任何壓力的性能測試穩(wěn)定性測試:也叫可靠性測試,是指連續(xù)運行被測系統(tǒng),檢查系統(tǒng)運行時的穩(wěn)定程度。通常用MTBF(MeanTimeBetweenFailure)來衡量系統(tǒng)的穩(wěn)定性負(fù)載測試:是指被測系統(tǒng)在其能忍受的壓力的極限范圍之內(nèi)連續(xù)運行,來測試系統(tǒng)的穩(wěn)定性壓力測試:通常是指持續(xù)不斷地給被測系統(tǒng)增加壓力,直到講被測系統(tǒng)壓垮為止,用來測試系統(tǒng)所能承受的最大壓力。545可移植性測試適應(yīng)性測試,檢測系統(tǒng)軟件無需特殊準(zhǔn)備就可適應(yīng)不同的規(guī)定環(huán)境的軟件測試工作易安裝性,廣義上來講,包括安裝和卸載兼容性測試包括硬件兼容性測試和軟件兼容性測試產(chǎn)品軟件的兼容性測試可分為:單機版兼容C/S結(jié)構(gòu)兼容B/S結(jié)構(gòu)兼容4易替換性測試,檢驗軟件系統(tǒng)在該軟件環(huán)境中用于替代指定的其他軟件的機會和所付出的努力大小556文檔測試文檔測試包括完整性、文檔正確性、文檔一致性與文檔易理解性檢查。文檔完整性。主要從以下幾方面進行考查:檢查是否有大模塊沒有描述到檢查是否有重要的分支沒有描述到文檔正確性。主要從以下幾方面進行考查:檢查所有的信息是否真實、準(zhǔn)確檢查所有的目錄、索引和章節(jié)引用是否已更新文檔一致性。主要從以下幾方面進行考查:檢查軟件返回的結(jié)果是否與軟件需求說明書所描述的內(nèi)容相同56文檔測試檢查軟件界面上出現(xiàn)的版本號與用戶手冊、系統(tǒng)幫助所提供的信息是否一致。文檔易理解性文檔的易理解性測試不僅要檢查系統(tǒng)文檔具有易理解性,避免不必要的描述和表達形式,避免產(chǎn)生歧義,同時檢查系統(tǒng)穩(wěn)定中是否對關(guān)鍵、重要的操作提供了直觀、明了的文字或圖表說明等577回歸測試和冒煙測試回歸測試(regressiontesting)是指對軟件的新的版本測試時,重復(fù)執(zhí)行上一版本測試時的用例回歸測試可以在任何測試階段進行,既有黑盒測試的回歸,也有百盒測試的回歸冒煙測試(smoketesting)是指在對一個新版本進行大規(guī)模的系統(tǒng)測試之前,先驗證一下軟件的基本功能是否實現(xiàn),是否具備可測性。冒煙測試和回歸測試往往結(jié)合起來使用:每當(dāng)我們拿到一個新版本時,首先進行冒煙測試,如果通過,則進行回歸測試。58隨機測試隨機測試(randomtesting)是指測試中所有的輸入數(shù)據(jù)都是隨機產(chǎn)生的,其目的是模擬用戶的真實操作,并發(fā)現(xiàn)一些邊緣性的錯誤。在實際的項目中,一般都是先作大規(guī)模的正規(guī)測試,如果時間允許的話,就輔助一些隨機測試。592.6軟件測試的3維空間方法目標(biāo)/特性單元測試系統(tǒng)測試驗收測試性能測試強壯性測試功能測試白盒測試黑盒測試測試階段或?qū)哟芜m用性測試可靠性測試集成測試安全性測試軟件測試是一個3維空間,包括階段或?qū)哟巍⒎椒ê湍繕?biāo)/特性60軟件測

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論