軟件測試業(yè)務(wù)_第1頁
軟件測試業(yè)務(wù)_第2頁
軟件測試業(yè)務(wù)_第3頁
軟件測試業(yè)務(wù)_第4頁
軟件測試業(yè)務(wù)_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件測試業(yè)務(wù)概述軟件測試業(yè)務(wù)概述設(shè)計培訓(xùn)系列之三課程目的課程目的: :學(xué)習(xí)了解軟件審查測試的基本學(xué)習(xí)了解軟件審查測試的基本流程和常用方法流程和常用方法 軟件測試的基本概念 軟件測試的過程 軟件測試的管理 部分軟件測試方法什么是軟件測試軟件測試的定義軟件測試的定義 根據(jù)側(cè)重點(diǎn)的不同,主要有以下三種觀點(diǎn): 1)1983年IEEE將軟件測試定義為:“使用人工或自動手段運(yùn)行或測定某個系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是明確預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別”,該定義明確地提出了軟件測試以檢驗(yàn)是否滿足需求為目標(biāo)。 2)Myers認(rèn)為:“是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”,明確提出了“尋找錯誤”是測

2、試目的。什么是軟件測試 3)從軟件質(zhì)量保證的角度看:是一種重要的軟件質(zhì)量保證活動,其動機(jī)是通過一些經(jīng)濟(jì)、高效的方法,捕捉軟件中的錯誤,從而達(dá)到保證軟件內(nèi)在質(zhì)量的目的。也有人認(rèn)為軟件測試(software testing)就是在軟件投入運(yùn)行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。 以最少的時間和人力找出潛在的錯誤和缺陷 證明軟件的功能和性能是否與需求說明書相符 收集測試數(shù)據(jù)作為軟件質(zhì)量評估、可靠性評審的依據(jù)軟件測試的目的軟件測試貫穿軟件定義與開發(fā)的整個期間。測試對象包括文檔和代碼: 需求規(guī)格說明 概要設(shè)計 詳細(xì)設(shè)計 程序代碼 用戶手冊軟件測試的對象軟件測試橫跨

3、開發(fā)階段和測試階段開發(fā)階段:文檔審查(需求規(guī)格、概要設(shè)計、詳細(xì)設(shè)計,單元(模塊)測試測試階段:集成測試、確認(rèn)測試、系統(tǒng)測試、用戶手冊等文檔驗(yàn)證。軟件測試的生存周期軟件的驗(yàn)證和確認(rèn)(V&V)軟件的驗(yàn)證和確認(rèn)(V&V)軟件的驗(yàn)證和確認(rèn)(V&V)1.缺陷(Defect) 程序員在編寫代碼時會出錯,我們把這種錯誤稱之為Defect或者bug,隨著開發(fā)過程的進(jìn)行,缺陷會不斷的放大,成為運(yùn)行時的故障,導(dǎo)致失效。2.錯誤(Error) 描述軟件生命周期各種錯誤的一般術(shù)語,缺陷、故障有時都稱為錯誤。3.故障(Fault) 軟件運(yùn)行中出現(xiàn)的狀態(tài),可引起意外情況,若不加處理,可產(chǎn)生實(shí)效,是

4、一個動態(tài)行為。4.失效(Failure) 出現(xiàn)故障的軟件運(yùn)行時,常常會發(fā)生失效的。軟件測試相關(guān)的術(shù)語軟件測試:軟件測試:為了發(fā)現(xiàn)軟件中的錯誤而執(zhí)行程序的過程。測試用例:測試用例:為發(fā)現(xiàn)軟件錯誤設(shè)計的測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果。測試規(guī)范:測試規(guī)范:測試的指導(dǎo)性文件,對測試過程中所涉及到的測試?yán)碚?、測試類型、測試方法、測試標(biāo)準(zhǔn)、測試流程以及軟件產(chǎn)品開發(fā)單位所承擔(dān)的職責(zé)進(jìn)行總體規(guī)范,以有效保證產(chǎn)品的質(zhì)量。軟件測試相關(guān)的術(shù)語黑盒測試:黑盒測試:不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部數(shù)據(jù),只依據(jù)程序的需求說明,檢查程序的功能是否符合它的功能說明。又稱功能測試或數(shù)據(jù)驅(qū)動測試。主要包括:是否有不正確或遺漏

