什么樣的測(cè)試用例是好的用例?被奉為經(jīng)典的標(biāo)準(zhǔn)是:發(fā)現(xiàn)錯(cuò)誤可能性大的用例就是好用例,發(fā)現(xiàn)至今未被發(fā)現(xiàn)的錯(cuò)誤的用例就是成功的用例。
對(duì)此,有網(wǎng)友評(píng)論說:這個(gè)標(biāo)準(zhǔn)就像傻子吃燒餅,連吃五個(gè)不飽,吃完第六個(gè)終于飽了,于是說:早知道吃了第六個(gè)就會(huì)飽,何必吃前面五個(gè)?沒錯(cuò),設(shè)計(jì)用例時(shí)你怎么知道哪個(gè)用例發(fā)現(xiàn)錯(cuò)誤的可能性大?要是代碼中根本就沒錯(cuò)誤呢?
好用例應(yīng)該是一個(gè)集合,就像傻子吃的六個(gè)燒餅是一個(gè)整體,一起吃下去才會(huì)飽,而不是找出一個(gè)“好”燒餅,吃一個(gè)就飽。例如我們測(cè)試一個(gè)函數(shù),如果用例集覆蓋了該函數(shù)的所有等價(jià)類,那么,測(cè)試就是完整的,就是好用例和成功用例,衡量用例質(zhì)量的標(biāo)準(zhǔn)跟是否發(fā)現(xiàn)錯(cuò)誤無關(guān)。
舉個(gè)例子,如果把程序視為一個(gè)池塘,錯(cuò)誤視為塘中的魚,那么,我們建立用例就相當(dāng)于織網(wǎng),這個(gè)網(wǎng)要能覆蓋整個(gè)池塘,如果做到了這一點(diǎn),那么一網(wǎng)下去,只要池塘里有魚,就一定能撈上來,如果沒有撈上魚,可以認(rèn)為塘中沒有魚。塘中是否有魚,并不是評(píng)價(jià)網(wǎng)的質(zhì)量的標(biāo)準(zhǔn)。
新聞熱點(diǎn)
疑難解答