版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
測(cè)試流程依次如下:
1.需求:閱讀需求,理解需求,與客戶(hù)、開(kāi)發(fā)、架構(gòu)多方交流,深入了解需求。--testingteam
2.測(cè)試計(jì)劃:根據(jù)需求估算測(cè)試所需資源(人力、設(shè)備等)、所需時(shí)間、功能點(diǎn)劃分、如何合理分配安排資源等。---testingleaderortestingmanager
3.用例設(shè)計(jì):根據(jù)測(cè)試計(jì)劃、任務(wù)分配、功能點(diǎn)劃分,設(shè)計(jì)合理的測(cè)試用例。---testingleader,seniortester
4.執(zhí)行測(cè)試:根據(jù)測(cè)試用例的詳細(xì)步驟,執(zhí)行測(cè)試用例。--everytester(主要是初級(jí)測(cè)試人員)
5.執(zhí)行結(jié)果記錄和bug記錄:對(duì)每個(gè)case記錄測(cè)試的結(jié)果,有bug的在測(cè)試管理工具中編寫(xiě)bug記錄。--everytester(主要是初級(jí)測(cè)試人員)
6.defecttracking:追蹤leader分配給你追蹤的bug.直到bugfixed。--everytester
7.測(cè)試報(bào)告:通過(guò)不斷測(cè)試、追蹤,直到被測(cè)軟件達(dá)到測(cè)試需求要求,并沒(méi)有重大bug.
8.用戶(hù)體驗(yàn)、軟件發(fā)布等……詳細(xì)測(cè)試步驟:
1.書(shū)寫(xiě)測(cè)試計(jì)劃
2.審核測(cè)試計(jì)劃,未通過(guò)返回第一步
3.書(shū)寫(xiě)測(cè)試用例;
4.審核測(cè)試用例,未通過(guò)返回第三步
5.測(cè)試人員按照測(cè)試用例逐項(xiàng)進(jìn)行測(cè)試活動(dòng),并且將測(cè)試結(jié)果填寫(xiě)在測(cè)試報(bào)告上;(測(cè)試報(bào)告必須覆蓋所有測(cè)試用例)
6.測(cè)試過(guò)程中發(fā)現(xiàn)bug,將bug填寫(xiě)在bugzilla上發(fā)給集成部經(jīng)理;(bug狀態(tài)NEW)
7.集成部經(jīng)理接到bugzilla發(fā)過(guò)來(lái)的bug
7.1對(duì)于明顯的并且可以立刻解決的bug,將bug發(fā)給開(kāi)發(fā)人員;(bug狀態(tài)ASSIGNED);
7.2對(duì)于不是bug的提交,集成部經(jīng)理通知測(cè)試設(shè)計(jì)人員和測(cè)試人員,對(duì)相應(yīng)文檔進(jìn)行修改;(bug狀態(tài)RESOLVED,決定設(shè)置為INVALID);
7.3對(duì)于目前無(wú)法修改的,將這個(gè)bug放到下一輪次進(jìn)行修改;(bug狀態(tài)RESOLVED,決定設(shè)置為REMIND)
8.開(kāi)發(fā)人員接到發(fā)過(guò)來(lái)的bug立刻修改;(bug狀態(tài)RESOLVED,決定設(shè)置為FIXED)
9.測(cè)試人員接到bugzilla發(fā)過(guò)來(lái)的錯(cuò)誤更改信息,應(yīng)該逐項(xiàng)復(fù)測(cè),填寫(xiě)新的測(cè)試報(bào)告(測(cè)試報(bào)告必須覆蓋上一次中所有REOPENED的測(cè)試用例);
10.如果復(fù)測(cè)有問(wèn)題返回第六步(bug狀態(tài)REOPENED)
11.否則關(guān)閉這項(xiàng)BUG(bug狀態(tài)CLOSED)
12.本輪測(cè)試中測(cè)試用例中有95%一次性通過(guò)測(cè)試,結(jié)束測(cè)試任務(wù);
13.本輪測(cè)試中發(fā)現(xiàn)的錯(cuò)誤有98%經(jīng)過(guò)修改并且通過(guò)再次測(cè)試(即bug狀態(tài)CLOSED),返回第五步進(jìn)行新的一輪測(cè)試;
14.測(cè)試任務(wù)結(jié)束后書(shū)寫(xiě)測(cè)試總結(jié)報(bào)告;
15.正規(guī)測(cè)試結(jié)束進(jìn)入非正規(guī)測(cè)試,首先是ALPHA測(cè)試,請(qǐng)公司里其他非技術(shù)人員以用戶(hù)角色使用系統(tǒng)。發(fā)現(xiàn)bug通知測(cè)試人員,測(cè)試人員以正規(guī)流程處理bug事件;
16.然后是BETA測(cè)試,請(qǐng)用戶(hù)代表進(jìn)行測(cè)試。發(fā)現(xiàn)bug通知測(cè)試人員,測(cè)試人員以正規(guī)流程處理bug事件。(又叫用戶(hù)體驗(yàn)測(cè)試UAT)Bugzilla是Mozilla公司提供的一款開(kāi)源的免費(fèi)Bug(錯(cuò)誤或是缺陷)追蹤系統(tǒng),用來(lái)幫助你管理軟件開(kāi)發(fā),建立完善的BUG跟蹤體系。Bugzilla是一開(kāi)源BugTrackingSystem,是專(zhuān)門(mén)為Unix定制開(kāi)發(fā)的。但是在windows平臺(tái)下依然可以成功安裝使用.Bugzilla是一個(gè)搜集缺陷的數(shù)據(jù)庫(kù)。它讓用戶(hù)報(bào)告軟件的缺陷從而把它們轉(zhuǎn)給合適的開(kāi)發(fā)者。開(kāi)發(fā)者能使用bugzilla保持一個(gè)要做事情的優(yōu)先表,還有時(shí)間表和跟蹤相關(guān)性。不是所有的"bugs"都是軟件缺陷。一些數(shù)據(jù)庫(kù)中的內(nèi)容是作為增強(qiáng)的請(qǐng)求(RFE)。一個(gè)RFE是一個(gè)嚴(yán)重級(jí)別字段被設(shè)為"enhancement"的"Bug".人們常說(shuō)"bug",實(shí)際上意思是Bugzilla中的記錄,所以RFEs經(jīng)常被稱(chēng)作bug。黑盒測(cè)試黑盒測(cè)試也稱(chēng)功能測(cè)試,它是通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用。在測(cè)試中,把程序看作一個(gè)不能打開(kāi)的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測(cè)試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試。黑盒測(cè)試法注重于測(cè)試軟件的功能需求,主要試圖發(fā)現(xiàn)下列幾類(lèi)錯(cuò)誤。功能不正確或遺漏;界面錯(cuò)誤;輸入和輸出錯(cuò)誤;數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)錯(cuò)誤;性能錯(cuò)誤;初始化和終止錯(cuò)誤等。從理論上講,黑盒測(cè)試只有采用窮舉輸入測(cè)試,把所有可能的輸入都作為測(cè)試情況考慮,才能查出程序中所有的錯(cuò)誤。實(shí)際上測(cè)試情況有無(wú)窮多個(gè),人們不僅要測(cè)試所有合法的輸入,而且還要對(duì)那些不合法但可能的輸入進(jìn)行測(cè)試。這樣看來(lái),完全測(cè)試是不可能的,所以我們要進(jìn)行有針對(duì)性的測(cè)試,通過(guò)制定測(cè)試案例指導(dǎo)測(cè)試的實(shí)施,保證軟件測(cè)試有組織、按步驟,以及有計(jì)劃地進(jìn)行。黑盒測(cè)試行為必須能夠加以量化,才能真正保證軟件質(zhì)量,而測(cè)試用例就是將測(cè)試行為具體量化的方法之一。具體的黑盒測(cè)試用例設(shè)計(jì)方法包括等價(jià)類(lèi)劃分法、邊界值分析法、錯(cuò)誤推測(cè)法、因果圖法、判定表驅(qū)動(dòng)法、正交試驗(yàn)設(shè)計(jì)法、功能圖法、場(chǎng)景法等。等價(jià)類(lèi)劃分的辦法是把程序的輸入域劃分成若干部分(子集),然后從每個(gè)部分中選取少數(shù)代表性數(shù)據(jù)作為測(cè)試用例。每一類(lèi)的代表性數(shù)據(jù)在測(cè)試中的作用等價(jià)于這一類(lèi)中的其他值。該方法是一種重要的,常用的黑盒測(cè)試用例設(shè)計(jì)方法。劃分等價(jià)類(lèi)1)劃分等價(jià)類(lèi):等價(jià)類(lèi)是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的,并合理地假定:測(cè)試某等價(jià)類(lèi)的代表值就等于對(duì)這一類(lèi)其它值的測(cè)試.因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價(jià)類(lèi),在每一個(gè)等價(jià)類(lèi)中取一個(gè)數(shù)據(jù)作為測(cè)試的輸入條件,就可以用少量代表性的測(cè)試數(shù)據(jù).取得較好的測(cè)試結(jié)果.等價(jià)類(lèi)劃分可有兩種不同的情況:有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)。有效等價(jià)類(lèi):是指對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō)是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合.利用有效等價(jià)類(lèi)可檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說(shuō)明中所規(guī)定的功能和性能。無(wú)效等價(jià)類(lèi):與有效等價(jià)類(lèi)的定義恰巧相反。設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮這兩種等價(jià)類(lèi).因?yàn)?,軟件不僅要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn).這樣的測(cè)試才能確保軟件具有更高的可靠性。劃分等價(jià)類(lèi)準(zhǔn)則2)劃分等價(jià)類(lèi)的方法:下面給出六條確定等價(jià)類(lèi)的原則。①在輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)的情況下,則可以確立一個(gè)有效等價(jià)類(lèi)和兩個(gè)無(wú)效等價(jià)類(lèi)。②在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確立一個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi).③在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi)。④在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對(duì)每一個(gè)輸入值分別處理的情況下,可確立n個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi)。⑤在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個(gè)有效等價(jià)類(lèi)(符合規(guī)則)和若干個(gè)無(wú)效等價(jià)類(lèi)(從不同角度違反規(guī)則)。⑥在確知已劃分的等價(jià)類(lèi)中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類(lèi)進(jìn)一步的劃分為更小的等價(jià)類(lèi)。3)設(shè)計(jì)測(cè)試用例:在確立了等價(jià)類(lèi)后,可建立等價(jià)類(lèi)表,列出所有劃分出的等價(jià)類(lèi):輸入條件輸入條件有效等價(jià)類(lèi)無(wú)效等價(jià)類(lèi)然后從劃分出的等價(jià)類(lèi)中按以下三個(gè)原則設(shè)計(jì)測(cè)試用例:①為每一個(gè)等價(jià)類(lèi)規(guī)定一個(gè)唯一的編號(hào)。②設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價(jià)類(lèi),重復(fù)這一步.直到所有的有效等價(jià)類(lèi)都被覆蓋為止。③設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無(wú)效等價(jià)類(lèi),重復(fù)這一步.直到所有的無(wú)效等價(jià)類(lèi)都被覆蓋為止。邊界值分析法邊界值分析是通過(guò)選擇等價(jià)類(lèi)邊界的測(cè)試用例。邊界值分析法不僅重視輸入條件邊界,而且也必須考慮輸出域邊界。它是對(duì)等價(jià)類(lèi)劃分方法的補(bǔ)充。(1)邊界值分析方法的考慮:長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)告訴我們,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部.因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定邊界情況.通常輸入和輸出等價(jià)類(lèi)的邊界,就是應(yīng)著重測(cè)試的邊界情況.應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類(lèi)中的典型值或任意值作為測(cè)試數(shù)據(jù)。(2)基于邊界值分析方法選擇測(cè)試用例的原則:1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)。2)如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù),最小個(gè)數(shù),比最小個(gè)數(shù)少一,比最大個(gè)數(shù)多一的數(shù)作為測(cè)試數(shù)據(jù)。3)根據(jù)規(guī)格說(shuō)明的每個(gè)輸出條件,使用前面的原則1)。4)根據(jù)規(guī)格說(shuō)明的每個(gè)輸出條件,應(yīng)用前面的原則2)。5)如果程序的規(guī)格說(shuō)明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測(cè)試用例。6)如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測(cè)試用例。7)分析規(guī)格說(shuō)明,找出其它可能的邊界條件。錯(cuò)誤推測(cè)法錯(cuò)誤推測(cè)法是基于經(jīng)驗(yàn)和直覺(jué)推測(cè)程序中所有可能存在的各種錯(cuò)誤,從而有針對(duì)性的設(shè)計(jì)測(cè)試用例的方法.錯(cuò)誤推測(cè)方法的基本思想:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)他們選擇測(cè)試用例。例如,在單元測(cè)試時(shí)曾列出的許多在模塊中常見(jiàn)的錯(cuò)誤.以前產(chǎn)品測(cè)試中曾經(jīng)發(fā)現(xiàn)的錯(cuò)誤等,這些就是經(jīng)驗(yàn)的總結(jié)。還有,輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況.輸入表格為空格或輸入表格只有一行.這些都是容易發(fā)生錯(cuò)誤的情況??蛇x擇這些情況下的例子作為測(cè)試用例。因果圖法前面介紹的等價(jià)類(lèi)劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系,相互組合等??紤]輸入條件之間的相互組合,可能會(huì)產(chǎn)生一些新的情況.但要檢查輸入條件的組合不是一件容易的事情,即使把所有輸入條件劃分成等價(jià)類(lèi),他們之間的組合情況也相當(dāng)多.因此必須考慮采用一種適合于描述對(duì)于多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來(lái)考慮設(shè)計(jì)測(cè)試用例.這就需要利用因果圖(邏輯模型)。因果圖方法最終生成的就是判定表。它適合于檢查程序輸入條件的各種組合情況。生成測(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à)出因果圖。(3)由于語(yǔ)法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn).為表明這些特殊情況,在因果圖上用一些記號(hào)標(biāo)明約束或限制條件。(4)把因果圖轉(zhuǎn)換為判定表。(5)把判定表的每一列拿出來(lái)作為依據(jù),設(shè)計(jì)測(cè)試用例。從因果圖生成的測(cè)試用例(局部,組合關(guān)系下的)包括了所有輸入數(shù)據(jù)的取TRUE與取FALSE的情況,構(gòu)成的測(cè)試用例數(shù)目達(dá)到最少,且測(cè)試用例數(shù)目隨輸入數(shù)據(jù)數(shù)目的增加而線(xiàn)性地增加。前面因果圖方法中已經(jīng)用到了判定表。判定表(DecisionTable)是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況下的工具.在程序設(shè)計(jì)發(fā)展的初期,判定表就已被當(dāng)作編寫(xiě)程序的輔助工具了.由于它可以把復(fù)雜的邏輯關(guān)系和多種條件組合的情況表達(dá)得既具體又明確。判定表組成法條件樁(ConditionStub):列出了問(wèn)題的所有條件.通常認(rèn)為列出的條件的次序無(wú)關(guān)緊要。動(dòng)作樁(ActionStub):列出了問(wèn)題規(guī)定可能采取的操作.這些操作的排列順序沒(méi)有約束。條件項(xiàng)(ConditionEntry):列出針對(duì)它左列條件的取值.在所有可能情況下的真假值。動(dòng)作項(xiàng)(ActionEntry):列出在條件項(xiàng)的各種取值情況下應(yīng)該采取的動(dòng)作。規(guī)則:任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作.在判定表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則.顯然,判定表中列出多少組條件取值,也就有多少條規(guī)則,既條件項(xiàng)和動(dòng)作項(xiàng)有多少列。判定表的建立步驟①確定規(guī)則的個(gè)數(shù)。假如有n個(gè)條件.每個(gè)條件有兩個(gè)取值(0,1),故有2n種規(guī)則。②列出所有的條件樁和動(dòng)作樁。③填入條件項(xiàng)。④填入動(dòng)作項(xiàng).等到初始判定表。⑤簡(jiǎn)化.合并相似規(guī)則(相同動(dòng)作)。B.Beizer指出了適合使用判定表設(shè)計(jì)測(cè)試用例的條件:①規(guī)格說(shuō)明以判定表形式給出,或很容易轉(zhuǎn)換成判定表。②條件的排列順序不會(huì)也不影響執(zhí)行哪些操作。③規(guī)則的排列順序不會(huì)也不影響執(zhí)行哪些操作。④每當(dāng)某一規(guī)則的條件已經(jīng)滿(mǎn)足,并確定要執(zhí)行的操作后,不必檢驗(yàn)別的規(guī)則。⑤如果某一規(guī)則得到滿(mǎn)足要執(zhí)行多個(gè)操作,這些操作的執(zhí)行順序無(wú)關(guān)緊要。正交試驗(yàn)設(shè)計(jì)法就是使用已經(jīng)造好了的正交表格來(lái)安排試驗(yàn)并進(jìn)行數(shù)據(jù)分析的一種方法,目的是用最少的測(cè)試用例達(dá)到最高的測(cè)試覆蓋率。場(chǎng)景法現(xiàn)在的軟件幾乎都是用事件觸發(fā)來(lái)控制流程的,事件觸發(fā)時(shí)的情景便形成了場(chǎng)景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計(jì)方面的思想也可以引入到軟件測(cè)試中,可以比較生動(dòng)地描繪出事件觸發(fā)時(shí)的情景,有利于測(cè)試設(shè)計(jì)者設(shè)計(jì)測(cè)試用例,同時(shí)使測(cè)試用例更容易理解和執(zhí)行?;玖骱蛡溥x流:如下圖所示,圖中經(jīng)過(guò)用例的每條路徑都用基本流和備選流來(lái)表示,直黑線(xiàn)表示基本流,是經(jīng)過(guò)用例的最簡(jiǎn)單的路徑。備選流用不同的色彩表示,一個(gè)備選流可能從基本流開(kāi)始,在某個(gè)特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個(gè)備選流(如備選流2),或者終止用例而不再重新加入到某個(gè)流(如備選流2和4)。[2]
\o"查看圖片"
基本流和備選流流程測(cè)試計(jì)劃首先,根據(jù)用戶(hù)需求報(bào)告中關(guān)于功能要求和性能指標(biāo)的規(guī)格說(shuō)明書(shū),定義相應(yīng)的測(cè)試需求報(bào)告,即制訂黑盒測(cè)試的最高標(biāo)準(zhǔn),以后所有的測(cè)試工作都將圍繞著測(cè)試需求來(lái)進(jìn)行,符合測(cè)試需求的應(yīng)用程序即是合格的,反之即是不合格的;同時(shí),還要適當(dāng)選擇測(cè)試內(nèi)容,合理安排測(cè)試人員、測(cè)試時(shí)間及測(cè)試資源等。測(cè)試設(shè)計(jì)將測(cè)試計(jì)劃階段制訂的測(cè)試需求分解、細(xì)化為若干個(gè)可執(zhí)行的測(cè)試過(guò)程,并為每個(gè)測(cè)試過(guò)程選擇適當(dāng)?shù)臏y(cè)試用例(測(cè)試用例選擇的好壞將直接影響到測(cè)試結(jié)果的有效性)。測(cè)試開(kāi)發(fā)建立可重復(fù)使用的自動(dòng)測(cè)試過(guò)程。測(cè)試執(zhí)行執(zhí)行測(cè)試開(kāi)發(fā)階段建立的自動(dòng)測(cè)試過(guò)程,并對(duì)所發(fā)現(xiàn)的缺陷進(jìn)行跟蹤管理。測(cè)試執(zhí)行一般由單元測(cè)試、組合測(cè)試、集成測(cè)試、系統(tǒng)聯(lián)調(diào)及回歸測(cè)試等步驟組成,測(cè)試人員應(yīng)本著科學(xué)負(fù)責(zé)的態(tài)度,一步一個(gè)腳印地進(jìn)行測(cè)試。測(cè)試評(píng)估結(jié)合量化的測(cè)試覆蓋域及缺陷跟蹤報(bào)告,對(duì)于應(yīng)用軟件的質(zhì)量和開(kāi)發(fā)團(tuán)隊(duì)的工作進(jìn)度及工作效率進(jìn)行綜合評(píng)價(jià)。缺點(diǎn)1.結(jié)果取決于測(cè)試用例的設(shè)計(jì),測(cè)試用例的設(shè)計(jì)部分優(yōu)勢(shì)來(lái)源于經(jīng)驗(yàn),OUSPG的東西很值得借鑒2.沒(méi)有狀態(tài)轉(zhuǎn)換的概念,目前一些成功的例子基本上都是針對(duì)PDU來(lái)做的,還做不到針對(duì)被測(cè)試程序的狀態(tài)轉(zhuǎn)換來(lái)實(shí)現(xiàn)3.就沒(méi)有狀態(tài)概念的測(cè)試來(lái)說(shuō),尋找和確定造成程序crash的測(cè)試?yán)莻€(gè)麻煩事情,必須把周?chē)赡艿臏y(cè)試?yán)龁为?dú)確認(rèn)一遍。而就有狀態(tài)的測(cè)試來(lái)說(shuō),就更麻煩了,尤其不是一個(gè)單獨(dú)的testcase造成的問(wèn)題。這些在堆的問(wèn)題中表現(xiàn)的更為突出。工具選擇\o"編輯本段"編輯如何高效地完成功能測(cè)試?選擇一款合適的功能測(cè)試工具并培訓(xùn)一支高素質(zhì)的工具使用隊(duì)伍無(wú)疑是至關(guān)重要的。盡管現(xiàn)階段存在少數(shù)不采用任何功能測(cè)試工具,從事功能測(cè)試外包項(xiàng)目的軟件服務(wù)企業(yè)。短期來(lái)看,這類(lèi)企業(yè)盈利狀況尚可,但長(zhǎng)久來(lái)看,它們極有可能被自動(dòng)化程度較高的軟件服務(wù)企業(yè)取代。目前,用于功能測(cè)試的工具軟件有很多,針對(duì)不同架構(gòu)軟件的工具也不斷推陳出新。這里重點(diǎn)介紹的是其中一個(gè)較為典型自動(dòng)化測(cè)試工具,即Mercury公司的WinRunner。WinRunner是一種用于檢驗(yàn)應(yīng)用程序能否如期運(yùn)行的企業(yè)級(jí)軟件功能測(cè)試工具。通過(guò)自動(dòng)捕獲、檢測(cè)和模擬用戶(hù)交互操作,WinRunner能識(shí)別出絕大多數(shù)軟件功能缺陷,從而確保那些跨越了多個(gè)功能點(diǎn)和數(shù)據(jù)庫(kù)的應(yīng)用程序在發(fā)布時(shí)盡量不出現(xiàn)功能性故障。WinRunner的特點(diǎn)在于:與傳統(tǒng)的手工測(cè)試相比,它能快速、批量地完成功能點(diǎn)測(cè)試;能針對(duì)相同測(cè)試腳本,執(zhí)行相同的動(dòng)作,從而消除人工測(cè)試所帶來(lái)的理解上的誤差;此外,它還能重復(fù)執(zhí)行相同動(dòng)作,測(cè)試工作中最枯燥的部分可交由機(jī)器完成;它支持程序風(fēng)格的測(cè)試腳本,一個(gè)高素質(zhì)的測(cè)試工程師能借助它完成流程極為復(fù)雜的測(cè)試,通過(guò)使用通配符、宏、條件語(yǔ)句、循環(huán)語(yǔ)句等,還能較好地完成測(cè)試腳本的重用;它針對(duì)于大多數(shù)編程語(yǔ)言和Windows技術(shù),提供了較好的集成、支持環(huán)境,這對(duì)基于Windows平臺(tái)的應(yīng)用程序?qū)嵤┕δ軠y(cè)試而言帶來(lái)了極大的便利。工作流程\o"編輯本段"編輯識(shí)別GUI在WinRunner中,我們可以使用GUISpy來(lái)識(shí)別各種GUI對(duì)象,識(shí)別后,WinRunner會(huì)將其存儲(chǔ)到GUIMapFile中。它提供兩種GUIMapFile模式:GlobalGUIMapFile和GUIMapFileperTest。其最大區(qū)別是后者對(duì)每個(gè)測(cè)試腳本產(chǎn)生一個(gè)GUI文件,它能自動(dòng)建立、存儲(chǔ)、加載,推薦初學(xué)者選用這種模式。但是,這種模式不易于描述對(duì)象的改變,其效率比較低,因此對(duì)于一個(gè)有經(jīng)驗(yàn)的測(cè)試人員來(lái)說(shuō)前者不失為一種更好的選擇,它只產(chǎn)生一個(gè)共享的GUI文件,這使得測(cè)試腳本更容易維護(hù),且效率更高。建立測(cè)試腳本在建立測(cè)試腳本時(shí),一般先進(jìn)行錄制,然后在錄制形成的腳本中手工加入需要的TSL(與C語(yǔ)言類(lèi)似的測(cè)試腳本語(yǔ)言)。錄制腳本有兩種模式:ContextSensitive和Analog,選擇依據(jù)主要在于是否對(duì)鼠標(biāo)軌跡進(jìn)行模擬,在需要回放時(shí)一般選用Analog。在錄制過(guò)程中這兩種模式可以通過(guò)F2鍵相互切換。只要看看現(xiàn)代軟件的規(guī)模和功能點(diǎn)數(shù)就可以明白,功能測(cè)試早已跨越了單靠手工敲敲鍵盤(pán)、點(diǎn)點(diǎn)鼠標(biāo)就可以完成的階段。而性能測(cè)試則是控制系統(tǒng)性能的有效手段,在軟件的能力驗(yàn)證、能力規(guī)劃、性能調(diào)優(yōu)、缺陷修復(fù)等方面都發(fā)揮著重要作用。對(duì)測(cè)試腳本除錯(cuò)在WinRunner中有專(zhuān)門(mén)一個(gè)DebugToolbar用于測(cè)試腳本除錯(cuò)??梢允褂胹tep、pause、breakpoint等來(lái)控制和跟蹤測(cè)試腳本和查看各種變量值。測(cè)試腳本當(dāng)應(yīng)用程序有新版本發(fā)布時(shí),我們會(huì)對(duì)應(yīng)用程序的各種功能包括新增功能進(jìn)行測(cè)試,這時(shí)當(dāng)然不可能再來(lái)重新錄制和編寫(xiě)所有的測(cè)試腳本。我們可以使用已有的腳本,批量運(yùn)行這些測(cè)試腳本測(cè)試舊的功能點(diǎn)是否正常工作??梢允褂靡粋€(gè)call命令來(lái)加載各測(cè)試腳本。還可在call命令中加各種TSL腳本來(lái)增加批量能力。分析測(cè)試結(jié)果分析測(cè)試結(jié)果在整個(gè)測(cè)試過(guò)程中最重要,通過(guò)分析可以發(fā)現(xiàn)應(yīng)用程序的各種功能性缺陷。當(dāng)運(yùn)行完某個(gè)測(cè)試腳本后,會(huì)產(chǎn)生一個(gè)測(cè)試報(bào)告,從這個(gè)測(cè)試報(bào)告中我們能發(fā)現(xiàn)應(yīng)用程序的功能性缺陷,能看到實(shí)際結(jié)果和期望結(jié)果之間的差異,以及在測(cè)試過(guò)程中產(chǎn)生的各類(lèi)對(duì)話(huà)框等。回報(bào)缺陷在分析完測(cè)試報(bào)告后,按照測(cè)試流程要回報(bào)應(yīng)用程序的各種缺陷,然后將這些缺陷發(fā)給指定人,以便進(jìn)行修改和維護(hù)。常用方法功能測(cè)試就是對(duì)產(chǎn)品的各功能進(jìn)行驗(yàn)證,根據(jù)功能測(cè)試用例,逐項(xiàng)測(cè)試,檢查產(chǎn)品是否達(dá)到用戶(hù)要求的功能。常用的測(cè)試方法如下1.頁(yè)面鏈接檢查:每一個(gè)鏈接是否都有對(duì)應(yīng)的頁(yè)面,并且頁(yè)面之間切換正確。2.相關(guān)性檢查:刪除/增加一項(xiàng)會(huì)不會(huì)對(duì)其他項(xiàng)產(chǎn)生影響,如果產(chǎn)生影響,這些影響是否都正確。3.檢查按鈕的功能是否正確:如update,cancel,delete,save等功能是否正確。4.字符串長(zhǎng)度檢查:輸入超出需求所說(shuō)明的字符串長(zhǎng)度的內(nèi)容,看系統(tǒng)是否檢查字符串長(zhǎng)度,會(huì)不會(huì)出錯(cuò).5.字符類(lèi)型檢查:在應(yīng)該輸入指定類(lèi)型的內(nèi)容的地方輸入其他類(lèi)型的內(nèi)容(如在應(yīng)該輸入整型的地方輸入其他字符類(lèi)型),看系統(tǒng)是否檢查字符類(lèi)型,會(huì)否報(bào)錯(cuò).6.標(biāo)點(diǎn)符號(hào)檢查:輸入內(nèi)容包括各種標(biāo)點(diǎn)符號(hào),特別是空格,各種引號(hào),回車(chē)鍵.看系統(tǒng)處理是否正確.7.中文字符處理:在可以輸入中文的系統(tǒng)輸入中文,看會(huì)否出現(xiàn)亂碼或出錯(cuò).8.檢查帶出信息的完整性:在查看信息和update信息時(shí),查看所填寫(xiě)的信息是不是全部帶出.,帶出信息和添加的是否一致9.信息重復(fù):在一些需要命名,且名字應(yīng)該唯一的信息輸入重復(fù)的名字或ID,看系統(tǒng)有沒(méi)有處理,會(huì)否報(bào)錯(cuò),重名包括是否區(qū)分大小寫(xiě),以及在輸入內(nèi)容的前后輸入空格,系統(tǒng)是否作出正確處理.10.檢查刪除功能:在一些可以一次刪除多個(gè)信息的地方,不選擇任何信息,按”delete”,看系統(tǒng)如何處理,會(huì)否出錯(cuò);然后選擇一個(gè)和多個(gè)信息,進(jìn)行刪除,看是否正確處理.11.檢查添加和修改是否一致:檢查添加和修改信息的要求是否一致,例如添加要求必填的項(xiàng),修改也應(yīng)該必填;添加規(guī)定為整型的項(xiàng),修改也必須為整型.12.檢查修改重名:修改時(shí)把不能重名的項(xiàng)改為已存在的內(nèi)容,看會(huì)否處理,報(bào)錯(cuò).同時(shí),也要注意,會(huì)不會(huì)報(bào)和自己重名的錯(cuò).13.重復(fù)提交表單:一條已經(jīng)成功提交的紀(jì)錄,back后再提交,看看系統(tǒng)是否做了處理。14.檢查多次使用back鍵的情況:在有back的地方,back,回到原來(lái)頁(yè)面,再back,重復(fù)多次,看會(huì)否出錯(cuò).15.search檢查:在有search功能的地方輸入系統(tǒng)存在和不存在的內(nèi)容,看search結(jié)果是否正確.如果可以輸入多個(gè)search條件,可以同時(shí)添加合理和不合理的條件,看系統(tǒng)處理是否正確.16.輸入信息位置:注意在光標(biāo)停留的地方輸入信息時(shí),光標(biāo)和所輸入的信息會(huì)否跳到別的地方.17.上傳下載文件檢查:上傳下載文件的功能是否實(shí)現(xiàn),上傳文件是否能打開(kāi)。對(duì)上傳文件的格式有何規(guī)定,系統(tǒng)是否有解釋信息,并檢查系統(tǒng)是否能夠做到。18.必填項(xiàng)檢查:應(yīng)該填寫(xiě)的項(xiàng)沒(méi)有填寫(xiě)時(shí)系統(tǒng)是否都做了處理,對(duì)必填項(xiàng)是否有提示信息,如在必填項(xiàng)前加*19.快捷鍵檢查:是否支持常用快捷鍵,如Ctrl+CCtrl+VBackspace等,對(duì)一些不允許輸入信息的字段,如選人,選日期對(duì)快捷方式是否也做了限制。20.回車(chē)鍵檢查:在輸入結(jié)束后直接按回車(chē)鍵,看系統(tǒng)處理如何,會(huì)否報(bào)錯(cuò)。什么是黑盒測(cè)試和白盒測(cè)試?
任何工程產(chǎn)品(注意是任何工程產(chǎn)品)都可以使用以下兩種方法之一進(jìn)行測(cè)試。
黑盒測(cè)試:已知產(chǎn)品的功能設(shè)計(jì)規(guī)格,可以進(jìn)行測(cè)試證明每個(gè)實(shí)現(xiàn)了的功能是否符合要求。
白盒測(cè)試:已知產(chǎn)品的內(nèi)部工作過(guò)程,可以通過(guò)測(cè)試證明每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否以經(jīng)過(guò)檢查。
軟件的黑盒測(cè)試意味著測(cè)試要在軟件的接口處進(jìn)行。這種方法是把測(cè)試對(duì)象看做一個(gè)黑盒子,測(cè)試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說(shuō)明書(shū),檢查程序的功能是否符合它的功能說(shuō)明。因此黑盒測(cè)試又叫功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。黑盒測(cè)試主要是為了發(fā)現(xiàn)以下幾類(lèi)錯(cuò)誤:
1、是否有不正確或遺漏的功能?
2、在接口上,輸入是否能正確的接受?能否輸出正確的結(jié)果?
3、是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文件)訪(fǎng)問(wèn)錯(cuò)誤?
4、性能上是否能夠滿(mǎn)足要求?
5、是否有初始化或終止性錯(cuò)誤?
軟件的白盒測(cè)試是對(duì)軟件的過(guò)程性細(xì)節(jié)做細(xì)致的檢查。這種方法是把測(cè)試對(duì)象看做一個(gè)打開(kāi)的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過(guò)在不同點(diǎn)檢查程序狀態(tài),確定實(shí)際狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測(cè)試又稱(chēng)為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。白盒測(cè)試主要是想對(duì)程序模塊進(jìn)行如下檢查:
1、對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至少測(cè)試一遍。
2、對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測(cè)一遍。
3、在循環(huán)的邊界和運(yùn)行的界限內(nèi)執(zhí)行循環(huán)體。
4、測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等等。
以上事實(shí)說(shuō)明,軟件測(cè)試有一個(gè)致命的缺陷,即測(cè)試的不完全、不徹底性。由于任何程序只能進(jìn)行少量(相對(duì)于窮舉的巨大數(shù)量而言)的有限的測(cè)試,在未發(fā)現(xiàn)錯(cuò)誤時(shí),不能說(shuō)明程序中沒(méi)有錯(cuò)誤。因果圖法從用自然語(yǔ)言書(shū)寫(xiě)的程序規(guī)格說(shuō)明的描述中找出因(輸入條件)和果(輸出或程序狀態(tài)的改變),可以通過(guò)因果圖轉(zhuǎn)換為判定表。因果圖法即因果分析圖,又叫特性要因圖、石川圖或魚(yú)翅圖,它是由日本東京大學(xué)教授石川馨提出的一種通過(guò)帶箭頭的線(xiàn),將質(zhì)量問(wèn)題與原因之間的關(guān)系表示出來(lái),是分析影響產(chǎn)品質(zhì)量的諸因素之間關(guān)系的一種工具。因果圖法是一種適合于描述對(duì)于多種輸入條件組合的測(cè)試方法,根據(jù)輸入條件的組合、約束關(guān)系和輸出條件的因果關(guān)系,分析輸入條件的各種組合情況,從而設(shè)計(jì)測(cè)試用例的方法,它適合于檢查程序輸入條件涉及的各種組合情況。因果圖法一般和判定表結(jié)合使用,通過(guò)映射同時(shí)發(fā)生相互影響的多個(gè)輸入來(lái)確定判定條件。因果圖法最終生成的就是判定表,它適合于檢查程序輸入條件的各種組合情況。采用因果圖法能幫助我們按照一定的步驟選擇一組高效的測(cè)試用例,同時(shí),還能指出程序規(guī)范中存在什么問(wèn)題,鑒別和制作因果圖。因果圖法著重分析輸入條件的各種組合,每種組合條件就是“因”,它必然有一個(gè)輸出的結(jié)果,這就是“果”。利用因果圖導(dǎo)出測(cè)試用例一般要經(jīng)過(guò)以下幾個(gè)步驟:1)分析軟件規(guī)格說(shuō)明的描述中哪些是原因,哪些是結(jié)果。原因是輸入或輸入條件的等價(jià)類(lèi),結(jié)果是輸出條件。給每個(gè)原因和結(jié)果并賦予一個(gè)標(biāo)識(shí)符,根據(jù)這些關(guān)系,畫(huà)出因果圖。2)因果圖上用一些記號(hào)表明約束條件或限制條件。3)對(duì)需求加以分析并把它們表示為因果圖之間的關(guān)系圖。4)把因果圖轉(zhuǎn)換成判定表。5)將判定表的每一列作為依據(jù),設(shè)計(jì)測(cè)試用例。例題有一個(gè)處理單價(jià)為1元5角錢(qián)的盒裝飲料的自動(dòng)售貨機(jī)軟件。若投入1元5角硬幣,按下“可樂(lè)”、“雪碧”、“紅茶”按鈕,相應(yīng)的飲料就送出來(lái)。若投入的是兩元硬幣,在送出飲料的同時(shí)退還5角硬幣。分析原因:①投入1元5角硬幣;②投入2元硬幣;③按“可樂(lè)”按鈕;④按“雪碧”按鈕;⑤按“紅茶”按鈕。中間狀態(tài):①已投幣;②已按鈕。結(jié)果:①退還5角硬幣;②送出“可樂(lè)”飲料③送出“雪碧”飲料;④送出“紅茶”飲料。出判定表等價(jià)類(lèi)劃分等價(jià)類(lèi)劃分就是解決如何選擇適當(dāng)?shù)臄?shù)據(jù)子集來(lái)代表整個(gè)數(shù)據(jù)集的問(wèn)題,通過(guò)降低測(cè)試的數(shù)目去實(shí)現(xiàn)“合理的”覆蓋,覆蓋了更多的可能數(shù)據(jù),以發(fā)現(xiàn)更多的軟件缺陷。等價(jià)類(lèi)劃分法是一種典型的、重要的黑盒測(cè)試方法,它將程序所有可能的輸入數(shù)據(jù)(有效的和無(wú)效的)劃分成若干個(gè)等價(jià)類(lèi)。然后從每個(gè)部分中選取具有代表性的數(shù)據(jù)當(dāng)做測(cè)試用例進(jìn)行合理的分類(lèi),測(cè)試用例由有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)的代表組成,從而保證測(cè)試用例具有完整性和代表性。利用這一方法設(shè)計(jì)測(cè)試用例可以不考慮程序的內(nèi)部結(jié)構(gòu),以需求規(guī)格說(shuō)明書(shū)為依據(jù),選擇適當(dāng)?shù)牡湫妥蛹J(rèn)真分析和推敲說(shuō)明書(shū)的各項(xiàng)需求,特別是功能需求,盡可能多地發(fā)現(xiàn)錯(cuò)誤。等價(jià)類(lèi)劃分法是一種系統(tǒng)性的確定要輸入的測(cè)試條件的方法。由于等價(jià)類(lèi)是在需求規(guī)格說(shuō)明書(shū)的基礎(chǔ)上進(jìn)行劃分的,并且等價(jià)類(lèi)劃分不僅可以用來(lái)確定測(cè)試用例中的數(shù)據(jù)的輸入輸出的精確取值范圍,也可以用來(lái)準(zhǔn)備中間值、狀態(tài)和與時(shí)間相關(guān)的數(shù)據(jù)以及接口參數(shù)等,所以等價(jià)類(lèi)可以用在系統(tǒng)測(cè)試、集成測(cè)試和組件測(cè)試中,在有明確的條件和限制的情況下,利用等價(jià)類(lèi)劃分技術(shù)可以設(shè)計(jì)出完備的測(cè)試用例。這種方法可以減少設(shè)計(jì)一些不必要的測(cè)試用例,因?yàn)檫@種測(cè)試用例一般使用相同的等價(jià)類(lèi)數(shù)據(jù),從而使測(cè)試對(duì)象得到同樣的反映行為。對(duì)于等價(jià)類(lèi)我們從以下幾個(gè)方面討論它的劃分方法。等價(jià)類(lèi)劃分的方法分為兩個(gè)主要的步驟,劃分等價(jià)類(lèi)型和設(shè)計(jì)測(cè)試用例。有效等價(jià)類(lèi)劃分有效等價(jià)類(lèi)指對(duì)于程序規(guī)格說(shuō)明來(lái)說(shuō),是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價(jià)類(lèi)可以檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說(shuō)明預(yù)先規(guī)定的功能和性能。有效等價(jià)類(lèi)可以是一個(gè),也可以是多個(gè),根據(jù)系統(tǒng)的輸入域劃分若干部分,然后從每個(gè)部分中選取少數(shù)有代表性數(shù)據(jù)當(dāng)做數(shù)據(jù)測(cè)試的測(cè)試用例,等價(jià)類(lèi)是輸入域的集合。以下是對(duì)有效等價(jià)類(lèi)數(shù)據(jù)集的一些例子。終端用戶(hù)輸入的命令與最終用戶(hù)交互的系統(tǒng)提示接受相關(guān)的用戶(hù)文件的名稱(chēng)提供初始化值和邊界等提供格式化輸出數(shù)據(jù)的命令在圖形模式(比如鼠標(biāo)點(diǎn)擊時(shí))提供的數(shù)據(jù)失敗時(shí)顯示的回應(yīng)消息無(wú)效等價(jià)類(lèi)劃分無(wú)效等價(jià)類(lèi)和有效等價(jià)類(lèi)相反,無(wú)效等價(jià)類(lèi)是指對(duì)于軟件規(guī)格說(shuō)明而言,沒(méi)有意義的、不合理的輸入數(shù)據(jù)集合。利用無(wú)效等價(jià)類(lèi),可以找出程序異常說(shuō)明情況,檢查程序的功能和性能的實(shí)現(xiàn)是否有不符合規(guī)格說(shuō)明要求的地方。以下是無(wú)效等價(jià)類(lèi)數(shù)據(jù)集的一些例子。在一個(gè)不正確的地方提供適當(dāng)?shù)闹?。?yàn)證邊界值驗(yàn)證外部邊界的值用戶(hù)輸入的命令最終用戶(hù)與系統(tǒng)交互的提示驗(yàn)證與邊界和外部邊界值的數(shù)值數(shù)據(jù)等價(jià)類(lèi)劃分的方法\o"編輯本段"編輯按區(qū)間劃分。按數(shù)值劃分。按數(shù)值集合劃分。按限制條件或規(guī)劃劃分。按處理方式劃分。等價(jià)類(lèi)劃分的原則如下:在輸入條件規(guī)定的取值范圍或值的個(gè)數(shù)的情況下,可以確定一個(gè)有效等價(jià)類(lèi)和兩個(gè)無(wú)效等價(jià)類(lèi)。在規(guī)定了輸入數(shù)據(jù)的一組值中(假定有n個(gè)值),并且程序要對(duì)每個(gè)輸入值分別處理的情況下,可以確定n個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi)。在規(guī)定輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可以確定一個(gè)有效等價(jià)類(lèi)和若干個(gè)無(wú)效等價(jià)類(lèi)。在輸入條件規(guī)定了輸入值的集合或規(guī)定了“必須如何”的條件下,可以確定一個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi)。在確定已劃分的等價(jià)類(lèi)中各元素在程序處理中的方式不同的情況下,則應(yīng)將該等價(jià)類(lèi)進(jìn)一步地劃分為更小的等價(jià)類(lèi)。等價(jià)類(lèi)表的建立等價(jià)類(lèi)表的建立如表3-1所示。表3-1是等價(jià)類(lèi)表的基礎(chǔ),可依據(jù)表3-1確定測(cè)試用例。測(cè)試用例可按下列步驟來(lái)確定:表3-1等價(jià)類(lèi)表1)在分析需求規(guī)格說(shuō)明的基礎(chǔ)上劃分等價(jià)類(lèi),列出等價(jià)類(lèi)表,為每一個(gè)等價(jià)類(lèi)規(guī)定一個(gè)唯一的編號(hào)。2)將程序可能的輸入數(shù)據(jù)分成若干個(gè)子集,從每個(gè)子集中選取一個(gè)有代表性的數(shù)據(jù)作為測(cè)試用例。等價(jià)類(lèi)是某個(gè)輸入域的子集,在該子集中的每個(gè)輸入數(shù)據(jù)的作用都是等效的。3)設(shè)計(jì)新的測(cè)試用例,使其盡可能多地覆蓋未覆蓋的有效等價(jià)類(lèi),按照這一步驟重復(fù)進(jìn)行,直到所有的有效等價(jià)類(lèi)都被覆蓋為止。4)設(shè)計(jì)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無(wú)效等價(jià)類(lèi),按照這一步驟重復(fù)進(jìn)行,直到所有的無(wú)效等價(jià)類(lèi)都被覆蓋為止。等價(jià)類(lèi)表與測(cè)試用例的關(guān)系等價(jià)類(lèi)表與測(cè)試用例的關(guān)系如表3-2所示。表3-2等價(jià)類(lèi)表與測(cè)試用例的關(guān)系表例子有一個(gè)報(bào)表系統(tǒng),要求用戶(hù)輸入需要處理的報(bào)表胡日期,假定日期范圍為2000年1月到2020年12月。如果用戶(hù)輸入的日期不在這個(gè)范圍內(nèi),則顯示錯(cuò)誤碼信息,并且此系統(tǒng)規(guī)定日期由年月六位數(shù)字組成,前四位數(shù)代表年,后二位數(shù)代表月。
1)請(qǐng)列出等價(jià)類(lèi)表(包括有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi))
2)根據(jù)1)中的等價(jià)類(lèi)表,設(shè)計(jì)出能覆蓋所有等價(jià)類(lèi)的測(cè)試用例。
要求:包括輸入數(shù)據(jù)和預(yù)期輸出,并指出各個(gè)測(cè)試用例所能付給的等價(jià)類(lèi)編號(hào)。答:有效等價(jià)類(lèi):1.20<age<392.出生日期在1960年7月到1979年6月
無(wú)效等價(jià)類(lèi):3、age<20或age>394。出生日期早于1960年7月或出生日期晚于1979年6月
條件預(yù)期結(jié)果等價(jià)類(lèi)覆蓋
1、20<age<39,出生日期在1960年7月到1979年6月接收1.2
2、20<age<39,出生日期早于1960年7月拒絕1.4
3、20<age<39,出生日期晚于1979年6月拒絕1.4
。。。。。。。。。。。。。
基本方法就是這樣了,沒(méi)寫(xiě)太全。在你設(shè)計(jì)等價(jià)類(lèi)的時(shí)候你可以把條件再細(xì)分一下,這樣用例的覆蓋率會(huì)加大的。邊界值分析法邊界值分析法就是對(duì)輸入或輸出的邊界值進(jìn)行測(cè)試的一種黑盒測(cè)試方法。通常邊界值分析法是作為對(duì)等價(jià)類(lèi)劃分法的補(bǔ)充,這種情況下,其測(cè)試用例來(lái)自等價(jià)類(lèi)的邊界。與等價(jià)劃分的區(qū)別1)邊界值分析不是從某等價(jià)類(lèi)中隨便挑一個(gè)作為代表,而是使這個(gè)等價(jià)類(lèi)的每個(gè)邊界都要作為測(cè)試條件。2)邊界值分析不僅考慮輸入條件,還要考慮輸出空間產(chǎn)生的測(cè)試情況。邊界值分析方法的考慮:長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)告訴我們,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定邊界情況。通常輸入和輸出等價(jià)類(lèi)的邊界,就是應(yīng)著重測(cè)試的邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類(lèi)中的典型值或任意值作為測(cè)試數(shù)據(jù)1)對(duì)16-bit的整數(shù)而言32767和-32768是邊界2)屏幕上光標(biāo)在最左上、最右下位置3)報(bào)表的第一行和最后一行4)數(shù)組元素的第一個(gè)和最后一個(gè)5)循環(huán)的第0次、第1次和倒數(shù)第2次、最后一次5.邊界值分析1)邊界值分析使用與等價(jià)類(lèi)劃分法相同的劃分,只是邊界值分析假定錯(cuò)誤更多地存在于劃分的邊界上,因此在等價(jià)類(lèi)的邊界上以及兩側(cè)的情況設(shè)計(jì)測(cè)試用例。例:測(cè)試計(jì)算平方根的函數(shù)--輸入:實(shí)數(shù)--輸出:實(shí)數(shù)--規(guī)格說(shuō)明:當(dāng)輸入一個(gè)0或比0大的數(shù)的時(shí)候,返回其正平方根;當(dāng)輸入一個(gè)小于0的數(shù)時(shí),顯示錯(cuò)誤信息"平方根非法-輸入值小于0"并返回0;庫(kù)函數(shù)Print-Line可以用來(lái)輸出錯(cuò)誤信息。2)等價(jià)類(lèi)劃分:I.可以考慮作出如下劃分:a、輸入(i)<0和(ii)>=0b、輸出(a)>=0和(b)ErrorII.測(cè)試用例有兩個(gè):a、輸入4,輸出2。對(duì)應(yīng)于(ii)和(a)。b、輸入-10,輸出0和錯(cuò)誤提示。對(duì)應(yīng)于(i)和(b)。3)邊界值分析:劃分(ii)的邊界為0和最大正實(shí)數(shù);劃分(i)的邊界為最小負(fù)實(shí)數(shù)和0。由此得到以下測(cè)試用例:a、輸入{最小負(fù)實(shí)數(shù)}b、輸入{大于最小負(fù)實(shí)數(shù),且趨近于最小值}c、輸入0d、輸入{小于最大正實(shí)數(shù),且趨近于最大值}e、輸入{最大正實(shí)數(shù)}4)通常情況下,軟件測(cè)試所包含的邊界檢驗(yàn)有幾種類(lèi)型:數(shù)字、字符、位置、重量、大小、速度、方位、尺寸、空間等。5)相應(yīng)地,以上類(lèi)型的邊界值應(yīng)該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最長(zhǎng)、空/滿(mǎn)等情況下。邊界值分析的基本思想是使用在最小值、略高于最小值、正常值、略低于最大值和最大值處取輸入變量值,記為:min、min+、nom、max-、max考慮到健壯性測(cè)試,還可以加一個(gè)略大于最大值max+,以及一個(gè)略小于最小值min-的值。6)利用邊界值作為測(cè)試數(shù)據(jù)例子在軟件測(cè)試中,假定X為整數(shù),10≤X≤100,用邊界值分析法,那么X在測(cè)試
中應(yīng)該取()邊界值。
A.X=9,X=10,X=100,X=101B.X=10,X=100
C.X=9,X=11,X=99,X=101D.X=9,X=10,X=50,X=100
怎么是A??9不是小于10嗎1010不是大于100嗎??答案選擇A
邊界值的選擇:
(1)首先確定邊界情況。通常輸入或輸出等價(jià)類(lèi)的邊界就是應(yīng)該著重測(cè)試的邊界情況。
(2)選取正好等于、剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類(lèi)中的典型值或任意值。
所以為10、100、9、101邊界是指相對(duì)于輸入等價(jià)類(lèi)和輸出等價(jià)類(lèi)而言,稍高于其邊界值及稍低于其邊界值的一些特定情況?;谶吔绲姆椒ㄊ歉鶕?jù)定義域來(lái)實(shí)現(xiàn)的,最終演變成邊界值分析、健壯性測(cè)試、最壞情況測(cè)試和健壯最壞情況測(cè)試四種技術(shù)。邊界值分析也是一種黑盒測(cè)試方法,是對(duì)等價(jià)類(lèi)分析方法的一種補(bǔ)充,由長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出的邊界上。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。邊界值分析關(guān)注的是輸入空間邊界,用以標(biāo)識(shí)測(cè)試用例,基本思想是在最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)和最大值(max)等處取值。邊界值分析手段主要有兩種方式:通過(guò)變量數(shù)量和通過(guò)值域的種類(lèi)進(jìn)行。如一個(gè)n變量函數(shù)f(x1,x2,……xn)按以上方式每次確定一個(gè)測(cè)試對(duì)象(基于“單缺陷假設(shè)”理論),會(huì)產(chǎn)生4n+1個(gè)測(cè)試用例。健壯性測(cè)試是擴(kuò)展邊界值分析的測(cè)試,即增加一個(gè)略大于最大值(max+)和略小于最小值(min-)的取值,則用例數(shù)將變?yōu)?n+1。當(dāng)邊界值變量不是獨(dú)立變量時(shí),則以上測(cè)試用例就顯的不充分。對(duì)于邏輯變量而言這種用例也沒(méi)有什么用處。\o"查看圖片"
邊界值法示意圖最壞情況測(cè)試拒絕“單缺陷假設(shè)”理論的情況下,對(duì)所有變量的邊界值集合進(jìn)行5元素笛卡兒積計(jì)算,用以生成測(cè)試用例,對(duì)于n變量函數(shù)的最壞測(cè)試基于邊界值分析會(huì)產(chǎn)生5n個(gè)測(cè)試用例,基于健壯性分析則產(chǎn)生7n個(gè)測(cè)試用例。相比而言最壞情況測(cè)試代價(jià)較高,因此其最佳運(yùn)用是物理變量具有大量交互作用,或者函數(shù)失效的代價(jià)極高的情況下。①“在最小值、和最大值處”是指的一般邊界值分析。②“略小于最小值、最小值、略高于最小值、正常值、略低于最大值、最大值、略大于最大值”其實(shí)是健壯性邊界值分析,也就是考慮了非法的意外值。③可靠性理論“單缺陷假設(shè)”:失效極少是由兩個(gè)(或多個(gè))缺陷的同時(shí)發(fā)生引起的。一、如果輸入條件規(guī)定了值的范圍,則應(yīng)該取剛達(dá)到這個(gè)范圍的邊界值,以及剛剛超過(guò)這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù);\o"查看圖片"
邊界值法二、如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)、比最大個(gè)數(shù)多1格、比最小個(gè)數(shù)少1個(gè)的數(shù)做為測(cè)試數(shù)據(jù);三、根據(jù)規(guī)格說(shuō)明的每一個(gè)輸出條件,使用規(guī)則一;四、根據(jù)規(guī)格說(shuō)明的每一個(gè)輸出條件,使用規(guī)則二;五、如果程序的規(guī)格說(shuō)明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),則應(yīng)選取集合的第一個(gè)和最后一個(gè)元素作為測(cè)試用例;六、如果程序用了一個(gè)內(nèi)部結(jié)構(gòu),應(yīng)該選取這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界值作為測(cè)試用例;七、分析規(guī)格說(shuō)明,找出其他可能的邊界條件。找零錢(qián)最佳組合假設(shè)商店貨品價(jià)格(R)皆不大於100元(且為整數(shù)),若顧客付款在100元內(nèi)(P),求找給顧客之最少貨幣個(gè)(張)數(shù)?(貨幣面值50元(N50),10元(N10),5元(N5),1元(N1)四種)一、分析輸入的情形。R>1000<R<=100R<=0\o"查看圖片"
邊界值法P>100R<=P<=100P<R二、分析輸出情形。N50=1N50=05>N10>=1N10=0N5=1N5=05>N1>=1N1=0三、分析規(guī)格中每一決策點(diǎn)之情形,以RR1,RR2,RR3表示計(jì)算要找50,10,5元貨幣數(shù)時(shí)之剩余金額。R>100R<=0P>100P<RRR1>=50RR2>=10RR3>=5四、由上述之輸入/輸出條件組合出可能的情形。R>100R<=
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年環(huán)保節(jié)能技術(shù)股份收購(gòu)與市場(chǎng)推廣合同3篇
- 2025年度交通安全責(zé)任協(xié)議范本
- 二零二五年度車(chē)貸居間服務(wù)合同執(zhí)行效果評(píng)估及反饋機(jī)制3篇
- 二零二五年度房屋買(mǎi)賣(mài)及裝修保修協(xié)議3篇
- 婚紗店歸屬協(xié)議書(shū)(2篇)(2篇)
- 初中我的安全我知道說(shuō)課
- 二零二五年度酒吧店長(zhǎng)任期突發(fā)事件應(yīng)急信息發(fā)布與傳播合同范本3篇
- 二零二五年度車(chē)輛報(bào)廢補(bǔ)償轉(zhuǎn)讓合同示范3篇
- 二零二五年電影道具師聘用合同3篇
- 二零二五年快遞包裝環(huán)保材料承包合同
- 中國(guó)AI+Agent應(yīng)用研究報(bào)告
- 七年級(jí)上冊(cè)生物2024-2025學(xué)年新人教版期末綜合試卷(含答案)
- 2024年全國(guó)教育大會(huì)精神全文課件
- DL-T5153-2014火力發(fā)電廠(chǎng)廠(chǎng)用電設(shè)計(jì)技術(shù)規(guī)程
- 文件袋、檔案袋密封條模板
- DB32-T 2665-2014機(jī)動(dòng)車(chē)維修費(fèi)用結(jié)算規(guī)范-(高清現(xiàn)行)
- 【部編版】2022年語(yǔ)文七年級(jí)上:作文能力提升—謀篇布局(含答案)
- 最新6000畝海帶筏式養(yǎng)殖投資建設(shè)項(xiàng)目可行性研究報(bào)告
- 稀土高鐵鋁合金電力電纜應(yīng)用參數(shù).
- 陳振明《公共管理學(xué)》(課堂PPT)
- 數(shù)據(jù)結(jié)構(gòu)-圖(1)
評(píng)論
0/150
提交評(píng)論