5、了的功能在接口上,輸入能否正確地接收,能否輸出正確的結(jié)果是否有數(shù)據(jù)結(jié)構(gòu)錯誤或外部信息訪問錯誤性能上是否能夠滿足要求是否有初始化或終止性錯誤軟件測試相關(guān)的術(shù)語白盒測試:白盒測試:對軟件的過程性細(xì)節(jié)作細(xì)致的檢查。測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例進(jìn)行測試。又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。對程序所有模塊的獨(dú)立的執(zhí)行路徑至少測試一次對所有的邏輯判斷,取真與取假的兩種情況都能至少執(zhí)行一次在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性軟件測試相關(guān)的術(shù)語群集現(xiàn)象:群集現(xiàn)象:測試后程序中殘存的錯誤數(shù)目,與該程序中已發(fā)現(xiàn)的錯誤數(shù)目或檢錯率成正比。在所測的程序段中,若發(fā)現(xiàn)的錯誤

6、數(shù)目較多,則殘存的錯誤數(shù)目也較多。軟件測試相關(guān)的術(shù)語 軟件測試的基本概念 軟件測試的過程 軟件測試的管理 部分軟件測試方法 軟件測試活動包括設(shè)計評審、代碼正規(guī)檢視、設(shè)計評審、代碼正規(guī)檢視、單元測試、代碼審查、集成測試、系統(tǒng)測試系統(tǒng)測試等。 設(shè)計評審、代碼正規(guī)檢視、單元測試:開發(fā)階段完成,絕大部分邏輯錯誤要通過這一階段的工作解決 代碼審查、集成測試、代碼測試、功能測試:測試階段完成,要發(fā)現(xiàn)隱藏深入的邏輯問題及模塊間配合問題 以測試小組的方式開展工作。通過加強(qiáng)測試小組內(nèi)部的交流,來提高人員的測試水平,保證測試質(zhì)量 對測試結(jié)果的不斷總結(jié),形成可共享的測試方法和經(jīng)驗(yàn)軟件測試過程軟件測試過程設(shè)計評審設(shè)計

7、評審 描述:設(shè)計評審主要是根據(jù)經(jīng)驗(yàn)、規(guī)范和標(biāo)準(zhǔn)指出軟件產(chǎn)品中可能存在的問題或給出可選的建議。 設(shè)計評審由開發(fā)人員組織完成,測試人員參加設(shè)計評審的要求:審查可測試性方面是否滿足要求參與審查軟件設(shè)計是否滿足要求 測試對象:軟件概要設(shè)計、詳細(xì)設(shè)計等設(shè)計文檔。軟件測試過程正規(guī)檢視正規(guī)檢視 描述:正規(guī)檢視是發(fā)現(xiàn)、排除軟件在開發(fā)周期各階段存在的問題和不足的過程,是一種靜態(tài)測試方法。共分計劃、介紹會議、會議準(zhǔn)備、檢視會議、共分計劃、介紹會議、會議準(zhǔn)備、檢視會議、第三小時會議、修改錯誤、問題跟蹤第三小時會議、修改錯誤、問題跟蹤等七個階段。 正規(guī)檢視本質(zhì)上來說是一種管理方法,為了達(dá)到盡可能地消除問題、保證工作質(zhì)

8、量、提高效率的目的,對整個操作過程進(jìn)行了嚴(yán)格細(xì)致的規(guī)定,這些規(guī)定需要嚴(yán)格遵守,任何對規(guī)定的偏離都可能對結(jié)果產(chǎn)生不良的影響。 測試對象:程序的核心代碼或其他重要代碼,也可根據(jù)軟件的實(shí)際情況對其他部分代碼進(jìn)行。軟件測試過程單元測試單元測試 描述:單元測試是對軟件設(shè)計的最小單位(一個或多個子程序,一個模塊)進(jìn)行正確性驗(yàn)證的測試,以消除程序模塊內(nèi)部在邏輯上和功能上的錯誤和缺陷。模塊接口測試:應(yīng)對所有通過測試模塊的數(shù)據(jù)流進(jìn)行測試數(shù)據(jù)結(jié)構(gòu)測試:測試局部數(shù)據(jù)結(jié)構(gòu)的正確性及全局?jǐn)?shù)據(jù)對模塊的影響路徑測試:對模塊中重要的執(zhí)行路徑進(jìn)行測試。應(yīng)設(shè)計測試用例查找由于錯誤的計算、不正確的比較或不正常的控制流而導(dǎo)致的路徑錯

9、誤錯誤處理測試:設(shè)計測試用例,測試程序?qū)Τ霈F(xiàn)錯誤情況處理的正確性邊界測試:設(shè)計測試用例,測試數(shù)據(jù)流、控制流對邊界值的處理情況測試對象:開發(fā)人員已經(jīng)編寫完成的模塊代碼審查代碼審查 描述:代碼審查是軟件測試的一個重要環(huán)節(jié),是保證軟件質(zhì)量的有效手段之一,同時也是集成測試和代碼測試重要的前期準(zhǔn)備工作。從軟件整體的角度進(jìn)行審查,系統(tǒng)級的代碼審查在測試階段,對歸版本后的軟件進(jìn)行以審查小組的方式工作 代碼審查包括計劃階段、軟硬件介紹、審查代碼、小組討論、研發(fā)交流、問題跟蹤六個階段。 測試對象:完整的軟件代碼及其文檔 操作流程:參照軟件代碼審查操作指導(dǎo)書、軟件代碼審查項(xiàng)目進(jìn)行軟件測試過程集成測試集成測試 描述

