摘 要 軟件測(cè)試是發(fā)現(xiàn)軟件缺陷和提高軟件質(zhì)量的重要手段。在系統(tǒng)功能測(cè)試過(guò)程中,面對(duì)海量的輸入輸出數(shù)據(jù)組合,等價(jià)類(lèi)劃分和邊界值分析是行之有效的測(cè)試用例設(shè)計(jì)方案。本文以BMI問(wèn)題為例,闡述了兩者結(jié)合的測(cè)試方案,該方案可提高測(cè)試的效率及有效性。
關(guān)鍵詞 軟件測(cè)試;等價(jià)類(lèi)劃分;邊界值分析
前言
軟件測(cè)試是軟件開(kāi)發(fā)過(guò)程中的重要組成環(huán)節(jié),是發(fā)現(xiàn)軟件缺陷和提高軟件質(zhì)量的重要舉措,其本質(zhì)為通過(guò)建立輸入與輸出之間的映射關(guān)系驗(yàn)證系統(tǒng)功能是否滿(mǎn)足用戶(hù)需求[1]。而現(xiàn)實(shí)情況是,即使是一個(gè)非常簡(jiǎn)單的應(yīng)用程序,其輸入輸出組合也過(guò)于龐大,因此窮舉測(cè)試是在有限的時(shí)間和成本條件下無(wú)法完成的任務(wù)。反之隨意挑選數(shù)據(jù),雖然可以保證測(cè)試效率,但會(huì)帶來(lái)遺漏缺陷的風(fēng)險(xiǎn),同樣不具備可行性。
為了解決上述問(wèn)題,可借鑒生物學(xué)領(lǐng)域中的分類(lèi)思想,分析海量數(shù)據(jù)存在的共性,做到“合理分類(lèi),精心挑選”,最大限度地減少測(cè)試用例的絕對(duì)數(shù)量,提高測(cè)試的效率,并且確保測(cè)試的有效性。
1測(cè)試需求描述
身體質(zhì)量指數(shù)BMI問(wèn)題的測(cè)試需求描述如下:
身高以米作為單位,必須是在1.0到2.2之間的數(shù)字。若該項(xiàng)不符合要求,提示“身高無(wú)效”;
體重以千克作為單位,必須是在30到150之間的數(shù)字。若該項(xiàng)不符合要求,提示“體重?zé)o效”;
若身高和體重均符合要求,系統(tǒng)計(jì)算BMI值,計(jì)算公式為BMI=體重/身高2。當(dāng)BMI≤18.4時(shí),提示“身材偏瘦”;當(dāng)18.5≤BMI≤23.9時(shí),提示“身材正?!?當(dāng)24.0≤BMI≤27.9時(shí),提示“身材過(guò)重”;當(dāng)BMI≥28.0時(shí),提示“身材肥胖”。
2劃分等價(jià)類(lèi)
(1)輸入域分析。根據(jù)測(cè)試需求描述,對(duì)于每個(gè)輸入條件,基于等價(jià)類(lèi)的劃分原則,確定有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)。
身高為取值范圍,符合“區(qū)間”的劃分原則,可為其確立一個(gè)在范圍內(nèi)的有效等價(jià)類(lèi)H1={1.0≤身高≤2.2},兩個(gè)超出范圍的無(wú)效等價(jià)類(lèi)H2={身高<1.0}和H3={身高>2.2}。
身高必須為數(shù)字,符合“限制條件”的劃分原則,可為其確立一個(gè)符合規(guī)則的有效等價(jià)類(lèi)H4={身高為純數(shù)字}和一個(gè)違反規(guī)則的無(wú)效等價(jià)類(lèi)H5={身高包含非數(shù)字}。
體重為取值范圍,符合“區(qū)間”的劃分原則,可為其確立一個(gè)在范圍內(nèi)的有效等價(jià)類(lèi)W1={30≤體重≤150},兩個(gè)超出范圍的無(wú)效等價(jià)類(lèi)W2={體重<30}和W3={體重>150}。
體重必須為數(shù)字,符合“限制條件”的劃分原則,可為其確立一個(gè)符合規(guī)則的有效等價(jià)類(lèi)W4={體重為純數(shù)字}和一個(gè)違反規(guī)則的無(wú)效等價(jià)類(lèi)W5={體重包含非數(shù)字}。
(2)輸出域分析。根據(jù)測(cè)試需求描述,對(duì)輸出條件進(jìn)行分析。當(dāng)身高或體重?zé)o效時(shí),輸出條件不為海量數(shù)據(jù),無(wú)須劃分等價(jià)類(lèi)。當(dāng)身高和體重均有效時(shí),輸出條件BMI被劃分為互不相交的4個(gè)取值范圍,符合“區(qū)間”的劃分原則,可為其中的每種情況確立在范圍內(nèi)的有效等價(jià)類(lèi)B1={BMI≤18.4}、B2={18.5≤BMI≤23.9}、B3={24.0≤BMI≤27.9}和B4={BMI≥28.0}。
以上為滿(mǎn)足要求的最小等價(jià)類(lèi)集合,在實(shí)際測(cè)試分析和設(shè)計(jì)過(guò)程中,為了提高缺陷發(fā)現(xiàn)的有效性,允許出現(xiàn)適度冗余。
基于軟件測(cè)試的經(jīng)濟(jì)學(xué)原則,建議在保證覆蓋全面的基礎(chǔ)上,設(shè)計(jì)等價(jià)類(lèi)越少越好,只需滿(mǎn)足互斥及完備的特性即可。分析上述等價(jià)類(lèi)集合,發(fā)現(xiàn)所有等價(jià)類(lèi)互不相交,滿(mǎn)足互斥的特性;所有等價(jià)類(lèi)的并是整個(gè)集合,沒(méi)有出現(xiàn)遺漏,滿(mǎn)足完備的特性。因此等價(jià)類(lèi)劃分符合設(shè)計(jì)要求。
3設(shè)計(jì)測(cè)試用例[2]
(1)有效等價(jià)類(lèi)的覆蓋。根據(jù)設(shè)計(jì)原則,需通過(guò)盡可能少的測(cè)試用例來(lái)覆蓋所有的有效等價(jià)類(lèi),用于驗(yàn)證系統(tǒng)功能的正確性。對(duì)于輸入域,由于所有有效等價(jià)類(lèi)涉及的輸入條件均相互獨(dú)立,不存在任何沖突,則只需設(shè)計(jì)一個(gè)測(cè)試用例即可。對(duì)于輸出域,由于所有等價(jià)類(lèi)涉及相同輸出條件的不同取值,則需設(shè)計(jì)4個(gè)測(cè)試用例完成覆蓋。比如{身高=1.5,體重=50}可實(shí)現(xiàn)對(duì)所有輸入等價(jià)類(lèi)及輸出等價(jià)類(lèi)B2的覆蓋。
(2)無(wú)效等價(jià)類(lèi)的覆蓋。根據(jù)設(shè)計(jì)原則,一個(gè)測(cè)試用例僅覆蓋一個(gè)無(wú)效等價(jià)類(lèi),其他輸入條件確保有效,用于驗(yàn)證系統(tǒng)功能的健壯性。對(duì)于輸入域中相互獨(dú)立的無(wú)效等價(jià)類(lèi),至少需要設(shè)計(jì)6個(gè)測(cè)試用例完成覆蓋。比如{身高=0.9,體重=50}可實(shí)現(xiàn)對(duì)涉及身高取值范圍的無(wú)效等價(jià)類(lèi)H2的覆蓋,與此同時(shí),確保身高的字符類(lèi)型和體重均有效。
(3)邊界值分析的引入。經(jīng)實(shí)踐證明,大量錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入或輸出范圍的內(nèi)部。等價(jià)類(lèi)劃分法只實(shí)現(xiàn)了“合理分類(lèi)”,在挑選數(shù)據(jù)方面略顯隨意。比如程序員將身高≥1.0錯(cuò)誤的寫(xiě)成了身高>1.0,若隨意挑選測(cè)試數(shù)據(jù){身高=1.5,體重=50}和{身高=0.9,體重=50}開(kāi)展測(cè)試,則無(wú)法發(fā)現(xiàn)這一類(lèi)缺陷。也就是說(shuō)隨意測(cè)試會(huì)帶來(lái)風(fēng)險(xiǎn),如果數(shù)據(jù)選取不對(duì)癥,則白白浪費(fèi)了寶貴的測(cè)試時(shí)間,卻無(wú)法發(fā)現(xiàn)系統(tǒng)中隱藏的問(wèn)題。因此,在測(cè)試過(guò)程中,邊界值分析法可作為等價(jià)類(lèi)劃分法的有力補(bǔ)充,用于實(shí)現(xiàn)測(cè)試數(shù)據(jù)的“精心挑選”。比如{身高=1.0,體重=50}可以有效發(fā)現(xiàn)程序中的關(guān)系謂詞書(shū)寫(xiě)錯(cuò)誤。
4結(jié)束語(yǔ)
等價(jià)類(lèi)劃分法和邊界值分析法是應(yīng)用最為普遍的黑盒測(cè)試方法,分別可以實(shí)現(xiàn)“合理分類(lèi)、精心挑選”,兩者雙劍合璧,可以達(dá)到較好的測(cè)試效果。一方面,大大減少了測(cè)試用例的數(shù)量,力爭(zhēng)用盡可能少的測(cè)試發(fā)現(xiàn)盡可能多的缺陷,保證了測(cè)試的效率;另一方面,測(cè)試用例不僅滿(mǎn)足輸入域和輸出域的全方位覆蓋,而且能夠?qū)崿F(xiàn)對(duì)系統(tǒng)功能正確性和健壯性的驗(yàn)證,保證了測(cè)試的有效性。但是這兩種方法通常只適用于輸入條件相互獨(dú)立的情況,如果輸入條件之間存在聯(lián)系,則很難描述,即使描述出來(lái),其測(cè)試效果也難以保障,需要與其他黑盒測(cè)試方法結(jié)合用于解決實(shí)際問(wèn)題。
參考文獻(xiàn)
[1] 朱少民.軟件測(cè)試方法和技術(shù)[M].第3版.北京:清華大學(xué)出版社,2014:59.
[2] 佟偉光.軟件測(cè)試[M].第2版.北京:人民郵電出版社,2015:117.
作者簡(jiǎn)介
蘇晶(1981-),女,山東省濱州市人;學(xué)歷:碩士研究生,職稱(chēng):講師,現(xiàn)就職單位:山東理工大學(xué),研究方向:軟件工程、軟件測(cè)試。