




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章軟件測(cè)試基本理論掌握軟件測(cè)試的概念,重點(diǎn)圍繞軟件測(cè)試的狹義定義和廣義定義展開;
了解軟件測(cè)試的目的,理解軟件測(cè)試的原則;
了解軟件測(cè)試的過程;
軟件測(cè)試和軟件開發(fā)的關(guān)系。本章要點(diǎn)1.1軟件測(cè)試的概念
1.2軟件測(cè)試的目的
1.3軟件測(cè)試的原則
1.4軟件測(cè)試的過程
1.5軟件測(cè)試與軟件開發(fā)的關(guān)系
目
錄1.1軟件測(cè)試的概念軟件測(cè)試就是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說明和編碼實(shí)現(xiàn)的最終審查,它是軟件質(zhì)量保證的關(guān)鍵步驟。通常對(duì)軟件測(cè)試的定義有兩種描述:定義1:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。定義2:軟件測(cè)試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)的一批測(cè)試用例,并利用這些測(cè)試用例運(yùn)行程序以發(fā)現(xiàn)錯(cuò)誤的過程。廣義的軟件測(cè)試是由確認(rèn)、驗(yàn)證、測(cè)試三個(gè)方面組成。確認(rèn):評(píng)估將要開發(fā)的軟件產(chǎn)品是否是正確無誤、可行和有價(jià)值的。這里包含了對(duì)用戶需求滿足程度的評(píng)價(jià),意味著確保一個(gè)待開發(fā)軟件是正確無誤的,是對(duì)軟件開發(fā)構(gòu)想的檢測(cè)。驗(yàn)證:檢測(cè)軟件開發(fā)的每個(gè)階段、每個(gè)步驟的結(jié)果是否正確無誤,是否與軟件開發(fā)各階段的要求或期望的結(jié)果相一致。驗(yàn)證意味著確保軟件正確無誤地實(shí)現(xiàn)軟件的需求。測(cè)試:與狹隘的測(cè)試概念統(tǒng)一。通常是經(jīng)過單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試四個(gè)環(huán)節(jié)。1.2軟件測(cè)試的目的軟件測(cè)試的目的是為了發(fā)現(xiàn)盡可能多的缺陷。具體來說,應(yīng)有以下目標(biāo):測(cè)試是通過在計(jì)算機(jī)上執(zhí)行程序,暴露程序中潛在的錯(cuò)誤的過程。一個(gè)好的測(cè)試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤,最終消除軟件故障,保證程序的可靠運(yùn)行。測(cè)試的目標(biāo)是為了用最少的時(shí)間與工作量盡可能地找出軟件中存在的錯(cuò)誤與缺陷,而且測(cè)試只能證明缺陷存在,而不能證明缺陷不存在。1.3軟件測(cè)試的原則軟件測(cè)試過程中,我們應(yīng)注意和遵循一系列的具體原則,在ISTQB軟件測(cè)試基礎(chǔ)認(rèn)證大綱上,列出7項(xiàng)原則,但其中最后一項(xiàng)原則“不存在缺陷(就是有用系統(tǒng))”的謬論不能算是一項(xiàng)合格的原則,所以可以認(rèn)可的原則是6項(xiàng)。除此之外,在這里結(jié)合實(shí)際的測(cè)試經(jīng)歷,還列出比較重要的7項(xiàng)原則,合起來共13項(xiàng)原則。ISTQB的6項(xiàng)原則
(1)測(cè)試顯示缺陷不存在,但不能證明系統(tǒng)不存在缺陷。(2)窮盡測(cè)試是不可能的。(3)測(cè)試盡早介入。(4)缺陷集群性。(5)殺蟲劑悖論。(6)測(cè)試活動(dòng)依賴于測(cè)試背景。其他重要的7項(xiàng)原則
(1)持續(xù)地測(cè)試、持續(xù)地反饋。(2)80/20原則。(3)建立清晰的階段性目標(biāo)。(4)測(cè)試獨(dú)立性。(5)確??蓽y(cè)試性。(6)計(jì)劃是一個(gè)過程。(7)一切從用戶角度出發(fā)。1.4軟件測(cè)試的過程軟件測(cè)試過程按測(cè)試的先后順序可分為單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試。軟件測(cè)試過程流程如圖所示。圖1-1軟件測(cè)試過程流圖1.4軟件測(cè)試與軟件開發(fā)的關(guān)系
軟件開發(fā)與軟件測(cè)試都是軟件項(xiàng)目中非常重要的組成部分,軟件開發(fā)是生產(chǎn)制造軟件產(chǎn)品,軟件測(cè)試是檢驗(yàn)軟件產(chǎn)品是否合格,兩者密切合作才能保證軟件產(chǎn)品的質(zhì)量。軟件中出現(xiàn)的問題并不是由編碼引起的,軟件在編碼之前都會(huì)經(jīng)過問題定義、需求分析、軟件設(shè)計(jì)等階段,軟件中的問題也可能是前期階段引起的,如需求不清晰、軟件設(shè)計(jì)有紕漏等,因此在軟件項(xiàng)目的各個(gè)階段進(jìn)行測(cè)試是非常有必要的。測(cè)試人員從軟件項(xiàng)目規(guī)劃開始就參與其中,了解整個(gè)項(xiàng)目的過程,及時(shí)查找軟件中存在的問題,改善軟件的質(zhì)量。軟件測(cè)試在項(xiàng)目各個(gè)階段的作用如下所示:項(xiàng)目規(guī)劃階段:負(fù)責(zé)從單元測(cè)試到系統(tǒng)測(cè)試的整個(gè)測(cè)試階段的監(jiān)控。需求分析階段:確定測(cè)試需求分析,即確定在項(xiàng)目中需要測(cè)試什么,同時(shí)制訂系統(tǒng)測(cè)試計(jì)劃。概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)階段:制訂單元測(cè)試計(jì)劃和集成測(cè)試計(jì)劃。編碼階段:開發(fā)相應(yīng)的測(cè)試代碼和測(cè)試腳本。測(cè)試階段:實(shí)施測(cè)試并提交相應(yīng)的測(cè)試報(bào)告。軟件測(cè)試是貫穿于整個(gè)軟件開發(fā)的過程。在軟件開發(fā)的各個(gè)階段,測(cè)試人員必須制訂本階段的測(cè)試方案,把軟件開發(fā)和測(cè)試活動(dòng)集成到一起,如圖所示。圖1-2V模型的動(dòng)態(tài)過程
本章首先從軟件測(cè)試概念、目的、原則和過程方面講解軟件測(cè)試,然后講解軟件測(cè)試與軟件開發(fā)的關(guān)系,重點(diǎn)講解軟件測(cè)試在軟件開發(fā)各階段的作用。本章要點(diǎn)第二章軟件質(zhì)量與軟件測(cè)試了解軟件質(zhì)量的基本概念,重點(diǎn)圍繞軟件質(zhì)量的定義和模型展開;
熟悉軟件質(zhì)量工程體系概念,理解軟件質(zhì)量工程體系CM模型;
了解軟件質(zhì)量的六個(gè)要素。本章要點(diǎn)
目
錄2.1軟件質(zhì)量定義
2.2軟件質(zhì)量模型
2.3軟件質(zhì)量工程體系
2.4軟件質(zhì)量度量
2.5軟件質(zhì)量標(biāo)準(zhǔn)體系2.1軟件質(zhì)量的定義概括地說,軟件質(zhì)量就是“軟件產(chǎn)品滿足用戶或規(guī)定顯性需求或隱性需求的程度”。具體地說,軟件質(zhì)量是軟件符合明確敘述的功能和性能需求、文檔中明確描述的開發(fā)標(biāo)準(zhǔn)以及所有專業(yè)開發(fā)的軟件都應(yīng)具有的隱含特征的程度,包括內(nèi)部質(zhì)量、過程質(zhì)量、外部質(zhì)量和使用質(zhì)量。軟件質(zhì)量定義強(qiáng)調(diào)以下三點(diǎn):軟件需求是度量軟件質(zhì)量的基礎(chǔ),與需求不一致意味著軟件質(zhì)量不高。制定的標(biāo)準(zhǔn)定義了一組指導(dǎo)軟件開發(fā)的準(zhǔn)則,如果沒有遵守這些準(zhǔn)則,幾乎肯定會(huì)導(dǎo)致質(zhì)量不高。通常有一組沒有展示的隱含性需求(如期望軟件容易維護(hù))。如果軟件滿足明確描述的需求,但不滿足隱含的需求,那么軟件的質(zhì)量仍然值得懷疑。2.2軟件質(zhì)量模型早在1976年,由Boehm等人提出軟件質(zhì)量模型的分層方案。1979年,McCall等人改進(jìn)Boehm質(zhì)量模型后又提出了一種軟件質(zhì)量模型。軟件質(zhì)量模型中的質(zhì)量概念基于11個(gè)特性,而這11個(gè)特性分別對(duì)應(yīng)軟件產(chǎn)品的運(yùn)行、修正、轉(zhuǎn)移。McCall等人認(rèn)為,特性是軟件質(zhì)量的反映,軟件屬性可用做評(píng)價(jià)準(zhǔn)則,定量化地度量軟件屬性可知軟件質(zhì)量的優(yōu)劣。McCall等人的質(zhì)量特性屬性包括:正確性、可靠性、效率、完整性、可用性、可維護(hù)性、可測(cè)試性、靈活性、可移植性、可重用性、互聯(lián)性。2.3軟件質(zhì)量工程體系軟件質(zhì)量控制是一組由開發(fā)組織使用的程序和方法,使用它可在規(guī)定的資金投入和時(shí)間限制的條件下,提供滿足客戶質(zhì)量要求的軟件產(chǎn)品,并持續(xù)不斷地改善開發(fā)過程和開發(fā)組織本身,以提高將來生產(chǎn)高質(zhì)量軟件產(chǎn)品的能力。根據(jù)這個(gè)定義,我們可以看到:軟件質(zhì)量控制是開發(fā)組織執(zhí)行的一系列過程。軟件質(zhì)量控制的目標(biāo)是以最低的代價(jià)獲得客戶滿意的軟件產(chǎn)品。對(duì)于開發(fā)組織本身來說軟件質(zhì)量控制的另一個(gè)目標(biāo)是從每一次開發(fā)過程中學(xué)習(xí),以便使軟件質(zhì)量控制一次比一次更好。2.3.1軟件質(zhì)量工程體系概念基于PDCA(即是計(jì)劃Plan、實(shí)施Do、檢查Check、處理Act四個(gè)詞英文前綴的縮寫)的全面統(tǒng)計(jì)質(zhì)量控制(TotalStatisticalQualityControl,TSQC,全面統(tǒng)計(jì)質(zhì)量控制)模型,是我國實(shí)際采用的模型之一,基于PDCA的全面統(tǒng)計(jì)質(zhì)量控制模型圖如圖所示。2.3.2軟件質(zhì)量工程體系模型圖2-1基于PDCA的全面統(tǒng)計(jì)質(zhì)量控制模型圖軟件質(zhì)量保證(SoftwareQualityAssure,SQA)是建立一套有計(jì)劃、有系統(tǒng)的方法,來向管理層保證擬定出的標(biāo)準(zhǔn)、步驟、實(shí)踐和方法能夠正確地被所有項(xiàng)目所采用。軟件質(zhì)量保證的目的是使軟件過程對(duì)于管理人員來說是可見的。由于軟件質(zhì)量保證(SQA)是CMM(軟件能力成熟度)2級(jí)中的一個(gè)重要關(guān)鍵過程部分,它是貫穿于整個(gè)軟件過程的第三方獨(dú)立審查活動(dòng),在CMM的過程中充當(dāng)重要角色。SQA的目的是向管理者提供對(duì)軟件過程進(jìn)行全面監(jiān)控的手段,包括評(píng)審和審計(jì)軟件產(chǎn)品和活動(dòng),驗(yàn)證它們是否符合相應(yīng)的規(guī)程和標(biāo)準(zhǔn),同時(shí)向項(xiàng)目管理者提供這些評(píng)審和審計(jì)的結(jié)果。2.3.3軟件質(zhì)量保證體系2.4軟件質(zhì)量度量軟件業(yè)通過多年的實(shí)踐,總結(jié)出軟件質(zhì)量是人、過程和技術(shù)的函數(shù),即Q={M,P,T}。其中,Q表示軟件質(zhì)量,M表示人,P表示過程,T表示技術(shù)。影響軟件質(zhì)量因素圖如圖所示。圖2-2軟件質(zhì)量影響因素圖2.4軟件質(zhì)量度量要進(jìn)行軟件質(zhì)量評(píng)估,必須具備如下前提:目標(biāo)質(zhì)量有足夠清晰明確的描述。合適的評(píng)估手段。常見的幾種軟件質(zhì)量保證模型有:McCall模型、Boehm模型、FURPS模型、ISO9126。
2.4軟件質(zhì)量度量McCall模型圖2-3McCall模型圖McCall定義了一些評(píng)價(jià)準(zhǔn)則,這些準(zhǔn)則可對(duì)反映質(zhì)量特性的軟件屬性進(jìn)行分級(jí),并以此來估計(jì)軟件質(zhì)量特性的值。軟件屬性一般分級(jí)范圍是從0(最低)到10(最高)。主要評(píng)價(jià)準(zhǔn)則有可跟蹤性、完備性、一致性、安全性、容錯(cuò)性、準(zhǔn)確性、可審查性、可操作性、可訓(xùn)練性、簡(jiǎn)潔性、模塊性、自描述性、通用性、可擴(kuò)展性、硬件獨(dú)立性、通信共用性和數(shù)據(jù)共用性2.5軟件質(zhì)量標(biāo)準(zhǔn)體系2.5.1軟件質(zhì)量標(biāo)準(zhǔn)概述經(jīng)過數(shù)十年的發(fā)展,軟件行業(yè)形成的標(biāo)準(zhǔn)分工細(xì),體系繁多。根據(jù)軟件工程標(biāo)準(zhǔn)制定機(jī)構(gòu)的類別和標(biāo)準(zhǔn)適用的范圍,將軟件質(zhì)量標(biāo)準(zhǔn)分為5個(gè)級(jí)別,即國際標(biāo)準(zhǔn)、國家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)、企業(yè)標(biāo)準(zhǔn)和項(xiàng)目規(guī)范。很多標(biāo)準(zhǔn)的原始狀態(tài)可能是項(xiàng)目標(biāo)準(zhǔn)或企業(yè)標(biāo)準(zhǔn),但隨著行業(yè)發(fā)展與推進(jìn),它的權(quán)威性可能促使它發(fā)展成為行業(yè)、國家或國際標(biāo)準(zhǔn),因此這里所說的層次具有一定的相對(duì)性。2.5.2能力成熟模型能力成熟度模型(CapabilityMaturityModelforSoftware,英文縮寫為SW-CMM,簡(jiǎn)稱CMM),是對(duì)于軟件組織在定義、實(shí)施、度量、控制和改善其軟件過程的實(shí)踐中各個(gè)發(fā)展階段的描述。在美國國防部的指導(dǎo)下,由軟件開發(fā)團(tuán)體和軟件工程學(xué)院(SEI)及CarnegieMellon大學(xué)共同開發(fā)的。CMM的核心是把軟件開發(fā)視為一個(gè)過程,并根據(jù)這一原則對(duì)軟件開發(fā)和維護(hù)進(jìn)行過程監(jiān)控和研究,以使其更加科學(xué)化、標(biāo)準(zhǔn)化、使企業(yè)能夠更好地實(shí)現(xiàn)商業(yè)目標(biāo)。2.5.3軟件質(zhì)量標(biāo)準(zhǔn)與全面質(zhì)量管理美國的B.W.Boehm和R.Brown先后提出了三層次的評(píng)價(jià)度量模型:軟件質(zhì)量要素、準(zhǔn)則、度量。隨后G.Mruine提出了自己的軟件質(zhì)量度量SQM技術(shù),波音公司在軟件開發(fā)過程中采用了SQM技術(shù),日本的NEC公司也提出了自己的SQM工具,即SQMAT,并且在成本控制和進(jìn)度安排方面取得了良好的效果。第一層是軟件質(zhì)量要素,軟件質(zhì)量可分解成六個(gè)要素,這六個(gè)要素是軟件的基本特征:功能性、可靠性、易用性、效率性、可維護(hù)性、可移植性。
本章首先從軟件質(zhì)量定義和模型方面講解軟件質(zhì)量,然后詳細(xì)講解軟件質(zhì)量工程體系,最后重點(diǎn)講解軟件質(zhì)量度量和軟件質(zhì)量標(biāo)準(zhǔn)體系。本章要點(diǎn)第三章軟件測(cè)試的方法了解測(cè)試方法的分類;
掌握黑盒和白盒測(cè)試方法;
集成測(cè)試方法;
理解面向?qū)ο鬁y(cè)試方法和自動(dòng)化測(cè)試方法。本章要點(diǎn)3.1軟件測(cè)試方法綜述
3.2基于策略和過程的測(cè)試
3.3基于源代碼可見性的測(cè)試
3.4非功能測(cè)試
3.5面向?qū)ο鬁y(cè)試
3.6自動(dòng)化測(cè)試目
錄3.1軟件測(cè)試方法綜述針對(duì)測(cè)試策略和過程可以將測(cè)試分為:?jiǎn)卧獪y(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試。針對(duì)源代碼可見性可以將測(cè)試劃分為:黑盒測(cè)試、白盒測(cè)試和灰盒測(cè)試。針對(duì)軟件系統(tǒng)的性能或可用性可從非功能角度將測(cè)試劃分為:性能測(cè)試、壓力測(cè)試、負(fù)載測(cè)試、低資源測(cè)試、容量測(cè)試和重復(fù)性測(cè)試。針對(duì)軟件工程方法學(xué)劃分的角度分為:傳統(tǒng)軟件測(cè)試和面向?qū)ο筌浖y(cè)試。針對(duì)是否運(yùn)用測(cè)試工具測(cè)試分為:自動(dòng)化測(cè)試和手工測(cè)試。3.2基于策略和過程的測(cè)試從策略和過程的角度出發(fā)可以將測(cè)試分為:?jiǎn)卧獪y(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試。3.2.1單元測(cè)試單元測(cè)試是指,對(duì)軟件中的最小可測(cè)試單元在與程序其他部分相隔離的情況下,進(jìn)行檢查和驗(yàn)證的測(cè)試過程。單元測(cè)試的主要內(nèi)容包括:模塊接口測(cè)試、局部數(shù)據(jù)結(jié)構(gòu)測(cè)試、路徑測(cè)試、錯(cuò)誤處理測(cè)試、邊界測(cè)試等。集成測(cè)試階段是對(duì)每個(gè)模塊進(jìn)行單元測(cè)試后,按照總體設(shè)計(jì)時(shí)確定的軟件結(jié)構(gòu)圖和一定策略將測(cè)試完成的單元連接起來進(jìn)行的測(cè)試,也稱為綜合測(cè)試。1.集成測(cè)試分為四個(gè)階段:計(jì)劃、設(shè)計(jì)、實(shí)現(xiàn)和執(zhí)行階段。2.集成測(cè)試的策略:集成測(cè)試,按照是否一次性按照軟件結(jié)構(gòu)圖集成最終產(chǎn)品將測(cè)試策略分為非漸增式集成策略和漸增式集成策略分別進(jìn)行測(cè)試。而在以漸增式集成為策略的測(cè)試中,根據(jù)集成方向?qū)y(cè)試分為自頂向下、自底向上和三明治法。每種策略有其適用場(chǎng)景和優(yōu)缺點(diǎn)。3.2.2集成測(cè)試(1)非漸增式集成測(cè)試策略如圖3-1a所示,主控模塊需要調(diào)用下級(jí)模塊A、B、C和D,在集成測(cè)試過程中,將每個(gè)模塊完成單元測(cè)試后,一次性集成,進(jìn)行集成測(cè)試。而在這樣的集成測(cè)試過程中,需要兩種模塊輔助完成單元測(cè)試,分別是驅(qū)動(dòng)模塊和樁模塊。驅(qū)動(dòng)模塊:用以模擬被測(cè)模塊的上級(jí)模塊。驅(qū)動(dòng)模塊在集成測(cè)試中接受測(cè)試數(shù)據(jù),把相關(guān)的數(shù)據(jù)傳送給被測(cè)模塊,用以啟動(dòng)被測(cè)模塊,并輸出相應(yīng)的結(jié)果。如圖3-1b所示,D1、D2、D3、D4為驅(qū)動(dòng)模塊。樁模塊:也稱為存根程序,用以模擬被測(cè)模塊工作過程中所調(diào)用的模塊。樁模塊由被測(cè)模塊調(diào)用,它們一般只進(jìn)行很少的數(shù)據(jù)處理,例如打印入口和返回,以便于檢驗(yàn)被測(cè)模塊與其下級(jí)模塊的接口。如圖3-1b所示,S為樁模塊。圖3-1(a)驅(qū)動(dòng)模塊和樁模塊演示圖3-1(b)驅(qū)動(dòng)模塊和樁模塊演示(2)增量式集成測(cè)試策略增量式集成測(cè)試策略主要有:自頂向下集成、自底向上集成、三明治集成;除以上幾種外,還有如下策略:基于功能集成,基于風(fēng)險(xiǎn)集成,基于分布式集成等。增量式集成測(cè)試是一種按照軟件結(jié)構(gòu)圖運(yùn)用不同的集成策略逐步集成以及逐步測(cè)試的方法。在集成的過程中,隨著不同集成策略的逐步推進(jìn),就可能將錯(cuò)誤分散暴露出來,便于找出問題,并且及時(shí)修改,能夠及時(shí)發(fā)現(xiàn)錯(cuò)誤,并且對(duì)錯(cuò)誤進(jìn)行定位1)自頂向下集成功能分解是集成測(cè)試的基礎(chǔ),軟件結(jié)構(gòu)圖是總體設(shè)計(jì)的成果,集成測(cè)試是在軟件結(jié)構(gòu)圖的基礎(chǔ)上進(jìn)行集成。無論是在何種各種集成策略中,每個(gè)獨(dú)立單元均已經(jīng)完成了單元測(cè)試。那么,基于軟件結(jié)構(gòu)圖的集成策略,其目標(biāo)是測(cè)試已通過獨(dú)立測(cè)試的單元,集成起來后的接口。在集成測(cè)試中,集成順序上需要確保編譯正確,并且有可參考的變量取值范圍和單元名稱。自頂向下集成首先要集成主控模塊,然后從軟件控制層次結(jié)構(gòu)出發(fā),按照由頂層到底層的集成策略進(jìn)行集成,可以采用深度優(yōu)先或者廣度優(yōu)先進(jìn)行測(cè)試,主要驗(yàn)證接口的穩(wěn)定性。具體實(shí)施過程如下:①確定所有的將要集成在一起的單元已經(jīng)通過了單元測(cè)試。②選擇的集成測(cè)試的策略,在這里采用深度優(yōu)先的方法。③對(duì)主控制軟件單元A進(jìn)行測(cè)試,使用測(cè)試用被調(diào)用模擬子模塊S1和S2來代替單元A原本實(shí)際所調(diào)用的軟件單元B和C,然后對(duì)軟件單元A進(jìn)行測(cè)試,如圖3-3所示。④使用實(shí)際的軟件單元B代替中的被調(diào)用模擬子模塊S1,并使用S3代替軟件單元B原本實(shí)際所調(diào)用的軟件單元D,然后對(duì)集成B后的軟件結(jié)構(gòu)進(jìn)行測(cè)試,在集成的過程中,必須進(jìn)行回歸測(cè)試,如圖3-4所示。圖3-3被調(diào)用模塊S1和S2
圖3-4模塊B代替S1⑤使用實(shí)際的軟件單元D代替被調(diào)用模擬子模塊S3,然后對(duì)集成D后的軟件結(jié)構(gòu)進(jìn)行測(cè)試,如圖3-5所示。⑥使用實(shí)際的軟件單元E代替被調(diào)用模擬子模塊S2,然后對(duì)集成C后的軟件結(jié)構(gòu)進(jìn)行測(cè)試,并使用S4代替C模塊的下級(jí)調(diào)用子模塊,如圖3-6所示。⑦使用實(shí)際的軟件單元E代替被調(diào)用模擬子模塊S4,然后對(duì)整個(gè)軟件系統(tǒng)進(jìn)行測(cè)試,如圖3-7所示。圖3-5模塊D代替S3圖3-6模塊C代替S2圖3-7模塊E代替S4自頂向下集成優(yōu)點(diǎn)是:
在測(cè)試過程中,能夠相對(duì)較早地驗(yàn)證主控模塊和判斷點(diǎn)。在一個(gè)功能劃分合理的模塊結(jié)構(gòu)中,關(guān)鍵判斷一般出現(xiàn)在較高的層次的模塊中的情況比較多,所以在較上層次的模塊中,會(huì)較早的遇到判斷結(jié)構(gòu)。如果在軟件中存在控制問題,盡早發(fā)現(xiàn)這類問題能夠減少之后的返工,所以這是十分必要的。
如果選用深度優(yōu)先組裝方式,可以按照軟件結(jié)構(gòu)圖首先呈現(xiàn)和驗(yàn)證一個(gè)完整的功能,可先對(duì)邏輯輸入分支進(jìn)行組裝和測(cè)試,檢查并避免潛在的錯(cuò)誤和缺陷,驗(yàn)證其功能的正確性,為以后對(duì)主要分支的組裝和測(cè)試提供了保證。
在測(cè)試的過程中,部分功能可較早得到證實(shí),能夠給開發(fā)者和用戶對(duì)于項(xiàng)目的實(shí)現(xiàn)帶來較大的信心。最多只需要一個(gè)驅(qū)動(dòng)模塊,減少了驅(qū)動(dòng)器開發(fā)的費(fèi)用。特定單元的驅(qū)動(dòng)器一般使用難以編碼的測(cè)試用例,并且與單元的接口高度耦合,這種設(shè)置限制了驅(qū)動(dòng)器和測(cè)試包的復(fù)用。而采用自頂向下的策略,最多只需要維護(hù)一個(gè)頂層模塊的驅(qū)動(dòng)器,盡管也會(huì)遇到不可復(fù)用的問題,但維護(hù)工作量相對(duì)較小。由于增量式測(cè)試和設(shè)計(jì)順序的一致性,因此可以和設(shè)計(jì)并行進(jìn)行。如果目標(biāo)環(huán)境存在變化,該方法可以比較靈活地適應(yīng)該環(huán)境變化。支持故障隔離。例如,假設(shè)A模塊的測(cè)試正確執(zhí)行,但是加入B模塊后,測(cè)試執(zhí)行失敗,那么可以確定,要么B模塊有問題,要么A模塊和B模塊的接口有錯(cuò)誤。自頂向下集成測(cè)試策略缺點(diǎn)是:樁的開發(fā)和維護(hù)成本較高。因?yàn)樵诿總€(gè)測(cè)試中都必須提供樁,并且隨著測(cè)試配置中使用的樁的數(shù)目增加,所以維護(hù)樁的成本將急劇上升。當(dāng)測(cè)試到底層模塊時(shí),當(dāng)?shù)讓幽K出現(xiàn)無法預(yù)計(jì)的錯(cuò)誤時(shí),可能會(huì)導(dǎo)致許多頂層模塊的修改,這破壞了已知完成的測(cè)試組件。推遲了底層模塊的驗(yàn)證,同時(shí)為了能夠有效地進(jìn)行測(cè)試,需要控制模塊具有比較高的可測(cè)試性。隨著底層模塊的不斷增加,整個(gè)系統(tǒng)越來越復(fù)雜,導(dǎo)致底層模塊的測(cè)試不充分,尤其是那些重用的模塊。自頂向下集成測(cè)試策略使用場(chǎng)景包括:
軟件結(jié)構(gòu)相對(duì)比較清晰和穩(wěn)定。
高層接口變化比較小。
底層接口未定義或經(jīng)??赡鼙恍薷摹?/p>
控制模塊具有較大的風(fēng)險(xiǎn),需要盡早測(cè)試和驗(yàn)證。
希望能夠盡早看到產(chǎn)品的系統(tǒng)基于需求的功能。
在極限編程中使用探索式開發(fā)風(fēng)格時(shí),也可以采用自頂向下的集成測(cè)試策略。2)自底向上集成在自底向上測(cè)試中不再使用樁,而使用模擬被測(cè)模塊上一層單元模塊的驅(qū)動(dòng)器或稱之為驅(qū)動(dòng)模塊。自底向上集成首先從軟件結(jié)構(gòu)圖的最底層,即葉子結(jié)點(diǎn)著手,在每個(gè)模塊進(jìn)行單元測(cè)試的前提下,并用專門編寫的驅(qū)動(dòng)程序與底層被測(cè)模塊相結(jié)合進(jìn)行測(cè)試。隨著測(cè)試的進(jìn)行,驅(qū)動(dòng)模塊被不斷替換,直到根據(jù)整個(gè)軟件結(jié)構(gòu)圖進(jìn)行測(cè)試結(jié)束以后。在自底向上的集成測(cè)試中很少產(chǎn)生額外代碼,但接口問題仍然存在?,F(xiàn)以軟件結(jié)構(gòu)圖(如前圖所示)為例進(jìn)行集成測(cè)試,具體實(shí)施過程如下所示:①確定所有的將要集成在一起的軟件單元都已經(jīng)通過了單元測(cè)試。②設(shè)計(jì)開發(fā)驅(qū)動(dòng)模塊D1,用來模擬軟件單元B調(diào)用軟件單元D的關(guān)系,然后把測(cè)試用驅(qū)動(dòng)模塊D1和軟件單元D集成到一起進(jìn)行測(cè)試,具體實(shí)施過程如圖3-9所示。③開發(fā)測(cè)試用驅(qū)動(dòng)模塊D2,用來模擬軟件單元A調(diào)用軟件單元B的關(guān)系,然后把測(cè)試用驅(qū)動(dòng)模塊D2與已經(jīng)通過測(cè)試的B和模塊D集成起來進(jìn)行測(cè)試,具體實(shí)施過程如圖3-10所示。④設(shè)計(jì)開發(fā)驅(qū)動(dòng)模塊D3,用來模擬軟件單元C調(diào)用軟件單元E的關(guān)系,然后把測(cè)試用驅(qū)動(dòng)模塊D3和軟件單元E集成到一起進(jìn)行測(cè)試,具體實(shí)施過程如圖3-11所示。⑤開發(fā)測(cè)試用驅(qū)動(dòng)模塊D4,用來模擬軟件單元A調(diào)用軟件單元C的關(guān)系,然后把測(cè)試用驅(qū)動(dòng)模塊D4與已經(jīng)通過測(cè)試的C和模塊E集成起來進(jìn)行測(cè)試,具體實(shí)施過程如圖3-12所示。圖3-9驅(qū)動(dòng)模塊D1圖3-10驅(qū)動(dòng)模塊D2圖3-11驅(qū)動(dòng)模塊D3圖3-12驅(qū)動(dòng)模塊D4⑥把軟件單元A與其他軟件單元一起集成,對(duì)整個(gè)系統(tǒng)進(jìn)行測(cè)試,具體實(shí)施過程如圖3-13所示。圖3-13整合測(cè)試優(yōu)點(diǎn):能夠盡早測(cè)試底層模塊功能??梢栽谌魏我粋€(gè)葉子節(jié)點(diǎn)已經(jīng)就緒的情況下進(jìn)行集成測(cè)試。在工作的最初可能對(duì)結(jié)構(gòu)圖中,不同分支并行進(jìn)行集成測(cè)試,在這一點(diǎn)上比使用自頂向下的集成效率高。由于驅(qū)動(dòng)模塊是額外編寫的,而不是實(shí)際模塊,因此對(duì)實(shí)際被測(cè)模塊的可測(cè)試性要求比自頂向下的集成策略要小得多。減少了開發(fā)樁模塊的工作量,在集成測(cè)試中,開發(fā)樁模塊的工作量遠(yuǎn)比開發(fā)驅(qū)動(dòng)模塊的工作量大。但為了模擬一些中斷或異常,可能還需要設(shè)計(jì)一定的樁模塊。支持故障隔離。缺點(diǎn):驅(qū)動(dòng)模塊的開發(fā)工作量較大。對(duì)高層模塊的驗(yàn)證推遲到最后階段,整個(gè)系統(tǒng)的功能在測(cè)試進(jìn)入最后階段才呈現(xiàn)出來。設(shè)計(jì)上的錯(cuò)誤不能及時(shí)發(fā)現(xiàn),尤其對(duì)于那些控制結(jié)構(gòu)在整個(gè)體系中非常關(guān)鍵的產(chǎn)品。隨著集成測(cè)試進(jìn)行到了頂層,整個(gè)系統(tǒng)將變得越來越復(fù)雜,并且對(duì)于底層的一些異常將很難覆蓋以及被發(fā)現(xiàn),而使用樁模塊將簡(jiǎn)單得多。使用場(chǎng)景:自底向上的集成測(cè)試方法適用于大部分采用結(jié)構(gòu)化方法設(shè)計(jì)的軟件產(chǎn)品,且產(chǎn)品的結(jié)構(gòu)相對(duì)比較簡(jiǎn)單。一般對(duì)于大型復(fù)雜的項(xiàng)目往往會(huì)綜合采用多種集成測(cè)試方法。對(duì)于具有如下屬性的產(chǎn)品,可以優(yōu)先考慮自底向上的集成測(cè)試策略。3)三明治集成三明治集成也稱混合式集成。由于自頂向下的集成測(cè)試策略和自底向上的集成測(cè)試策略都有各自的缺點(diǎn),因此綜合這兩者優(yōu)點(diǎn)的混合測(cè)試策略。三明治法便結(jié)合了二者的優(yōu)點(diǎn)。三明治集成法把系統(tǒng)劃分成3層,即頂層、目標(biāo)層(中間層)和底層,中間層為目標(biāo)層。測(cè)試時(shí),對(duì)目標(biāo)層上面的一層使用自頂向下的集成測(cè)試策略,對(duì)目標(biāo)層下面的一層使用自底向上的集成測(cè)試策略,最后測(cè)試在目標(biāo)層匯合?,F(xiàn)以結(jié)構(gòu)圖3-14為例進(jìn)行集成測(cè)試,具體實(shí)施過程如下所示:圖3-14三明治軟件結(jié)構(gòu)圖①首先選擇分界層,在此選擇M2-M3-M4層為界,在M2-M3-M4層以上采用自頂向下測(cè)試方法,在M2-M3-M4層以下采用自底向上測(cè)試方法。②M2-M3-M4層以上采用自頂向下測(cè)試方法,如圖3-15所示,即對(duì)M1模塊采用自頂向下測(cè)試,使用測(cè)試用被調(diào)用模擬子模塊S1、S2和S3來代替單元M1原本實(shí)際所調(diào)用的軟件單元M2、M3和M4,然后對(duì)軟件單元M1進(jìn)行測(cè)試,如圖3-16所示;然后將圖與中間層結(jié)合起來進(jìn)行集成測(cè)試。圖3-15頂層測(cè)試圖3-16
M1的樁模塊③在M2-M3-M4層以下采用自底向上測(cè)試方法,如圖3-17所示,即對(duì)M5、M6和M7采用自底向上測(cè)試,設(shè)計(jì)開發(fā)驅(qū)動(dòng)模塊D1,用來模擬軟件單元M3調(diào)用軟件單元M5的關(guān)系,然后把測(cè)試用驅(qū)動(dòng)模塊D1和軟件單元M5集成到一起進(jìn)行測(cè)試;同理設(shè)計(jì)開發(fā)驅(qū)動(dòng)模塊D2,用來模擬軟件單元M6調(diào)用軟件單元M7的關(guān)系,然后把測(cè)試用驅(qū)動(dòng)模塊D2和軟件單元M7集成到一起進(jìn)行測(cè)試具體實(shí)施過程如圖3-18所示:接下來,開發(fā)測(cè)試用驅(qū)動(dòng)模塊D3,用來模擬軟件單元M3調(diào)用軟件單元M6的關(guān)系,然后把測(cè)試用驅(qū)動(dòng)模塊D3與已經(jīng)通過測(cè)試的M6和M7集成起來進(jìn)行測(cè)試,具體實(shí)施過程如圖3-18所示;然后將通過測(cè)試的各個(gè)部分與中間層結(jié)合起來進(jìn)行測(cè)試。圖3-17底層測(cè)試圖3-18驅(qū)動(dòng)模塊④整合后測(cè)試策略如圖3-19所示。圖3-19三明治整個(gè)測(cè)試但上述方案不能充分測(cè)試中間層;比如,容易忽略M2和M4。所以,一般將策略做如下改進(jìn):選擇M3模塊為界,對(duì)模塊M3層(M3即M2-M3-M4層)上面使用自頂向下集成測(cè)試策略,模塊M3層下面使用自底向上集成測(cè)試策略,對(duì)M3層使用獨(dú)立測(cè)試策略(即對(duì)該層模塊設(shè)計(jì)樁模塊和驅(qū)動(dòng)模塊完成對(duì)目標(biāo)層的測(cè)試)。具體策略如圖3-20所示。圖3-20完善的整合策略優(yōu)點(diǎn):綜合了自頂向下和自底向上的兩種集成測(cè)試策略的優(yōu)點(diǎn)。缺點(diǎn):中間層在集成前測(cè)試不充分。三明治集成的使用范圍是大部分軟件開發(fā)項(xiàng)目。最大的缺點(diǎn)就是對(duì)中間層的測(cè)試不夠充分。適用場(chǎng)景:大部分軟件開發(fā)項(xiàng)目都可以使用這種集成策略。4)基于功能的集成?;诠δ芙嵌瘸霭l(fā),按照功能的關(guān)鍵程度對(duì)功能模塊進(jìn)行集成。優(yōu)點(diǎn):采用該方法,可以盡快看到關(guān)鍵功能的實(shí)現(xiàn),并驗(yàn)證關(guān)鍵功能的正確性。由于該方法在驗(yàn)證某個(gè)功能的時(shí)候,可能會(huì)同時(shí)加入多個(gè)組件,因此在進(jìn)度上比自底向上,自頂向下或三明治集成要短??梢詼p少驅(qū)動(dòng)的開發(fā),原因與自頂向下的集成策略類似。缺點(diǎn):對(duì)有些接口的測(cè)試不充分,會(huì)丟失許多接口錯(cuò)誤??赡軙?huì)有較大的冗余測(cè)試。5)基于風(fēng)險(xiǎn)集成基于風(fēng)險(xiǎn)的集成式基于這樣一個(gè)假設(shè),既系統(tǒng)風(fēng)險(xiǎn)最高的組件間接口往往是錯(cuò)誤集中的地方的假設(shè),因此盡早驗(yàn)證這些接口有助于加速系統(tǒng)的穩(wěn)定,從而增加對(duì)系統(tǒng)的信心。優(yōu)點(diǎn):具有風(fēng)險(xiǎn)的組件最早進(jìn)行驗(yàn)證,有助于系統(tǒng)的快速穩(wěn)定。缺點(diǎn):需要對(duì)各組件的風(fēng)險(xiǎn)有一個(gè)清晰的分析。其他還有基于分布式集成測(cè)試、分層集成策略、基干集成策略等等3.2.3確認(rèn)測(cè)試確認(rèn)測(cè)試又稱有效性測(cè)試。確認(rèn)測(cè)試的目的是向用戶表明系統(tǒng)能夠像預(yù)定的需求那樣工作。基本方法:通過上一步集成測(cè)試之后,軟件已完全組裝起來,接口方面的錯(cuò)誤也已排除,確認(rèn)測(cè)試即可開始。確認(rèn)測(cè)試的結(jié)果有兩種可能,一種是功能和性能指標(biāo)滿足軟件需求說明,用戶可以接受;另一種是軟件不滿足軟件需求說明,用戶無法接受。3.2.4系統(tǒng)測(cè)試系統(tǒng)測(cè)試是在所有單元、集成測(cè)試后,對(duì)系統(tǒng)的功能及性能的總體測(cè)試。系統(tǒng)測(cè)試的目的是驗(yàn)證最終軟件系統(tǒng)是否滿足用戶規(guī)定的需求。系統(tǒng)測(cè)試方法包括:功能測(cè)試、協(xié)議一致性測(cè)試、性能測(cè)試、壓力測(cè)試、容量測(cè)試、安全性測(cè)試、失效恢復(fù)測(cè)試、備份測(cè)試、GUI測(cè)試、健壯性測(cè)試、兼容性測(cè)試、易用性測(cè)試、安裝測(cè)試、文檔測(cè)試、在線幫助測(cè)試、數(shù)據(jù)轉(zhuǎn)換測(cè)試。3.2.5驗(yàn)收測(cè)試驗(yàn)收測(cè)試是部署軟件之前的最后一個(gè)測(cè)試操作。在軟件產(chǎn)品完成了單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試之后,產(chǎn)品發(fā)布之前所進(jìn)行的軟件測(cè)試活動(dòng)。它是最后一個(gè)測(cè)試階段,也稱為交付測(cè)試。實(shí)施驗(yàn)收測(cè)試的常用策略有:正式驗(yàn)收、非正式驗(yàn)收或Alpha測(cè)試、Beta測(cè)試。3.3基于源代碼可見性的測(cè)試從策略和過程的角度出發(fā)可以將測(cè)試分為:?jiǎn)卧獪y(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試。3.3.1黑盒測(cè)試1.黑盒測(cè)試的概念:黑盒測(cè)試(Black-boxTesting)又稱為數(shù)據(jù)驅(qū)動(dòng)測(cè)試或基于規(guī)格說明的測(cè)試。黑盒測(cè)試就是把程序看作一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,注重于測(cè)試軟件的功能性需求,測(cè)試者在軟件接口進(jìn)行測(cè)試,它只檢查程序功能是否按照規(guī)格說明書的規(guī)定正常使用、程序是否能接收輸入數(shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持?jǐn)?shù)據(jù)庫或文件的完整性。3.3.1黑盒測(cè)試2.黑盒測(cè)試方法:黑盒測(cè)試原則上采用窮舉輸入測(cè)試,只有把所有可能的輸入都作為測(cè)試數(shù)據(jù),才能查出程序中幾乎全部的錯(cuò)誤。常用的黑盒測(cè)試方法有等價(jià)類劃分法、邊界值法、因果圖法、決策表法、正交測(cè)試法、錯(cuò)誤推測(cè)法和場(chǎng)景法等,需要應(yīng)針對(duì)軟件開發(fā)項(xiàng)目的具體特點(diǎn),選擇合適的測(cè)試方法。(1)等價(jià)類劃分法圖3-22等價(jià)類劃分圖劃分等價(jià)類的6條原則在輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)的情況下,可以確定一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。例如:要求學(xué)生年齡為10~20歲,則10~20歲之間為有效等價(jià)類,小于10歲和大于20歲為兩個(gè)無效的等價(jià)類。在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”或“不可如何”的條件下,可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。在規(guī)定了輸入數(shù)據(jù)的一組值(假定為若干個(gè)),并且程序要對(duì)每一個(gè)輸入值分別處理的情況下,可確定若干有效等價(jià)類和一個(gè)無效等價(jià)類。例如:輸入條件說明學(xué)生的學(xué)位可為學(xué)士、碩士、博士三種之一。等價(jià)類劃分為:分別取學(xué)士、碩士、博士這三個(gè)值作為三個(gè)有效等價(jià)類。另外,把三種學(xué)位之外的任何學(xué)位作為無效等價(jià)類。在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確定一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。在確定已劃分的等價(jià)類中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類進(jìn)一步地劃分為更小的等價(jià)類。5)確定測(cè)試用例。等價(jià)類表建立后,從劃分出的等價(jià)類中按以下步驟確定測(cè)試用例。①為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號(hào)。②設(shè)計(jì)新的測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋的有效的等價(jià)類,重復(fù)這一步。直到所有的有效等價(jià)類都被覆蓋為止。③設(shè)計(jì)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無效的等價(jià)類,重復(fù)這一步。直到所有的無效等價(jià)類都被覆蓋為止。3.3.1黑盒測(cè)試等價(jià)類劃分法實(shí)例例1
設(shè)計(jì)學(xué)生檔案管理系統(tǒng),對(duì)于入學(xué)年份設(shè)置“日期檢查功能”,請(qǐng)運(yùn)用等價(jià)類測(cè)試法設(shè)計(jì)測(cè)試用例,繪制出等價(jià)類表,并為等價(jià)類編號(hào),并且設(shè)計(jì)測(cè)試用例,給出預(yù)期輸入,對(duì)于合理的輸入應(yīng)有必要提示,非法輸入也要進(jìn)行提醒。對(duì)于該系統(tǒng)的日期檢查功能說明如下:要求輸入以年月表示的日期。假設(shè)日期限定在2000年1月~2030年12月,并規(guī)定日期由6位數(shù)字字符組成,前4位表示年,后2位表示月?,F(xiàn)用等價(jià)類劃分法設(shè)計(jì)測(cè)試用例,“日期檢查功能”的測(cè)試用例等價(jià)類表見表3-1。設(shè)計(jì)等價(jià)類表,并進(jìn)行編號(hào)。3.3.1黑盒測(cè)試設(shè)計(jì)等價(jià)類表,并進(jìn)行編號(hào)。設(shè)計(jì)測(cè)試用例。表3-1中列出了編號(hào)分別為①、②、③的3個(gè)覆蓋所有的有效等價(jià)類和編號(hào)分別為④、⑤、⑥、⑦、⑧、⑨、⑩的7個(gè)覆蓋所有的無效等價(jià)類,設(shè)計(jì)的測(cè)試用例結(jié)果見表3-2。3.3.1黑盒測(cè)試劃分等價(jià)類的要求有如下幾點(diǎn):
測(cè)試完備合理、避免冗余。
劃分輸入條件、有效等價(jià)類和無效等價(jià)類重要的是將集合劃分為互不相交的一組子集。
整個(gè)集合完備。
子集互不相交,保證一種形式的無冗余性。
同一類中標(biāo)識(shí)(選擇)一個(gè)測(cè)試用例。同一等價(jià)類中,往往處理相同,“相同處理”映射到“相同的執(zhí)行路徑”。3.3.1黑盒測(cè)試(2)邊界值分析法邊界值分析法是以邊界情況的處理作為主要目標(biāo)專門設(shè)計(jì)測(cè)試用例的方法。
1)標(biāo)準(zhǔn)邊界值分析法。定義:有n個(gè)輸入變量,設(shè)計(jì)測(cè)試用例使得一個(gè)變量在數(shù)據(jù)有效區(qū)域內(nèi)取最大值(Max)、略小于最大值(Max-)、中間任一正常值(Normal)、略大于最小值(Min+)和最小值(Min)。對(duì)于有n個(gè)輸入變量的程序,一般性邊界值分析的測(cè)試用例個(gè)數(shù)為4n+1。例如:兩個(gè)輸入變量為a≤x≤b,d≤y≤c,且為整數(shù),采用上述測(cè)試方法進(jìn)行測(cè)試,其取值如圖3-24所示。圖3-24標(biāo)準(zhǔn)邊界值3.3.1黑盒測(cè)試標(biāo)準(zhǔn)邊界值分析法實(shí)例。例2使用標(biāo)準(zhǔn)邊界值分析法測(cè)試一個(gè)函數(shù)Test(intx,inty),該函數(shù)有兩個(gè)變量x和y均為整數(shù),x和y的取值范圍分別是100≤x≤200,50≤y≤150。解:相應(yīng)的測(cè)試用例表見表3-3。3.3.1黑盒測(cè)試2)健壯性邊界值分析法。健壯性是指在異常情況下,軟件還能正常運(yùn)行的能力。對(duì)于有n個(gè)輸入變量的程序,健壯性測(cè)試的測(cè)試用例個(gè)數(shù)為6n+1。例如兩個(gè)輸入變量為a≤x≤b,d≤y≤c,且為整數(shù),采用上述測(cè)試方法進(jìn)行測(cè)試,其取值如圖3-25所示。例3使用標(biāo)準(zhǔn)邊界值分析法測(cè)試一個(gè)函數(shù)Test(intx,inty),該函數(shù)有兩個(gè)變量x和y均為整數(shù),x和y的取值范圍分別是100≤x≤200,50≤y≤150。圖3-25健壯性邊界值分析3.3.1黑盒測(cè)試健壯性邊界值分析法實(shí)例。解:相應(yīng)的測(cè)試用例表見表3-4。只要有數(shù)據(jù)輸入的地方,一般就可以使用邊界值一般情況下等價(jià)類和邊界值共同使用,形成一套較為完善的方案。邊界值的數(shù)據(jù),本質(zhì)上屬于等價(jià)類的范疇,但是需要單獨(dú)進(jìn)行測(cè)試,這種冗余在工程中是必要的。3.3.1黑盒測(cè)試健壯性邊界值分析法實(shí)例。例4一個(gè)四位整數(shù)加法器,需求分析中要求:
第一個(gè)數(shù)和第二個(gè)數(shù)都是只能輸入-8888到8888之間的整數(shù);
對(duì)于輸入的小于-8888的數(shù)據(jù)或者大于8888的數(shù)據(jù),程序應(yīng)給出明確提示;
對(duì)于輸入的小數(shù)、字符等非法數(shù)據(jù),程序應(yīng)給出明確提示。請(qǐng)采用等價(jià)類方法,并且結(jié)合邊界值法設(shè)計(jì)測(cè)試用例,不考慮超出邊界的情況。3.3.1黑盒測(cè)試健壯性邊界值分析法實(shí)例例4解:①繪制等價(jià)類劃分表,見表3-5。3.3.1黑盒測(cè)試健壯性邊界值分析法實(shí)例。例4解:②按照上表給出有效測(cè)試用例和無效測(cè)試用例,見表3-6和表3-7。邊界值法需要測(cè)試以下數(shù)據(jù):-8888,-8887,1000.8887,8888一般,有數(shù)據(jù)輸入的地方,基本都可以使用邊界值法。3.3.1黑盒測(cè)試(2)因果圖法1)因果圖基本概述。因果圖法是一種適合于描述對(duì)于多種輸入條件的組合,對(duì)應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式的方法。它利用圖解法分析輸入條件的各種組合情況,從而設(shè)計(jì)測(cè)試用例的,適合于檢查程序輸入條件的各種組合情況。2)因果圖符號(hào)。因果圖的4種關(guān)系符號(hào)如下:
恒等關(guān)系符號(hào)如圖3-26a所示。若c1是1,則e1也為1,否則e1為0。
非關(guān)系符號(hào)如圖3-26b所示。若c1是1,則e1也為1,否則e1為0。
或關(guān)系符號(hào)如圖3-26c)所示。若c1或c2或c3是1,則e1為1,否則e1為0。
與關(guān)系符號(hào)如圖3-26d所示。若c1和c2都是1,則e1為1,否則e1為0。3.3.1黑盒測(cè)試(3)因果圖法2)因果圖符號(hào)。因果圖的4種關(guān)系符號(hào)如下:輸入約束如下:lE約束符號(hào)(異):a和a中至多有一個(gè)可能為1,即不能同時(shí)為1。E約束符號(hào)如圖3-28(a)所示。lI約束(或):a、b和c中至少有一個(gè)必須是1,即a、b、和c不能同時(shí)為0。I約束符號(hào)如圖3-28(b)所示。lO約束符號(hào)(唯一):4和6必須有一個(gè),且僅有一個(gè)為1。O約束符號(hào)如圖3-28(c)所示。lR約束符號(hào)(要求):4是1時(shí),b必須是1,即不可能a是1時(shí)b是0。R約束符號(hào)如圖3-28d所示。輸出約束如下:M輸出條件的約束符號(hào)(強(qiáng)制):若結(jié)果0是1,則結(jié)果b強(qiáng)制為0。M約束符號(hào)如圖3-28e所示。圖3-28因果圖約束符號(hào)利用因果圖導(dǎo)出測(cè)試用例需要經(jīng)過以下幾個(gè)步驟:①分析程序需求規(guī)格說明描述,找出原因和結(jié)果(原因常常是輸入條件或是輸入條件的等價(jià)類,結(jié)果是輸出條件),并且為每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。②分析程序需求規(guī)格說明描述中語義的內(nèi)容,找出原因和結(jié)果之間、原因和原因之間的關(guān)系,根據(jù)這些關(guān)系,繪制出因果圖。③在因果圖上用規(guī)定的圖形符號(hào)表明約束或限制條件。④把因果圖轉(zhuǎn)換為判定表。⑤以判定表的每一列作為依據(jù),根據(jù)其設(shè)計(jì)測(cè)試用例。圖3-30基本步驟3.3.1黑盒測(cè)試因果圖法實(shí)例。例5用因果圖法測(cè)試以下程序。程序的規(guī)格說明要求:輸入的第一個(gè)字符必須是A或B,第二個(gè)字符必須是一個(gè)數(shù)字,此情況下進(jìn)行文件的修改;如果第一個(gè)字符不是A或B,則給出信息L,如果第二個(gè)字符不是數(shù)字,則給出信息M。解:①根據(jù)題意。原因和結(jié)果如下:
原因
結(jié)果c1:第一列字符是A;
e1:修改文件;c2:第一列字符是B;
e2:給出信息L;c3:第二列字符是一數(shù)字。結(jié)果
e3:給出信息M。3.3.1黑盒測(cè)試因果圖法實(shí)例例5解:②程序規(guī)格說明因果圖如圖3-31所示。其中,11為中間狀態(tài),考慮到c1和c2不可能同時(shí)為1,因此,在c1和c2上施加E約束。圖3-31因果圖3.3.1黑盒測(cè)試因果圖法實(shí)例例5解:③根據(jù)因果圖繪制決策表,見表3-8。3.3.1黑盒測(cè)試因果圖法實(shí)例例5解:④對(duì)決策表化簡(jiǎn),并給出測(cè)試用例,見表3-9。3.3.1黑盒測(cè)試(4)決策表法
判定表由四個(gè)部分組成,如圖3-32所示。
條件:列出規(guī)格說明中的所有條件;一般認(rèn)為,條件的順序不影響組合結(jié)果。
動(dòng)作:列出了各種條件組合可能采取的操作(結(jié)果),這些操作的排列順序沒有約束。
條件組合:根據(jù)規(guī)格說明,進(jìn)行條件組合;即將所有可能情況下的真假值進(jìn)行組合。
動(dòng)作結(jié)果:列出在條件項(xiàng)的各種取值情況下應(yīng)該采取的動(dòng)作(結(jié)果)。圖3-32決策表四部分任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的動(dòng)作,在判定表中貫穿條件組合和動(dòng)作結(jié)果的一列,稱之為規(guī)則,如圖。判定表中列出多少組條件組合的取值,也便對(duì)應(yīng)多少條規(guī)則,即條件項(xiàng)和動(dòng)作項(xiàng)有多少列。判定表的化簡(jiǎn),即規(guī)則合并就是由兩條或多條規(guī)則合并為一條規(guī)則。如圖所示,兩規(guī)則動(dòng)作結(jié)果項(xiàng)一致,條件項(xiàng)類似,在1、2條件項(xiàng)分別取Y、N時(shí),無論條件3取何值,都執(zhí)行同一動(dòng)作。即要執(zhí)行的動(dòng)作與條件3無關(guān)。于是可合并。“-”表示與取值無關(guān)。與圖3-33a類似,在圖3-33b中,無關(guān)條件項(xiàng)“一”可包含其他條件項(xiàng)取值,具有相同動(dòng)作的規(guī)則可合并??紤]規(guī)則合理性的前提下的相同動(dòng)作是否具有合并的意義,合并后是否破壞規(guī)格說明合理性。圖3-33(a)化簡(jiǎn)前圖3-33(b)化簡(jiǎn)后判定表的建立步驟如下:①確定規(guī)則的個(gè)數(shù)。假如有n個(gè)條件(原因),每個(gè)條件有兩個(gè)取值真和假(即0和1),故有2n種規(guī)則。②列出所有的條件和動(dòng)作。③根據(jù)規(guī)格說明進(jìn)行條件組合,并填入表中。④根據(jù)規(guī)格說明條件組合對(duì)應(yīng)的動(dòng)作結(jié)果,將對(duì)應(yīng)的結(jié)果填入表中。⑤簡(jiǎn)化判定表,合并相似規(guī)則。適合使用判定表設(shè)計(jì)測(cè)試用例的條件如下:規(guī)格說明以條件組合形式給出,很容易轉(zhuǎn)換成判定表。條件的排列順序不影響執(zhí)行哪些操作。規(guī)則的排列順序不影響執(zhí)行哪些操作。每當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗(yàn)別的規(guī)則。如果某一規(guī)則得到滿足要執(zhí)行多個(gè)操作,這些操作的執(zhí)行順序無關(guān)緊要。例6某倉庫發(fā)貨方案如下:欠款時(shí)間在20天以內(nèi)(含)的,如果需求量不大于庫存量,則立即發(fā)貨,否則先按庫存發(fā)貨,進(jìn)貨后再補(bǔ)發(fā);欠款時(shí)間在20天以上60天以內(nèi)(含)的,如果需求量不大于庫存量,則先付款再發(fā)貨,否則不發(fā)貨;欠款時(shí)間在60天以上的,通知先還款。3.3.1黑盒測(cè)試
解:①確定條件和動(dòng)作。條件如下:<=20天;>60天;<庫存量行動(dòng)如下:先按庫存發(fā),進(jìn)貨后補(bǔ)貨;先付款再發(fā)貨;不發(fā)貨②確定決策表。決策表見表3-10。3.3.1黑盒測(cè)試
解:③化簡(jiǎn)決策表?;?jiǎn)結(jié)果見表3-11。3.3.1黑盒測(cè)試(5)錯(cuò)誤推測(cè)法錯(cuò)誤推測(cè)法的基本思想:基于直覺和經(jīng)驗(yàn)推測(cè)出錯(cuò)的可能類型,列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的情況的清單,然后依據(jù)清單來編寫測(cè)試用例;并且在閱讀規(guī)格說明時(shí)聯(lián)系程序員可能做的假設(shè)來確定測(cè)試用例。錯(cuò)誤猜測(cè)法并沒有固定的測(cè)試策略,而是一般依賴于測(cè)試人員的經(jīng)驗(yàn)、能力以及態(tài)度。如以下案例所示:3.3.1黑盒測(cè)試(5)錯(cuò)誤推測(cè)法
例7成績(jī)報(bào)告的程序中,采用錯(cuò)誤推測(cè)法還可補(bǔ)充設(shè)計(jì)一些測(cè)試用例。
程序是否把空格作為回答。
在回答記錄中混有標(biāo)準(zhǔn)答案記錄。
除了標(biāo)題記錄外,還有一些的記錄最后一個(gè)字符即不是2也不是3。
有兩個(gè)學(xué)生的學(xué)號(hào)相同。
試題數(shù)是負(fù)數(shù)。3.3.1黑盒測(cè)試(5)錯(cuò)誤推測(cè)法
例8對(duì)線性表(比如數(shù)組)排序的程序進(jìn)行測(cè)試,可推測(cè)列出以下幾項(xiàng)需要特別測(cè)試的情況。
輸入的線性表為空表。
表中只含有一個(gè)元素。
輸入表中所有元素已排好序。
輸入表已按逆序排好。
輸入表中部分或全部元素相同。3.3.1黑盒測(cè)試(5)錯(cuò)誤推測(cè)法
例9測(cè)試手機(jī)終端的通話功能,可以設(shè)計(jì)各種通話失敗的情況來補(bǔ)充測(cè)試用例。
無SIM卡插入時(shí)進(jìn)行呼出(非緊急呼叫)。
插入已欠費(fèi)SIM卡進(jìn)行呼出。
射頻器件損壞或無信號(hào)區(qū)域插入有效SIM卡呼出。
網(wǎng)絡(luò)正常,插入有效SIM卡,呼出無效號(hào)碼(如1、888、333333、不輸入任何號(hào)碼等)。
網(wǎng)絡(luò)正常,插入有效SIM卡,使用“快速撥號(hào)”功能呼出設(shè)置無效號(hào)碼的數(shù)字。3.3.2白盒測(cè)試白盒測(cè)試又稱為邏輯結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或基于程序的測(cè)試。它一般用來分析程序的內(nèi)部結(jié)構(gòu)。它依賴于程序邏輯結(jié)構(gòu),針對(duì)特定條件和循環(huán)設(shè)計(jì)測(cè)試用例,對(duì)程序的邏輯路徑進(jìn)行測(cè)試。通過在程序的不同點(diǎn)檢驗(yàn)程序,從而判斷實(shí)際運(yùn)行是否和預(yù)期一致。白盒測(cè)試原理如圖3-34所示。圖3-34白盒測(cè)試原理
1.白盒測(cè)試的關(guān)鍵點(diǎn)在不同的測(cè)試階段,白盒測(cè)試的重點(diǎn)是不同的。主要針對(duì)以下幾個(gè)階段:(1)在單元測(cè)試階段:以程序語法檢查、程序邏輯檢查、代碼檢查、邏輯覆蓋為主。(2)在集成測(cè)試階段:需要增加靜態(tài)結(jié)構(gòu)分析、靜態(tài)質(zhì)量度量、以接口測(cè)試為主。(3)在系統(tǒng)測(cè)試階段:在真實(shí)系統(tǒng)工作環(huán)境下通過與系統(tǒng)的需求規(guī)格說明書作比較,檢驗(yàn)完整的軟件配置項(xiàng)能否和系統(tǒng)正確連接,發(fā)現(xiàn)軟件與系統(tǒng);子系統(tǒng)設(shè)計(jì)文檔和軟件開發(fā)合同規(guī)定不符合或與之相矛盾或者違背的地方;驗(yàn)證系統(tǒng)是否滿足了需求規(guī)格說明的定義,找出與需求規(guī)格不相符合的地方,從而提出相對(duì)準(zhǔn)確和完善的方案,確保最終軟件系統(tǒng)滿足產(chǎn)品需求并且遵循系統(tǒng)設(shè)計(jì)的標(biāo)準(zhǔn)和規(guī)定,提高軟件質(zhì)量。(4)驗(yàn)收測(cè)試階段:按照需求開發(fā),體驗(yàn)該產(chǎn)品是否能夠滿足最終用戶的使用要求,用戶是否擁有良好的體驗(yàn),有沒有達(dá)到原設(shè)計(jì)水平,完成的功能怎樣,是否符合用戶的需求,以達(dá)到預(yù)期目的為主。3.3.2白盒測(cè)試2.白盒測(cè)試的目的:
保證程序中所有關(guān)鍵路徑均得到測(cè)試,防止由于沒有執(zhí)行的路徑在實(shí)際投入運(yùn)行后執(zhí)行到的意外情況發(fā)生。
衡量測(cè)試完整性。
程序內(nèi)部所有條件的邏輯值真、假兩個(gè)分支的覆蓋。
檢查內(nèi)存泄漏。
異常處理的分支語句的執(zhí)行。
解決實(shí)驗(yàn)條件下很難搭建真實(shí)測(cè)試環(huán)境的問題。
檢查代碼符合一定的編碼規(guī)范,減少由于編碼不規(guī)范而引入的錯(cuò)誤3.3.2白盒測(cè)試3.白盒測(cè)試的分類:白盒測(cè)試可以分為靜態(tài)測(cè)試技術(shù)和動(dòng)態(tài)測(cè)試技術(shù)。靜態(tài)測(cè)試:不要求在計(jì)算機(jī)上實(shí)際執(zhí)行所測(cè)試的程序,主要以一些人工的模擬技術(shù)對(duì)軟件進(jìn)行分析和測(cè)試,如代碼檢查法、靜態(tài)結(jié)構(gòu)分析法等;動(dòng)態(tài)測(cè)試:是通過輸入一組預(yù)先按照一定的測(cè)試準(zhǔn)則構(gòu)造實(shí)際數(shù)據(jù)來動(dòng)態(tài)運(yùn)行程序,達(dá)到發(fā)現(xiàn)程序錯(cuò)誤的過程。白盒測(cè)試中的動(dòng)態(tài)分析技術(shù)主要有邏輯覆蓋法和基本路徑測(cè)試法。3.3.2白盒測(cè)試3.白盒測(cè)試的分類:(1)靜態(tài)測(cè)試技術(shù)1)代碼檢查法。①代碼走查;②桌面檢查;③代碼審查。(2)靜態(tài)結(jié)構(gòu)分析法:1)數(shù)據(jù)流分析(DataFlowAnalysis)法2)基于約束的分析(Constraint-basedAnalysis)法3)抽象解析(AbstractInterpretation)法4)類型與結(jié)果分析(TypeandEffectAnalysis)法3.3.2白盒測(cè)試3.白盒測(cè)試的分類:(3)動(dòng)態(tài)測(cè)試技術(shù)1)邏輯覆蓋法設(shè)計(jì)測(cè)試用例??梢詫⑦壿嫺采w技術(shù)分為以下幾種:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋。程序如下:publicclassTest{publicvoidtest(intx,inty,intz){doublem=0;doublen=0;//語句塊1if((x>4)&&(z<13)){m=x*y-1;n=Math.sqrt(m);}//語句塊2if((x==6)||(y>5)){n=x*y+10;}//語句塊3n=n%3;}}3.3.2白盒測(cè)試3.白盒測(cè)試的分類:根據(jù)上述程序繪制程序的軟件流程圖,并對(duì)相應(yīng)的控制流進(jìn)行編號(hào),如圖3-35所示。該程序中分別有兩個(gè)判定條件:M={x>4andz<13}和N={x==6ory>5};圖3-35程序流程圖3.3.2白盒測(cè)試3.白盒測(cè)試的分類:①語句覆蓋語句覆蓋就是設(shè)計(jì)若干測(cè)試用例使得程序中每一個(gè)語句至少被執(zhí)行一次。語句覆蓋在測(cè)試中主要發(fā)現(xiàn)缺陷或錯(cuò)誤語句。該方法具有以下特點(diǎn):程序中每個(gè)語句至少執(zhí)行一次。對(duì)程序執(zhí)行邏輯的覆蓋率低,屬于邏輯覆蓋方法中最弱的覆蓋方式。無須測(cè)試程序邏輯中的分支情況。無須測(cè)試程序邏輯分支中的判斷和判定組合情況。無須測(cè)試程序執(zhí)行邏輯中的不同路徑。3.白盒測(cè)試的分類:②判定覆蓋判定覆蓋是設(shè)計(jì)若干測(cè)試用例使得每個(gè)判定的真假分支至少被執(zhí)行一次。判定覆蓋只考慮整個(gè)表達(dá)式的取值,并不考慮到表達(dá)式內(nèi)部變量(條件)的取值。特點(diǎn):滿足判定覆蓋的測(cè)試用例一定滿足語句覆蓋對(duì)整個(gè)判定的最終取值(真或假)進(jìn)行測(cè)試,但判定內(nèi)部每一個(gè)子表達(dá)式(條件)的取值未被考慮3.白盒測(cè)試的分類:③條件覆蓋條件覆蓋是設(shè)計(jì)若干測(cè)試用例,使得條件中的每個(gè)判定語句中的每個(gè)表達(dá)式(條件)的真假至少執(zhí)行一次。特點(diǎn):彌補(bǔ)了判定覆蓋的不足——對(duì)整個(gè)判定的最終取值(真或假)進(jìn)行度量條件覆蓋不一定能滿足判定覆蓋條件覆蓋不一定能滿足語句覆蓋3.3.2白盒測(cè)試3.白盒測(cè)試的分類:④條件/判定覆蓋判定條件覆是設(shè)計(jì)若干測(cè)試用例,使判定中的每個(gè)條件的所有可能(真/假)至少出現(xiàn)一次,并且每個(gè)判定本身的判定結(jié)果(真/假)也至少出現(xiàn)一次。特點(diǎn):綜合了條件覆蓋和判定覆蓋的特點(diǎn)滿足條件判定覆蓋的用例一定滿足語句覆蓋滿足條件判定覆蓋的用例一定滿足條件覆蓋滿足條件判定覆蓋的用例一定滿足判定覆蓋條件判定覆蓋沒有考慮各判定結(jié)果(真/假)組合情況,不滿足路徑覆蓋未考慮判定中各條件不同取值的組合情況,不滿足條件組合覆蓋3.3.2白盒測(cè)試3.白盒測(cè)試的分類:⑤條件組合覆蓋條件組合覆蓋使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一次。條件組合只針對(duì)同一個(gè)判斷語句內(nèi)存在多個(gè)條件的情況,讓這些條件的取值進(jìn)行笛卡爾乘積組合。不同的判斷語句內(nèi)的條件取值之間無須組合。對(duì)于單條件的判斷語句,只需要滿足自己的所有取值即可。覆蓋一定滿足判定覆蓋、條件覆蓋、判定條件覆蓋。條件組合情況如下所示:x>4,z<13 x>4,z>=13 x<=4,z<13 x<=4,z>=13x==6,y>5 x==6,y<=5 x!=6,y>5 x!=6,y<=5測(cè)試用例編號(hào)輸入數(shù)據(jù)預(yù)期輸出執(zhí)行路徑CASE1x=6,z=5,y=6m=35,n=1P1(a-c-e)CASE2x=6,z=15,y=5m=0,n=1P2(a-b-e)CASE3x=3,z=11,y=7m=0,n=1P3(a-b-e)CASE4x=3,z=14,y=5m=0,n=0P4(a-b-d)特點(diǎn):滿足條件組合覆蓋的用例一定滿足語句覆蓋。滿足條件組合覆蓋的用例一定滿足條件覆蓋。滿足條件組合覆蓋的用例一定滿足判定覆蓋。滿足條件組合覆蓋的用例一定滿足條件判定覆蓋。條件組合覆蓋沒有考慮各判定結(jié)果(真或假)組合情況,不滿足路徑覆蓋。條件組合數(shù)量大,設(shè)計(jì)測(cè)試用例的時(shí)間花費(fèi)較多。3.白盒測(cè)試的分類:⑥路徑覆蓋選取足夠多的測(cè)試數(shù)據(jù),使程序的每條可能路徑都至少執(zhí)行一次(如果程序圖中有環(huán),則要求每個(gè)環(huán)至少經(jīng)過一次)。3.3.2白盒測(cè)試2)基本路徑測(cè)試法設(shè)計(jì)測(cè)試用例?;韭窂綔y(cè)試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性(環(huán)形復(fù)雜度),導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測(cè)試用例的方法。控制流圖是退化了的流程圖,簡(jiǎn)稱流圖。將流程圖中執(zhí)行語句、判定語句、開始、結(jié)束等退化成節(jié)點(diǎn),將流程線退化成一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)的帶箭頭的弧線。流圖基本結(jié)構(gòu)如圖3-36所示.圖3-36流圖基本結(jié)構(gòu)3.3.2白盒測(cè)試3.白盒測(cè)試的分類:2)基本路徑測(cè)試法設(shè)計(jì)測(cè)試用例?;韭窂綔y(cè)試法的重點(diǎn)內(nèi)容如下:
程序的控制流圖:描述程序控制流的一種圖示方法。
程序環(huán)形復(fù)雜度:McCabe復(fù)雜性度量。從程序的環(huán)路復(fù)雜性可導(dǎo)出程序基本路徑集合中的獨(dú)立路徑條數(shù),這是確定程序中每個(gè)可執(zhí)行語句至少執(zhí)行一次所必需的測(cè)試用例數(shù)目的上界。
導(dǎo)出測(cè)試用例:根據(jù)圈復(fù)雜度和程序結(jié)構(gòu)設(shè)計(jì)用例數(shù)據(jù)輸入和預(yù)期結(jié)果。
準(zhǔn)備測(cè)試用例:確?;韭窂郊械拿恳粭l路徑的執(zhí)行。程序控制流圖(可簡(jiǎn)稱流圖)是對(duì)程序流程圖進(jìn)行簡(jiǎn)化后得到的,它突出表示程序控制流的結(jié)構(gòu)。程序控制流圖是描述程序控制流的一種方式,其要點(diǎn)如下;
圖形符號(hào):圓圈代表一個(gè)結(jié)點(diǎn),表示一個(gè)或多個(gè)無分支的語句或源程序語句。
3.3.2白盒測(cè)試
3.白盒測(cè)試的分類:2)基本路徑測(cè)試法設(shè)計(jì)測(cè)試用例。程序控制流邊和點(diǎn)圈定的閉合部分叫作區(qū)域。當(dāng)對(duì)區(qū)域計(jì)數(shù)時(shí),圖形外的一個(gè)部分也應(yīng)記為一個(gè)區(qū)域。
判斷語句中的條件為復(fù)合條件(即條件表達(dá)式由一個(gè)或多個(gè)邏輯運(yùn)算符連接的邏輯表達(dá)式(aandb)時(shí),則需要改變復(fù)合條件的判斷為一系列只有單個(gè)條件的嵌套的判斷。在規(guī)劃測(cè)試路徑之前,要將復(fù)雜條件分解。圖為將符合條件“與”和“或”轉(zhuǎn)化為簡(jiǎn)單條件的過程如圖3-37所示。圖3-373.3.2白盒測(cè)試3.白盒測(cè)試的分類:2)基本路徑測(cè)試法設(shè)計(jì)測(cè)試用例?;韭窂綔y(cè)試方法包括以下4個(gè)步驟:①畫出程序的控制流圖。②計(jì)算程序的環(huán)形復(fù)雜度,導(dǎo)出程序基本路徑集中的獨(dú)立路徑條數(shù),這是確定程序中每個(gè)可執(zhí)行語句至少執(zhí)行一次所必需的測(cè)試用例數(shù)目的上界??捎萌缦氯N方法之一來計(jì)算環(huán)形復(fù)雜度:控制流圖中區(qū)域的數(shù)量對(duì)應(yīng)于環(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ù)量。3.3.2白盒測(cè)試3.白盒測(cè)試的分類:2)基本路徑測(cè)試法設(shè)計(jì)測(cè)試用例?;韭窂綔y(cè)試方法包括以下4個(gè)步驟:③導(dǎo)出基本路徑集,確定程序的獨(dú)立路徑。④根據(jù)步驟③中的獨(dú)立路徑,設(shè)計(jì)測(cè)試用例的輸入數(shù)據(jù)和預(yù)期輸出。仍然采用上一小節(jié)的程序繪制程序流程圖,現(xiàn)根據(jù)程序畫出其控制流圖,具體如圖3-38所示。3.3.2白盒測(cè)試3.白盒測(cè)試的分類:2)基本路徑測(cè)試法設(shè)計(jì)測(cè)試用例。①畫出如圖3-38所示的程序控制流圖。圖3-38控制流圖3.3.2白盒測(cè)試3.白盒測(cè)試的分類:2)基本路徑測(cè)試法設(shè)計(jì)測(cè)試用例。②計(jì)算程序的環(huán)形復(fù)雜度,導(dǎo)出程序基本路徑集中的獨(dú)立路徑條數(shù);將環(huán)路復(fù)雜度定義為控制流圖中的區(qū)域數(shù),如圖3-39所示。圖3-39控制流圖區(qū)域數(shù)3.3.2白盒測(cè)試3.白盒測(cè)試的分類:2)基本路徑測(cè)試法設(shè)計(jì)測(cè)試用例。③導(dǎo)出基本路徑集,確定程序的獨(dú)立路徑:①—②—⑤—⑦—⑧①—②—③—⑤—⑦—⑧①—②—③—④—⑤—⑦—⑧①—②—③—⑤—⑥—⑧①—②—③—④—⑤—⑥—⑦—⑧3.3.2白盒測(cè)試3.白盒測(cè)試的分類:2)基本路徑測(cè)試法設(shè)計(jì)測(cè)試用例。④根據(jù)步驟③中的獨(dú)立路徑,設(shè)計(jì)測(cè)試用例的輸入數(shù)據(jù)和預(yù)期輸出,測(cè)試用例見表3-18。3.3.3灰盒測(cè)試灰盒測(cè)試方法是在合適的測(cè)試階段或者節(jié)點(diǎn)采用黑白結(jié)合,互相彌補(bǔ)的測(cè)試方法,達(dá)到恰到好處,互補(bǔ)盲點(diǎn)的作用。灰盒測(cè)試也稱作灰盒分析?;液袦y(cè)試在現(xiàn)代測(cè)試?yán)碚撝?,反映了在白盒測(cè)試中交叉使用黑盒測(cè)試的方法,在黑盒測(cè)試中交叉使用白盒測(cè)試的方法,灰盒測(cè)試是介于白盒測(cè)試和黑盒測(cè)試之間的測(cè)試。3.4非功能測(cè)試非功能測(cè)試包括性能、負(fù)載、安全、可靠性和其他很多方面。非功能測(cè)試有時(shí)也被稱作行為測(cè)試或質(zhì)量測(cè)試。非功能測(cè)試的眾多屬性的一個(gè)普遍特征是一般不能直接測(cè)量。這些屬性是被間接地測(cè)量,例如用失敗率來衡量可靠性或圈復(fù)雜度,用設(shè)計(jì)審議指標(biāo)來評(píng)估可測(cè)性。3.4.1性能測(cè)試性能測(cè)試目的是驗(yàn)證軟件系統(tǒng)是否能夠達(dá)到用戶提出的性能指標(biāo),同時(shí)發(fā)現(xiàn)軟件系統(tǒng)中存在的性能瓶頸,優(yōu)化軟件,最后起到優(yōu)化系統(tǒng)的目的。性能測(cè)試類型包括壓力測(cè)試、負(fù)載測(cè)試,強(qiáng)度測(cè)試,容量測(cè)試等。因?yàn)楦鲗傩灾g在范圍上有重疊,很多非功能屬性的名字是可以通用的。3.4非功能測(cè)試3.4.2壓力測(cè)試一般來說,壓力測(cè)試的目的是要通過模擬比預(yù)期要大的工作負(fù)載來讓只在峰值條件下才出現(xiàn)的缺陷曝光。內(nèi)存泄漏、競(jìng)態(tài)條件、數(shù)據(jù)庫中的線程或數(shù)據(jù)行之間的死鎖條件、和其他同步問題等等,都是壓力測(cè)試能發(fā)掘出來的常見缺陷。壓力測(cè)試主要是為了測(cè)試硬件系統(tǒng)是否達(dá)到需求文檔設(shè)計(jì)的性能目標(biāo),譬如在一定時(shí)期內(nèi),系統(tǒng)的cpu利用率,內(nèi)存使用率,磁盤I/O吞吐率,網(wǎng)絡(luò)吞吐量等。
3.4非功能測(cè)試3.4.3負(fù)載測(cè)試負(fù)載測(cè)試是要探討在高峰或高于正常水平的負(fù)載下,系統(tǒng)或應(yīng)用軟件會(huì)發(fā)生什么情況。例如,一個(gè)網(wǎng)絡(luò)服務(wù)的負(fù)載測(cè)試會(huì)試圖模擬幾千名用戶同時(shí)連線使用該服務(wù)。測(cè)試的主要是軟件系統(tǒng)的性能,譬如軟件在一定時(shí)期內(nèi),最大支持多少并發(fā)用戶數(shù),軟件請(qǐng)求出錯(cuò)率等。
3.4非功能測(cè)試3.4.4低資源測(cè)試低資源測(cè)試是要確定當(dāng)系統(tǒng)在重要資源(內(nèi)存、硬盤空間或其他系統(tǒng)定義的資源)降低或完全沒有的情況下會(huì)出現(xiàn)的狀況。重要的是要預(yù)估將會(huì)發(fā)生什么,例如為文件存盤而無足夠空間或一個(gè)應(yīng)用程序的內(nèi)存分配失敗時(shí)將會(huì)發(fā)生什么。3.4非功能測(cè)試3.4.5容量測(cè)試與負(fù)載測(cè)試非常相似,容量測(cè)試一般是用來執(zhí)行服務(wù)器或服務(wù)測(cè)試。目的是要確定系統(tǒng)最大承受量,譬如系統(tǒng)最大用戶數(shù),最大存儲(chǔ)量,最多處理的數(shù)據(jù)流量等。容量模型通常建立在容量測(cè)試數(shù)據(jù)基礎(chǔ)上。有了這些數(shù)據(jù),運(yùn)營團(tuán)隊(duì)(Operations)就能定計(jì)劃什么時(shí)候增加系統(tǒng)容量:要么增加單機(jī)資源,如RAM、CPU和磁盤空間等;要么干脆增加計(jì)算機(jī)數(shù)目。3.4非功能測(cè)試3.4.6重復(fù)性測(cè)試重復(fù)性測(cè)試是為了確定重復(fù)某一程序或場(chǎng)景的效果而采取的一項(xiàng)簡(jiǎn)單而“粗暴”(bruteforce)的技術(shù)。這個(gè)技術(shù)的精髓是循環(huán)運(yùn)行測(cè)試直到達(dá)到一個(gè)具體界限或臨界值,或者是不妙的境況。舉個(gè)例子,一個(gè)操作也許會(huì)泄漏20字節(jié)的內(nèi)存。這并不足以在軟件的其他地方產(chǎn)生任何問題,但如果測(cè)試連續(xù)運(yùn)行2000次,泄漏就可以增長(zhǎng)到4萬字節(jié)。如果是提供核心功能的程序有泄漏,那么這個(gè)重復(fù)性測(cè)試就抓到了只有長(zhǎng)時(shí)間連續(xù)運(yùn)行該軟件才能發(fā)現(xiàn)的內(nèi)存泄漏。通常有更好的辦法來發(fā)現(xiàn)內(nèi)存泄漏,但有時(shí)候,這種簡(jiǎn)單“粗暴”的方法也可以很有效。3.5面向?qū)ο鬁y(cè)試軟件工程兩大方法學(xué)分別為結(jié)構(gòu)化方法和面向?qū)ο蠓椒?。在黑白盒測(cè)試方法介紹過程中,是以結(jié)構(gòu)化方法為依據(jù)進(jìn)行具體方法講解。3.5.1面向?qū)ο鬁y(cè)試的概念面向?qū)ο筌浖y(cè)試以面向?qū)ο蠓治鲈O(shè)計(jì)方法為依據(jù),對(duì)項(xiàng)目進(jìn)行面向?qū)ο鬁y(cè)試,主要針對(duì)類級(jí)測(cè)試、場(chǎng)景法測(cè)試、基于狀態(tài)測(cè)試三個(gè)方面展開。3.5.2面向?qū)ο鬁y(cè)試的理論基礎(chǔ)在面向?qū)ο鬁y(cè)試中,類是最小的可測(cè)試單位。對(duì)象擁有狀態(tài),測(cè)試方法必須考慮這些。類測(cè)試和單元測(cè)試是等價(jià)的,在測(cè)試過程中,要測(cè)試類中的操作和類的狀態(tài)行為。3.5.3面向?qū)ο鬁y(cè)試與傳統(tǒng)測(cè)試?yán)碚摰年P(guān)系傳統(tǒng)測(cè)試方法和面向?qū)ο鬁y(cè)試方法基礎(chǔ)理論是具有一致性和適用性的。3.5.4面向?qū)ο鬁y(cè)試的方法面向?qū)ο篌w系結(jié)構(gòu)導(dǎo)致封裝了協(xié)作類的一系列分層子系統(tǒng)的產(chǎn)生。面向?qū)ο筌浖臏y(cè)試用例設(shè)計(jì)方法還在不斷改進(jìn),然而,對(duì)于面向?qū)ο鬁y(cè)試用例的設(shè)計(jì),Berard已經(jīng)提出了總體方法[Ber93]:每個(gè)測(cè)試用例都應(yīng)該被唯一地標(biāo)識(shí),并明確地與被測(cè)試的類相關(guān)聯(lián)。3.5.5面向?qū)ο鬁y(cè)試的過程傳統(tǒng)的測(cè)試計(jì)算機(jī)軟件的策略是從小到大,即從小型測(cè)試到大型測(cè)試,從部分到整體的過程。3.5.5面向?qū)ο鬁y(cè)試的過程根據(jù)面向?qū)ο蠓治雠c設(shè)計(jì)特點(diǎn),面向?qū)ο蟮拈_發(fā)模型突破了傳統(tǒng)的瀑布模型,將開發(fā)分為面向?qū)ο蠓治觯∣OA),面向?qū)ο笤O(shè)計(jì)(OOD),和面向?qū)ο缶幊蹋∣OP)三個(gè)階段。針對(duì)這種開發(fā)模型,結(jié)合傳統(tǒng)的測(cè)試步驟的劃分,我們把面向?qū)ο蟮能浖y(cè)試分為:面向?qū)ο蠓治龅臏y(cè)試,面向?qū)ο笤O(shè)計(jì)的測(cè)試,面向?qū)ο缶幊痰臏y(cè)試,面向?qū)ο髥卧獪y(cè)試,面向?qū)ο蠹蓽y(cè)試,面向?qū)ο笙到y(tǒng)測(cè)試。1.面向?qū)ο蠓治龅臏y(cè)試:面向?qū)ο蠓治觯∣OA)是運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行系統(tǒng)分析。其基本任務(wù)即運(yùn)用面向?qū)ο蠓椒?,?duì)問題域和系統(tǒng)責(zé)任進(jìn)行分析和理解,找出描述問題域及系統(tǒng)責(zé)任所需的對(duì)象,定義對(duì)象的屬性、操作以及它們之間的關(guān)系。其目標(biāo)是建立一個(gè)符合問題域、滿足用戶需求的OOA模型。對(duì)OOA的測(cè)試,應(yīng)從以下方面考慮:
對(duì)認(rèn)定的對(duì)象的測(cè)試。對(duì)認(rèn)定的結(jié)構(gòu)的測(cè)試。對(duì)認(rèn)定的主題的測(cè)試。對(duì)定義的屬性和實(shí)例關(guān)聯(lián)的測(cè)試。對(duì)定義的服務(wù)和消息關(guān)聯(lián)的測(cè)試。3.5.5面向?qū)ο鬁y(cè)試的過程3.5.5面向?qū)ο鬁y(cè)試的過程2.面向?qū)ο笤O(shè)計(jì)的測(cè)試:面向?qū)ο笤O(shè)計(jì)(OOD)以O(shè)OA為基礎(chǔ)歸納出類,并建立類結(jié)構(gòu)或進(jìn)一步構(gòu)造成類庫,實(shí)現(xiàn)分析結(jié)果對(duì)問題空間的抽象。由此可見,OOD是對(duì)OOA的進(jìn)一步細(xì)化和更高層的抽象。所以,OOD與OOA的界限通常是難以嚴(yán)格區(qū)分的。OOD確定類和類結(jié)構(gòu)不僅是滿足當(dāng)前需求分析的要求,即通過OOA進(jìn)行分析的成果,更重要的是通過重新組合或加以適當(dāng)?shù)难a(bǔ)充,能方便實(shí)現(xiàn)功能的重用和擴(kuò)增,以不斷適應(yīng)用戶的要求。對(duì)OOD的測(cè)試,應(yīng)從如下四方面考慮:
對(duì)認(rèn)定的類的測(cè)試。
對(duì)構(gòu)造的類層次結(jié)構(gòu)的測(cè)試。
對(duì)類庫的支持的測(cè)試。
面向?qū)ο缶幊痰臏y(cè)試。3.5.5面向?qū)ο鬁y(cè)試的過程3.面向?qū)ο蟮膯卧獪y(cè)試:?jiǎn)卧獪y(cè)試的依據(jù)是詳細(xì)設(shè)計(jì),單元測(cè)試應(yīng)對(duì)模塊內(nèi)所有重要的控制路徑設(shè)計(jì)測(cè)試用例,以便發(fā)現(xiàn)模塊內(nèi)部的錯(cuò)誤。單元測(cè)試多采用白盒測(cè)試技術(shù),系統(tǒng)內(nèi)多個(gè)模塊可以并行地進(jìn)行測(cè)試。4.面向?qū)ο蟮募蓽y(cè)試對(duì)OO軟件的集成測(cè)試有兩種不同策略,第一種稱為基于線程的測(cè)試,集成對(duì)回應(yīng)系統(tǒng)的一個(gè)輸入或事件所需的一組類,每個(gè)線程被集成并分別測(cè)試,應(yīng)用回歸測(cè)試以保證沒有產(chǎn)生副作用。第二種稱為基于使用的測(cè)試,通過測(cè)試那些幾乎不使用服務(wù)器類的類(稱為獨(dú)立類)而開始構(gòu)造系統(tǒng),在獨(dú)立類測(cè)試完成后,下一層的使用獨(dú)立類的類(稱為依賴類)被測(cè)試。這個(gè)依賴類層次的測(cè)試序列一直持續(xù)到構(gòu)造完整個(gè)系統(tǒng)。3.5.5面向?qū)ο鬁y(cè)試的過程5.面向?qū)ο蟮南到y(tǒng)測(cè)試通過單元測(cè)試和集成測(cè)試,僅能保證軟件開發(fā)的功能得以實(shí)現(xiàn)。但不能確認(rèn)在實(shí)際運(yùn)行時(shí),它是否滿足用戶的需要。為此,必須進(jìn)行系統(tǒng)測(cè)試。系統(tǒng)測(cè)試是將通過確認(rèn)測(cè)試的軟件,作為整個(gè)計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試時(shí),應(yīng)該參考OOA分析的結(jié)果,對(duì)應(yīng)描述的對(duì)象、屬性和各種服務(wù),檢測(cè)軟件是否能夠完全重現(xiàn)問題空間。系統(tǒng)測(cè)試不僅是檢測(cè)軟件的整體行為表現(xiàn),從另一個(gè)側(cè)面看,也是對(duì)軟件分析和設(shè)計(jì)的再確認(rèn)。面向?qū)ο鬁y(cè)試的整體目標(biāo)是以最小的工作量發(fā)現(xiàn)最多的錯(cuò)誤——和傳統(tǒng)軟件測(cè)試的目標(biāo)是一致的,但是OO測(cè)試的策略有很大不同。測(cè)試的視角擴(kuò)大到包括復(fù)審分析和設(shè)計(jì)模型,此外,測(cè)試的焦點(diǎn)從結(jié)構(gòu)化分析方法中的模塊移向了面向?qū)ο蠓椒ㄖ械念悺?.5.6類級(jí)測(cè)試在面向?qū)ο筌浖y(cè)試中,類是最小的可測(cè)試單元,類測(cè)試是由封裝在類中的操作和類的狀態(tài)行為驅(qū)動(dòng)的。由于面向?qū)ο蟮某绦蛑锌瑟?dú)立被測(cè)試的單元通常是一個(gè)獨(dú)立的類,按照測(cè)試思路可以將其分為幾個(gè)層次進(jìn)行測(cè)試:方法層次的測(cè)試、類層次的測(cè)試、類樹層次的測(cè)試。1.方法層次的測(cè)試對(duì)于類當(dāng)中的一個(gè)方法,可以將其看作關(guān)于輸入?yún)?shù)和該方法所在類的成員變量中的一個(gè)函數(shù),如果該方法內(nèi)聚性很高,功能也比較復(fù)雜,可以對(duì)其單獨(dú)測(cè)試。一般只有少數(shù)方法需要進(jìn)行單獨(dú)測(cè)試,一般很多方法與成員變量具有很強(qiáng)的耦合性。對(duì)單個(gè)成員方法的測(cè)試類似于傳統(tǒng)軟件測(cè)試中對(duì)單個(gè)函數(shù)的測(cè)試,很多基于結(jié)構(gòu)化方法的傳統(tǒng)測(cè)試技術(shù),可以應(yīng)用于類當(dāng)中的方法測(cè)試中。2.類層次的測(cè)試類中的很多方法會(huì)通過成員變量產(chǎn)生相互依賴的關(guān)系,這將導(dǎo)致很難對(duì)單個(gè)方法進(jìn)行充分的測(cè)試。相對(duì)合理的測(cè)試是將相互依賴的成員方法放在一起進(jìn)行測(cè)試,這就是類層次測(cè)試。3.類樹層次的測(cè)試面向?qū)ο笾杏欣^承和多態(tài)現(xiàn)象,所以對(duì)子類的測(cè)試通常不能限定在子類中定義的成員變量和成員方法上,還要考慮父類對(duì)子類的影響。3.5.7場(chǎng)景法測(cè)試基于場(chǎng)景的測(cè)試關(guān)心用戶做什么,而不是產(chǎn)品做什么。這意味著需要通過面向?qū)ο蠓治鲞^程中用例圖中的用例捕獲用戶必須完成的任務(wù),然后在測(cè)試時(shí)使用它們及其變體。場(chǎng)景可以發(fā)現(xiàn)交互錯(cuò)誤?;趫?chǎng)景的測(cè)試傾向于用單一的測(cè)試檢查多個(gè)子系統(tǒng),用戶并不限制自己一次只使用一個(gè)子系統(tǒng)。場(chǎng)景法的使用步驟如下:1)分析用戶需求,在面向?qū)ο蠓治鲈O(shè)計(jì)中,以用例圖腳本說明中的正常腳本和異常腳本為依據(jù)。根據(jù)需求陳述描述出程序的基本流以及備選流;2)根據(jù)基本流和備選流的組合生成不同的場(chǎng)景;3)針對(duì)每一個(gè)場(chǎng)景生成對(duì)應(yīng)的測(cè)試用例;4)把多余的測(cè)試用例去掉,針對(duì)測(cè)試用例設(shè)計(jì)測(cè)試數(shù)據(jù)。場(chǎng)景是事件流的一個(gè)實(shí)例,由基本流或基本流和備選流中的步驟組成,表明了用戶執(zhí)行系統(tǒng)的操作序列。根據(jù)業(yè)務(wù)調(diào)研,將用例圖以及用例腳本中的基本流和異常流提取出來,對(duì)應(yīng)繪制出如圖所示的方案,將基本流程和備選流程進(jìn)行組合,具體測(cè)試路徑如圖3-40所示:圖3-40場(chǎng)景拆分3.5.7場(chǎng)景法測(cè)試?yán)?:在某購物網(wǎng)站用例圖中,針對(duì)“添加購物車”用例進(jìn)行用例腳本說明,詳細(xì)說明如下:用例名稱:添加購物車。用例描述:顧客有購買傾向,但由于某種情況不立即進(jìn)行購買,可執(zhí)行添加購物車商品操作。參與者:顧客。優(yōu)先級(jí):3。前置條件:①正確登錄賬號(hào);②勾選對(duì)應(yīng)商品的屬性;③添加數(shù)量正確且?guī)齑孀銐颉:笾脳l件:①添加成功;②庫存不足;③添加數(shù)量錯(cuò)誤?;静僮髁鞒蹋侯櫩驼_登錄賬號(hào),瀏覽商品時(shí)對(duì)有意向的商品進(jìn)行屬性勾選,選擇添加數(shù)量進(jìn)行添加,顯示添加購物車成功。3.5.7場(chǎng)景法測(cè)試可選操作流程:①顧客瀏覽商品并進(jìn)行添加購物車操作時(shí),提示請(qǐng)先登錄賬號(hào);②進(jìn)行添加購物車操作時(shí)沒有對(duì)商品的相應(yīng)屬性進(jìn)行選擇;③顧客進(jìn)行添加購物車操作時(shí),在添加數(shù)量因?yàn)檎`操作輸入了非正數(shù),提示輸入正確數(shù)量;④顧客進(jìn)行添加購物車操作時(shí),所添加數(shù)量超過庫存數(shù),顯示庫存不足。結(jié)合上述腳本說明,確定場(chǎng)景法中的基本流和備選流見表3-20。3.5.7場(chǎng)景法測(cè)試根據(jù)基本流和備選流的組合生成不同的場(chǎng)景,見表3-21所示:根據(jù)場(chǎng)景生成對(duì)應(yīng)的測(cè)試用例,見表3-22:3.5.7場(chǎng)景法測(cè)試根據(jù)場(chǎng)景生成對(duì)應(yīng)的測(cè)試用例,見表3-22:3.5.7場(chǎng)景法測(cè)試針對(duì)測(cè)試用例設(shè)計(jì)測(cè)試數(shù)據(jù),見表3-23。3.5.8基于狀態(tài)測(cè)試基于狀態(tài)的測(cè)試,是一種基于模型的測(cè)試,一般是用狀態(tài)圖來描述事件序列;常用于事件驅(qū)動(dòng)的系統(tǒng)中,這些系統(tǒng)往往具有實(shí)時(shí)狀態(tài)變化的特點(diǎn)?;跔顟B(tài)測(cè)試的使用步驟如下:
列出所有對(duì)象包含的狀態(tài)圖(可以以面向?qū)ο蠼V械臓顟B(tài)圖為依據(jù))。
列出不同狀態(tài)之間的轉(zhuǎn)換。
確定引起各個(gè)狀態(tài)轉(zhuǎn)換的事件。
分析各個(gè)狀態(tài)轉(zhuǎn)換過程中發(fā)生的事件,并繪制狀態(tài)轉(zhuǎn)換圖。
根據(jù)狀態(tài)轉(zhuǎn)換圖編寫測(cè)試用例。3.5.8基于狀態(tài)測(cè)試?yán)?:圖為車票預(yù)售系統(tǒng)中,“車票”類的狀態(tài)圖。(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年信息系統(tǒng)項(xiàng)目管理師考試對(duì)象及目標(biāo)分析試題及答案
- 數(shù)據(jù)庫用戶管理流程試題及答案
- 2025年軟件設(shè)計(jì)師考試的高級(jí)試題及答案
- 城鎮(zhèn)公路系統(tǒng)建設(shè)中的挑戰(zhàn)與機(jī)遇試題及答案
- 機(jī)電工程重要考點(diǎn)與試題答案
- 監(jiān)理師考試適應(yīng)策略試題及答案
- 大跨度空間結(jié)構(gòu)行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書
- 環(huán)保學(xué)習(xí)桌椅租賃服務(wù)行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書
- 智能化人造革庫存管理系統(tǒng)行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書
- 柔道大獎(jiǎng)賽行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書
- SQL中數(shù)據(jù)標(biāo)識(shí)與完整性的維護(hù)試題及答案
- 2025越南語等級(jí)考試AG級(jí)試卷:詞匯辨析與語法應(yīng)用
- 2024年濟(jì)南長(zhǎng)清產(chǎn)業(yè)發(fā)展投資控股集團(tuán)有限公司招聘筆試真題
- 2025護(hù)理團(tuán)體標(biāo)準(zhǔn)解讀
- 風(fēng)電場(chǎng)輸變電設(shè)備典型故障及異常處理手冊(cè)
- 四川省(蓉城名校聯(lián)盟)新高考2022級(jí)高三適應(yīng)性考試語文試題答案
- 人類面臨的主要環(huán)境問題第一課時(shí)課件高一下學(xué)期地理湘教版(2019)必修二
- 第23課《“蛟龍”探海》課件-2024-2025學(xué)年統(tǒng)編版語文七年級(jí)下冊(cè)第六單元
- 【MOOC期末】《Academic Writing 學(xué)術(shù)英語寫作》(東南大學(xué))中國大學(xué)慕課答案
- TSG+11-2020鍋爐安全技術(shù)規(guī)程
- 倉儲(chǔ)績(jī)效考核實(shí)施細(xì)則倉庫人員績(jī)效考核內(nèi)容與評(píng)分標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論