单元测试之道C#版(3)

测试哪些内容:Right-BICEP
这几个概括了测试的六个方面。
Right——结果是否正确
B
——是否所有的边界条件都是正确的——单元测试中最有价值的工作之一,因为bug一般就出现在边界上。
I——能查一下反向关联吗——应用不同的原理来编写反向逻辑关系测试。
C——能否用其它手段交叉检查一下结果——计算一个量会有一种以上的算法,可以选择其它的版本来检查我们实际应用的版本或者使用类的另一种数据检查相关的数据。
E——你是否可以强制错误条件发生
P——是否满足性能要求

CORRECT 边界条件
一致性(Conformance)——期望的或产生的数据必须符合某种特定的格式。
有序性(Ordering)——数据的顺序或是在一个很大的数据集合中某一数据的位置。任何一种搜索程序都应该针对搜索目标位于最前和最后的条件做测试。如果你的方法是让某些元素维持有序,就应该首先检查它们是否真的有序。
区间性(Range)——对于一个变量,它所属类型的取值范围可能比你需要或想要的更加宽广。在一个好的面向对象设计中,你通常都不会使用一个原生类型来存储一个具有边界的值。几乎所有的索引概念都应该被大量的测试。
引用,耦合性(Reference)——代码是否引用了一些不受代码本身直接控制的外部因素?
存在性(Existence)——值是否存在,针对null、0、空字符串和其他与存在性相关的陷阱做足够的测试。
基数性(Cardinality)——也称为集合的势,指集合包含的元素的个数。保证计算得到的数目和你所需要的数目是一致的。大部分情况下参照"0-1-n"原则。
时间性(Time)——相对时间(时间上的顺序);绝对时间(消耗的时间和钟表上的时间);并发问题。

原文地址:https://www.cnblogs.com/wxfasdic/p/1567513.html