10、:在單元測試和代碼審查的基礎(chǔ)上,需要將所有模塊按照設(shè)計要求組裝成系統(tǒng)。組裝測試需要驗(yàn)證以下問題:在把各個模塊連接在一起的時候,穿越模塊接口的數(shù)據(jù)是否會丟失一個模塊的功能是否會對另一模塊的功能產(chǎn)生不利的影響各子功能組合起來,能否達(dá)到預(yù)期要求的父功能全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題軟件測試過程系統(tǒng)測試系統(tǒng)測試 通過確認(rèn)測試的軟件,作為整個計算機(jī)系統(tǒng)的一個元素,與計算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行環(huán)境中對計算機(jī)進(jìn)行一系列的組裝測試和確認(rèn)測試。 系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義作比較,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。軟件測試過程 測試與測試與 測試測試

11、測試是由一個用戶在開發(fā)環(huán)境下進(jìn)行的測試,也可以是開發(fā)機(jī)構(gòu)內(nèi)部的用戶在模擬實(shí)際操作環(huán)境下進(jìn)行的測試。 測試是由軟件的多個用戶在一個或多個實(shí)際使用環(huán)境下進(jìn)行的測試。驗(yàn)收測試驗(yàn)收測試以用戶人員為主,開發(fā)和QA人員參加的對軟件的功能和性能、可移植性、兼容性、可維護(hù)性、錯誤恢復(fù)等功能進(jìn)行的測試。確認(rèn)測試結(jié)果確認(rèn)測試結(jié)果確認(rèn)軟件功能與性能與用戶的要求一致,軟件可以接受軟件功能和性能與用戶的要求存在的差距軟件測試過程說明:M=必要(Mandatory) H=積極推薦(Highly Recommended ) S=建議使用(Suggested)軟件測試過程測試步驟測試種類開發(fā)階段的測試產(chǎn)品階段測試設(shè)計單元測試

12、模 塊 測試集 成 測試部件測試有效性測試測試測試驗(yàn)收測試系 統(tǒng) 測試設(shè)計評審MS代碼審查MHH功能測試(黑盒)HMMMMMMMM結(jié)構(gòu)測試(百盒)HMS回歸測試SHMMM可靠性測試HMMMMM強(qiáng)度測試HMH性能測試SHMMMMH恢復(fù)測試M啟動/停止測試M配置測試HMM安全性測試H可用性測試SHMM可支撐性測試HM安裝測試MMM互聯(lián)測試SMM兼容性測試MMMM容量測試HM容錯能力測試MMM文檔測試MSHM 軟件測試的基本概念 軟件測試的過程 軟件測試的管理 部分軟件測試方法 測試發(fā)現(xiàn)問題級別的確定測試發(fā)現(xiàn)問題級別的確定致命:軟件或硬件的缺陷引起系統(tǒng)死機(jī),系統(tǒng)崩潰,主要功能喪失等嚴(yán)重錯誤嚴(yán)重:軟件

13、或硬件的缺陷導(dǎo)致經(jīng)常性、大范圍出現(xiàn)的功能錯誤。一般:軟件或硬件的缺陷導(dǎo)致不常見、不擴(kuò)散的功能錯誤。提示:不影響功能,但不符合設(shè)計規(guī)范,如可以達(dá)到更好的設(shè)計余量,編程風(fēng)格問題等。測試管理相關(guān)問題很多時候要確定某一具體問題的級別是困難的。具體操作時要把握好以下幾點(diǎn):任何情況下,確實(shí)可以不改的問題定義為提示性問題;目前沒有問題,但修改或升級后會出現(xiàn)問題定為一般;在某種條件下會發(fā)作并影響功能的問題,視發(fā)作時的影響程度定為一般或嚴(yán)重;如果爆發(fā),會造成癱機(jī)、對業(yè)務(wù)產(chǎn)生嚴(yán)重影響的問題定為致命。在一般情況下,嚴(yán)格控制將問題定為致命。測試管理相關(guān)問題問題類型子類邏輯錯誤變量、常量使用條件判斷循環(huán)邊界內(nèi)存管理數(shù)組

