单元测试之道读书笔记(九)

总结:

一般原则:

测试任何可能失败的地方。

测试任何已经失败的地方。

对于新加的代码,在被证明正确之前,都可能是有问题的。

至少编写和产品代码一样多的测试代码。

针对每次编译都做局部测试。

签入代码之前做全局测试。

要回答的问题:

我如何知道代码运行是否正确呢?

我要如何对它进行测试?

还有那些方面可能会发生错误?

这个问题是否会在其他的地方出现呢?

测试哪些方面:使用Right-BICEP

  Right------结果是否正确(Right)

  B----------是否所有的边界(Boundary)条件都是正确的?

  I-----------能查一下反向(Inverse)关联吗?

  C----------能用其他手段交叉检查(Cross-Check)一下结果吗?

  E----------你是否可以强制错误条件(Error Condition)发生?

  P----------是否满足性能要求?

 

好的测试是一个A-TRIP

 自动化(Automatic).

彻底的(Thorough).

可重复(Repeatable).

独立的(Independent).

专业的(Professional).

 

CORRECT边界条件

Conformance(一致性)--------------值是否和期望的一致。

Ordering(顺序性)-------------------值是否如应该的那样,是有序或者无序的。

Range(区间性)---------------------值是否位于合理的最小值和最大值之内。

Reference(依赖性)-----------------代码是否引用了一些不在代码控制范围之内的外部资源。

Existence(存在性)-----------------值是否存在(是否是非Null,非0,在一个集合中)。

Cardinality(基数性)----------------是否恰好有足够的值?

Time(相对或者绝对的时间性)-------所有事情的发生是否是有顺序的?是否在正确时刻?是否恰好及时?

 

 

posted @ 2014-01-07 18:02  CandyZkn  阅读(211)  评论(0编辑  收藏  举报