解析數(shù)據(jù)驅(qū)動(dòng)測(cè)試設(shè)計(jì)方法
軟件測(cè)試是軟件開(kāi)發(fā)過(guò)程中必不可少的部分。從根本上說(shuō),測(cè)試過(guò)程的質(zhì)量決定了軟件測(cè)試的質(zhì)量和有效性。軟件測(cè)試作為軟件生存周期的一個(gè)重要組成部分,受到重視程度越來(lái)越高。軟件測(cè)試的本質(zhì)是針對(duì)要測(cè)試的內(nèi)容確定一組測(cè)試用例。測(cè)試用例是測(cè)試工作的指導(dǎo),是軟件測(cè)試的必須遵守的準(zhǔn)則。更是軟件測(cè)試質(zhì)量穩(wěn)定的根本保障。所以對(duì)于軟件測(cè)試的過(guò)程來(lái)講,測(cè)試用例的設(shè)計(jì)是其中最關(guān)鍵的環(huán)節(jié)。軟件測(cè)試分功能性測(cè)試和結(jié)構(gòu)性測(cè)試。功能性測(cè)試又稱黑盒測(cè)試,結(jié)構(gòu)性測(cè)試又稱白盒測(cè)試。下面僅詳細(xì)介紹功能性測(cè)試用例的設(shè)計(jì)方法。
一、數(shù)據(jù)驅(qū)動(dòng)測(cè)試用例設(shè)計(jì)
功能性測(cè)試又稱黑盒測(cè)試(Black-box Testing)或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,是把測(cè)試對(duì)象看作一個(gè)黑盒子。利用黑盒測(cè)試法進(jìn)行動(dòng)態(tài)測(cè)試時(shí),需要測(cè)試軟件產(chǎn)品的功能,不需測(cè)試軟件產(chǎn)品的內(nèi)部結(jié)構(gòu)和處理過(guò)程。黑盒測(cè)試注重于測(cè)試軟件的功能性需求,也即黑盒測(cè)試使軟件工程師派生出執(zhí)行程序有功能需求的輸入條件。
黑盒測(cè)試試圖發(fā)現(xiàn)以下類型的錯(cuò)誤:
1、功能錯(cuò)誤或遺漏;
2、界面錯(cuò)誤;
3、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤;
4、性能錯(cuò)誤;
5、初始化和終止錯(cuò)誤。
二、數(shù)據(jù)驅(qū)動(dòng)測(cè)試的測(cè)試用例設(shè)計(jì)方法
數(shù)據(jù)驅(qū)動(dòng)測(cè)試的測(cè)試用例設(shè)計(jì)方法一般有等價(jià)類劃分方法,邊界值分析方法,錯(cuò)誤推測(cè)方法,因果圖方法,判定表驅(qū)動(dòng)分析方法,正交實(shí)驗(yàn)設(shè)計(jì)方法,功能圖分析方法幾種。下面詳細(xì)介紹幾種比較重要的黑盒測(cè)試方法。
1、等價(jià)類劃分。
是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測(cè)試用例。該方法是一種重要的,常用的黑盒測(cè)試用例設(shè)計(jì)方法。
(1)劃分等價(jià)類: 等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的。并合理地假定:測(cè)試某等價(jià)類的代表值就等于對(duì)這一類其它值的測(cè)試。因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價(jià)類,在每一個(gè)等價(jià)類中取一個(gè)數(shù)據(jù)作為測(cè)試的輸入條件,就可以用少量代表性的測(cè)試數(shù)據(jù)。取得較好的測(cè)試結(jié)果。等價(jià)類劃分可有兩種不同的情況:有效等價(jià)類和無(wú)效等價(jià)類。
(2)有效等價(jià)類:是指對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō)是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價(jià)類可檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說(shuō)明中所規(guī)定的功能和性能。
(3)無(wú)效等價(jià)類:與有效等價(jià)類的定義恰巧相反。
設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮這兩種等價(jià)類。因?yàn)椋浖粌H要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn)。這樣的測(cè)試才能確保軟件具有更高的可靠性。
2、邊界值分析法。
邊界值分析方法是對(duì)等價(jià)類劃分方法的補(bǔ)充。
長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)告訴我們,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定邊界情況。通常輸入和輸出等價(jià)類的邊界,就是應(yīng)著重測(cè)試的邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值作為測(cè)試數(shù)據(jù)。
基于邊界值分析方法選擇測(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ō)明,找出其它可能的邊界條件
3、錯(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ò)誤的情況。 可選擇這些情況下的例子作為測(cè)試用例。
綜上所述,測(cè)試用例的編寫(xiě)對(duì)于計(jì)算機(jī)測(cè)試人員來(lái)說(shuō)是一項(xiàng)必須掌握的能力。但有效的設(shè)計(jì)和熟練的編寫(xiě)卻是一個(gè)十分復(fù)雜的技術(shù),它需要測(cè)試人員對(duì)整個(gè)軟件不管從業(yè)務(wù)還是從功能上都有一個(gè)明晰的把握。需要測(cè)試人員在實(shí)踐中不斷總結(jié)經(jīng)驗(yàn),然后結(jié)合測(cè)試?yán)碚?,這樣才能設(shè)計(jì)出更加有效的測(cè)試用例。