这样7个最终分类减少到只有4个最终分类,查找数据为空的情况并不是所有情况下都需要测试的,其实只要测试有序表中有数据和没有数据两种情况就够了,因此查找数据为空的情况如果在其他情况中有了分类,那么也可以将其删去,这样3个数据都相等的情况就只有3个最终分类,如下图所示:
有序表有0个数据时可以所见成测试两种情况,一种是查找的数据为空,一种是查找的数据不为空。
有序表中有1个数据时的分类可以缩减成以下3种分类情况:
有序表中有2个数据的分类可以缩减成以下8种分类:
这样一来,即使不考虑4个以上数据以及3个数据在有两个数据相等情况下的分类,总共的最终分类也有20多种,每种分类至少需要设计一个测试用例,总共至少需要20多个测试用例,一个简单的二分查找的测试用例都至少需要20多个,看到这里大家也许会明白为什么90%的专业程序员写不出一个无BUG的二分查找程序来。
相关链接: