什么叫好用例?被奉为经典的标准是:发现错误可能性大的用例就是好用例,发现至今未被发现的错误的用例就是成功的用例。对此,有网友评论说:这个标准就像傻子吃烧饼,连吃五个不饱,吃完第六个终于饱了,于是说:早知道吃了第六个就会饱,何必吃前面五个?没错,设计用例时你怎么知道哪个用例发现错误的可能性大?要是代码中根本就没错误呢?
好用例应该是一个集合,就像傻子吃的六个烧饼是一个整体,一起吃下去才会饱,而不是找出一个“好”烧饼,吃一个就饱。例如我们测试一个函数,如果用例集覆盖了该函数的所有等价类,那么,测试就是完整的,就是好用例和成功用例,衡量用例质量的标准跟是否发现错误无关。
举个例子,如果把程序视为一个池塘,错误视为塘中的鱼,那么,我们建立用例就相当于织网,这个网要能覆盖整个池塘,如果做到了这一点,那么一网下去,只要池塘里有鱼,就一定能捞上来,如果没有捞上鱼,可以认为塘中没有鱼。塘中是否有鱼,并不是评价网的质量的标准。