14、越界運(yùn)算符使用宏定義及使用預(yù)處理?xiàng)l件指針使用break、continue控制流編譯問題數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)定義數(shù)據(jù)結(jié)構(gòu)使用函數(shù)、模塊接口 函數(shù)定義錯誤入口參數(shù)使用錯誤入口參數(shù)合法性檢查出口參數(shù)錯誤出口參數(shù)使用錯誤測試管理相關(guān)問題 測試發(fā)現(xiàn)問題的分類測試發(fā)現(xiàn)問題的分類功能問題功能不全功能實(shí)現(xiàn)錯誤處理過程不完善運(yùn)行效率多余代碼頻繁調(diào)用函數(shù)的優(yōu)化算法實(shí)現(xiàn)低效一致性與需求、設(shè)計文檔不符程序前后不一致穩(wěn)定性臨界資源保護(hù)函數(shù)重入中斷重入硬看門狗可維護(hù)性和標(biāo)準(zhǔn)規(guī)范可維護(hù)性和標(biāo)準(zhǔn)規(guī)范硬件初始化與操作RAM檢測和初始化接口芯片軟硬件配合問題軟硬件配合問題筆誤筆誤其它不包含在以上類型中的問題測試管理相關(guān)問題最常見的測

15、試文檔包括測試計劃,測試規(guī)范,測試用例和測試時發(fā)現(xiàn)缺陷后要寫的缺陷報告等。 測試計劃和測試文檔在測試過程的作用呢? 1、測試文檔有助于測試任務(wù)的完成。 2、使用測試文檔可以更好的協(xié)調(diào)測試任務(wù)與測試過程。 3、測試文檔為測試項(xiàng)目的組織、規(guī)劃與管理提供了一個架構(gòu)。測試文檔 測試計劃測試計劃 在制定測試計劃過程中,核心活動是: 一一、確定測試策略、確定測試策略 通常,可以采用以下幾個方法來制定測試策略: 1、確定測試的范圍 2、確定測試的方法 3、確定測試標(biāo)準(zhǔn)和質(zhì)量檢查點(diǎn) 4、確定自動化測試策略測試文檔 圖2-20 測試計劃活動測試文檔 二、確定測試系統(tǒng)(硬件和軟件)二、確定測試系統(tǒng)(硬件和軟件)

16、1、測試架構(gòu) 測試架構(gòu)指的就是測試用例的組織結(jié)構(gòu)。 2、測試工具 3、測試環(huán)境 測試環(huán)境的組成包括物理測試設(shè)施,產(chǎn)品運(yùn)行的操作系統(tǒng)、產(chǎn)品運(yùn)行的計算平臺等。 4、測試配置情況 需要排列配置的優(yōu)先級,然后決定哪些配置需要全面測試,哪些可以進(jìn)行部分測試。測試文檔 三、預(yù)估測試工作量(資源和時間進(jìn)度計劃)三、預(yù)估測試工作量(資源和時間進(jìn)度計劃) 對項(xiàng)目進(jìn)行預(yù)估有5個準(zhǔn)備步驟: 1、確定要完成的任務(wù)。 2、確定每項(xiàng)任務(wù)所需的工作量和整個測試生命周期的工作量。 3、確定完成每項(xiàng)任務(wù)以及整個測試生命周期所需的時間。 4、為測試工作建立詳細(xì)的時間進(jìn)度計劃和里程碑表。 5、評估時間進(jìn)度風(fēng)險并準(zhǔn)備緩解風(fēng)險計劃。

17、四、準(zhǔn)備并復(fù)查測試計劃文檔。 1、測試計劃格式 2、測試計劃復(fù)查測試文檔 測試報告測試報告 測試報告是測試階段最后的文檔產(chǎn)出物,優(yōu)秀的測試經(jīng)理應(yīng)該具備良好的文檔編寫能力,一份詳細(xì)的測試報告包含足夠的信息,包括產(chǎn)品質(zhì)量和測試過程的評價,測試報告基于測試中的數(shù)據(jù)采集以及對最終測試結(jié)果的分析。測試文檔 測試用例測試用例 一、為什么做測試用例 主要原因有如下幾點(diǎn):完全測試是不可能的;輸入量太大;輸出結(jié)果太多;軟件實(shí)現(xiàn)途徑太多;軟件說明書沒有客觀標(biāo)準(zhǔn)。從不同角度看,軟件缺陷的標(biāo)準(zhǔn)不同。 二、什么是測試用例 比較通常的說法是:為達(dá)到最佳的測試效果或高效的揭露隱藏的錯誤而精心設(shè)計的少量測試數(shù)據(jù),稱之為測試用

