单元测试 -边界条件
代码中许多的bugs都出现在“边界条件”附近,也就是说,在那些条件下,代码的行为可能不同于平常的、每天都能运行到的程序路径。
用首字母缩略词“CORRECT”来助记:
一致性(Conformance):值是否符合预期格式(正常的数据),列出所有可能不一致的数据,进行验证。
有序性(Ordering):传入的参数的顺序不同的结果是否下确,对排序算法会产生影响。或者是对类的属性赋值顺序不同会不会产生错误。
区间性(Range):参数的取值范围是否在某个合理的区间范围内。
引用/耦合性(Rerference):程序依赖外部的一些条件是否已满足。前条件:系统必须处于什么状态下,该方法才能运行。后条件:你的方法将会保证哪些状态发生改变。
存在性(Existence):参数是否真的存在,引用为null,string为空,数值为0或者物理介质不存在时,程序是否能正常运行。
基数性(Cardinality):考虑以"0-1-N原则",当数值分别为0,1,N时,可能出现的结果,其中N为最大值。
时间性(Time):相对时间:函数执行的依赖顺序;绝对时间:超时问题;并发问题。