




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1.1什么是軟件1、軟件的定義與硬件相互依存的另一部分,它是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。2、軟件的分類(lèi)按照功能分:系統(tǒng)軟件和應(yīng)用軟件按照技術(shù)架構(gòu)分:?jiǎn)螜C(jī)版軟件、C/S結(jié)構(gòu)軟件、
B/S結(jié)構(gòu)軟件按照用戶(hù)分:產(chǎn)品軟件和項(xiàng)目軟件按照開(kāi)發(fā)的規(guī)模分:大、中、小11.3為什么要進(jìn)行軟件測(cè)試軟件總存在缺陷。只有通過(guò)測(cè)試,才可以發(fā)現(xiàn)軟件缺陷。也只有發(fā)現(xiàn)了缺陷,才可以將軟件缺陷從軟件產(chǎn)品或軟件系統(tǒng)中清理出去。軟件中存在的缺陷給我們帶來(lái)的損失是巨大的,這也說(shuō)明了軟件測(cè)試的必要性和重要性測(cè)試是所有工程學(xué)科的基本組成單元,自然也是軟件開(kāi)發(fā)的重要組成部分。測(cè)試人員水平越高,找到軟件問(wèn)題的時(shí)間就越早,軟件就越容易更正,產(chǎn)品發(fā)布之后越穩(wěn)定,公司賺的錢(qián)也越多,微軟就是一個(gè)典型的例子21.4什么是軟件測(cè)試1、軟件測(cè)試的定義軟件測(cè)試就是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼實(shí)現(xiàn)的最終審查,它是軟件質(zhì)量保證的關(guān)鍵步驟。通常對(duì)軟件測(cè)試的定義有兩種描述:定義1:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。定義2:在IEEE提出的軟件工程標(biāo)準(zhǔn)術(shù)語(yǔ)中,軟件測(cè)試被定義為:“使用人工和自動(dòng)手段來(lái)運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿(mǎn)足規(guī)定的需求或弄清楚預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。”31.4什么是軟件測(cè)試1、軟件測(cè)試的定義軟件測(cè)試的正確定義
軟件測(cè)試是由“驗(yàn)證(Verification)”和“有效性確認(rèn)(Validation)”活動(dòng)構(gòu)成的整體。驗(yàn)證”是檢驗(yàn)軟件是否已正確地實(shí)現(xiàn)了產(chǎn)品規(guī)格書(shū)所定義的系統(tǒng)功能和特性“有效性確認(rèn)”是確認(rèn)所開(kāi)發(fā)的軟件是否滿(mǎn)足用戶(hù)真正需求的活動(dòng)。41.4什么是軟件測(cè)試2、軟件測(cè)試的對(duì)象軟件測(cè)試不等于程序測(cè)試。軟件測(cè)試貫串于軟件定義和開(kāi)發(fā)的整個(gè)過(guò)程。軟件開(kāi)發(fā)過(guò)程中所產(chǎn)生的需求規(guī)格說(shuō)明、概要設(shè)計(jì)規(guī)格說(shuō)明、詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明以及源程序都是軟件測(cè)試的對(duì)象。53、軟件測(cè)試的原則盡早地和及時(shí)地測(cè)試;測(cè)試用例應(yīng)當(dāng)由測(cè)試數(shù)據(jù)和與之對(duì)應(yīng)的預(yù)期結(jié)果這兩部分組成;在程序提交測(cè)試后,應(yīng)當(dāng)由專(zhuān)門(mén)的測(cè)試人員進(jìn)行測(cè)試;測(cè)試用例應(yīng)包括合理的輸入條件和不合理的輸入條件;嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性;充分注意測(cè)試當(dāng)中的群體現(xiàn)象;應(yīng)對(duì)每一個(gè)測(cè)試結(jié)果做全面的檢查;保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)工作提供充分的資料。6第二章軟件測(cè)試的基本概念主要內(nèi)容:2.1軟件缺陷2.2驗(yàn)證和確認(rèn)2.3軟件測(cè)試分類(lèi)2.4軟件測(cè)試階段2.5軟件測(cè)試工作范疇7缺陷是質(zhì)量的對(duì)立面
要了解什么是缺陷(defect),就必須清楚“質(zhì)量(Quality)”概念,因?yàn)槿毕菔窍鄬?duì)質(zhì)量而存在的,違背了質(zhì)量、違背了客戶(hù)的意愿,不能滿(mǎn)足客戶(hù)的要求,就會(huì)引起缺陷或產(chǎn)生缺陷82.1軟件缺陷一、軟件質(zhì)量的內(nèi)涵1、質(zhì)量
質(zhì)量是“產(chǎn)品或服務(wù)所滿(mǎn)足明示或暗示需求能力的固有特性和特征的集合”。92.1軟件缺陷一、軟件質(zhì)量的內(nèi)涵2、軟件質(zhì)量
軟件質(zhì)量是軟件產(chǎn)品滿(mǎn)足規(guī)定的和隱含的與需求能力有關(guān)的全部特征和特性。包括:(1)軟件產(chǎn)品質(zhì)量滿(mǎn)足用戶(hù)要求的程度;(2)軟件各種屬性的組合程度;(3)用戶(hù)對(duì)軟件產(chǎn)品的綜合反映程度;(4)軟件在使用過(guò)程中滿(mǎn)足用戶(hù)要求的程度。102.1軟件缺陷一、軟件質(zhì)量的內(nèi)涵3、軟件質(zhì)量模型
McCall軟件質(zhì)量模型112.1軟件缺陷一、軟件質(zhì)量的內(nèi)涵3、軟件質(zhì)量模型
ISO9126軟件質(zhì)量三層模型122.1軟件缺陷一、軟件質(zhì)量的內(nèi)涵4、軟件質(zhì)量特性
功能性、易用性、可靠性、性能、容量可測(cè)量性、可維護(hù)性、可移植性、可擴(kuò)展性132.1軟件缺陷一、軟件質(zhì)量的內(nèi)涵5、軟件質(zhì)量的分類(lèi)(1)軟件質(zhì)量的功能需求軟件質(zhì)量的功能需求一般會(huì)在需求規(guī)格說(shuō)明書(shū)等文檔中給相應(yīng)的描述。(2)軟件質(zhì)量的非功能需求軟件質(zhì)量的非功能需求一般用下列特性描述:
性能、有效性、可靠性、可維護(hù)性、兼容性、可擴(kuò)展性、可移植性142.1軟件缺陷一、軟件質(zhì)量的內(nèi)涵5、軟件質(zhì)量的分類(lèi)(3)軟件質(zhì)量的用戶(hù)需求能正常使用全部所需的功能,符合需求規(guī)格;功能強(qiáng)大,而且界面美觀,易用;內(nèi)容健康、有益于生活和工作。用戶(hù)數(shù)據(jù)的安全、受保護(hù)和兼容;能及時(shí)得到新的產(chǎn)品或更完美的軟件服務(wù);軟件可靠性很高,使用軟件服務(wù)沒(méi)有時(shí)間障礙152.1軟件缺陷一、軟件質(zhì)量的內(nèi)涵5、軟件質(zhì)量的分類(lèi)(4)軟件質(zhì)量的企業(yè)需求開(kāi)發(fā)成本可維護(hù)性可擴(kuò)展性可移植性兼容性162.1軟件缺陷二、軟件缺陷1、軟件缺陷的定義
軟件缺陷(Bug):任何程序、系統(tǒng)中的問(wèn)題,和產(chǎn)品設(shè)計(jì)書(shū)的不一致性,不能滿(mǎn)足用戶(hù)的需求。IEEE(1983)729軟件缺陷一個(gè)標(biāo)準(zhǔn)的定義:從產(chǎn)品內(nèi)部看,軟件缺陷是軟件產(chǎn)品開(kāi)發(fā)或維護(hù)過(guò)程中所存在的錯(cuò)誤、毛病等各種問(wèn)題;從外部看,軟件缺陷是系統(tǒng)所需要實(shí)現(xiàn)的某種功能的失效或違背。172.1軟件缺陷二、軟件缺陷2、軟件缺陷的表現(xiàn)功能、特性沒(méi)有實(shí)現(xiàn)或部分實(shí)現(xiàn)設(shè)計(jì)不合理,存在缺陷實(shí)際結(jié)果和預(yù)期結(jié)果不一致運(yùn)行出錯(cuò),包括運(yùn)行中斷、系統(tǒng)崩潰、界面混亂數(shù)據(jù)結(jié)果不正確、精度不夠用戶(hù)不能接受的其他問(wèn)題,如存取時(shí)間過(guò)長(zhǎng)、界面不美觀182.1軟件缺陷二、軟件缺陷3、軟件缺陷產(chǎn)生的原因
《微軟開(kāi)發(fā)者成功之路(之一)》概括了以下7項(xiàng)主要原因:(1)項(xiàng)目期限的壓力;(2)產(chǎn)品的復(fù)雜度;(3)溝通不良;(4)開(kāi)發(fā)人員疲勞,壓力過(guò)大或受到干擾;(5)缺乏足夠的知識(shí)、技能和經(jīng)驗(yàn);(6)不了解客戶(hù)的需求;(7)缺乏動(dòng)力。192.1軟件缺陷二、軟件缺陷4、軟件缺陷的構(gòu)成其他6%軟件產(chǎn)品說(shuō)明書(shū)(需求)54%編寫(xiě)代碼15%設(shè)計(jì)25%圖2-4軟件缺陷構(gòu)成示意圖202.1軟件缺陷二、軟件缺陷5、修復(fù)軟件缺陷的代價(jià)020406080100編制說(shuō)明書(shū)設(shè)計(jì)階段編寫(xiě)代碼測(cè)試發(fā)布軟件缺陷隨時(shí)間的推移帶來(lái)的成本越來(lái)越大212.2驗(yàn)證和確認(rèn)一、驗(yàn)證和確認(rèn)Verification:Arewebuildingtheproductright?是否正確地構(gòu)造了軟件?即是否正確地做事,驗(yàn)證開(kāi)發(fā)過(guò)程是否遵守已定義好的內(nèi)容。驗(yàn)證產(chǎn)品滿(mǎn)足規(guī)格設(shè)計(jì)說(shuō)明書(shū)的一致性Validation:Arewebuildingtherightproduct?是否構(gòu)造了正是用戶(hù)所需要的軟件?即是否正在做正確的事。驗(yàn)證產(chǎn)品所實(shí)現(xiàn)的功能是否滿(mǎn)足用戶(hù)的需求222.2驗(yàn)證和確認(rèn)二、評(píng)審
通過(guò)軟件評(píng)審,可以更早地發(fā)現(xiàn)需求工程、軟件設(shè)計(jì)等各個(gè)方面的問(wèn)題,大大減少大量的后期返工,將質(zhì)量成本從昂貴的后期返工轉(zhuǎn)化為前期的缺陷發(fā)現(xiàn)。1、評(píng)審
評(píng)審是對(duì)軟件元素或者項(xiàng)目狀態(tài)的一種評(píng)估手段,以確定其是否與計(jì)劃的結(jié)果保持一致,并使其得到改進(jìn)。檢驗(yàn)工作產(chǎn)品是否正確地滿(mǎn)足了以往工作產(chǎn)品中建立的規(guī)范。232.2驗(yàn)證和確認(rèn)二、評(píng)審2、評(píng)審分類(lèi)管理評(píng)審技術(shù)評(píng)審文檔評(píng)審流程評(píng)審242.2驗(yàn)證和確認(rèn)三、質(zhì)量保證和測(cè)試的關(guān)系1、軟件質(zhì)量保證:是通過(guò)對(duì)軟件產(chǎn)品有計(jì)劃的進(jìn)行評(píng)審和審計(jì)來(lái)驗(yàn)證軟件是否合乎標(biāo)準(zhǔn)的系統(tǒng)工程。2、SQA的活動(dòng):提出軟件質(zhì)量要求;確定開(kāi)發(fā)方案;階段評(píng)審;測(cè)試管理文檔化管理驗(yàn)證產(chǎn)品與相應(yīng)文檔和標(biāo)準(zhǔn)的一致性建立測(cè)量機(jī)制記錄并生成報(bào)告252.2驗(yàn)證和確認(rèn)三、質(zhì)量保證和測(cè)試的關(guān)系3、SQA與軟件測(cè)試的關(guān)系共同點(diǎn):二者貫穿整個(gè)軟件開(kāi)發(fā)生命周期的流程。區(qū)別:SQA是管理工作、審查對(duì)象是流程、強(qiáng)調(diào)以預(yù)防為主測(cè)試是技術(shù)工作、測(cè)試對(duì)象是產(chǎn)品、主要是以事后檢查關(guān)系:SQA指導(dǎo)測(cè)試、監(jiān)控測(cè)試測(cè)試為SQA提供依據(jù)262.3軟件測(cè)試的分類(lèi)方法目標(biāo)/特性單元測(cè)試系統(tǒng)測(cè)試驗(yàn)收測(cè)試性能測(cè)試強(qiáng)壯性測(cè)試功能測(cè)試白盒測(cè)試黑盒測(cè)試測(cè)試階段或?qū)哟芜m用性測(cè)試可靠性測(cè)試集成測(cè)試安全性測(cè)試272.3軟件測(cè)試的分類(lèi)按測(cè)試的對(duì)象或范圍分類(lèi),如單元測(cè)試、文檔測(cè)試、系統(tǒng)測(cè)試等)按測(cè)試目的分類(lèi),如功能測(cè)試、回歸測(cè)試、性能測(cè)試、可靠性測(cè)試、安全性測(cè)試和兼容性測(cè)試等根據(jù)測(cè)試過(guò)程中被測(cè)軟件是否被執(zhí)行,分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試根據(jù)是否針對(duì)系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法來(lái)完成測(cè)試,可分為白盒測(cè)試和黑盒測(cè)試282.4軟件測(cè)試階段圖2-8軟件測(cè)試階段示意圖29需求和設(shè)計(jì)審查
測(cè)試人員參與產(chǎn)品需求分析和系統(tǒng)設(shè)計(jì),認(rèn)真閱讀有關(guān)文檔,真正理解客戶(hù)的需求和技術(shù)上的設(shè)計(jì),檢查需求說(shuō)明書(shū)對(duì)產(chǎn)品描述的準(zhǔn)確性、一致性等,檢查系統(tǒng)設(shè)計(jì)的合理性和可測(cè)試性等30單元測(cè)試
單元測(cè)試的對(duì)象是程序系統(tǒng)中的最小單元---模塊或組件上,在編碼階段進(jìn)行,針對(duì)每個(gè)模塊進(jìn)行測(cè)試,主要通過(guò)白盒測(cè)試方法,從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例,檢查程序模塊或組件的已實(shí)現(xiàn)的功能與定義的功能是否一致、以及編碼中是否存在錯(cuò)誤。多個(gè)模塊可以平行地、對(duì)立地測(cè)試,通常要編寫(xiě)驅(qū)動(dòng)模塊和樁模塊單元測(cè)試一般由編程人員和測(cè)試人員共同完成,而以開(kāi)發(fā)人員為主單元測(cè)試包括代碼評(píng)審,代碼評(píng)審可以發(fā)現(xiàn)程序50%~70%代碼的缺陷。31集成測(cè)試
集成測(cè)試,也稱(chēng)組裝測(cè)試、聯(lián)合測(cè)試、子系統(tǒng)測(cè)試,在單元測(cè)試的基礎(chǔ)上,將模塊按照設(shè)計(jì)要求組裝起來(lái)同時(shí)進(jìn)行測(cè)試,主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的模塊之間問(wèn)題兩種集成方式:一次性集成方式和增殖式集成方式。32功能測(cè)試
功能測(cè)試一般須在完成集成測(cè)試后進(jìn)行,而且是針對(duì)應(yīng)用系統(tǒng)進(jìn)行測(cè)試。功能測(cè)試是基于產(chǎn)品功能說(shuō)明書(shū),是在已知產(chǎn)品所應(yīng)具有的功能,從用戶(hù)角度來(lái)進(jìn)行功能驗(yàn)證,以確認(rèn)每個(gè)功能是否都能正常使用33系統(tǒng)測(cè)試
系統(tǒng)測(cè)試是將軟件放在整個(gè)計(jì)算機(jī)環(huán)境下,包括軟硬件平臺(tái)、某些支持軟件、數(shù)據(jù)和人員等,在實(shí)際運(yùn)行環(huán)境下進(jìn)行一系列的測(cè)試,包括恢復(fù)測(cè)試、安全測(cè)試、強(qiáng)度測(cè)試和性能測(cè)試等34驗(yàn)收測(cè)試&安裝測(cè)試驗(yàn)收測(cè)試的目的是向未來(lái)的用戶(hù)表明系統(tǒng)能夠像預(yù)定要求那樣工作,驗(yàn)證軟件的功能和性能如同用戶(hù)所合理期待的那樣安裝測(cè)試是指按照軟件產(chǎn)品安裝手冊(cè)或相應(yīng)的文檔,在一個(gè)和用戶(hù)使用該產(chǎn)品完全一樣的環(huán)境中或相當(dāng)于用戶(hù)使用環(huán)境中,進(jìn)行一步一步的安裝操作性的測(cè)試352.5軟件測(cè)試的工作范疇軟件測(cè)試工作的組織與管理:制定測(cè)試策略、測(cè)試計(jì)劃,確認(rèn)所采用的測(cè)試方法與規(guī)范,控制測(cè)試進(jìn)度,管理測(cè)試資源。測(cè)試工作的實(shí)施:編制符合標(biāo)準(zhǔn)的測(cè)試文檔,搭建測(cè)試環(huán)境,開(kāi)發(fā)測(cè)試腳本、與開(kāi)發(fā)組織協(xié)作實(shí)現(xiàn)各階段的測(cè)試活動(dòng)36測(cè)試工作流程373.1白盒測(cè)試方法白盒測(cè)試,也稱(chēng)結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,是已知程序的內(nèi)部工作過(guò)程,清楚最終生成軟件產(chǎn)品的計(jì)算機(jī)程序結(jié)構(gòu)及其語(yǔ)句,按照程序的內(nèi)部結(jié)構(gòu)測(cè)試程序,測(cè)試程序內(nèi)部的變量狀態(tài)、邏輯結(jié)構(gòu)、運(yùn)行路徑等,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作,檢查程序內(nèi)部動(dòng)作或運(yùn)行是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否按規(guī)定正常運(yùn)行。383.1白盒測(cè)試方法白盒測(cè)試主要用于單元測(cè)試白盒測(cè)試的基本原則有:對(duì)程序模塊中所有獨(dú)立路徑至少測(cè)試一次;對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都至少測(cè)試一次;對(duì)程序進(jìn)行邊界檢查;檢驗(yàn)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。393.1白盒測(cè)試方法
目前最常用的方法有:邏輯覆蓋法:包括語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋。基本路徑測(cè)試法40一、邏輯覆蓋法例:實(shí)現(xiàn)一個(gè)簡(jiǎn)單的數(shù)學(xué)運(yùn)算
Dima,bAsIntegerDimcAsDoubleIf(a>0Andb>0)Thenc=c/aEndifIf(a>1orc>1)Thenc=c+1Endifc=b+c41一、邏輯覆蓋法1、語(yǔ)句覆蓋
基本思想:設(shè)計(jì)足夠多的測(cè)試用例,使得程序中的每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次。路徑:P1(124)P2(125)P3(134)P4(135)
測(cè)試用例:a=2,b=1,c=642一、邏輯覆蓋法1、語(yǔ)句覆蓋【優(yōu)點(diǎn)】
:可以很直觀地從源代碼得到測(cè)試用例,無(wú)須細(xì)分每條判定表達(dá)式。【缺點(diǎn)】
:語(yǔ)句覆蓋是最弱的邏輯覆蓋。不能發(fā)現(xiàn)其中的邏輯錯(cuò)誤。43一、邏輯覆蓋法2、判定覆蓋
基本思想:設(shè)計(jì)足夠多的測(cè)試用例,使得程序中的每個(gè)判定至少都獲得一次“真”值和“假”值,也就是使程序中的每個(gè)取“真”分支和取“假”分支至少均經(jīng)歷一次,也稱(chēng)為“分支覆蓋”。44一、邏輯覆蓋法2、判定覆蓋
測(cè)試用例:a=2,b=1,c=6a=-2,b=-1,c=-3
測(cè)試用例:a=1,b=1,c=0a=2,b=-1,c=645一、邏輯覆蓋法2、判定覆蓋【優(yōu)點(diǎn)】:判定覆蓋具有比語(yǔ)句覆蓋更強(qiáng)的測(cè)試能力。同樣判定覆蓋也具有和語(yǔ)句覆蓋一樣的簡(jiǎn)單性,無(wú)須細(xì)分每個(gè)判定就可以得到測(cè)試用例。【缺點(diǎn)】:往往大部分的判定語(yǔ)句是由多個(gè)邏輯條件組合而成,若僅僅判斷其整個(gè)最終結(jié)果,而忽略每個(gè)條件的取值情況,必然會(huì)遺漏部分測(cè)試路徑。判定覆蓋仍是弱的邏輯覆蓋。46一、邏輯覆蓋法3、條件覆蓋
基本思想:設(shè)計(jì)足夠多的測(cè)試用例,使得程序中每個(gè)判定包含的每個(gè)條件的可能取值(真/假)都至少滿(mǎn)足一次。47一、邏輯覆蓋法3、條件覆蓋
判斷M表達(dá)式:
條件a>0取真記為T(mén)1
假F1
條件b>0取真記為T(mén)2
假F2判斷N表達(dá)式:
條件a>1取真記為T(mén)3
假F3
條件c>1取真記為T(mén)4
假F448一、邏輯覆蓋法3、條件覆蓋
測(cè)試用例覆蓋條件具體取值條件a=2b=-1c=-2T1,F2,T3,F4a>0b<=0a>1c<=1a=-1b=2c=3F1,T2,F3,T4a<=0b>0a<=1c>1它覆蓋了判定M的N分支和判斷N的Y分支。49一、邏輯覆蓋法3、條件覆蓋【優(yōu)點(diǎn)】:增加了對(duì)條件判定情況的測(cè)試。【缺點(diǎn)】:條件覆蓋不一定包含判定覆蓋。例如,我們剛才設(shè)計(jì)的用例就沒(méi)有覆蓋判斷M的Y分支和判斷N的N分支。條件覆蓋只能保證每個(gè)條件至少有一次為真,而不考慮所有的判定結(jié)果。
50一、邏輯覆蓋法4、判定—條件覆蓋
基本思想:設(shè)計(jì)足夠多的測(cè)試用例,使得程序中每個(gè)判定包含的每個(gè)條件的所有情況(真/假)至少出現(xiàn)一次,并且每個(gè)判定本身的判定結(jié)果(真/假)也至少出現(xiàn)一次。51一、邏輯覆蓋法4、判定—條件覆蓋
按照判定-條件覆蓋的要求,我們?cè)O(shè)計(jì)的測(cè)試用例要滿(mǎn)足如下條件:(1)所有條件可能至少執(zhí)行一次取值;(2)所有判斷的可能結(jié)果至少執(zhí)行一次。判斷M判斷N52一、邏輯覆蓋法4、判定—條件覆蓋判斷M判斷N測(cè)試用例覆蓋條件覆蓋判斷a=2b=1c=6T1,T2,T3,T4M的Y分支N的Y分支a=-1b=-2c=-3F1,F2,F3,F4M的N分支N的N分支53一、邏輯覆蓋法4、判定—條件覆蓋【優(yōu)點(diǎn)】
:能同時(shí)滿(mǎn)足判定、條件兩種覆蓋標(biāo)準(zhǔn)。【缺點(diǎn)】
:判定/條件覆蓋準(zhǔn)則的缺點(diǎn)是未考慮條件的組合情況。54一、邏輯覆蓋法5、條件組合覆蓋
基本思想:通過(guò)執(zhí)行足夠的測(cè)試用例,使得程序中每個(gè)判定的所有可能的條件取值組合都至少出現(xiàn)一次。55一、邏輯覆蓋法5、條件組合覆蓋設(shè)計(jì)組合條件如表所示:編號(hào)覆蓋條件取值判定條件取值具體條件取值1T1,T2M取Ya>0,b>02T1,F2M取Na>0,b<=03F1,T2M取Na<=0,b>04F1,F2M取Na<=0,b<=05T3,T4N取Ya>1,c>16T3,F4N取Ya>1,c<=17F3,T4N取Ya<=1,c>18F3,F4N取Na<=1,c<=156一、邏輯覆蓋法5、條件組合覆蓋條件組合覆蓋的測(cè)試用例測(cè)試用例覆蓋條件覆蓋判斷覆蓋組合a=2,b=1,c=6T1,T2,T3,T4M取Y分支N取Y分支1,5a=2,b=-1,c=-2T1,F2,T3,F4M取N分支N取Y分支2,6a=-1,b=2,c=3F1,T2,F3,T4M取N分支N取Y分支3,7a=-1,b=-2,c=-3F1,F2,F3,F4M取N分支N取N分支4,857一、邏輯覆蓋法5、條件組合覆蓋【優(yōu)點(diǎn)】
:條件組合覆蓋準(zhǔn)則滿(mǎn)足判定覆蓋、條件覆蓋和判定/條件覆蓋準(zhǔn)則。【缺點(diǎn)】
:線(xiàn)性地增加了測(cè)試用例的數(shù)量。58一、邏輯覆蓋法6、路徑覆蓋
基本思想:設(shè)計(jì)足夠多的測(cè)試用例,要求覆蓋程序中所有可能的路徑。59一、邏輯覆蓋法6、路徑覆蓋測(cè)試用例覆蓋組合覆蓋路徑a=2,b=1,c=61,51-2-4a=1,b=1,c=-31,81-2-5a=-1,b=2,c=34,71-3-4a=-1,b=-2,c=-34,81-3-560一、邏輯覆蓋法6、路徑覆蓋【優(yōu)點(diǎn)】
:這種測(cè)試方法可以對(duì)程序進(jìn)行徹底的測(cè)試,比前面五種的覆蓋面都廣。【缺點(diǎn)】
:需要設(shè)計(jì)大量、復(fù)雜的測(cè)試用例,使得工作量呈指數(shù)級(jí)增長(zhǎng),不見(jiàn)得把所有的條件組合都覆蓋。61一、邏輯覆蓋法條件組合覆蓋結(jié)合路徑覆蓋測(cè)試用例覆蓋條件覆蓋路徑覆蓋組合a=2,b=1,c=6T1,T2,T3,T4P1:(1-2-4)1,5a=1,b=1,c=-3T1,T2,F3,F4P2:(1-2-5)1,8a=-1,b=2,c=3F1,F2,F3,T4P3:(1-3-4)4,7a=-1,b=-2,c=-3F1,F2,F3,F4P4:(1-3-5)4,8a=2,b=-1,c=-2T1,F2,T3,F4P3:(1-3-4)2,6a=-1,b=2,c=3F1,T2,F3,T4P3:(1-3-4)3,762二、基本路徑測(cè)試法63二、基本路徑測(cè)試法1、基本路徑測(cè)試的思想基本路徑測(cè)試方法把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),程序中的循環(huán)體最多只執(zhí)行一次。在程序控制流圖的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出獨(dú)立可執(zhí)行路徑集合,設(shè)計(jì)測(cè)試用例的方法。64二、基本路徑測(cè)試法2、基本路徑測(cè)試的思想導(dǎo)出程序流程圖的控制流圖計(jì)算控制流圖G的環(huán)路復(fù)雜性V(G)確定只包含獨(dú)立路徑的基本路徑集設(shè)計(jì)測(cè)試用例65二、基本路徑測(cè)試法3、控制流圖控制流圖是對(duì)程序流程圖進(jìn)行簡(jiǎn)化后得到的,它可以更加突出的表示程序控制流的結(jié)構(gòu)。控制流圖中包括兩種圖形符號(hào):結(jié)點(diǎn)和控制流線(xiàn)。結(jié)點(diǎn)由帶標(biāo)號(hào)的圓圈表示,可代表一個(gè)或多個(gè)語(yǔ)句、一個(gè)處理框序列和一個(gè)條件判定框(假設(shè)不包含復(fù)合條件)。控制流線(xiàn)由帶箭頭的弧或線(xiàn)表示,可稱(chēng)為邊。它代表程序中的控制流。66常見(jiàn)結(jié)構(gòu)的控制流圖其中,包含條件的結(jié)點(diǎn)被稱(chēng)為判定結(jié)點(diǎn),由判定結(jié)點(diǎn)發(fā)出的邊必須終止于某一個(gè)結(jié)點(diǎn),由邊和結(jié)點(diǎn)所限定的范圍被稱(chēng)為區(qū)域。67流圖的畫(huà)法
在分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個(gè)匯聚結(jié)點(diǎn).
每一條邊必須終止于一個(gè)結(jié)點(diǎn)68流圖的畫(huà)法
如果判斷中的條件表達(dá)式是由一個(gè)或多個(gè)邏輯運(yùn)算符連接的復(fù)合條件表達(dá)式,則需要改為一系列只有單個(gè)條件的嵌套的判斷。69二、基本路徑測(cè)試法4、環(huán)路復(fù)雜度環(huán)形復(fù)雜度也稱(chēng)為圈復(fù)雜度,它是一種為程序邏輯復(fù)雜度提供定量尺度的軟件度量。從程序的環(huán)形復(fù)雜度可導(dǎo)出基本路徑集合中獨(dú)立路徑條數(shù)。獨(dú)立路徑是指程序中至少引入了一個(gè)新的處理語(yǔ)句集合或一個(gè)新條件的程序通路。采用流圖的術(shù)語(yǔ),即獨(dú)立路徑必須至少包含一條在本次定義路徑之前不曾用過(guò)的邊。70計(jì)算環(huán)形復(fù)雜度的方法環(huán)形復(fù)雜度以圖論為基礎(chǔ),為我們提供了非常有用的軟件度量。可用如下三種方法之一來(lái)計(jì)算環(huán)形復(fù)雜度:控制流圖中區(qū)域的數(shù)量=環(huán)形復(fù)雜度。給定控制流圖G的環(huán)形復(fù)雜度—V(G),定義為
V(G)=E-N+2
其中,E是控制流圖中邊的數(shù)量,N是控制流圖中的節(jié)點(diǎn)數(shù)量。給定控制流圖G的環(huán)形復(fù)雜度—V(G),也可定義為
V(G)=P+1
其中,P是控制流圖G中判定節(jié)點(diǎn)的數(shù)量。71例如,在圖示的控制流圖中,一組獨(dú)立的路徑是
path1:1-11
path2:1-2-3-4-5-10-1-11
path3:1-2-3-6-8-9-10-1-11
path4:1-2-3-6-7-9-10-1-11路徑path1,path2,path3,path4組成了控制流圖的一個(gè)基本路徑集72voidSort(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}(1)畫(huà)出控制流圖(2)計(jì)算環(huán)形復(fù)雜度(3)導(dǎo)出獨(dú)立路徑(用語(yǔ)句編號(hào)表示)(4)設(shè)計(jì)測(cè)試用例73(1)畫(huà)出控制流圖:(2)計(jì)算環(huán)形復(fù)雜度:
10(條邊)-8(個(gè)節(jié)點(diǎn))+2=4(3)導(dǎo)出獨(dú)立路徑(用語(yǔ)句編號(hào)表示)路徑1:4→14
路徑2:4→6→7→14
路徑3:4→6→9→10→13→4→14
路徑4:4→6→9→12→13→4→1446791012131474輸入數(shù)據(jù)預(yù)期輸出測(cè)試用例1irecordnum=0itype=0x=0y=0測(cè)試用例2irecordnum=1itype=0x=0y=0測(cè)試用例3irecordnum=1itype=1x=10y=0測(cè)試用例4irecordnum=1itype=2x=0y=20(4)設(shè)計(jì)測(cè)試用例:75
例
下面是選擇排序的程序,其中datalist是數(shù)據(jù)表,它有兩個(gè)數(shù)據(jù)成員:一是元素類(lèi)型為Element的數(shù)組V,另一個(gè)是數(shù)組大小n。算法中用到交換兩數(shù)組元素內(nèi)容的操作Swap():
voidSelectSort(datalistlist){
//對(duì)表list.V[0]到list.V[n-1]進(jìn)行排序,n是表當(dāng)前長(zhǎng)度。
for(inti=0;i<list.n-1;i++){
intk=i;
//在list中找具有最小關(guān)鍵碼的對(duì)象
for(intj=i+1;j<list.n;j++)
if(list.V[j]<list.V[k])k=j;
//當(dāng)前具最小關(guān)鍵碼的對(duì)象
if(k!=i)Swap(list.V[i],list.V[k]);
//交換
}}76(1)路徑1,3(2)路徑1,2,4,6……(3)路徑1,2,4,7……(4)路徑1,2,5,8,3(5)路徑1,2,5,9,377三、循環(huán)測(cè)試目標(biāo):在循環(huán)內(nèi)部及邊界上執(zhí)行測(cè)試
(1)簡(jiǎn)單循環(huán)
(2)嵌套循環(huán)
(3)串接循環(huán)
(4)不規(guī)則循環(huán)78三、循環(huán)測(cè)試1.簡(jiǎn)單循環(huán)(迭代次數(shù)n)
完全跳過(guò)循環(huán)只經(jīng)過(guò)循環(huán)一次經(jīng)過(guò)循環(huán)兩次經(jīng)過(guò)循環(huán)m(m<n)次分別經(jīng)過(guò)循環(huán)n-1,n,n+1次79三、循環(huán)測(cè)試2.嵌套循環(huán)在最里面的循環(huán)完成前面所述的簡(jiǎn)單循環(huán)測(cè)試,同時(shí)設(shè)定外部循環(huán)的最小迭代次數(shù)逐步向外循環(huán)進(jìn)行直到所有循環(huán)被測(cè)試80三、循環(huán)測(cè)試2.嵌套循環(huán)測(cè)試項(xiàng)最外層循環(huán)次數(shù)中間層循環(huán)次數(shù)最內(nèi)層循環(huán)次數(shù)最內(nèi)層最小值最小值不同值中間層最小值不同值典型值最外層不同值典型值典型值嵌套循環(huán)測(cè)試時(shí)各層循環(huán)控制變量的取值81三、循環(huán)測(cè)試3.串行連接循環(huán)獨(dú)立循環(huán)
——可以分別看作簡(jiǎn)單循環(huán)測(cè)試依賴(lài)性循環(huán)
——可以看作是嵌套循環(huán)4.其它非循環(huán)結(jié)構(gòu)重新設(shè)計(jì)!82四、程序插裝
程序插裝是指在程序中設(shè)置斷點(diǎn)或打印語(yǔ)句,在執(zhí)行中了解程序中的一些動(dòng)態(tài)特性。
程序插裝技術(shù)的研究涉及的問(wèn)題:探測(cè)哪些信息。程序的什么位置設(shè)置探測(cè)點(diǎn)需要多少探測(cè)點(diǎn)83第三章軟件測(cè)試方法主要內(nèi)容:3.1白盒測(cè)試方法3.2黑盒測(cè)試方法3.3靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試3.4探查式測(cè)試3.5測(cè)試用例設(shè)計(jì)843.2黑盒測(cè)試方法黑盒測(cè)試(也稱(chēng)功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試)把測(cè)試對(duì)象看作一個(gè)黑盒子,測(cè)試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)需求規(guī)格說(shuō)明書(shū),檢查程序的功能是否符合它的功能說(shuō)明。功能測(cè)試數(shù)據(jù)驅(qū)動(dòng)測(cè)試客戶(hù)需求事件驅(qū)動(dòng)輸入輸出853.2黑盒測(cè)試方法黑盒測(cè)試常用于發(fā)現(xiàn)以下錯(cuò)誤能否正確地接受輸入數(shù)據(jù),能否產(chǎn)生正確的輸出信息;是否有不正確或遺漏的功能;功能操作邏輯的合理性;界面是否出錯(cuò);安裝過(guò)程中是否出現(xiàn)問(wèn)題;系統(tǒng)初始化問(wèn)題。863.2黑盒測(cè)試方法常用的方法等價(jià)類(lèi)劃分法邊界值分析法判定表方法因果圖法正交試驗(yàn)法功能圖法錯(cuò)誤推測(cè)法873.2.1等價(jià)類(lèi)劃分方法將程序可能的輸入數(shù)據(jù)分成若干個(gè)子集,從每個(gè)子集選取一個(gè)代表性的數(shù)據(jù)作為測(cè)試用例,等價(jià)類(lèi)是某個(gè)輸入域的子集,在該子集中每個(gè)輸入數(shù)據(jù)的作用是等效的分為有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)。在分析需求規(guī)格說(shuō)明的基礎(chǔ)上劃分等價(jià)類(lèi),列出等價(jià)類(lèi)表設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮這兩種等價(jià)類(lèi)。因?yàn)檐浖粌H要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn)。經(jīng)過(guò)正反的測(cè)試才能確保軟件具有更高的可靠性。88確定等價(jià)類(lèi)的方法(1)在輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)的情況下,則可以確立一個(gè)有效等價(jià)類(lèi)和兩個(gè)無(wú)效等價(jià)類(lèi)inrangegreaterthanrangelessthanrangevaluegreaterthanvaluelessthanvalue89在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可以確立一個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi)。確定等價(jià)類(lèi)的方法(2)notmemberofsetmemberofset90在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi)確定等價(jià)類(lèi)的方法(3)BooleanNon-Boolean91確定等價(jià)類(lèi)的方式(4)在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對(duì)每一個(gè)輸入值分別處理的情況下,可確立n個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi)。
個(gè)人月收入-x稅率
x<=16000%1600<x<21005%500<=x<360010%3600<=x<660015%6600<=x<2160020%21600<=x<4160025%……>10160045%92確定等價(jià)類(lèi)的方式(5)在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個(gè)有效等價(jià)類(lèi)(符合規(guī)則)和若干個(gè)無(wú)效等價(jià)類(lèi)(從不同角度違反規(guī)則)。93等價(jià)類(lèi)測(cè)試用例-Example等價(jià)類(lèi)1:Integer等價(jià)類(lèi)2:Decimalfraction等價(jià)類(lèi)3:Negative等價(jià)類(lèi)4:Invalidinput94根據(jù)等價(jià)類(lèi)創(chuàng)建測(cè)試用例的步驟a)建立等價(jià)類(lèi)表,列出所有劃分出的等價(jià)類(lèi):為每個(gè)等價(jià)類(lèi)規(guī)定一個(gè)唯一的編號(hào);設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價(jià)類(lèi)重復(fù)c),最后使得所有有效等價(jià)類(lèi)均被測(cè)試用例所覆蓋;設(shè)計(jì)一個(gè)新的測(cè)試用例,使其只覆蓋一個(gè)無(wú)效等價(jià)類(lèi)。重復(fù)e)使所有無(wú)效等價(jià)類(lèi)均被覆蓋。輸入條件有效等價(jià)類(lèi)無(wú)效等價(jià)類(lèi)………953.2.2邊界值分析方法邊界值分析也是一種黑盒測(cè)試方法,是對(duì)等價(jià)類(lèi)劃分方法的補(bǔ)充。人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。設(shè)計(jì)方法:確定邊界情況(輸入或輸出等價(jià)類(lèi)的邊界)選取正好等于、剛剛大于或剛剛小于邊界值作為測(cè)試數(shù)據(jù)96確定邊界值的方法如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)。如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)、比最小個(gè)數(shù)少一、比最大個(gè)數(shù)多一的數(shù)作為測(cè)試數(shù)據(jù)。abab97確定邊界值的方法(2)如果程序的規(guī)格說(shuō)明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測(cè)試用例。如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測(cè)試用例。TestcasesforABS(x):classx<0,arbitraryvalue: x=-10classx>=0,arbitraryvalue x=100classesx<0,x>=0,onboundary: x=0classesx<0,x>=0,belowandabove: x=-1,x=198正常值(有效類(lèi)):X1=123123邊界值:X2=12345邊界值:X3=1234567邊界值:X4=1邊界值:X5=0無(wú)效類(lèi)的值:X6=-123123無(wú)效類(lèi)的值:X7=asdasd其它?示例2
測(cè)試限制性用戶(hù)輸入:6位正整數(shù)
無(wú)效值:X8=000123X9=asd123X10=Empty99示例3Testcases:任意的正常值:隨機(jī)選擇幾個(gè)選項(xiàng)
邊界值:選擇所有選項(xiàng)
邊界值:一個(gè)都不選
邊界值:選擇一個(gè)選項(xiàng)100二進(jìn)制Term
取值范圍BitNibbleByteWordKiloMegaGigaTera0or10-15<Halfbyte>0-2550-65535or0-429496729510241048576107374182410995116277760和1,byte由8bits構(gòu)成,字由4bytes構(gòu)成,…101ASCIITableCharacterASCIIValueCharacterASCIIValueNullSpace/0129;@A0324748495057586465BYZ[‘a(chǎn)byz{66899091969798121122123102字符編輯域DefaultEmptyBlankNullZeroNone103一些特殊的邊界值數(shù)值字符位置數(shù)量速度位置體積First/last,F(xiàn)irst-1/Last+1Min/Max,Min-1/max+1Star/Finish,Start-1/Finish+1Empty/FullLessthanempty/morethanfullSlower/FasterLargest/SmallestOver/Under,justOver/JustUnderShortest/Longest……1043.2.3判定表方法在實(shí)際應(yīng)用中,許多輸入是由多個(gè)因素構(gòu)成,而不是單一因素,這時(shí)就需要多因素組合分析。對(duì)于多因素,有時(shí)可以直接對(duì)輸入條件進(jìn)行組合設(shè)計(jì),不需要進(jìn)行因果分析,即直接采用判定表方法。一個(gè)判定表由“條件和活動(dòng)”兩部分組成,也就是列出了一個(gè)測(cè)試活動(dòng)執(zhí)行所需的條件組合,所有可能的條件組合定義了一系列的選擇,而測(cè)試活動(dòng)需要考慮每一個(gè)選擇。105判定表元素條件樁,列出問(wèn)題的所有條件動(dòng)作樁:列出可能針對(duì)問(wèn)題所采取的操作條件項(xiàng):針對(duì)所列條件的具體賦值動(dòng)作項(xiàng):列出在條件項(xiàng)(各種取值)組合情況下應(yīng)該采取的動(dòng)作。規(guī)則:任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作。106判定表方法步驟列出所有的條件樁和動(dòng)作樁;填入條件項(xiàng);填入動(dòng)作項(xiàng),制定初始判定表;簡(jiǎn)化、合并相似規(guī)則或者相同動(dòng)作示例見(jiàn)表3-12和3-131073.2.4因果圖法1)因果圖的適用范圍
如果在測(cè)試時(shí)必須考慮輸入條件的各種組合,可使用一種適合于描述對(duì)于多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來(lái)設(shè)計(jì)測(cè)試用例,這就需要利用因果圖。
因果圖方法最終生成的就是判定表。它適合于檢查程序輸入條件的各種組合情況。1082)用因果圖生成測(cè)試用例的基本步驟
(1)
分析軟件規(guī)格說(shuō)明描述中,哪些是原因(即輸入條件或輸入條件的等價(jià)類(lèi)),哪些是結(jié)果(即輸出條件),并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。
(2)
分析軟件規(guī)格說(shuō)明描述中的語(yǔ)義,找出原因與結(jié)果之間,原因與原因之間對(duì)應(yīng)的是什么關(guān)系?根據(jù)這些關(guān)系,畫(huà)出因果圖。
109
(3)
由于語(yǔ)法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號(hào)標(biāo)明約束或限制條件。
(4)
把因果圖轉(zhuǎn)換成判定表。
(5)
把判定表的每一列拿出來(lái)作為依據(jù),設(shè)計(jì)測(cè)試用例。
2)用因果圖生成測(cè)試用例的基本步驟(續(xù))110在因果圖中出現(xiàn)的基本符號(hào):
通常在因果圖中用Ci表示原因,用Ei表示結(jié)果,各結(jié)點(diǎn)表示狀態(tài),可取值“0”或“1”。“0”表示某狀態(tài)不出現(xiàn),“1”表示某狀態(tài)出現(xiàn)。主要的原因和結(jié)果之間的關(guān)系有:111表示約束條件的符號(hào)
為了表示原因與原因之間,結(jié)果與結(jié)果之間可能存在的約束條件,在因果圖中可以附加一些表示約束條件的符號(hào)。112
例如,有一個(gè)處理單價(jià)為5角錢(qián)的飲料的自動(dòng)售貨機(jī)軟件測(cè)試用例的設(shè)計(jì)。其規(guī)格說(shuō)明如下:
若投入5角錢(qián)或1元錢(qián)的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)的飲料就送出來(lái)。若售貨機(jī)沒(méi)有零錢(qián)找,則一個(gè)顯示〖零錢(qián)找完〗的紅燈亮,這時(shí)在投入1元硬幣并押下按鈕后,飲料不送出來(lái)而且1元硬幣也退出來(lái);若有零錢(qián)找,則顯示〖零錢(qián)找完〗的紅燈滅,在送出飲料的同時(shí)退還5角硬幣。”113(1)分析這一段說(shuō)明,列出原因和結(jié)果
原因:1.
售貨機(jī)有零錢(qián)找
2.
投入1元硬幣
3.
投入5角硬幣
4.
押下橙汁按鈕
5.
押下啤酒按鈕
建立中間結(jié)點(diǎn),表示處理中間狀態(tài)
11.
投入1元硬幣且押下飲料按鈕
12.
押下〖橙汁〗或〖啤酒〗的按鈕
13.
應(yīng)當(dāng)找5角零錢(qián)并且售貨機(jī)有零錢(qián)找
14.
錢(qián)已付清
114
結(jié)果:21.
售貨機(jī)〖零錢(qián)找完〗燈亮
22.
退還1元硬幣
23.
退還5角硬幣
24.
送出橙汁飲料
25.
送出啤酒飲料
(2)畫(huà)出因果圖。所有原因結(jié)點(diǎn)列在左 邊,所有結(jié)果結(jié)點(diǎn)列在右邊。
(3)
由于2與3,4與5不能同時(shí)發(fā)生,
分別加上約束條件E。
(4)因果圖
(5)轉(zhuǎn)換成判定表115
116
117例2
:某個(gè)軟件規(guī)格說(shuō)明中包含以下要求:第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改;但如果第一列字符不正確,則輸出信息L;如果第二列字符不是數(shù)字,則輸出信息M。118(1)分析這一段說(shuō)明,列出原因和結(jié)果
原因:C1.第一列字符是A
C2.第一列字符是B
C3.第二列字符是一個(gè)數(shù)字建立中間結(jié)點(diǎn),表示處理中間狀態(tài)
11.第一列字符是A或B
結(jié)果:E1.
修改文件
E2.
輸出信息L
E3.輸出信息M119判定表序號(hào)123456原因C1100100C2010010C3111000結(jié)果E1110000E2001000E30001111203.2.5正交試驗(yàn)法1、為什么要采用正交試驗(yàn)法?
在許多應(yīng)用系統(tǒng)的測(cè)試工作中,不會(huì)象判斷三角形那樣簡(jiǎn)單,而實(shí)際項(xiàng)目中輸入條件的因素很多,而且每個(gè)因素也不能簡(jiǎn)單用“是”和“否”來(lái)回答。比如,微軟Powerpoint程序的打印測(cè)試,也需要考慮4個(gè)因素,每個(gè)因素也有多個(gè)選項(xiàng).打印范圍分:全部、當(dāng)前幻燈片、給定范圍打印內(nèi)容分:幻燈片、講義、備注頁(yè)、大綱視圖打印顏色/灰度分:彩色、灰度、黑白打印效果分:幻燈片加框和幻燈片不加框。121實(shí)例員工號(hào)(ID)。員工姓名(Name)。員工郵件地址(MailAddress)
信息系統(tǒng)中,員工信息查詢(xún)功能是常見(jiàn)的。例如,設(shè)有3個(gè)獨(dú)立的查詢(xún)條件,以獲得特定員工的個(gè)人信息1223.2.6功能圖法每個(gè)程序的功能通常由靜態(tài)說(shuō)明和動(dòng)態(tài)說(shuō)明組成靜態(tài)說(shuō)明描述了輸入條件和輸出條件之間的對(duì)應(yīng)關(guān)系動(dòng)態(tài)說(shuō)明描述了輸入數(shù)據(jù)的次序或者轉(zhuǎn)移的次序。功能圖法就是為了解決動(dòng)態(tài)說(shuō)明問(wèn)題的一種測(cè)試用例的設(shè)計(jì)方法功能圖由狀態(tài)遷移圖(statetransitiondiagram,STD)和邏輯功能模型(logicfunctionmodel,LFM)構(gòu)成123狀態(tài)遷移圖狀態(tài)遷移圖,描述系統(tǒng)狀態(tài)變化的動(dòng)態(tài)信息——?jiǎng)討B(tài)說(shuō)明,由狀態(tài)和遷移來(lái)描述,狀態(tài)指出數(shù)據(jù)輸入的位置(或時(shí)間),而遷移則指明狀態(tài)的改變。124如何設(shè)計(jì)測(cè)試用例功能圖法設(shè)計(jì)測(cè)試用例,就是如何覆蓋軟件所表現(xiàn)出來(lái)的所有狀態(tài),可以轉(zhuǎn)化為兩個(gè)層次的測(cè)試用例從邏輯功能模型(決策表或因果圖)導(dǎo)出局部測(cè)試用例,覆蓋各個(gè)狀態(tài)的各種輸入數(shù)據(jù)的組合從狀態(tài)遷移圖導(dǎo)出整體的測(cè)試用例,以覆蓋系統(tǒng)(程序)控制的邏輯路徑功能圖法是綜合運(yùn)用黑盒方法和白盒方法來(lái)設(shè)計(jì)測(cè)試用例,即整體上選用白盒方法——路徑覆蓋、分支和條件覆蓋等,而局部上選用的是黑盒方法——決策表或因果圖方法1253.2.7錯(cuò)誤推測(cè)法人們也可以靠經(jīng)驗(yàn)和直覺(jué)推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫(xiě)檢查這些錯(cuò)誤的例子。這就是錯(cuò)誤推測(cè)法。錯(cuò)誤推測(cè)法的基本想法是:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)它們選擇測(cè)試用例。1263.3靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試將需求和設(shè)計(jì)的評(píng)審也納入測(cè)試的范疇,可以看作是廣義測(cè)試靜態(tài)測(cè)試包括對(duì)軟件產(chǎn)品的需求和設(shè)計(jì)規(guī)格說(shuō)明書(shū)的評(píng)審、對(duì)程序代碼的復(fù)審等靜態(tài)分析的查錯(cuò)和分析功能是其他方法所不能替代的,可以采用人工檢測(cè)和計(jì)算機(jī)輔助靜態(tài)分析手段進(jìn)行檢測(cè),但越來(lái)越多地采用工具進(jìn)行自動(dòng)化分析動(dòng)態(tài)測(cè)試是通過(guò)真正運(yùn)行程序發(fā)現(xiàn)錯(cuò)誤,通過(guò)觀察代碼運(yùn)行過(guò)程,來(lái)獲取系統(tǒng)信息,對(duì)系統(tǒng)行為進(jìn)行驗(yàn)證。127
3.4探查式測(cè)試
1、傳統(tǒng)的結(jié)構(gòu)化測(cè)試先設(shè)計(jì)后運(yùn)行;預(yù)先設(shè)計(jì)的測(cè)試用例可能不能起到應(yīng)有的作用;2、探查式測(cè)試邊設(shè)計(jì)邊運(yùn)行;依靠測(cè)試人員在測(cè)試過(guò)程中的主動(dòng)性和創(chuàng)造性;128
3.4探查式測(cè)試
3、探查式測(cè)試的作用可以設(shè)計(jì)更有效的測(cè)試用例;可以作為傳統(tǒng)的結(jié)構(gòu)化測(cè)試的補(bǔ)充;盡可能多地發(fā)現(xiàn)有價(jià)值的缺陷;可以依據(jù)缺陷群集現(xiàn)象來(lái)確定測(cè)試重點(diǎn)。1293.4探查式測(cè)試
4、探查式測(cè)試的步驟確定探查的范圍和重點(diǎn);擬出可能的探查方案(缺陷討論會(huì)、攻擊測(cè)試方法);評(píng)估提出的探查方案,決定要采取的最佳方案;確定實(shí)施計(jì)劃;實(shí)施探查方案,記錄實(shí)施結(jié)果;判斷是否進(jìn)行下一輪探查。1303.4探查式測(cè)試
5、缺陷討論會(huì)參會(huì)人員:測(cè)試人員、開(kāi)發(fā)人員、用戶(hù)、其他相關(guān)人員人數(shù)5~10人;主持人事先把會(huì)議議題通知參會(huì)人員;會(huì)上采取輪流發(fā)言制;確實(shí)沒(méi)有新的設(shè)想提出或時(shí)間用完,結(jié)束會(huì)議。131
3.4探查式測(cè)試
6、攻擊測(cè)試方法API
文件系統(tǒng)、網(wǎng)絡(luò)通信接口操作系統(tǒng)用戶(hù)界面應(yīng)用軟件產(chǎn)品系統(tǒng)接口用戶(hù)用戶(hù)(1)用戶(hù)界面攻擊輸入和輸出攻擊數(shù)據(jù)和計(jì)算攻擊(2)系統(tǒng)接口攻擊文件系統(tǒng)接口攻擊軟件系統(tǒng)接口攻擊132良好測(cè)試用例的特征可以最大程度地找出軟件隱藏的缺陷可以最高效率的找出軟件缺陷可以最大程度地滿(mǎn)足測(cè)試覆蓋要求既不過(guò)分復(fù)雜、也不能過(guò)分簡(jiǎn)單使軟件缺陷的表現(xiàn)可以清楚的判定測(cè)試用例包含期望的正確的結(jié)果待查的輸出結(jié)果或文件必須盡量簡(jiǎn)單明了不包含重復(fù)的測(cè)試用例測(cè)試用例內(nèi)容清晰、格式一致、分類(lèi)組織133測(cè)試用例設(shè)計(jì)考慮因素具有代表性、典型性尋求系統(tǒng)設(shè)計(jì)、功能設(shè)計(jì)的弱點(diǎn)測(cè)試用例需要考慮到正確的輸入,也需要考慮錯(cuò)誤的或者異常的輸入,以及需要分析怎樣使得這樣的錯(cuò)誤或者異常能夠發(fā)生考慮用戶(hù)實(shí)際的諸多使用場(chǎng)景示例1:P.313示例2:P.31513414.1.4測(cè)試用例設(shè)計(jì)的基本原則Zhu.Kerry@盡量避免含糊的測(cè)試用例盡量將具有相類(lèi)似功能的測(cè)試用例抽象并歸類(lèi)盡量避免冗長(zhǎng)和復(fù)雜的測(cè)試用例1353.5測(cè)試用例設(shè)計(jì)5、測(cè)試用例的設(shè)計(jì)原則(1)保證測(cè)試用例的明確性;(2)保證測(cè)試用例的代表性;(3)保證測(cè)試用例的簡(jiǎn)潔性;1364.1測(cè)試過(guò)程模型
4.1.1軟件過(guò)程模型4.1.2用V模型詮釋軟件測(cè)試過(guò)程4.1.3W模型1374.1.1軟件過(guò)程模型1、瀑布模型瀑布模型是將軟件生命周期的各項(xiàng)活動(dòng),規(guī)定為按照固定順序相連的若干個(gè)階段性工作,形如瀑布流水,最終得到軟件產(chǎn)品。優(yōu)點(diǎn):易于理解;調(diào)研開(kāi)發(fā)的階段性;強(qiáng)調(diào)早期計(jì)劃及需求調(diào)查;確定何時(shí)能夠交付產(chǎn)品及何時(shí)進(jìn)行評(píng)審與測(cè)試。缺點(diǎn):需求調(diào)查分析只進(jìn)行一次,不能適應(yīng)需求變化;順序的開(kāi)發(fā)流程,使得開(kāi)發(fā)中的經(jīng)驗(yàn)教訓(xùn)不能反饋到該項(xiàng)目的開(kāi)發(fā)中去;不能反映出軟件開(kāi)發(fā)過(guò)程的反復(fù)與迭代性;沒(méi)有包含任何類(lèi)型的風(fēng)險(xiǎn)評(píng)估;開(kāi)發(fā)中出現(xiàn)的問(wèn)題直到開(kāi)發(fā)后期才能夠顯露,因此失去及早糾正的機(jī)會(huì)。138問(wèn)題定義分析研究需求分析軟件設(shè)計(jì)編碼測(cè)試維護(hù)定義階段開(kāi)發(fā)階段維護(hù)階段瀑布開(kāi)發(fā)模型1394.1.1軟件過(guò)程模型2、原型模型根據(jù)客戶(hù)需求在較短的時(shí)間內(nèi)解決用戶(hù)最迫切解決的問(wèn)題,完成可演示的產(chǎn)品。這個(gè)產(chǎn)品只實(shí)現(xiàn)最重要功能,在得到用戶(hù)的更加明確的需求之后,原型將丟棄。需求分析原型開(kāi)發(fā)原型評(píng)價(jià)最終設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)用戶(hù)反饋
快速原型開(kāi)發(fā)模型1404.1.1軟件過(guò)程模型3、增量模型和迭代模型
軟件在實(shí)際開(kāi)發(fā)過(guò)程中是按階段進(jìn)行的,逐步完善或深化系統(tǒng)的功能。軟件分階段開(kāi)發(fā)示意圖1414.1.1軟件過(guò)程模型3、增量模型和迭代模型增量開(kāi)發(fā)迭代開(kāi)發(fā)142IBMRUP143144(1)、初始階段初始階段的工作是將一個(gè)好的想法,發(fā)展為一個(gè)關(guān)于最終產(chǎn)品的構(gòu)想,并定義產(chǎn)生的項(xiàng)目范圍和業(yè)務(wù)用例。工作的重點(diǎn)在于理解所有的需求并決定開(kāi)發(fā)的工作范圍。144145初始階段要明確的內(nèi)容主要包括:項(xiàng)目的軟件范圍和邊界條件。要明確可操作的概念、可接受的原則以及產(chǎn)品的部分詳細(xì)說(shuō)明。系統(tǒng)中最關(guān)鍵的業(yè)務(wù)用例。即系統(tǒng)應(yīng)該為它的每個(gè)主要用戶(hù)提供什么樣的基本功能。145146系統(tǒng)的大致構(gòu)架,給出系統(tǒng)大致是什么樣子。這個(gè)構(gòu)架是試驗(yàn)性的,通常只是一個(gè)包括主要子系統(tǒng)的大致輪廓。產(chǎn)品的費(fèi)用和實(shí)踐計(jì)劃,以及對(duì)產(chǎn)品風(fēng)險(xiǎn)的評(píng)估。在這個(gè)階段的風(fēng)險(xiǎn)評(píng)估中,重點(diǎn)在于確定最主要風(fēng)險(xiǎn)內(nèi)容,以及風(fēng)險(xiǎn)的高低次序。146147描述項(xiàng)目的主要需求、特征和約束的前景文檔。初始的用例模型(大約是整個(gè)系統(tǒng)的10%-20%)。項(xiàng)目詞匯表。初始項(xiàng)目計(jì)劃。業(yè)務(wù)用例。風(fēng)險(xiǎn)評(píng)估文檔和數(shù)據(jù)庫(kù)。一個(gè)或者多個(gè)可拋棄原型。初始的構(gòu)架文檔。初始階段提交的產(chǎn)品主要包括:147148生命目標(biāo)里程碑主要評(píng)審的內(nèi)容有:項(xiàng)目相關(guān)人員是否就項(xiàng)目范圍、成本估計(jì)和時(shí)間進(jìn)度安排等達(dá)成一致。項(xiàng)目的需求理解是否準(zhǔn)確有效。對(duì)于成本和進(jìn)度安排的評(píng)估以及優(yōu)先權(quán)、風(fēng)險(xiǎn)和開(kāi)發(fā)過(guò)程的可信度如何。實(shí)際成本和計(jì)劃成本的對(duì)比情況。已開(kāi)發(fā)原型中系統(tǒng)構(gòu)架的深度和廣度是否已作為深入開(kāi)發(fā)的基礎(chǔ)。148149(2)細(xì)化階段細(xì)化階段的目標(biāo)是詳細(xì)分析問(wèn)題領(lǐng)域,說(shuō)明產(chǎn)品的絕大多數(shù)業(yè)務(wù)用例,設(shè)計(jì)出合理的系統(tǒng)構(gòu)架,給出開(kāi)發(fā)項(xiàng)目計(jì)劃,評(píng)價(jià)項(xiàng)目中最可能出現(xiàn)的風(fēng)險(xiǎn)元素。細(xì)化階段是四個(gè)階段中最關(guān)鍵的階段。該階段結(jié)束時(shí),最困難的“工程”可以認(rèn)為已結(jié)束。149150工作的主要內(nèi)容:在細(xì)化階段,根據(jù)項(xiàng)目的領(lǐng)域,大小和創(chuàng)新性,可能在一個(gè)或多個(gè)迭代中,建立一個(gè)可執(zhí)行的架構(gòu)。這一工作至少要處理初始階段中識(shí)別的關(guān)鍵用例,關(guān)鍵用例通常也揭示了項(xiàng)目主要技術(shù)的風(fēng)險(xiǎn)。150151細(xì)化階段的成果是:用例模型。定義所有已發(fā)現(xiàn)的用例,并完成至少80%以上用例的描述,其中所有關(guān)鍵用例必須完成描述。補(bǔ)充需求,包括非功能性需求以及任何與特定用例無(wú)關(guān)的需求。創(chuàng)建可執(zhí)行的構(gòu)架基線(xiàn)。一個(gè)修正后的風(fēng)險(xiǎn)表和商業(yè)用例。一份整個(gè)項(xiàng)目的開(kāi)發(fā)規(guī)劃,包括粗略項(xiàng)目規(guī)劃,顯示“迭代”以及對(duì)每個(gè)迭代的評(píng)估準(zhǔn)則。指明被使用過(guò)程的更新過(guò)的開(kāi)發(fā)用例。用戶(hù)手冊(cè)的初始版本(可選)。151152
細(xì)化階段結(jié)束是第二個(gè)重要的里程碑:生命周期體系架構(gòu)里程碑。此刻,檢驗(yàn)詳細(xì)的系統(tǒng)目標(biāo)和范圍、結(jié)構(gòu)的選擇以及主要風(fēng)險(xiǎn)的解決方案。主要的審核標(biāo)準(zhǔn)包括:152153產(chǎn)品的藍(lán)圖是否穩(wěn)定;體系結(jié)構(gòu)是否穩(wěn)定;可執(zhí)行的演示版是否顯示風(fēng)險(xiǎn)要素已被處理和可靠的解決;構(gòu)建階段的計(jì)劃是否足夠詳細(xì)和精確;是否被可靠的審核基礎(chǔ)支持;如果當(dāng)前計(jì)劃在現(xiàn)有的體系結(jié)構(gòu)環(huán)境中被執(zhí)行而開(kāi)發(fā)出完整系統(tǒng),是否所有的風(fēng)險(xiǎn)承擔(dān)人同意該藍(lán)圖是可實(shí)現(xiàn)的;實(shí)際的費(fèi)用開(kāi)支與計(jì)劃開(kāi)支是否可以接受。153154(3)構(gòu)造階段構(gòu)造階段是一個(gè)制造產(chǎn)品的過(guò)程,在這個(gè)階段中逐步完善構(gòu)想、構(gòu)架和計(jì)劃,直到將構(gòu)架基線(xiàn)逐漸發(fā)展成完善的系統(tǒng)產(chǎn)品,并完全準(zhǔn)備好移交給她的用戶(hù)群為止。構(gòu)造階段是最消耗資源的階段,它會(huì)消耗掉整個(gè)項(xiàng)目開(kāi)發(fā)中的大部分資源,所以這個(gè)階段的重點(diǎn)在于管理資源和控制操作上,目的是優(yōu)化項(xiàng)目的成本、進(jìn)度和質(zhì)量。154155構(gòu)造階段的主要工作內(nèi)容包括:通過(guò)資源管理、資源控制和過(guò)程優(yōu)化,以達(dá)到對(duì)資源的有效管理,避免不必要的浪費(fèi)和返工,從而降低開(kāi)發(fā)成本。盡快完成構(gòu)件開(kāi)發(fā),以保證盡可能快地開(kāi)發(fā)。根據(jù)已定義的評(píng)價(jià)準(zhǔn)則對(duì)開(kāi)發(fā)好的構(gòu)件進(jìn)行測(cè)試,以保證開(kāi)發(fā)構(gòu)件的質(zhì)量。盡可能快地將已完成的構(gòu)件組合成一個(gè)可用的版本,并根據(jù)系統(tǒng)構(gòu)想所制定的接受準(zhǔn)則對(duì)發(fā)布版本進(jìn)行測(cè)試評(píng)估。155156
構(gòu)造階段的產(chǎn)品是可以交付給最終用戶(hù)的產(chǎn)品。它最小包括:
特定平臺(tái)上的集成產(chǎn)品
用戶(hù)手冊(cè)
當(dāng)前版本的描述156157
構(gòu)造階段結(jié)束是第三個(gè)重要的項(xiàng)目里程碑——初始可運(yùn)行能力里程碑。此刻,決定是否軟件、環(huán)境、用戶(hù)可以運(yùn)作而不會(huì)將項(xiàng)目暴露在高度風(fēng)險(xiǎn)下。該版本也常被稱(chēng)為"beta"版。157158構(gòu)造階段主要的審核標(biāo)準(zhǔn)包括:產(chǎn)品是否足夠穩(wěn)定和成熟得發(fā)布給用戶(hù)。是否所有的風(fēng)險(xiǎn)承擔(dān)人準(zhǔn)備好向用戶(hù)移交。實(shí)際費(fèi)用與計(jì)劃費(fèi)用的比較是否仍可被接受。158159(4)移交階段移交階段是指移交產(chǎn)品給用戶(hù),這個(gè)階段的工作內(nèi)容包括制造、支付、培訓(xùn)、支持和維護(hù)產(chǎn)品,直到用戶(hù)滿(mǎn)意為止。這個(gè)階段包括了產(chǎn)品進(jìn)入beta版后的整個(gè)階段,它所關(guān)注的重點(diǎn)在于將軟件交到用戶(hù)手中所需要進(jìn)行的活動(dòng)。159160移交階段的主要工作內(nèi)容包括:項(xiàng)目的相關(guān)人員共同完成部署基線(xiàn),以保證在用戶(hù)現(xiàn)場(chǎng)的使用。進(jìn)行beta版測(cè)試,確認(rèn)新系統(tǒng)是否與用戶(hù)期望一致。系統(tǒng)的調(diào)整改進(jìn),修正缺陷和提高性能與可用性。培訓(xùn)用戶(hù)和維護(hù)人員。與部署有關(guān)的特定工程內(nèi)容,即收尾、商業(yè)包裝和生產(chǎn)、銷(xiāo)售以及培訓(xùn)專(zhuān)業(yè)人員等。產(chǎn)品技術(shù)支持。160161移交階段的主要產(chǎn)品包括:修正后正式發(fā)布的在適當(dāng)平臺(tái)上集成的軟件產(chǎn)品;產(chǎn)品說(shuō)明;用戶(hù)手冊(cè);培訓(xùn)手冊(cè)。161162
在移交階段的終點(diǎn)是第四個(gè)重要的項(xiàng)目里程碑---產(chǎn)品發(fā)布里程碑。此時(shí),決定是否目標(biāo)已達(dá)到或開(kāi)始另一個(gè)周期。在許多情況下,里程碑會(huì)與下一個(gè)周期的初始階段相重疊。162163產(chǎn)品化階段的審核標(biāo)準(zhǔn)主要包括:用戶(hù)是否滿(mǎn)意;實(shí)際費(fèi)用與計(jì)劃費(fèi)用的比較是否仍可被接受。1634.1.2用V模型詮釋軟件測(cè)試過(guò)程164進(jìn)一步彰顯全過(guò)程測(cè)試1654.1.3W模型166軟件能力成熟度模型
(CMM,CapabilityMaturityModel)
——是軟件行業(yè)標(biāo)準(zhǔn)模型,用來(lái)定義和評(píng)價(jià)軟件企業(yè)開(kāi)發(fā)過(guò)程的成熟度,提供如何做才能夠提高軟件質(zhì)量的指導(dǎo)。CMM的基本原理:
——CMM將軟件組織的過(guò)程能力成熟度分為5個(gè)級(jí)別,每一個(gè)級(jí)別定義一組過(guò)程能力目標(biāo),并描述要達(dá)到這些目標(biāo)應(yīng)該采取的各種實(shí)踐活動(dòng)。CMM的主要作用:
——提供了一個(gè)軟件過(guò)程改進(jìn)的框架。根據(jù)CMM模型,軟件開(kāi)發(fā)者(機(jī)構(gòu)或組織)能夠大幅度的提高按計(jì)劃、高效率、低成本的提交有質(zhì)量保證的軟件產(chǎn)品的能力。167CMM的基本過(guò)程概念1)過(guò)程:為達(dá)到目的而執(zhí)行的所有步驟的系列。2)軟件過(guò)程:開(kāi)發(fā)和維護(hù)軟件及其相關(guān)產(chǎn)品的一組活動(dòng)、方法、實(shí)踐和改革。3)軟件過(guò)程結(jié)構(gòu):對(duì)組織標(biāo)準(zhǔn)軟件過(guò)程的一種高級(jí)別描述,它描述組織標(biāo)準(zhǔn)軟件過(guò)程內(nèi)部的過(guò)程元素之間的順序、接口、內(nèi)部依賴(lài)等關(guān)系,以及與外部過(guò)程之間的接口和依賴(lài)關(guān)系。4)軟件過(guò)程元素:用于描述軟件過(guò)程的基本元素,每一個(gè)過(guò)程元素包含一組定義的、有限的、封閉的相關(guān)任務(wù)。5)軟件過(guò)程定義:CMM中過(guò)程定義的基本概念是定義組織的標(biāo)準(zhǔn)軟件過(guò)程。168CMM的5個(gè)分級(jí)標(biāo)準(zhǔn)軟件過(guò)程成熟度的5個(gè)等級(jí)
優(yōu)化級(jí)(5)
已管理級(jí)(4)
已定義級(jí)(3)
可重復(fù)級(jí)(2)
初始級(jí)(1)
標(biāo)準(zhǔn)一致的過(guò)程
不斷改進(jìn)過(guò)程
可預(yù)測(cè)的過(guò)程
有紀(jì)律的過(guò)程169CMM的分級(jí)結(jié)構(gòu)和其主要特征:初始級(jí):其特點(diǎn)是軟件過(guò)程無(wú)秩序,有時(shí)甚至是混亂的。可重復(fù)級(jí):已建立了基本的項(xiàng)目管理過(guò)程,可用于對(duì)成本、進(jìn)度和功能特性進(jìn)行跟蹤。已定義級(jí):用于管理的、工程的軟件過(guò)程均已實(shí)現(xiàn)文檔化、標(biāo)準(zhǔn)化,并形成了整個(gè)軟件組織的標(biāo)準(zhǔn)軟件過(guò)程。管理級(jí):軟件過(guò)程和產(chǎn)品質(zhì)量有詳細(xì)的度量標(biāo)準(zhǔn),軟件過(guò)程和產(chǎn)品質(zhì)量得到了定量的認(rèn)證和控制。優(yōu)化級(jí):通過(guò)對(duì)來(lái)自過(guò)程、新概念和新技術(shù)等方面各種有用信息的定量分析,能夠不斷地、持續(xù)性地對(duì)過(guò)程進(jìn)行改進(jìn)。170除第一級(jí)外,CMM的每一級(jí)是按照完全相同的內(nèi)部結(jié)構(gòu)構(gòu)成的。成熟度等級(jí)為頂層,不同的成熟度等級(jí)反映了軟件組織的軟件過(guò)程能力和該組織可能實(shí)現(xiàn)預(yù)期的程度。在每個(gè)成熟度級(jí)別中(第1級(jí)除外),包含了實(shí)現(xiàn)這一級(jí)目標(biāo)的若干關(guān)鍵過(guò)程域(KPA)。每一級(jí)的每個(gè)關(guān)鍵過(guò)程域進(jìn)一步包含若干關(guān)鍵實(shí)踐(KeyPractice,KP)。無(wú)論哪一個(gè)KPA,其實(shí)踐都統(tǒng)一按5個(gè)公共特性進(jìn)行組織,即每一個(gè)KPA都包含5類(lèi)KP,使整個(gè)軟件過(guò)程改進(jìn)工作自上而下形成一種有規(guī)律的步驟。171關(guān)鍵過(guò)程域:是指一系列相互關(guān)聯(lián)的操作活動(dòng),這些活動(dòng)反映了一個(gè)軟件組織改進(jìn)軟件過(guò)程時(shí)必須集中力量改進(jìn)的幾個(gè)方面。目標(biāo):是指某個(gè)關(guān)鍵過(guò)程域中的關(guān)鍵實(shí)踐,它表示每一個(gè)關(guān)鍵過(guò)程域的范圍、邊界和意圖。公共特性:為了完成關(guān)鍵過(guò)程域中的實(shí)踐活動(dòng),CMM將其活動(dòng)分為具有公共特性的5個(gè)部分,包括執(zhí)行約定、執(zhí)行能力、實(shí)施活動(dòng)、度量和分析以及驗(yàn)收實(shí)施。這些部分的特性有效地指定了一個(gè)關(guān)鍵區(qū)域的實(shí)現(xiàn)范圍、結(jié)構(gòu)要求和實(shí)施內(nèi)容。關(guān)鍵實(shí)踐:關(guān)鍵實(shí)踐就是一些主要實(shí)踐活動(dòng)。每個(gè)關(guān)鍵過(guò)程域最終由關(guān)鍵實(shí)踐所組成,通過(guò)實(shí)現(xiàn)這些關(guān)鍵實(shí)踐來(lái)達(dá)到關(guān)鍵過(guò)程域的目標(biāo)。1724.2測(cè)試過(guò)程改進(jìn)模型
4.2.1TMM1734.2.1TMM
過(guò)程能力描述了遵循一個(gè)軟件測(cè)試過(guò)程可能達(dá)到的預(yù)期結(jié)果的范圍。TMM的建立,得益于以下3點(diǎn):充分吸收、CMM的精華;基于歷史演化的測(cè)試過(guò)程;業(yè)界的最佳實(shí)踐。5個(gè)別級(jí)的一系列測(cè)試能力成熟度的定義,每個(gè)級(jí)別的組成包括到期目標(biāo)、到期子目標(biāo)活動(dòng)、任務(wù)和職責(zé)等。一套評(píng)價(jià)模型,包括一個(gè)成熟度問(wèn)卷、評(píng)估程序
和團(tuán)隊(duì)選拔培訓(xùn)指南。
174TMM的5個(gè)級(jí)別簡(jiǎn)要描述175TMM的4個(gè)級(jí)別內(nèi)容176第五章單元測(cè)試單元測(cè)試單元測(cè)試的目標(biāo)和任務(wù)靜態(tài)測(cè)試技術(shù)的運(yùn)用動(dòng)態(tài)測(cè)試技術(shù)的運(yùn)用單元測(cè)試的過(guò)程與文檔管理單元測(cè)試工具JUnit介紹1775.1什么是單元測(cè)試1、單元測(cè)試的定義單元測(cè)試(模塊測(cè)試)是對(duì)軟件基本組成單元進(jìn)行的測(cè)試。主要是為了發(fā)現(xiàn)單元內(nèi)部可能存在的各種錯(cuò)誤和不足。2、什么是單元一個(gè)最小的單元應(yīng)該有明確的功能、性能、接口定義而且可以清析地與其他單元區(qū)分開(kāi)。1783、單元測(cè)試涉及的內(nèi)容(1)目標(biāo):確保模塊被正確地編碼;(2)依據(jù):詳細(xì)設(shè)計(jì)說(shuō)明書(shū)、源程序;(3)過(guò)程:包括設(shè)計(jì)、腳本開(kāi)發(fā)、執(zhí)行、調(diào)試和分析結(jié)果;(4)執(zhí)行者:開(kāi)發(fā)人員和測(cè)試人員(5)測(cè)試方法:白盒為主,黑盒為輔(6)評(píng)估:通過(guò)所有單元測(cè)試用例,代碼沒(méi)有嚴(yán)重缺陷。1794、單元測(cè)試誤區(qū)1)單元測(cè)試一種浪費(fèi)時(shí)間的工作;2)我是個(gè)很棒的程序員,我是不是可以不進(jìn)行單元測(cè)試;3)集成測(cè)試能找到所有的BUG;1805.2單元測(cè)試的任務(wù)和環(huán)境1、單元測(cè)試的任務(wù)181(1)模塊接口測(cè)試
調(diào)用所測(cè)模塊時(shí)的輸入?yún)?shù)與模塊的形參在個(gè)數(shù)、屬性、順序上是否匹配;所測(cè)模塊調(diào)用子模塊時(shí),它輸入給子模塊的參數(shù)與子模塊的形參在個(gè)數(shù)、屬性、順序上是否匹配;是否修改了只讀型形式參數(shù);輸出給標(biāo)準(zhǔn)函數(shù)的參數(shù)在個(gè)數(shù)、屬性、順序上是否匹配;全局變量的定義在各模塊中是否一致;182(2)模塊局部數(shù)據(jù)結(jié)構(gòu)測(cè)試不正確或不一致的數(shù)據(jù)類(lèi)型說(shuō)明不一致的數(shù)據(jù)類(lèi)型、錯(cuò)誤的類(lèi)型轉(zhuǎn)換變量初始化或缺省值有錯(cuò)使用尚未賦值或尚未初始化的變量數(shù)組越界、非法指針變量或函數(shù)名稱(chēng)拼寫(xiě)錯(cuò)誤183(3)獨(dú)立路徑測(cè)試
常見(jiàn)的不正確的計(jì)算有:運(yùn)算的優(yōu)先次序不正確或誤解了運(yùn)算的優(yōu)先次序;運(yùn)算的方式錯(cuò)誤(運(yùn)算的對(duì)象彼此在類(lèi)型上不相容);算法錯(cuò)誤;初始化不正確;運(yùn)算精度不夠;表達(dá)式的符號(hào)表示不正確等。184(3)獨(dú)立路徑測(cè)試
常見(jiàn)的比較和控制流錯(cuò)誤有:
不同數(shù)據(jù)類(lèi)型的比較;不正確的邏輯運(yùn)算符或優(yōu)先次序;因浮點(diǎn)運(yùn)算精度問(wèn)題而造成的兩值比較不等;關(guān)系表達(dá)式中不正確的變量和比較符;“差1錯(cuò)”,即不正確地多循環(huán)或少循環(huán)一次;錯(cuò)誤的或不可能的循環(huán)終止條件;當(dāng)遇到發(fā)散的迭代時(shí)不能終止循環(huán);不適當(dāng)?shù)匦薷牧搜h(huán)變量等。185(4)錯(cuò)誤處理測(cè)試出錯(cuò)的描述難以理解;出錯(cuò)的描述不足以對(duì)錯(cuò)誤定位和確定出錯(cuò)的原因;顯示的錯(cuò)誤與實(shí)際的錯(cuò)誤不符;對(duì)錯(cuò)誤條件的處理不正確;在對(duì)錯(cuò)誤進(jìn)行處理之前,錯(cuò)誤條件已經(jīng)引起系統(tǒng)的干預(yù);如果出錯(cuò)情況不予考慮,那么檢查恢復(fù)正常后模塊可否正常工作。186(5)邊界測(cè)試在n次循環(huán)的第0次、1次、n次是否有錯(cuò)誤;運(yùn)算或判斷中取最大最小值時(shí)是否有錯(cuò)誤;數(shù)據(jù)流、控制流中剛好等于、大于、小于確定的比較值時(shí)是否出現(xiàn)錯(cuò)誤。1872、單元測(cè)試的環(huán)境在單元測(cè)試時(shí),如果模塊不是獨(dú)立的程序,需要輔助測(cè)試模塊,有兩種輔助模塊:驅(qū)動(dòng)模塊(Driver):所測(cè)模塊的主程序。它接收測(cè)試數(shù)據(jù),把這些數(shù)據(jù)傳遞給所測(cè)試模塊,最后再輸出測(cè)試結(jié)果。當(dāng)被測(cè)試模塊能完成一定功能時(shí),也可以不要驅(qū)動(dòng)模塊。樁模塊(Stub):用來(lái)代替所測(cè)模塊調(diào)用的子模塊。1882、單元測(cè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西方政治理論與實(shí)踐的結(jié)合分析試題及答案
- 網(wǎng)絡(luò)工程師的未來(lái)發(fā)展方向試題及答案
- 西方國(guó)家政治外交中的人權(quán)問(wèn)題試題及答案
- 經(jīng)濟(jì)政策與科技創(chuàng)新試題及答案
- 西方選舉制度的演變?cè)囶}及答案
- 深度分析西方國(guó)家的政治演變?cè)囶}及答案
- 深入解析四級(jí)軟件測(cè)試工程師典型試題及答案
- 數(shù)據(jù)庫(kù)設(shè)計(jì)在2025年軟件設(shè)計(jì)師考試中的試題及答案
- 機(jī)電工程考試難點(diǎn)透析與試題及答案
- 公共政策對(duì)未來(lái)就業(yè)的影響試題及答案
- 如何理解中國(guó)人民抗日戰(zhàn)爭(zhēng)勝利對(duì)實(shí)現(xiàn)中華民族偉大復(fù)興的意義?參考答案三
- 2025-2030中國(guó)數(shù)字PCR(DPCR)和QPCR行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 相機(jī)全景拍攝與拼接技術(shù)考核試卷
- 2024年重慶高考化學(xué)試題卷(含答案解析)
- 2025屆高三政治最后一節(jié)課學(xué)科考前指導(dǎo)
- 門(mén)店電表記錄表
- 組態(tài)王雙機(jī)熱備
- 綠地圖繪制指南
- 初級(jí)長(zhǎng)拳現(xiàn)用圖解(第一路)
- 塑料制品公司質(zhì)量手冊(cè)
- CIGS薄膜太陽(yáng)能電池工藝流程
評(píng)論
0/150
提交評(píng)論