- Right-BICEP
- Right
- 首先,我们需要知道什么是正确的.这是最基本的.
- Boundary边界
- 是否所有的边界条件都正确?
- Correct
- Conformance一致性
- 结果值是否和期望值一致.
- Ordering顺序性
- 值是否跟期望一样,是有序/无序的.
- Range区间性
- 值是否位于合理的最大值和最小值之间.
- Reference依赖性
- 代码是否引用了一些不在代码本身范围内的资源.
- Existence存在性
- 值是否存在(null,0).
- Cardinality基数性
- 是否恰好有足够的值.
- Time.相对或绝对的时间性
- 事情发生是否是有序的.
- 是否在正确的时刻发生.
- Conformance一致性
- InReverse
- 查一下反向关联
- 例如,当插入一条数据到DB,通过Select语句查看结果.
- 但是一些Bug,在原和反方向都会出现,所以会被隐藏.故原和反方向应该采用不同的方法.
- Cross
- 通常一个计算量会有多种算法.因为性能或者其他原因选择了一种,可以使用其它方法来验证.
- Error
- 是否可以强制错误的发生.
- Performance
- 性能是否能够满足要求.
- Right
- 好的测试:A-Trip
- Automatic
- 对于测试所需要的任何条件(网络环境,数据库等),都应该让它们成为测试自动化的一部分.
- 测试必须能够自己决定是否正确的通过.
- Thorough
- 有两个测试的极端情况
- 1,对所有的代码行,所有的分支,所有的异常,都进行测试.
- 2,仅仅测试最可能的情况.如边界等.
- Repeatable
- 每个测试都应该独立于其他所有测试,并且独立于上下文环境.
- 每个测试都应该能够多次执行,且得到相同的结果.
- Independent
- 一个测试函数应该只专注于一个函数,或者联合起来组成一个功能的一组函数.
- 每个函数和类都应该有自己的Setup和TearDown,来保证全新的开始.
- Professional
- 编写代码的规则,也同样适合于编写测试代码.
- Automatic
单元测试基础原则
时间: 2024-10-17 22:22:16