18、例。測試文檔 三、使用測試用例的好處 在開始實(shí)施測試之前設(shè)計好測試用例,可以避免盲目測試并提高測試效率。 測試用例的使用令軟件測試的實(shí)施重點(diǎn)突出、目的明確。 在軟件版本更新后只需修正少部分的測試用例便可展開測試工作,降低工作強(qiáng)度、縮短項(xiàng)目周期。 功能模塊的通用化和復(fù)用化使軟件易于開發(fā),而 用于功能模塊測試的測試用例的通用化和復(fù)用化則會使軟件測試易于開展,并隨著測試用例的不斷精化其效率也不斷攀升。測試文檔 四、測試用例在軟件測試中的作用 指導(dǎo)測試的實(shí)施 規(guī)劃測試數(shù)據(jù)的準(zhǔn)備 評估測試結(jié)果的度量基準(zhǔn) 分析缺陷的標(biāo)準(zhǔn) 編寫測試腳本的設(shè)計規(guī)格說明書 測試文檔五、測試用例文檔的編制 首先,在編寫測試用例之

19、前需要準(zhǔn)備以下幾個編寫的依據(jù):需求說明以及相關(guān)文檔;相關(guān)的設(shè)計說明(概要設(shè)計,詳細(xì)設(shè)計等);與開發(fā)組交流對需求理解的記錄(可以是開發(fā)人員的一個解釋);已經(jīng)基本成型的UI(可以有針對性地補(bǔ)充一些用例)。 其次,編寫測試用例文檔應(yīng)有文檔模板,須符合內(nèi)部的規(guī)范要求。 最后一點(diǎn)就是,測試用例文檔應(yīng)該由簡介和測試用例兩部分組成。下面從測試用例的設(shè)置、設(shè)計、評審、修改以及管理等幾方面來詳細(xì)討論測試用例文檔的編制問題:測試文檔 1、測試用例的設(shè)置 2、測試用例的設(shè)計 測試用例可以分為基本事件、備選事件和異常事件。軟件測試常用的設(shè)計測試用例的基本方法有:等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、邏輯覆

20、蓋法等。視軟件的不同性質(zhì)采用不同的方法。如何靈活運(yùn)用各種基本方法來設(shè)計完整的測試用例,并最終實(shí)現(xiàn)暴露隱藏的缺陷,則要憑測試設(shè)計人員的豐富經(jīng)驗(yàn)和精心設(shè)計。 3、測試用例的評審 4、測試用例的修改更新 5、測試用例的管理 測試管理軟件的主要功能有三個: 能將測試用例文檔的關(guān)鍵內(nèi)容; 可供測試實(shí)施時及時輸入測試情況; 最終實(shí)現(xiàn)自動生成測試結(jié)果文檔。 測試文檔 軟件測試的基本概念 軟件測試的過程 軟件測試的管理 部分軟件測試方法基于用戶需求的測試基于用戶需求的測試 黑盒測試用例就是基于用戶需求的,也是從研究客戶需求工作開始的。等價劃分等價劃分 等價類是指某個輸入域的子集合,在該子集合中,各個輸入數(shù)據(jù)對

21、于揭露程序中的錯誤都是等效的。具體測試時需要對有效等價類和無效等價類均需測試。邊界值分析邊界值分析 針對各種輸入或輸出范圍的邊界的情況設(shè)計測試用例,以發(fā)現(xiàn)錯誤的方法。測試用例設(shè)計方法狀態(tài)轉(zhuǎn)換測試狀態(tài)轉(zhuǎn)換測試 狀態(tài)轉(zhuǎn)換測試適用于軟件被設(shè)計成一個狀態(tài)機(jī)或?qū)崿F(xiàn)了一種被建模成一種狀態(tài)機(jī)的情況??梢栽O(shè)計測試用例測試狀態(tài)間轉(zhuǎn)換,測試用例創(chuàng)建引起轉(zhuǎn)換的事件??梢栽O(shè)計負(fù)面測試的測試用例用于測試狀態(tài)與事件的非法組合。 分支測試分支測試 在分支測試中,測試用例用于測試單元的控制流分支或決策點(diǎn)。通常用于實(shí)現(xiàn)決策覆蓋(Decision Coverage)的測試目標(biāo)。測試用例設(shè)計方法錯誤推測錯誤推測 根據(jù)經(jīng)驗(yàn)和直覺推測

22、程序中可能存在的錯誤,針對性地編寫檢查這些錯誤的測試用例。因果圖方法因果圖方法 因果圖方法適合于檢查程序輸入條件的各種組合情況。使用該方法首先要理解軟件所表示的對象及其關(guān)系,然后,定義一組保證“所有對象與其他對象都具有所期望的關(guān)系”的測試序列。 測試用例設(shè)計方法被測試對象的抽象描述一個軟件架構(gòu)由一些架構(gòu)元素架構(gòu)元素(組件、連接器和數(shù)據(jù)組件、連接器和數(shù)據(jù))的配置來定義,這些元素之間的關(guān)系受到約束,以獲得想要得到的一組架構(gòu)屬性。一個組件是軟件指令和內(nèi)部狀態(tài)的一個抽象單元,通過其接口提供對于數(shù)據(jù)的轉(zhuǎn)換。一個連接器是對于組件之間的通訊、協(xié)調(diào)或者合作進(jìn)行仲裁的一種抽象機(jī)制。一個數(shù)據(jù)是組件通過一個連接器接

