版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件測試項目實踐教程項目一認識軟件測試全套可編輯PPT課件chapter01認識軟件測試.pptxchapter02黑盒測試.pptxchapter03白盒測試.pptxchapter04性能測試.pptxchapter05自動化測試.pptxchapter06Unittest測試框架.pptxchapter07項目綜合應用.pptx認識軟件測試1熟悉軟件測試基本理論2掌握軟件測試過程管理工具———禪道3熟悉軟件測試人員應具備的素質(zhì)1.1熟悉軟件測試基本理論1.軟件測試的定義軟件測試的發(fā)展也經(jīng)歷了一個漫長的過程,其發(fā)展過程可用下圖表示:全套可編輯PPT課件具體定義:軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例(包括輸入數(shù)據(jù)與預期輸出結(jié)果),并利用這些測試用例運行軟件,以發(fā)現(xiàn)軟件錯誤的過程。擴展定義:軟件測試就是在軟件投入運行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼的最終復審,是軟件質(zhì)量保證的關(guān)鍵步驟。IEEE定義:使用人工或自動的手段來運行或測定某個軟件系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或弄清預期結(jié)果與實際之間的差別。軟件測試是在軟件投入運行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼實現(xiàn)的最終審查,它是軟件質(zhì)量保證的關(guān)鍵步驟。1.軟件測試的定義1.1熟悉軟件測試基本理論2.軟件測試的目的對于軟件開發(fā)來說,軟件測試通過找到問題缺陷幫助開發(fā)人員找到開發(fā)過程中存在的問題,包括軟件開發(fā)的模式、工具、技術(shù)等方面存在的問題與不足,預防下次缺陷的產(chǎn)生。對于軟件測試來說,使用最少的人力、物力、時間等找到軟件中隱藏的缺陷,保證軟件的質(zhì)量,也為以后軟件測試積累豐富的經(jīng)驗。對于客戶需求來說,軟件測試能夠檢驗軟件是否符合客戶需求,對軟件質(zhì)量進行評估和度量,為客戶評審軟件提供有力的依據(jù)。1.1熟悉軟件測試基本理論3.軟件測試的分類(1)按照測試階段分類●單元測試:驗證軟件單元是否符合軟件需求與設(shè)計,開發(fā)人員自測?!衩盁煖y試:軟件構(gòu)建版本建立后,對系統(tǒng)的基本功能進行簡單的測試,這種測試重點驗證的是程序的主要功能,而不會對具體功能進行深入測試?!窦蓽y試:冒煙測試之后,將已經(jīng)測試過的軟件單元組合在一起測試它們之間的接口,用于驗證軟件是否滿足設(shè)計需求?!裣到y(tǒng)測試:將經(jīng)過測試的軟件在實際環(huán)境中運行,并與其他系統(tǒng)的成分(如數(shù)據(jù)庫、硬件和操作人員等)組合在一起進行測試?!耱炇諟y試:主要是對軟件產(chǎn)品說明進行驗證,逐行逐字的按照說明書的描述對軟件產(chǎn)品進行測試,確保其符合客戶的各項要求。1.1熟悉軟件測試基本理論(2)按照測試技術(shù)分類●黑盒測試:把軟件(程序)當作一個有輸入與輸出的黑匣子,它把程序當作一個輸入域到輸出域的映射,只要輸入的數(shù)據(jù)能輸出預期的結(jié)果即可,不必關(guān)心程序內(nèi)部是怎樣實現(xiàn)的。
黑盒測試屬于系統(tǒng)級的測試,一般要到開發(fā)的后期,系統(tǒng)基本穩(wěn)定之后,從功能和性能方面著手來進行的測試?!癜缀袦y試:測試人員了解軟件程序的邏輯結(jié)構(gòu)、路徑與運行過程,在測試時,按照程序的執(zhí)行路徑得出結(jié)果。白盒測試就是把軟件(程序)當作一個透明的盒子,測試人員清楚地知道從輸入到輸出的每一步過程。
相對于黑盒測試來說,白盒測試對測試人員的要求會更高一點,它要求測試人員具有一定的編程能力,而且要熟悉各種腳本語言。但是在軟件公司里,黑盒測試與白盒測試并不是界限分明的,在測試一款軟件時往往是黑盒測試與白盒測試相結(jié)合對軟件進行完整全面的測試。3.軟件測試的分類1.1熟悉軟件測試基本理論3.軟件測試的分類(3)按照軟件質(zhì)量特性分類●功能測試:測試軟件的功能是否滿足客戶的需求,包括準確性、易用性、適合性、互操作性等?!裥阅軠y試:測試軟件的性能是否滿足客戶的需求,性能測試包括負載測試、壓力測試、兼容性測試、可移植性測試和健壯性測試等。1.1熟悉軟件測試基本理論3.軟件測試的分類(4)按照自動化程度分類●手工測試:測試人員一條一條的執(zhí)行代碼完成測試工作。費時費力且很驗證保證測試效果?!褡詣踊瘻y試:借助腳本、自動化測試工具等完成相應的測試工作,它也需要人工的參與,但是它可以將要執(zhí)行的測試代碼或流程寫成腳本,執(zhí)行腳本完成整個測試工作。1.1熟悉軟件測試基本理論3.軟件測試的分類(5)按照測試項目分類●界面類測試:驗證軟件界面是否符合客戶需求?!癜踩詼y試:試軟件在沒有授權(quán)的內(nèi)部或外部用戶的攻擊或惡意破壞時如何進行處理,是否能保證軟件與數(shù)據(jù)的安全。●文檔測試:以需求分析、軟件設(shè)計、用戶手冊、安裝手冊為主,主要驗證文檔說明與實際軟件之間是否存在差異。1.1熟悉軟件測試基本理論3.軟件測試的分類(6)其他分類●α測試:軟件上線之前進行的版本測試。由開發(fā)人員和測試人員或者用戶協(xié)助進行測試。測試人員記錄使用過程中出現(xiàn)的錯誤與問題,整個測試過程是可控的。●β測試:軟件上線之后進行的版本測試。由用戶在使用過程中發(fā)現(xiàn)錯誤與問題并進行記錄,然后反饋給開發(fā)人員進行修復?!窕貧w測試:對修改后的程序重新進行測試確認原有的缺陷已經(jīng)消除并且沒有引入新的缺陷,這個重新測試的過程就叫作回歸測試?!耠S機測試:沒有測試用例、檢查列表、腳本或指令的測試,它主要是根據(jù)測試人員的經(jīng)驗對軟件進行功能和性能抽查。1.1熟悉軟件測試基本理論(1)V模型4.軟件測試模型優(yōu)點:將復雜的測試工作分成了目標明確的小階段完成,具有階段性、順序性和依賴性,它既包含了對于源代碼的底層測試也包含了對于軟件需求的高層測試。缺點:只能在編碼之后才能開始測試,早期的需求分析等前期工作沒有涵蓋其中,因此它不能發(fā)現(xiàn)需求分析等早期的錯誤,這為后期的系統(tǒng)測試、驗收測試埋下了隱患。1.1熟悉軟件測試基本理論(2)W模型4.軟件測試模型優(yōu)點:測試范圍不僅包括程序,還包括需求分析、軟件設(shè)計等前期工作,這樣有利于盡早全面的發(fā)現(xiàn)問題。缺點:它將軟件開發(fā)過程分成需求、設(shè)計、編碼、集成等一系列的串行活動,無法支持迭代、自發(fā)性等需要變更調(diào)整的項目。1.1熟悉軟件測試基本理論(3)H模型H模型將測試活動完全獨立了出來,形成一個完全獨立的流程,這個流程將測試準備活動和測試執(zhí)行活動清晰的體現(xiàn)出來。測試流程和其他工作流程是并發(fā)執(zhí)行的,只要某一個工作流程的條件成熟就可以開始進行測試。4.軟件測試模型1.1熟悉軟件測試基本理論(4)X模型X模型的設(shè)計原理是將程序分成多個片段反復迭代測試,然后將多個片段集成再進行迭代測試。優(yōu)點:對單獨程序片段進行的相互分離的編碼和測試,保證了測試效果。增加了探索測試,可以幫助測試人員發(fā)現(xiàn)計劃之外的軟件錯誤。缺點:頻繁的集成會增加測試成本;探索測試對測試人員要求更高。4.軟件測試模型1.1熟悉軟件測試基本理論測試要盡早進行軟件缺陷符合“二八定理”避免缺陷免疫基本原則:測試應該基于客戶需求,同時測試開始之前需要制定嚴格的測試計劃。遵循GoodEnough原則執(zhí)行中,還需要注意:1、設(shè)計測試用例時應該考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下要制造極端狀態(tài)和意外狀態(tài),比如網(wǎng)絡(luò)異常中斷,電源斷電等;2、回歸測試的關(guān)聯(lián)性一定要引起充分注意;3、對測試錯誤結(jié)果一定要有一個確認過程;4、程序員應盡量避免檢查自己的程序。5.軟件測試原則1.1熟悉軟件測試基本理論窮盡測試是不可能的
不同類型的軟件產(chǎn)品測試的方式和重點不一樣,測試流程也會不一樣。同樣類型的軟件產(chǎn)品,不同的公司所制定的測試流程也會不一樣。雖然不同軟件的詳細測試步驟不同,但它們所遵循的最基本的測試流程是一樣的。分析測試需求
測試人員在制定測試計劃之前需要先對軟件需求進行分析,以便對要開發(fā)的軟件產(chǎn)品有一個清晰的認識,從而明確測試對象及測試工作的范圍和測試重點。制定測試計劃描述了要進行的測試活動的范圍、方法、資源和進度的文檔;是對整個信息系統(tǒng)應用軟件組裝測試和確認測試設(shè)計測試用例測試用例就是一個文檔,描述輸入、動作、或者時間和一個期望的結(jié)果,其目的是確定應用程序的某個特性是否正常的工作。6.軟件測試流程1.1熟悉軟件測試基本理論執(zhí)行測試測試執(zhí)行活動是整個測試過程的核心環(huán)節(jié),所有測試分析,測試設(shè)計,測試計劃的結(jié)果,將在測試執(zhí)行中得到最終的檢驗,它包括以下5個環(huán)節(jié)。編寫測試報告
測試總結(jié)是在每做完一輪測試之后要寫的一個總結(jié)性質(zhì)的文檔。寫測試總結(jié)是很有必要的,因為每做完一輪測試如果能夠詳細地總結(jié)這次測試過程中發(fā)現(xiàn)的問題及要注意的事項,就能在下一輪測試中更有效地選擇測試的方向。6.軟件測試流程1.1熟悉軟件測試基本理論任務(wù)實施:根據(jù)提供的WebTours的需求說明書,編寫一份測試計劃。
1.1熟悉軟件測試基本理論
(1)下載
禪道開源版本使用,可以直接在官網(wǎng)上下載安裝包,也可以直接使用線上演示版。我們這里下載安裝包安裝使用。
首先進入官網(wǎng),找到對應版本的開源下載地址。找到如圖所示位置選擇需要的版本下載。這里以下載禪道開源18.3版本的windows一鍵安裝包經(jīng)典64位。1.2掌握軟件測試過程管理工具—禪道1.禪道軟件下載使用(2)安裝首先將下載的一鍵安裝包解壓到對應目錄下。然后,打開剛才解壓后的目錄文件夾xampp,雙擊打開start.exe后,得到如圖所示頁面。點擊“啟動禪道”,啟動過程中可能會出現(xiàn)防火墻提醒,選擇允許后繼續(xù)運行;禪道服務(wù)啟動后,會提示數(shù)據(jù)庫密碼太弱,建議修改密碼。會默認顯示一個密碼,你也可以自己設(shè)置一個密碼,點OK后數(shù)據(jù)庫密碼會自動修改??梢栽诳刂七\行面板左上角服務(wù)--修改數(shù)據(jù)庫密碼里查看到當前的數(shù)據(jù)庫密碼。也可以在xampp/zentao/config/my.php里查看到數(shù)據(jù)庫密碼。1.禪道軟件下載使用1.2掌握軟件測試過程管理工具—禪道(3)啟動禪道啟動頁面如下左圖所示:
點擊“訪問禪道”,或者直接瀏覽器中輸入地址:80/index.php,即可實現(xiàn)禪道的訪問。點擊“開源版”進入開源版本頁面,如下右圖所示。1.2掌握軟件測試過程管理工具—禪道1.禪道軟件下載使用
這里先做簡單測試使用過程進行演示,暫不做具體任務(wù)實現(xiàn)。①創(chuàng)建項目集②添加產(chǎn)品。③添加項目。④添加測試模塊1.2掌握軟件測試過程管理工具—禪道2.禪道軟件的使用專業(yè)技能軟件技能良好的溝通能力和團隊合作能力綜合素質(zhì)1.3熟悉軟件測試人員應具備的素質(zhì)軟件測試項目實踐教程項目二黑盒測試黑盒測試1認識黑盒測試2掌握三角形等價類劃分問題3理解三角形問題的邊界值分析4掌握三角形問題的判定表法5掌握因果圖設(shè)計法6熟悉場景法7了解其他黑盒測試方法2.1認識黑盒測試1.黑盒測試的定義
黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,是指已知產(chǎn)品所應具有的功能,也就是依據(jù)《軟件需求規(guī)格說明書》,通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試主要用于發(fā)現(xiàn)以下情況:①是否有不正確或遺漏了的功能;②在接口上,能否正確地接受輸入數(shù)據(jù),能否產(chǎn)生正確地輸出信息;③訪問外部信息是否有錯;④性能上是否滿足要求;⑤界面是否錯誤,是否不美觀;⑥初始化或終止錯誤。2.1認識黑盒測試2.黑盒測試的優(yōu)缺點黑盒測試的優(yōu)點有:比較簡單,不需要了解程序內(nèi)部的代碼及實現(xiàn);與軟件的內(nèi)部實現(xiàn)無關(guān);從用戶角度出發(fā),能很容易的知道用戶會用到哪些功能,會遇到哪些問題;基于軟件開發(fā)文檔,所以也能知道軟件實現(xiàn)了文檔中的哪些功能;在做軟件自動化測試時較為方便。黑盒測試的缺點有:不可能覆蓋所有的代碼,覆蓋率較低,大概只能達到總代碼量的30%;自動化測試的復用性較低。2.2掌握三角形等價類劃分問題1.等價類劃分的定義等價類劃分法——是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。
等價類——是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。
該方法是一種重要的,常用的黑盒測試用例設(shè)計方法。有效等價類有效等價類就是有效值的集合,它們是符合程序要求、合理且有意義的輸入數(shù)據(jù)。無效等價類無效等價類就是無效值的集合,它們是不符合程序要求、不合理或無意義的輸入數(shù)據(jù)。利用有效等價類可檢驗程序是否實現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能。利用無效等價類可檢驗程序是否正確處理了無效數(shù)據(jù)。1.等價類劃分的定義2.2掌握三角形等價類劃分問題①按區(qū)間劃分②按數(shù)值劃分③按數(shù)值集合劃分④按限制條件或規(guī)則劃分
2.等價類劃分的原則2.2掌握三角形等價類劃分問題等價類的劃分細則(根據(jù)輸入輸出條件)在輸入條件規(guī)定了取值范圍或值的個數(shù)的情況下,則可以確立一個有效等價類和兩個無效等價類。(<=>)實例:輸入值是學生成績,范圍是0~100有效等價類:①0≤成績≤100無效等價類:①成績<0,②成績>100一個學生每學期只能選修1~3門課有效等價類:①選修1~3門無效等價類:①不選或②選修超過3門
2.等價類劃分的原則2.2掌握三角形等價類劃分問題在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確立一個有效等價類和一個無效等價類。(滿足,不滿足)實例:用戶連續(xù)輸入錯誤密碼的次數(shù)最多為3次。有效等價類:①<=3次無效等價類:①>3次
2.等價類劃分的原則
2.2掌握三角形等價類劃分問題③在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類。(True,F(xiàn)alse)
實例:電源開關(guān)開(一個有效等價類、一個無效等價類)有效等價類:①電源開關(guān)開無效等價類:①電源開關(guān)關(guān)
2.等價類劃分的原則
2.2掌握三角形等價類劃分問題在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。實例:輸入條件說明學歷可為:專科、本科、碩士、博士四種之一有效等價類:①???、②本科、③碩士、④博士無效等價類:①其它任何學歷
2.等價類劃分的原則
2.2掌握三角形等價類劃分問題⑤在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。實例:校內(nèi)電話號碼撥外線為9開頭有效等價類:①
9+外線號碼無效等價類:①非9開頭+外線號碼 ②9+非外線號碼,…
2.等價類劃分的原則
2.2掌握三角形等價類劃分問題⑥在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應再將該等價類進一步的劃分為更小的等價類。實例:核對日期的有效性,初步有效等價類是1<=Month<=12,1<=Day<=31,不過需要考慮2月以及閏年、閏月、長月、短月等。
2.等價類劃分的原則
2.2掌握三角形等價類劃分問題(1)確定測試對象,保證非測試對象的正確性(2)對每個輸入或外部條件進行等價類劃分,形成等價類表,為每一等價類規(guī)定一個唯一的編號;(3)設(shè)計一個新的測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類,重復這一步驟,直到所有有效等價類均被測試用例所覆蓋;(4)設(shè)計一個新的測試用例,使其只覆蓋一個無效等價類,重復這一步驟直到所有無效等價類均被覆蓋。
1.設(shè)計測試用例的步驟
2.2掌握三角形等價類劃分問題三角形問題是測試中廣泛使用的一個經(jīng)典案例,它要求輸入3個正數(shù)a、b、c作為三角形的三條邊,判斷這3個數(shù)構(gòu)成的是一般三角形、等邊三角形、等腰三角形,還是無法構(gòu)成三角形。案例分析:程序要求輸入3個數(shù),并且是正數(shù),在輸入3個正數(shù)的基礎(chǔ)上判斷這三個數(shù)能否構(gòu)成三角形,如果構(gòu)成三角形再判斷它構(gòu)成的三角形是一般三角形、等腰三角形還是等邊三角形,需要分步驟劃分等價類。
2.實例應用:三角形問題的等價類劃分
2.2掌握三角形等價類劃分問題(1)判斷是否輸入了3個數(shù),可以將輸入情況劃分成1個有效等價類,4個無效等價類:●有效等價類:輸入3個數(shù)。●無效等價類:輸入0個數(shù)。●無效等價類:只輸入1個數(shù)。●無效等價類:只輸入2個數(shù)?!駸o效等價類:輸入超過3個數(shù)。2.實例應用:三角形問題的等價類劃分
2.2掌握三角形等價類劃分問題(2)在輸入3個數(shù)的基礎(chǔ)上,判斷三個數(shù)是否是正數(shù),可以將輸入情況劃分為1個有效等價類,3個無效等價類:●有效等價類:三個數(shù)都是正數(shù)?!駸o效等價類:有一個數(shù)小于等于0。●無效等價類:有兩個數(shù)小于等于0?!駸o效等價類:三個數(shù)都小于等于0。2.實例應用:三角形問題的等價類劃分
2.2掌握三角形等價類劃分問題(3)在輸入三個正數(shù)的基礎(chǔ)上,判斷三個數(shù)是否能構(gòu)成三角形,可以將輸入情況劃分為1個有效等價類和1個無效等價類:●有效等價類:任意兩個數(shù)之和大于第三個數(shù),a+b>c、a+c>b、b+c>a?!駸o效等價類:其中兩個數(shù)之和小于等于第三個數(shù)。2.實例應用:三角形問題的等價類劃分
2.2掌握三角形等價類劃分問題(4)在三個數(shù)構(gòu)成三角形的基礎(chǔ)上,判斷三個數(shù)是否能構(gòu)成等腰三角形,可以將輸入情況劃分成1個有效等價類,因為是在構(gòu)成三角形的基礎(chǔ)進行劃分,因此沒有無效等價類?!裼行У葍r類:其中有兩個數(shù)相等,a=b|a=c|b=c。2.實例應用:三角形問題的等價類劃分
2.2掌握三角形等價類劃分問題(5)在構(gòu)成等腰三角形的基礎(chǔ)上,判斷這三個數(shù)能否構(gòu)成等邊三角形,只有1個有效等價類:●有效等價類:三個數(shù)相等,a=b=c。2.實例應用:三角形問題的等價類劃分
2.2掌握三角形等價類劃分問題要求有效等價類編號無效等價類編號輸入3個數(shù)輸入3個數(shù)1輸入0個數(shù)2只輸入1個數(shù)3只輸入2個數(shù)4多于3個數(shù)53個數(shù)是否都是正數(shù)3個數(shù)都是正數(shù)6有一個數(shù)小于等于07有兩個數(shù)小于等于083個數(shù)都小于等于093個數(shù)是否能構(gòu)成三角形任意2個數(shù)之和大于第3個數(shù)10其中2個數(shù)之和小于等于第3個數(shù)113個數(shù)是否能構(gòu)成等腰三角形其中2個數(shù)相等:a=b|a=c|b=c12
3個數(shù)是否能構(gòu)成等邊三角形構(gòu)成等邊三角形:a=b=c13
三角形輸入等價類表2.實例應用:三角形問題的等價類劃分
2.2掌握三角形等價類劃分問題覆蓋有效等價類的測試用例表測試用例輸入3個數(shù)覆蓋有效等價類的編號test112316test23451610test3668161012test4666161012132.實例應用:三角形問題的等價類劃分
2.2掌握三角形等價類劃分問題覆蓋無效等價類的測試用例表測試用例輸入3個數(shù)覆蓋無效等價類的編號test5-1-1-19test6-1-157test7-1458test8輸入0個數(shù)據(jù)2test913test10124test1113411test12123452.實例應用:三角形問題的等價類劃分
2.2掌握三角形等價類劃分問題1.邊界值分析概念
測試工作的經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。
邊界值分析是一種補充等價劃分的測試用例設(shè)計技術(shù),它不是選擇等價類的任意元素,而是選擇等價類邊界的測試用例。2.3理解三角形問題的邊界值分析
1、如果輸入條件規(guī)定了取值范圍,應該取范圍的邊界內(nèi)及剛剛超出范圍的邊界外的值作為測試輸入數(shù)據(jù);
例如,如果程序的規(guī)格說明中規(guī)定:"重量在10公斤至50公斤范圍內(nèi)的郵件,其郵費計算公式為……"。作為測試用例,我們應取10及50,還應取10.01,49.99,9.99及50.01等。2、如果輸入條件規(guī)定了值的個數(shù),則是對最大、最小個數(shù)及稍小于最小、稍大于最大個數(shù)作為測試數(shù)據(jù);比如,一個輸入文件應包括1~255個記錄,則測試用例可取1和255,還應取0及256。2.邊界值分析法的原則2.3理解三角形問題的邊界值分析3、將規(guī)則1)和2)應用于輸出條件,即設(shè)計測試用例使輸出值達到邊界值及其左右的值。4、如果程序規(guī)格說明中提到的輸入或輸出域是個有序的集合(如順序文件、表格等),就應注意選取有序集的第一個和最后一個元素作為測試用例。5、如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應當選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。6、分析規(guī)格說明,找出其它的可能邊界條件。2.邊界值分析法的原則2.3理解三角形問題的邊界值分析1、標準邊界值分析 Minmin+nommax-max2、健壯邊界值分析 Min-(Minmin+nommax-max)Max+
邊界值分析的例子0<=x<=1000<x<1003.常見的邊界值分類2.3理解三角形問題的邊界值分析3、其他一些邊界條件默認值/空值/空格/未輸入值/零、無效數(shù)據(jù)/不正確數(shù)據(jù)和干擾數(shù)據(jù)對16-bit的整數(shù)而言32767和-32768是邊界
屏幕上光標在最左上、最右下位置報表的第一行和最后一行
數(shù)組元素的第一個和最后一個
循環(huán)的第0次、第1次和倒數(shù)第2次、最后一次3.常見的邊界值分類2.3理解三角形問題的邊界值分析邊界值法設(shè)計測試用例步驟(1)對每個輸入或外部條件進行等價類劃分,形成等價類表,為每一等價類規(guī)定一個唯一的編號;(2)根據(jù)常見的邊界值法的分類,找出每個等價類對應的邊界值。4.三角形問題的邊界值分析2.3理解三角形問題的邊界值分析以三角形問題為例,要求輸入三個整數(shù)a、b、c,分別作為三角形的三條邊,取值范圍在1~100之間,判斷由三條邊構(gòu)成的三角形類型為等邊三角形、等腰三角形、一般三角形(包括直角三角形)以及非三角形。如表所示給出了邊界值分析測試用例。測試用例abc預期輸出TestCase115050等腰三角形TestCase225050等腰三角形TestCase3505050等邊三角形TestCase4995050等腰三角形TestCase51005050非三角形TestCase650150等腰三角形TestCase750250等腰三角形TestCase8509950等腰三角形TestCase95010050非三角形TestCase1050501等腰三角形TestCase1150502等腰三角形TestCase12505099等腰三角形TestCase135050100非三角形實例:三角形邊界值分析4.三角形問題的邊界值分析2.3理解三角形問題的邊界值分析在一些數(shù)據(jù)處理問題中,某些操作是否實施依賴于多個邏輯條件的取值。也即在這些邏輯條件取值的組合所構(gòu)成的多種情況下,分別執(zhí)行不同的操作。處理這類問題的一個非常有力的分析和表達工具是判定表(DecisionTable)。判定表(DecisionTable)——分析和表達多邏輯條件下執(zhí)行不同操作的情況下的工具。
1.判定表法2.4掌握三角形問題的判定表法判定表通常由4個部分組成,如下圖所示:2.4掌握三角形問題的判定表法1.判定表法判定表通常由4個部分組成:●條件樁:列出問題的所有條件,除了某些問題對條件的先后次序有要求之外,通常決策表中所列條件的先后次序都無關(guān)緊要?!駰l件項:條件項就是條件樁的所有可能取值?!駝幼鳂叮簞幼鳂毒褪菃栴}可能采取的操作,這些操作一般沒有先后次序之分?!駝幼黜棧褐赋鲈跅l件項的各組取值情況下應采取的動作。2.4掌握三角形問題的判定表法1.判定表法在判定表中,任何一個條件組合的特定取值及其相應要執(zhí)行的操作稱為一條規(guī)則,即決策表中的每一列就是一條規(guī)則,每一列都可以設(shè)計一個測試用例,根據(jù)判定表設(shè)計測試用例就不會有所遺漏。2.4掌握三角形問題的判定表法1.判定表法確定規(guī)則的個數(shù)。假如有n個條件,每個條件有2個取值(0,1),故有2n種規(guī)則;列出所有條件樁和動作樁;填入條件項和動作項;簡化,合并相似規(guī)則(相同動作)。若表中有兩條或多條規(guī)則具有相同的動作,并且其條件項之間存在著極為相似的關(guān)系,我們便可設(shè)法將其合并。2.4掌握三角形問題的判定表法2.判定表的建立步驟3.判定表設(shè)計測試用例的適用范圍①規(guī)格說明以判定表形式給出,或是很容易轉(zhuǎn)換成判定表。②條件的排列順序不會也不應影響執(zhí)行哪些操作。③規(guī)則的排列順序不會也不應影響執(zhí)行哪些操作。④每當某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗別的規(guī)則。⑤如果某一規(guī)則得到滿足要執(zhí)行多個操作,這些操作的執(zhí)行順序無關(guān)緊要。2.4掌握三角形問題的判定表法4.三角形問題的判定表分析在測試用例中,三角形問題是一個永盛不衰的經(jīng)典案例,這里我們繼續(xù)使用三角形講解判定表的構(gòu)建與測試用例的設(shè)計。三角形的三邊是否能構(gòu)成三角形,如果能構(gòu)成三角形,那么是構(gòu)成一般三角形、等腰三角形還是等邊三角形。2.4掌握三角形問題的判定表法據(jù)此分析,三角形問題有4個原因:原因●是否構(gòu)成三角形●a=b?●b=c?●c=a?結(jié)果●不構(gòu)成三角形●一般三角形●等腰三角形●等邊三角形●不符合邏輯4.三角形問題的判定表分析2.4掌握三角形問題的判定表法三角形判定表原因與結(jié)果12345678910111213141516原因c1YYYYYYYYNNNNNNNNc2YNYNNYYNYNYYNYNNc3YNNYNYNYYYNYNNYNc4YNNNYNYYYYYNYNNN結(jié)果e1
√√√√√√√√e2
√
e3
√√√
e4√
e5
√√√
4.三角形問題的判定表分析2.4掌握三角形問題的判定表法根據(jù)合并規(guī)則,將三角形判定表進行簡化原因與結(jié)果123456789原因c1YYYYYYYYNc2YNYNNYYN-c3YNNYNYNY-c4YNNNYNYY-結(jié)果e1
√e2
√
e3
√√√
e4√
e5
√√√
4.三角形問題的判定表分析2.4掌握三角形問題的判定表法三角形測試用例測試用例abc預期結(jié)果test1333等邊三角形test2345一般三角形test3334等腰三角形test4433等腰三角形test5343等腰三角形test6???不符合邏輯test7???不符合邏輯test8???不符合邏輯test9123不構(gòu)成三角形4.三角形問題的判定表分析2.4掌握三角形問題的判定表法等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系,相互組合等。判定表法考慮輸入條件的各種組合,但是不考慮輸入條件間的相互制約的關(guān)系。但有時一些具體問題中的輸入之間存在著相互依賴的關(guān)系,那么我們就需要用到因果圖法。1.因果圖2.5掌握因果圖設(shè)計法因果圖法(Cause-Effect)是一種適合于描述對于多種輸入條件組合的測試方法,根據(jù)輸入條件的組合、約束關(guān)系和輸出條件的因果關(guān)系,分析輸入條件的各種組合情況,從而設(shè)計測試用例的方法,它適合于檢查程序輸入條件涉及的各種組合情況。因果圖法一般和判定表結(jié)合使用,通過映射同時發(fā)生相互影響的多個輸入來確定判定條件。因果圖法最終生成的就是判定表,它適合于檢查程序輸入條件的各種組合情況。采用因果圖法能幫助我們按照一定的步驟選擇一組高效的測試用例,同時,還能指出程序規(guī)范中存在什么問題,鑒別和制作因果圖。
1.因果圖2.5掌握因果圖設(shè)計法原因結(jié)果通常在因果圖中,用Ci表示原因;用Ei表示結(jié)果;各結(jié)點表示狀態(tài),可取值“0”或“1”;“0”表示某狀態(tài)不出現(xiàn);“1”表示某狀態(tài)出現(xiàn)。1.因果圖2.5掌握因果圖設(shè)計法ci與ei之間有恒等、非(~)、或(∨)、與(∧)4種關(guān)系。2.因果圖中原因和結(jié)果的基本關(guān)系2.5掌握因果圖設(shè)計法恒等:在恒等關(guān)系中,要求程序有一個輸入和一個輸出,輸出與輸入保持一致。若c1為1,則e1也為1,若c1為0,則e1也為0。非:非使用符號“~”表示,在這種關(guān)系中,要求程序有一個輸入和一個輸出,輸出是輸入的取反。若c1為1,則e1為0,若c1為0,則e1為1?;颍夯蚴褂梅枴啊拧北硎?,或關(guān)系可以有任意個輸入,只要這些輸入中有一個為1,則輸出為1,否則輸出為0。與:與使用符號“∧”表示,與關(guān)系也可以有任意個輸入,但只有這些輸入全部為1,輸出才能為1,否則輸出為0。2.因果圖中原因和結(jié)果的基本關(guān)系2.5掌握因果圖設(shè)計法
輸入/輸出狀態(tài)之間可能存在某些依賴關(guān)系,這種依賴關(guān)系被稱為“約束”:3.因果圖中原因之間的約束關(guān)系2.5掌握因果圖設(shè)計法A、輸入條件的約束有以下4類:
①E約束(異):a和b中至多有一個可能為1,即a和b不能同時為1。
②I約束(或):a、b和c中至少有一個必須是1,即a、b和c不能同時為0。
③O約束(唯一);a和b必須有一個,且僅有1個為1。
④R約束(要求):a是1時,b必須是1,即不可能a是1時,b是0。B、輸出條件約束類型只有一種:
①M約束(強制):若結(jié)果a是1,則結(jié)果b強制為0。3.因果圖中原因之間的約束關(guān)系2.5掌握因果圖設(shè)計法(1)分析軟件規(guī)格說明描述中,哪些是原因(即輸入條件或輸入條件的等價類),哪些是結(jié)果(即輸出條件),并給每個原因和結(jié)果賦予一個標識符。(2)分析軟件規(guī)格說明描述中的語義。找出原因與結(jié)果之間,原因與原因之間對應的關(guān)系。根據(jù)這些關(guān)系,畫出因果圖。(3)由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。(4)把因果圖轉(zhuǎn)換為判定表。(5)把判定表的每一列拿出來作為依據(jù),設(shè)計測試用例。4.利用因果圖生成測試用例的步驟關(guān)系2.5掌握因果圖設(shè)計法
某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是A或B;第二列字符必須是一個數(shù)字。在此情況下進行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。5.因果圖案例講解2.5掌握因果圖設(shè)計法(1)分析軟件規(guī)格說明,找出原因和結(jié)果。原因:1———第一列字符是A。2———第一列字符是B。3———第二列字符是一數(shù)字。結(jié)果:21———修改文件。22———給出信息L。23———給出信息M。
5.因果圖案例講解2.5掌握因果圖設(shè)計法(2)畫出因果圖。所有原因結(jié)點列在左邊,所有結(jié)果結(jié)點列在右邊,標識原因和結(jié)果,原因和原因之間的關(guān)系。(3)分析組合不能出現(xiàn)的情況,考慮到原因1和原因2不可能同時為1,因此在因果圖上施加E約束。11為中間節(jié)點。5.因果圖案例講解2.5掌握因果圖設(shè)計法(4)因果圖轉(zhuǎn)換成判定表5.因果圖案例講解2.5掌握因果圖設(shè)計法(5)設(shè)計測試用例5.因果圖案例講解2.5掌握因果圖設(shè)計法
通過運用場景來對系統(tǒng)的功能點或業(yè)務(wù)流程的描述,從而提高測試效果。
場景法一般包含基本流和備用流,從一個流程開始,通過描述經(jīng)過的路徑來確定的過程,經(jīng)過遍歷所有的基本流和備用流來完成整個場景。1.場景法2.6熟悉場景法在左圖中,有一個基本流和四個備選流。每個經(jīng)過用例的可能路徑,可以確定不同的用例場景。從基本流開始,再將基本流和備選流結(jié)合起來,可以確定以下用例場景:
場景1基本流
場景2基本流備選流1
場景3基本流備選流1備選流2
場景4基本流備選流3
場景5基本流備選流3備選流1
場景6基本流備選流3備選流1備選流2
場景7基本流備選流4
場景8基本流備選流3備選流4
1.場景法2.6熟悉場景法從上面的實例我們就可以了解場景是如何利用基本流和備用流來確定的。
基本流:采用直黑線表示,是經(jīng)過用例的最簡單的路徑(無任何差錯,程序從開始直接執(zhí)行到結(jié)束)備選流:采用不同顏色表示,一個備選流可能從基本流開始,在某個特定條件下執(zhí)行,然后重新加入基本流中,也可以起源于另一個備選流,或終止用例,不在加入到基本流中;(各種錯誤情況)1.場景法2.6熟悉場景法
(1)根據(jù)說明,描述出程序的基本流及各項備選流;(2)根據(jù)基本流和各項備選流生成不同的場景;(3)對每一個場景生成相應的測試用例;(4)對生成的所有測試用例重新復審,去掉多余的測試用例,測試用例確定后,對每一個測試用例確定測試數(shù)據(jù)值。2.場景法基本設(shè)計步驟2.6熟悉場景法基本流:1.插入磁卡
2.ATM機驗證帳戶正確
3.輸入密碼正確,通過驗證
4.輸入取款金額
5.取錢
6.取卡備選流一:帳戶不存在或受限制備選流二:密碼不正確,還有輸入機會備選流三:密碼不正確,沒有輸入機會備選流四:卡中余額不足備選流五:機中余額不足備選流六:超過每日最大提款限額備選流七:輸入金額非100倍數(shù)3.ATM自動取款機場景2.6熟悉場景法場景描述基本流備選流場景1——成功的提款基本流場景2——帳戶不存在/帳戶受限基本流備選流1場景3——密碼不正確(還有輸入機會)基本流備選流2場景4——密碼不正確(不再有輸入機會)基本流備選流3場景5——卡中余額不足基本流備選流4場景6——機中余額不足基本流備選流5場景7——超過每日提款上限基本流備選流6場景8——輸入金額非100倍數(shù)基本流備選流73.ATM自動取款機場景2.6熟悉場景法場景圖3.ATM自動取款機場景2.6熟悉場景法TC(測試用例)ID號場景/條件PIN帳號輸入的金額(或選擇的金額)帳面金額(元)ATM內(nèi)的金額(元)預期結(jié)果CW1場景1:成功的提款4987809-498100500.002000成功的提款。帳戶余額被更新為400CW2場景2:帳戶不存在/帳戶受限n/a809-497n/a500.002000提款選項不可用,用例結(jié)束CW3場景3:密碼不正確(還有輸入機會)4987809-498n/a500.0070.00警告消息,返回基本流步驟3輸入密碼CW4場景4:密碼不正確(不再有輸入機會)4987809-498n/a500.002000警告消息,吞卡CW5場景5:卡中余額不足4987809-498600500.002000警告消息,返回基本流步驟4,輸入金額CW6場景6:機中余額不足4987809-498400500.00300提示消息,返回基本流步驟4,輸入金額CW7場景7:超過每日提款上限4987809-498(24小時內(nèi)已取款1900)20020003000警告消息,返回基本流步驟4,輸入金額CW8場景8:輸入金額非100倍數(shù)4987809-498150500.002000警告消息,返回基本流步驟4,輸入金額3.ATM自動取款機場景2.6熟悉場景法
錯誤推測法:基于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤,從而有針對性的設(shè)計測試用例的方法。
列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例。1.錯誤推測法2.7了解其他黑盒測試方法
常見案例:1、注冊用戶頁面,注意用戶名輸入空格,輸入非法字符,輸入相同的用戶名等。2、測試一個數(shù)組表進行排序時,注意輸入的數(shù)組表為空表,表中只含有一個元素,表中部分或全部元素相同等。1.錯誤推測法2.7了解其他黑盒測試方法
正交實驗設(shè)計方法是依據(jù)Galois理論,從大量的(實驗)數(shù)據(jù)(測試例)中挑選適量的,有代表性的點(例),依據(jù)Galois理論導出“正交表”,從而合理地安排實驗(測試)的一種科學實驗設(shè)計方法。類似的方法有聚類分析方法和因子方法等。2.正交實驗設(shè)計法2.7了解其他黑盒測試方法
正交實驗設(shè)計法包含三個關(guān)鍵因素,具體如下所示。?指標:判斷實驗結(jié)果優(yōu)劣的標準。?因子:也稱為因素,是指所有影響實驗指標的條件。?因子的狀態(tài):也叫因子的水平,指的是因子變量的取值。利用正交實驗法設(shè)計測試用例的步驟如下:(1)提取因子,構(gòu)造因子狀態(tài)表。(2)加權(quán)篩選,簡化因子狀態(tài)表。(3)構(gòu)建正交表,設(shè)計測試用例。2.正交實驗設(shè)計法2.7了解其他黑盒測試方法3.黑盒測試方法的選擇1、進行等價類劃分,包括輸入條件和輸出條件的等價劃分,將無限測試變成有限測試,這是減少工作量和提高測試下來的最有效方法;2、在任何情況下都必須使用邊界值分析方法。經(jīng)驗表明,這種方法設(shè)計出測試用例發(fā)現(xiàn)程序錯誤的能力最強;3、對照程序邏輯,檢查已設(shè)計出的測試用例的邏輯覆蓋程度。如果沒有達到要求的覆蓋標準,應當再補充足夠的測試用例;4、如果程序的功能說明中含有輸入條件的組合情況,應在一開始選用因果圖法和判定表法;5、對于業(yè)務(wù)流清晰的系統(tǒng),可以利用場景法貫穿整個測試案例的過程,在案例中綜合使用各種測試方法。2.7了解其他黑盒測試方法軟件測試項目實踐教程項目三白盒測試白盒測試1認識白盒測試2掌握邏輯覆蓋法實施3掌握基本路徑測試法4認識插樁法5了解靜態(tài)測試和白盒測試策略3.1認識白盒測試白盒測試是一種被廣泛使用的邏輯測試方法,也稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。白盒測試的對象基本上是源程序,是以程序的內(nèi)部邏輯為基礎(chǔ)的一種測試方法。白盒測試針對性較強,可以對程序的每一行語句、每一個條件或分支進行測試,測試效率較高,而且可以明確測試的覆蓋程度。白盒測試方法又可分為靜態(tài)測試和動態(tài)測試。1.白盒測試的定義
軟件的白盒測試是對軟件的過程性細節(jié)做細致檢查,一般遵循以下原則:(1)保證一個模塊中的所有獨立路徑至少被使用一次。(2)對所有邏輯值均測試true和false。(3)在循環(huán)的邊界和運行的界限內(nèi)執(zhí)行循環(huán)體。(4)檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確定其有效性等。3.1認識白盒測試2.白盒測試的原則(1)白盒測試的優(yōu)點1)可以檢測代碼中的每條分支和路徑。2)有一定充分性度量手段。3)可獲得較多工具支持。(2)白盒測試的缺點1)需要投入巨大的工作量,代價昂貴。2)無法檢測代碼中遺漏的路徑和數(shù)據(jù)敏感性錯誤。3)工作量大,通常只是用于單元測試。4)不驗證規(guī)格的正確性。3.1認識白盒測試3.白盒測試的優(yōu)缺點黑盒測試過程中不用考慮內(nèi)部邏輯結(jié)構(gòu),僅需要驗證軟件外部功能是否符合用戶實際需求。白盒測試深入代碼級的測試,發(fā)現(xiàn)問題最早,效果也是最好的。注意:軟件測試并不是使用某一種技術(shù)手段就可以完成的,在實際工作中,往往會根據(jù)不同階段選擇不同的測試方法。3.1認識白盒測試4.白盒測試與黑盒測試的區(qū)別測試名稱測試對象測試方法單元測試模塊功能(函數(shù)、類)白盒測試集成測試接口測試(數(shù)據(jù)傳遞)黑盒測試和白盒測試系統(tǒng)測試系統(tǒng)測試(軟件、硬件)黑盒測試驗收測試系統(tǒng)測試(軟件、硬件、用戶體驗)黑盒測試邏輯覆蓋法是最常用的白盒測試方法,它包括:●語句覆蓋●判定覆蓋●條件覆蓋●判定-條件覆蓋●條件組合覆蓋●路徑覆蓋3.2掌握邏輯覆蓋法實施1.語句覆蓋語句覆蓋(StatementCoverage)又稱行覆蓋、段覆蓋、基本塊覆蓋,它是最常見的覆蓋方式。語句覆蓋的目的是測試程序中的代碼是否被執(zhí)行,它只測試代碼中的執(zhí)行語句,這里的執(zhí)行語句不包括頭文件、注釋、空行等。3.2掌握邏輯覆蓋法實施語句覆蓋在多分支的程序中,只能覆蓋某一條路徑,使得該路徑中的每一個語句至少被執(zhí)行一次,但不會考慮各種分支組合情況。在代碼中,AND表示邏輯運算&&,OR表示邏輯運算||,第1~2行代碼表示如果x>0成立并且y<0成立,則執(zhí)行z=z-(x-y)語句;第3~4行代碼表示如果x>2成立或者z>0成立,則執(zhí)行z=z+(x+y)語句。示例代碼IFx>0ANDy<0//條件1z=z-(x-y)IFx>2ORz>0//條件2z=z+(x+y)1.語句覆蓋3.2掌握邏輯覆蓋法實施在代碼運行流程圖中,a、b、c、d、e表示程序執(zhí)行分支。在語句覆蓋測試用例中,使程序中每個可執(zhí)行語句至少被執(zhí)行一次。1.語句覆蓋3.2掌握邏輯覆蓋法實施設(shè)計測試用例:Test1:x=1y=-1z=3執(zhí)行測試用例,程序運行路徑為ace??梢钥闯龀绦蛑衋ce路徑上的每個語句都能被執(zhí)行。
但是語句覆蓋對多分支的邏輯無法全面反映,僅僅執(zhí)行一次不能進行全面覆蓋,因此,語句覆蓋是弱覆蓋方法。判定覆蓋(DecisionCoverage)又稱為分支覆蓋,其原則是設(shè)計足夠多的測試用例,在測試過程中保證每個判定至少有一次為真值,有一次為假值。判定覆蓋的作用是使真假分支均被執(zhí)行,雖然判定覆蓋比語句覆蓋測試能力強,但仍然具有和語句覆蓋一樣的單一性。2.判定覆蓋3.2掌握邏輯覆蓋法實施以上節(jié)程序為例,設(shè)計判定覆蓋測試用例。測試用例xyz執(zhí)行語句路徑test12-11acdtest2-31-1abdtest33-15acetest431-1abe2.判定覆蓋3.2掌握邏輯覆蓋法實施4個測試用例覆蓋了acd、abd、ace、abe四條路徑,使得每個判定語句的取值都滿足了各有一次“真”與“假”。相比于語句覆蓋,判定覆蓋的覆蓋范圍更廣泛。判定覆蓋雖然保證了每個判定至少有一次為真值,有一次為假值。判定覆蓋語句一般是由多個邏輯條件組成,如果僅僅判斷測試程序執(zhí)行的最終結(jié)果而忽略每個條件的取值,必然會遺漏部分測試路徑,因此,判定覆蓋也屬于弱覆蓋。條件覆蓋(ConditionCoverage)指的是設(shè)計足夠多的測試用例,使判定語句中的每個邏輯條件取真值與取假值至少出現(xiàn)一次。例如,對于判定語句if(a>1ORc<0)中存在a>1、c<0兩個邏輯條件,設(shè)計條件覆蓋測試用例時,要保證a>1、c<0的“真”、“假”值至少出現(xiàn)一次。3.條件覆蓋3.2掌握邏輯覆蓋法實施以上節(jié)程序為例,設(shè)計條件覆蓋測試用例,在該程序中,有2個判定語句,每個判定語句有2個邏輯條件,共有4個邏輯條件,使用標識符標識各個邏輯條件取真值與取假值的情況,如下表。條件1條件標記條件2條件標記x>0S1x>2S3x<=0-S1x<=2-S3y<0S2z>0S4y>=0-S2z<=0-S43.條件覆蓋3.2掌握邏輯覆蓋法實施使用S1標記x>0取真值(即x>0成立)的情況,-S1標記x>=0取假值(即x>0不成立)的情況。同理,使用S2、S3、S4標記y<0、x>2、z>0取真值,使用-S2、-S3、-S4標記y<=0、x>=2、z>=0取假值,最后得到執(zhí)行條件判斷語句的8種狀態(tài)。設(shè)計測試用例時,要保證每種狀態(tài)都至少出現(xiàn)一次。設(shè)計測試用例的原則是盡量以最少的測試用例達到最大的覆蓋率。測試用例xyz條件標記執(zhí)行路徑Test1315S1、-S2、S3、S4abeTest2-31-1-S1、-S2、-S3、-S4abdTest33-11S1、S2、S3、-S4ace3.條件覆蓋3.2掌握邏輯覆蓋法實施從條件覆蓋的測試用例可知,使用3個測試用例就達到了使每個邏輯條件取真值與取假值都至少出現(xiàn)了一次,但從測試用例的執(zhí)行路徑來看,條件分支覆蓋的狀態(tài)下仍舊不能滿足判定覆蓋,即沒有覆蓋acd路徑。相比于語句覆蓋與判定覆蓋,條件覆蓋達到了邏輯條件的最大覆蓋率,但卻不能保證判定覆蓋,仍舊不能滿足白盒測試覆蓋所有分支的需求。也是弱覆蓋。判定-條件覆蓋(Condition/DecisionCoverage)要求設(shè)計足夠多的測試用例,使得判定語句中所有條件的可能取值至少出現(xiàn)一次,同時,所有判定語句的可能結(jié)果也至少出現(xiàn)一次。例如,對于判定語句if(a>1ANDc<1),該判定語句有a>1、c<1兩個條件,則在設(shè)計測試用例時,要保證a>1、c<1兩個條件取“真”、“假”值至少一次,同時,判定語句if(a>1ANDc<1)取“真”、“假”也至少出現(xiàn)一次。4.判定-條件覆蓋3.2掌握邏輯覆蓋法實施根據(jù)判定-條件覆蓋原則,以上節(jié)程序為例設(shè)計判定-條件覆蓋測試用例。測試用例xyz條件標記條件1條件2執(zhí)行路徑test1315S1、-S2、S3、S401abetest2-31-1-S1、-S2、-S3、-S400abdtest33-11S1、S2、S3、-S411ace4.判定-條件覆蓋3.2掌握邏輯覆蓋法實施在判定-條件覆蓋中,3個測試用例滿足了所有條件可能取值至少出現(xiàn)一次,以及所有判定語句可能結(jié)果也至少出現(xiàn)一次的要求。相比于條件覆蓋、判定覆蓋,判定-條件覆蓋彌補了兩者的不足之處,但是由于判定-條件覆蓋沒有考慮判定語句與條件判斷的組合情況,其覆蓋范圍并沒有比條件覆蓋擴展,判定-條件覆蓋也沒有覆蓋acd路徑,因此判定-條件覆蓋在仍舊存在遺漏測試的情況。
條件組合(MultipleConditionCoverage)指的是設(shè)計足夠多的測試用例,使判定語句中每個條件的所有可能至少出現(xiàn)一次,并且每個判定語句本身的判定結(jié)果也至少出現(xiàn)一次,它與判定-條件覆蓋的差別是,條件組合覆蓋不是簡單地要求每個條件都出現(xiàn)“真”與“假”兩種結(jié)果,而是要求讓這些結(jié)果的所有可能組合都至少出現(xiàn)一次。5.條件組合覆蓋3.2掌握邏輯覆蓋法實施以上節(jié)程序為例,該程序中共有四個條件:x>0、y<0、x>2、z>0,我們依然用S1、S2、S3、S4標記這四個條件成立,而-S1、-S2、-S3、-S4標記這些條件不成立。由于這四個條件每個條件都有取“真”、“假”兩個值,因此所有條件結(jié)果的組合有24=16種。5.條件組合覆蓋3.2掌握邏輯覆蓋法實施序號組合含義1S1、S2、S3、S4x>0成立,y<0成立;x>2成立,z>0成立。2-S1、S2、S3、S4x>0不成立,y<0成立;x>2成立,z>0成立。3S1、-S2、S3、S4x>0成立,y<0不成立;x>2成立,z>0成立。4S1、S2、-S3、S4x>0成立,y<0成立;x>2不成立,z>0成立。5S1、S2、S3、-S4x>0成立,y<0成立;x>2成立,z>0不成立。6-S1、-S2、S3、S4x>0不成立,y<0不成立;x>2成立,z>0成立。7-S1、S2、-S3、S4x>0不成立,y<0成立;x>2不成立,z>0成立。8-S1、S2、S3、-S4x>0不成立,y<0成立;x>2成立,z>0不成立。9S1、-S2、-S3、S4x>0成立,y<0不成立;x>2不成立,z>0成立。10S1、S2、-S3、-S4x>0成立,y<0成立;x>2不成立,z>0不成立。11S1、-S2、S3、-S4x>0成立,y<0不成立;x>2成立,z>0不成立。12-S1、-S2、-S3、S4x>0不成立,y<0不成立;x>2不成立,z>0成立。13-S1、-S2、S3、-S4x>0不成立,y<0不成立;x>2成立,z>0不成立。14S1、-S2、-S3、-S4x>0成立,y<0不成立;x>2不成立,z>0不成立。15-S1、S2、-S3、-S4x>0不成立,y<0成立;x>2不成立,z>0不成立。16-S1、-S2、-S3、-S4x>0不成立,y<0不成立;x>2不成立,z>0不成立。經(jīng)過分析可以發(fā)現(xiàn),第2、6、8、13這4種情況是不存在的,這幾種情況要求x>0不成立,x>2成立,這兩種結(jié)果相悖,因此最終圖3-1的所有條件組合情況有12種,根據(jù)這12種情況設(shè)計測試用例。5.條件組合覆蓋3.2掌握邏輯覆蓋法實施序號組合測試用例條件1條件2覆蓋路徑xyztest1S1、S2、S3、S43-1511acetest2S1、-S2、S3、S431501abetest3S1、S2、-S3、S41-1311acetest4S1、S2、S3、-S43-1111acetest5-S1、S2、-S3、S4-5-2101abetest6S1、-S2、-S3、S411101abetest7S1、S2、-S3、-S41-1110acdtest8S1、-S2、S3、-S461-201abetest9-S1、-S2、-S3、S4-11101abetest10S1、-S2、-S3、-S411-200abdtest11-S1、S2、-S3、-S4-2-1-300abdtest12-S1、-S2、-S3、-S4-31-100abd當程序中條件比較多時,條件組合的數(shù)量會呈指數(shù)型增長,組合情況非常多,要設(shè)計的測試用例也會增加,這樣反而會使測試效率降低。路徑覆蓋是指選取足夠多的測試數(shù)據(jù),使程序的每條可能路徑都至少執(zhí)行一次(如果程序流程圖中有環(huán),則要求每個環(huán)至少經(jīng)過一次)。路徑覆蓋要求設(shè)計足夠多的測試用例,在白盒測試法中,覆蓋率最高的就是路徑覆蓋,因為它可以覆蓋程序中所有可能的路徑。對于比較簡單的程序來說,實現(xiàn)路徑覆蓋是可能的,但是如果程序中出現(xiàn)了多個判斷和循環(huán),可能的路徑數(shù)目將會急劇增長,以致實現(xiàn)路徑覆蓋是幾乎不可能的。6.路徑覆蓋3.2掌握邏輯覆蓋法實施以前面程序為例,該程序中共有四條路徑:abd、abe、acd、ace。設(shè)計足夠多的測試用例,實現(xiàn)路徑覆蓋。6.路徑覆蓋3.2掌握邏輯覆蓋法實施序號xyz路徑test010-1-1abdtest02311abetest033-13acetest041-12acd基本路徑測試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復雜性,導出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。設(shè)計出的測試用例要保證在測試中程序的每個可執(zhí)行語句至少執(zhí)行一次。3.3掌握基本路徑測試法1.基本路徑測試法的定義1、畫出控制流圖常見控制流圖符號:順序結(jié)構(gòu)If語句While語句Until結(jié)構(gòu)Case語句3.3掌握基本路徑測試法2.基本路徑測試法基本步驟2、確定程序基本集的獨立路徑數(shù)量,再確保所有語句至少執(zhí)行一次的測試數(shù)量的上界。注意:基本路徑集通常并不唯一。環(huán)形復雜度的計算:V(G)=E-N+2V(G)=P+1V(G)=A3、根據(jù)獨立路徑,設(shè)計測試用例。3.3掌握基本路徑測試法2.基本路徑測試法基本步驟根據(jù)三角形三邊的關(guān)系可將三角形分為4種類型:不構(gòu)成三角形、一般三角形、等腰三角形、等邊三角形。根據(jù)該原則實現(xiàn)一個判斷三角形的程序。3.3掌握基本路徑測試法3.三角形判定問題INTABC //三角形的三邊IF((A+B>C)&&(A+C>B)&&(B+C)>A)//是否滿足三角形成立條件 IF((A==B)&&(B==C)) //等邊三角形
等邊三角形ELSEIF((A==B)||(B==C)||(A==C)) //等腰三角形
等腰三角形 ELSE //一般三角形
一般三角形ELSE
不是三角形END三角形判定流程圖3.3掌握基本路徑測試法3.三角形判定問題對程序進行分析,程序的執(zhí)行路徑如右圖。圖中數(shù)字是代碼行號,當執(zhí)行程序輸入數(shù)據(jù)時,程序根據(jù)條件判斷沿著不同的路徑執(zhí)行。1223111045683.3掌握基本路徑測試法3.三角形判定問題根據(jù)流程圖和路徑圖分析,V(G)=4,所以設(shè)計4個測試用例。編號測試用例路徑預期輸出ABCtest16661-2-3-4-11等邊三角形test26681-2-3-5-6-11等腰三角形test33451-2-3-5-8-11一般三角形test43361-2-10-11不構(gòu)成三角形3.3掌握基本路徑測試法3.三角形判定問題程序插樁就是往被測試程序中插入測試代碼以達到測試目的的方法,插入的測試代碼被稱為探針。根據(jù)測試代碼插入的時間可以將插樁法分為目標代碼插樁和源代碼插樁。3.4認識插樁法3.4認識插樁法1.目標代碼插樁法
目標代碼插樁是指向目標代碼(二進制代碼)插入測試代碼,獲取程序運行信息的測試方法,也稱為動態(tài)程序分析方法。在進行目標代碼插樁之前,測試人員要對目標代碼邏輯結(jié)構(gòu)進行分析,從而確認需要插樁的位置。目標代碼插樁對程序運行時的內(nèi)存監(jiān)控、指令跟蹤、錯誤檢測等有著重要意義。(1)目標代碼插樁原理
目標代碼插樁法的原理是在程序運行平臺和底層操作系統(tǒng)之間建立中間層,通過中間層檢查執(zhí)行程序、修改指令,開發(fā)人員、軟件分析工程師等對運行的程序進行觀察,判斷程序是否被惡意攻擊或者出現(xiàn)異常行為,從而提高程序的整體質(zhì)量。3.4認識插樁法1.目標代碼插樁法(2)目標代碼插樁執(zhí)行模式●即時模式(Just-In-Time):原始的二進制或可執(zhí)行文件沒有被修改或執(zhí)行,將修改部分的二進制代碼生成文件副本存儲在新的內(nèi)存區(qū)域中,在測試時僅執(zhí)行修改部分的目標代碼?!窠忉屇J剑↖nterpretationMode):在解釋模式中目標代碼被視為數(shù)據(jù),測試人員插入的測試代碼作為目標代碼指令的解釋語言,每當執(zhí)行一條目標代碼指令,程序就會在測試代碼中查找并執(zhí)行相應的替代指令,測試通過替代指令的執(zhí)行信息就可以獲取程序的運行信息?!裉綔y模式(ProbeMode):探測模式使用新指令覆蓋舊指令進行測試,這種模式在某些體系結(jié)構(gòu)(如x86)中比較好用。3.4認識插樁法1.目標代碼插樁法PinDynamoRIO3.4認識插樁法2.目標代碼插樁工具3.4認識插樁法3.源代碼插樁法源代碼插樁是指對源文件進行完整的詞法、語法分析后,確認插樁的位置,植入探針代碼。相比于目標代碼插樁,源代碼插樁具有針對性和精確性。源代碼碼插樁模型相比于目標代碼插樁,源代碼插樁實現(xiàn)復雜程度低。源代碼插樁是源代碼級別的測試技術(shù),探針代碼程序具有較好的通用性,使用同一種編程語言編寫的程序可以使用一個探針代碼程序來完成測試。3.4認識插樁法3.源代碼插樁法程序插樁測試方法有效的提高了代碼測試覆蓋率,但是插樁測試方法會帶來代碼膨脹、執(zhí)行效率低下和HeisenBugs,在一般情況下插樁后的代碼膨脹率在20%~40%,甚至膨脹率達到100%導致插樁測試失敗。HeisenBugsHeisenBugs稱為海森堡bug,它是一種軟件缺陷,這種缺陷的重現(xiàn)率很低,當人們試圖研究時bug會消失或改變行為。實際開發(fā)軟件測試中,這種缺陷也比較常見,測試人員測試到一個缺陷提交給開發(fā)人員,開發(fā)人員執(zhí)行缺陷重現(xiàn)步驟卻得不到報告的缺陷,缺陷已經(jīng)消失或者出現(xiàn)了其他缺陷。3.4認識插樁法3.源代碼插樁法代碼檢查法主要是通過桌面檢查、代碼審查和走查的方式,對以下內(nèi)容進行檢查。代碼和設(shè)計的一致性代碼的可讀性以及對軟件設(shè)計標準的遵循情況代碼邏輯表達的正確性代碼結(jié)構(gòu)的合理性程序中不安全、不明確和模糊的部分編程風格方面的問題等。1.代碼檢查法3.5了解靜態(tài)測試和白盒測試策略桌面檢查主要是程序設(shè)計人員對源程序代碼進行分析、檢驗,并補充相關(guān)的文檔,發(fā)現(xiàn)程序中的錯誤。代碼檢查項目通常有以下內(nèi)容:檢查變量的交叉引用表、檢查標號的交叉引用表、檢查子程序、宏、函數(shù)、等價性檢查、常量檢查、設(shè)計標準檢查、風格檢查、比較控制流、選擇、激活路徑、對照程序的規(guī)格說明1.代碼檢查法3.5了解靜態(tài)測試和白盒測試策略代碼審查一般是指由程序設(shè)計人員和測試人員組成的審查小組,通過閱讀、討論,對程序進行靜態(tài)分析的過程。在會前,應當準備一份常見的錯誤清單,即檢查表走查一般由程序設(shè)計人員和測試人員組成的審查小組,通過邏輯運行程序,來發(fā)現(xiàn)問題。走查前,應準備好需求描述文檔、程序設(shè)計文檔、程序的源代碼清單、代碼編碼標準和代碼缺陷檢查表。比較耗時,可發(fā)現(xiàn)30%-70%的邏輯設(shè)計和編碼缺陷。1.代碼檢查法3.5了解靜
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度數(shù)據(jù)中心運營維護承包人工合同模板4篇
- 2025年度互聯(lián)網(wǎng)數(shù)據(jù)中心搭建服務(wù)合同協(xié)議3篇
- 2025年度化工原料采購與儲存協(xié)議3篇
- 2025年度環(huán)保型綠色打印設(shè)備承包合同范本3篇
- 2025年度汽車4S店集團購車優(yōu)惠及售后服務(wù)協(xié)議3篇
- 2024衣柜墻板吊頂裝修工程施工安全與環(huán)境保護合同
- 創(chuàng)新集成電路設(shè)計與制造技術(shù)項目可行性研究報告范文模板
- 《融資租賃行業(yè)培訓》課件
- 2025年度房產(chǎn)中介服務(wù)傭金結(jié)算標準合同4篇
- 2025年度別墅裝修工程承包與監(jiān)理協(xié)議4篇
- GB/T 11379-2008金屬覆蓋層工程用鉻電鍍層
- 寒假小學生安全教育主題班會課件
- 青島版小學科學三年級下冊課程綱要
- 【案例】串口調(diào)試助手與S7-200SMARTPLC從站通信
- 新媒體研究方法教學ppt課件(完整版)
- 2020新版?zhèn)€人征信報告模板
- 工業(yè)純鐵生產(chǎn)工藝流程【詳情】
- 工藝管道儀表流程圖(共68頁).ppt
- 關(guān)于蒸汽管道應急預案
- 技術(shù)服務(wù)及售后服務(wù)的承諾及保證措施
- 五項管理行動日志excel表格
評論
0/150
提交評論