导读:
上一篇: 自定义控件的拖动 |
单元测试应该测试什么?——Right-BICEP
单元测试应该测试什么?——Right-BICEP
Right—— 结果是否正确?
B—— 是否所有的边界条件都是正确的 ?
I—— 能查一下反响关联吗?
C—— 能用其它手段交叉检查一下吗 ?
E—— 你是否可以强制错误条件发生?
P—— 是否满足性能要求?
结果是否正确
边界条件 CORRECT
很多臭虫都会集中在边界附近,所以应该多注意。
一致性(Conformance)——值是否符合预期的格式?
有序性(Ordering)——一组值是该有序的,还是该无序的?
应该考虑数据顺序,或者是在一个很大的数据集合中某一数据的位置。
区间性(Range)——值是否在一个合理的最大值和最小值的范围之内?
引用、耦合性(Reference)——
前置条件(preconditions
后置条件(postconditions
存在性(Existence)——值是否存在(要小心null、0
nullMessage描述问题应尽量细致明确。
基数性(Cardinality)——是否恰好有足够的值?
对基数性问题的认识我目前还不是很透彻。
时间性,绝对的或者相当的(Time)——所有事情是否都是按顺序发生的?是否在正确的时间?是否及时?
测试边界是最有价值的工作,因为bug通常会集中在这里。边界测试需要考虑的主要问题:
完全伪造或者不一致的输入数据。
格式错误的数据。
空值或者不完整的值,如0, 0.0, “”, null之类的。
一些与意料中的合理值相去甚远的数值。
检查反向关联
bug
使用其他手段来实现交叉检查
强制产生错误条件
应当能够通过强制引发错误,来测试你的代码是如何处理所有这些真实世界中的问题的。
本文转自
http://blog.csdn.net/newgrammer/archive/2006/05/27/757522.aspx
上一篇: 自定义控件的拖动 |
单元测试应该测试什么?——Right-BICEP
单元测试应该测试什么?——Right-BICEP
Right—— 结果是否正确?
B—— 是否所有的边界条件都是正确的 ?
I—— 能查一下反响关联吗?
C—— 能用其它手段交叉检查一下吗 ?
E—— 你是否可以强制错误条件发生?
P—— 是否满足性能要求?
结果是否正确
边界条件 CORRECT
很多臭虫都会集中在边界附近,所以应该多注意。
一致性(Conformance)——值是否符合预期的格式?
有序性(Ordering)——一组值是该有序的,还是该无序的?
应该考虑数据顺序,或者是在一个很大的数据集合中某一数据的位置。
区间性(Range)——值是否在一个合理的最大值和最小值的范围之内?
引用、耦合性(Reference)——
前置条件(preconditions
后置条件(postconditions
存在性(Existence)——值是否存在(要小心null、0
nullMessage描述问题应尽量细致明确。
基数性(Cardinality)——是否恰好有足够的值?
对基数性问题的认识我目前还不是很透彻。
时间性,绝对的或者相当的(Time)——所有事情是否都是按顺序发生的?是否在正确的时间?是否及时?
测试边界是最有价值的工作,因为bug通常会集中在这里。边界测试需要考虑的主要问题:
完全伪造或者不一致的输入数据。
格式错误的数据。
空值或者不完整的值,如0, 0.0, “”, null之类的。
一些与意料中的合理值相去甚远的数值。
检查反向关联
bug
使用其他手段来实现交叉检查
强制产生错误条件
应当能够通过强制引发错误,来测试你的代码是如何处理所有这些真实世界中的问题的。
本文转自
http://blog.csdn.net/newgrammer/archive/2006/05/27/757522.aspx