23、收或發(fā)送的信息元素。配置文件映像被測試對象的抽象描述處理過程內(nèi)部數(shù)據(jù)配置文件組件接口數(shù)據(jù)差錯數(shù)據(jù)加擾算法測試用例的組織 功能測試 性能指標(biāo)測試 接口測試 容錯能力測試(接口/運(yùn)行上下文) 可靠性試驗(yàn)高低溫試驗(yàn)、濕熱試驗(yàn)、老化試驗(yàn)、靜電沖擊試驗(yàn)(ESD)1.常見測試方法1.1.覆蓋率測試1.2.流程跟蹤方法1.3.消息環(huán)回測試1.4.誤碼插入方法1.5.極限測試測試設(shè)計方法邏輯覆蓋邏輯覆蓋語句覆蓋:使得每一可執(zhí)行語句至少執(zhí)行一次。判斷覆蓋:使得每一個判斷的取真分支和取假分支至少經(jīng)歷一次。又稱為分支覆蓋。條件覆蓋:使得每個判斷的每個條件的可能取值至少執(zhí)行一次。判斷-條件覆蓋:使得每個條件的所有可能

24、的取值至少執(zhí)行一次,使得每個判斷的所有可能判斷結(jié)果至少執(zhí)行一次。既要求所有各個判斷的所有可能的條件組合至少執(zhí)行一次。路徑覆蓋:設(shè)計測試用例,運(yùn)行被測程序,使程序中的所有路徑都走了一遍。這是級別最高的覆蓋率測試,由于程序中的路徑數(shù)是一個非常龐大的數(shù)字,一般很難實(shí)現(xiàn)。條件-組合覆蓋:使得判斷中每個取值組合至少執(zhí)行一次。覆蓋率測試1、選擇需要測試的模塊(一般選擇比較重要的模塊或函數(shù))??紤]到一次全部打點(diǎn)比較困難,產(chǎn)生的數(shù)據(jù)也比較多,分析困難,同時也缺乏針對性,因此,需要根據(jù)本次測試的目的(測什么、希望得到什么數(shù)據(jù)、結(jié)果等)來選擇代碼2、構(gòu)造測試用例:根據(jù)測試目的構(gòu)造具有針對性的測試用例3、打點(diǎn)??稍?/p>

25、條件分支、變量變化、函數(shù)入口/出口等地方加打印語句或記錄語句,以便產(chǎn)生所需要的分析數(shù)據(jù)4、運(yùn)行測試用例,將修改完的代碼,編譯、連接后,在目標(biāo)機(jī)上運(yùn)行測試用例,產(chǎn)生數(shù)據(jù)或從監(jiān)控終端上監(jiān)視運(yùn)行結(jié)果。5、 數(shù)據(jù)收集及分析。分析數(shù)據(jù)主要是對實(shí)際產(chǎn)生的數(shù)據(jù)與理論上的數(shù)據(jù)相比較的過程,對不一致的地方記錄。 如果實(shí)際結(jié)果與理論結(jié)果不一致,則需要在對代碼分析的基礎(chǔ)上,再次從步驟2開始循環(huán)本測試過程覆蓋率測試覆蓋率測試被測代碼審查測試對象測試對象構(gòu)造測試用例運(yùn)行測試用例打點(diǎn)數(shù)據(jù)分析結(jié)束給出測試結(jié)果選擇審查編譯運(yùn)行分析覆蓋率測試步驟分解圖消息環(huán)回示意圖如下:環(huán)回測試對 端本 端消 息 產(chǎn) 生 器 消 息 分 析

26、器圖 1 消 息 自 環(huán) 示 意 圖層 2層 2層 1層 1本 端 層 2自 環(huán)本 端 層 1自 環(huán)對 端 層 1自 環(huán)對 端 層 2自 環(huán)通信軟件中物理層和鏈路層質(zhì)量的好壞,直接影響了整個系統(tǒng)的質(zhì)量。進(jìn)行深入、細(xì)致的物理層和鏈路層測試是軟件測試中必不可少的。在實(shí)際測試過程中,消息自環(huán)測試不失為一種有效方法。消息自環(huán)可以通過硬件自環(huán)和軟件自環(huán)來實(shí)現(xiàn)。硬件自環(huán)通過線路換回或者自環(huán)設(shè)置實(shí)現(xiàn),軟件自環(huán)可以修改或設(shè)置代碼實(shí)現(xiàn)。按分層理論看,自環(huán)可以有以下幾種自環(huán):1、本端層2自環(huán);2、本端層1自環(huán);3、對端層1自環(huán);4、對端層2自環(huán),等等。環(huán)回測試誤碼插入測試是在被測協(xié)議層上對與被測協(xié)議相關(guān)的收發(fā)消息

