[读书笔记]关于单元测试

一般原则:

* 测试任何可能失败的地方
* 测试任何可能失效的地方
* 对于新加的代码,在被证明正确之前,都可能有问题
* 至少编写和产品代码一样多的测试代码
* 针对每次编译都做局部测试
* 嵌入代码之前做全局测试

要回答的问题:

* 我如何知道代码运行是否正确呢
* 我要如何对它进行测试
* 还有哪些方面可能会发生错误
* 这个问题是否会在其他地方出现呢

测试哪些方面:使用你的right-bicep

* 结果是否正确(right)?
* 边界(boundary)条件是否正确?
* 是否可以检查反向关联
* 是否可以使用其他方法来跨检查结果
* 错误条件是否可以重现
* 性能方面是否满足条件

好的测试是一个TRIP

* Automatic(自动的);
* thorough(全面的);
* Repeatable(可重复的);
* Independent(独立的);
* Professional(专业);

Correct边界条件:

* 一致性(Conformance)-值是否符合预期的格式?
* 有序性(Ordering)-一组值是该有序的,还是无序的?
* 区间性(Range)-值是否在一个合理值的最大值和最小值的范围内?
* 应用,耦合性(Reference)-代码是否引用了一些不受代码本身直接控制的外部因素?
* 存在性(Existence)-值是否存在(例如,非null,非零,包含于某个集合等)
* 基数性(Cardinality)-是否恰好有足够的值?
* 时间性,绝对的或者相对的(Time)-所有事情是否都是按顺序发生的,是否在正确的时间,是否及时
###############################
Living An Awesome Life! RobinJiang
###############################
原文地址:https://www.cnblogs.com/RobinJiang/p/the-principle-of-unit-test.html