测试一个类,到底应该测试那些方面?哪些模块容易出问题?
对于经验丰富的大牛,可能很容易就会发现应该重点测试哪些内容,但是如果没有经验的话,想要发现一些深层次的bug,那是有一定的难度滴。因此在bug挖掘方面我们需要一些指导,指导我们哪些地方需要多做测试。
6个值得测试的部位,这6个方面统称为Right-BICEP:
Right------结果是否正确?
B----------是否所有的边界条件都是正确的?
I-----------能查一下反向关联吗?
C----------能用其他手段交叉检查一下结果吗?
E----------你是否可以强制错误条件发生?
P----------是否满足性能要求?
如果代码能够运行正确,我要怎么才之道它是正确的呢?
CORRECT边界条件:
Conformance(一致性)--------------值是否和期望的一致。
Ordering(顺序性)-------------------值是否如应该的那样,是有序或者无序的。
Range(区间性)---------------------值是否位于合理的最小值和最大值之内。
Reference(依赖性)-----------------代码是否引用了一些不在代码控制范围之内的外部资源。
Existence(存在性)-----------------值是否存在(是否是非Null,非0,在一个集合中)。
Cardinality(基数性)----------------是否恰好有足够的值?
Time(相对或者绝对的时间性)-------所有事情的发生是否是有顺序的?是否在正确时刻?是否恰好及时?