27、和收發(fā)過程施加擾動,模擬消息在底層和物理鏈路上傳輸時的各種可能情形,從而驗(yàn)證被測協(xié)議實(shí)現(xiàn)代碼實(shí)際運(yùn)行中的各個子流程的一種測試方法。測試時要對鏈路上流動的消息及消息的處理過程進(jìn)行跟蹤,且需要對每一次的擾動過程產(chǎn)生的測試數(shù)據(jù)進(jìn)行分析。誤碼插入測試(1)根據(jù)測試需求,設(shè)計消息擾動程序。在被測協(xié)議層對所有與本協(xié)議有關(guān)的消息在接收后和發(fā)送前,調(diào)用消息擾動函數(shù)進(jìn)行處理。同時在消息處理模塊中,對所有通信雙方交互的消息加以記錄。(2)無擾測試。運(yùn)行程序,對消息不施加任何擾動。僅對消息收發(fā)處理過程加以記錄,測試協(xié)議的正常工作情況。(3)錯幀測試。運(yùn)行程序,對消息施加錯幀擾動,擾動方式由擾動函數(shù)配置。對消息收發(fā)處

28、理過程加以記錄,測試消息幀出錯時程序的處理過程。(4)丟幀測試。 運(yùn)行程序,對消息施加錯幀擾動,擾動方式由擾動函數(shù)配置。對消息收發(fā)處理過程加以記錄,測試消息幀丟失時程序的處理過程。 誤碼插入測試(6)自愈測試。運(yùn)行程序,對消息施加異常擾動,擾動方式由擾動函數(shù)配置,使程序進(jìn)入異常分支。對消息收發(fā)處理過程加以記錄,測試異常時狀態(tài)能否自愈和自愈過程的合理性。(7)超時計數(shù)值測試。 運(yùn)行程序,對消息施加超時擾動,模擬鏈路阻塞,擾動方式由擾動函數(shù)配置,使程序進(jìn)入超時重發(fā)子流程。對消息收發(fā)處理過程加以記錄,測試超時重發(fā)行為和計數(shù)值對鏈路時延的合理性。(8)重發(fā)次數(shù)值測試。 運(yùn)行程序,對消息施加超時擾動,擾

29、動方式由擾動函數(shù)配置,使程序進(jìn)入超時重發(fā)子流程。 對消息收發(fā)處理過程加以記錄,測試鏈路阻塞時,重發(fā)次數(shù)常量的合理性和完全阻塞時程序的處理過程。誤碼插入測試極限測試使被測系統(tǒng)處于一種大流量、滿負(fù)荷、滿配置的狀態(tài),這樣可以暴露在一般情況下不易出現(xiàn)的一些問題。業(yè)務(wù)流量極限測試。在某些用軟件實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)功能的單板中,大流量的數(shù)據(jù)灌入或輸出不但可以測試軟件的轉(zhuǎn)發(fā)處理能力,而且可以測試出數(shù)據(jù)通道驅(qū)動程序和上層軟件是否有緩沖區(qū)丟失、內(nèi)存泄漏、越界等情況。容量極限測試。這種方法一般通過修改軟件,向外發(fā)送超長的數(shù)據(jù)報,或從數(shù)據(jù)通道接收超長、超短的數(shù)據(jù)報,測試軟件對不同長度數(shù)據(jù)的處理情況。極限測試極限測試資源極限

30、測試。該測試方法是通過修改軟件,預(yù)先占用軟件的某些資源,然后進(jìn)行正常的測試,測試資源減少對軟件運(yùn)行的影響;或者增加軟件的某些資源,再進(jìn)行大流量等測試,測試增加資源對軟件處理能力提高和優(yōu)化的影響。被測試的資源有軟件中的數(shù)據(jù)發(fā)送或接收隊列、內(nèi)存等。時間極限:在測試過程中,不要頻繁對被測單板重新啟動或上下電,在相對長的時間內(nèi)加上業(yè)務(wù)讓軟件跑,并記錄發(fā)生的情況。這樣可以測試某些內(nèi)存泄漏、數(shù)組越界等情況。異常流程的觸發(fā)測試異常流程的觸發(fā)測試在程序的正常運(yùn)行過程中,異常流程的條件一般很難觸發(fā),所以處理異常流程的條件分支一般不執(zhí)行。為了測試異常流程,根據(jù)具體程序的條件判斷,通過模擬異常條件,使得程序按異常流

31、程的條件分支運(yùn)行。測試步驟分析程序的異常流程的條件分支,找出程序運(yùn)行異常流程的觸發(fā)條件。這種觸發(fā)條件主要是指宏觀條件,不修改程序能在外界進(jìn)行模擬。在系統(tǒng)中模擬異常流程的觸發(fā)條件,促使程序按異常流程的分支進(jìn)行運(yùn)行。這種模擬的方法例如插拔網(wǎng)線、主備倒換、局部改變的硬件連接、操作過程異常、頻繁上下電等操作。在系統(tǒng)中測試程序運(yùn)行異常流程的結(jié)果。如果程序運(yùn)行不正常,用仿真和調(diào)試工具跟蹤和分析異常流程的程序段,用設(shè)斷點(diǎn)、單步執(zhí)行等方法逐步定位程序運(yùn)行異常的具體位置。對懷疑的程序段進(jìn)行反復(fù)修改,編譯后重復(fù)以上的測試。異常流程測試異常流程的測試用例設(shè)計概述有時軟件規(guī)模較大,異常流程的宏觀條件不好模擬,可以將程

32、序劃分為幾個功能塊,通過對每個功能塊設(shè)計測試用例,選擇合適的條件參數(shù),使得程序執(zhí)行異常流程的條件分支。測試方法與步驟根據(jù)軟件的具體情況將軟件劃分為幾個功能塊,對每個功能塊分別進(jìn)行測試。這種測試方法主要是運(yùn)用軟件調(diào)試過程的所有手段,對程序分塊測試。異常流程測試分析程序的每個功能塊的判定條件,找出異常流程的條件分支和運(yùn)行異常流程的觸發(fā)條件。這種觸發(fā)條件是指微觀條件,必須深入理解程序的流程和邏輯結(jié)構(gòu)框架,這屬于白盒測試。在每個異常流程的條件分支中,設(shè)計測試用例,使得程序滿足異常流程的判斷條件,按異常流程運(yùn)行。測試用例設(shè)計中,要綜合考慮邏輯覆蓋測試方法中的語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、

33、條件組合覆蓋、路徑覆蓋中一種或幾種測試方法。測試用例的設(shè)計一般都是針對程序塊進(jìn)行的,根據(jù)異常流程的具體情況揉和邏輯覆蓋測試的多種方法。用仿真和調(diào)試工具跟蹤和分析程序運(yùn)行的結(jié)果,具體測試異常流程的條件分支。 如果程序運(yùn)行不正常,用設(shè)斷點(diǎn)、單步執(zhí)行等方法逐步定位程序運(yùn)行異常的具體位置。對懷疑的程序段進(jìn)行反復(fù)修改和調(diào)試,編譯后重復(fù)以上的測試。異常流程測試異常流程的強(qiáng)制執(zhí)行異常流程的強(qiáng)制執(zhí)行概述有些異常流程在測試中難以模擬,測試用例也不好設(shè)計,此時可以考慮修改源程序,在條件判斷之前加入測試代碼;或者修改判斷條件,強(qiáng)制程序執(zhí)行到異常流程的分支。分析程序的每個判定條件,找出異常流程的條件分支。為了測試異常

34、流程,根據(jù)要求修改程序:異常流程測試測試方法與步驟1.修改程序,改變判定條件的初始值,使得程序滿足異常條件的判斷,按異常流程運(yùn)行。2.修改程序,根據(jù)要求在條件判斷之前加入跳轉(zhuǎn)程序,強(qiáng)迫程序跳轉(zhuǎn)到異常流程的分支運(yùn)行。3.適當(dāng)修改判斷條件,使得程序滿足異常流程的條件分支,按異常流程運(yùn)行。4.修改程序,加入測試代碼,跟蹤程序的運(yùn)行。測試時根據(jù)具體情況采用修改初始值、強(qiáng)制跳轉(zhuǎn)、修改判定條件中的一種或幾種方法進(jìn)行測試。用仿真和調(diào)試工具跟蹤和分析異常流程條件分支,測試程序運(yùn)行的結(jié)果。 如果程序運(yùn)行不正常,用設(shè)斷點(diǎn)、單步執(zhí)行等方法逐步定位程序運(yùn)行異常的具體位置。對懷疑的程序段進(jìn)行反復(fù)修改和調(diào)試,編譯后重復(fù)以上的測試。異常流程測試程序出現(xiàn)異常的原因程序出現(xiàn)異常的原因一是程序本身設(shè)計疏漏,在特定條件下運(yùn)行時出現(xiàn)異常。二是當(dāng)外界出現(xiàn)各種干擾因素時,程序不能正常實(shí)現(xiàn)其功能。結(jié)果:或是程序本身發(fā)生了異常跳轉(zhuǎn),或是程序所用的數(shù)據(jù)遭到了破壞,由此造成程序喪失部分或全部正

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論