需要测试哪些内容

l          Right 结果是否正确?

1.       需要明确代码是要做什么的;

2.       对于许多有大量测试数据的测试,可以考虑使用一个独立的数据文件来存储这些测试数据,然后让测试单元读取该文件。

l          B     是否所有的边界条件都是正确的?

1.       完全伪一个不一致的输入数据;

2.       格式错误的数据,如ff@s

3.       空值或者不完整的值,如0,0.0,““和null

4.       一些与意料中的合理值相去甚远的数值,如年龄10000

5.       如果要求是一个不允许出现重复数值的list,但传入的是有重复的

6.       如果要求是一个有序list,但传入的是无序或者排序相反的list

7.       事情到达的次序是错误的,或者碰巧和期望的次序不一致

CORRECT:

1.       Conformance(一致性):值是否和语气一致;

2.       Ordering(顺序性):值是否应该这样,是有序或者无序的;

3.       Range(区间性):值是否位于合理的区间之内;

4.       Reference(依赖性):代码是否引用了一些不在本代码本身控制范围之内的外部资源;

5.       Existence(存在性):值是否存在;

6.       Cardinality(基数性):是否恰好有足够的值

7.       Time(相对或绝对的时间性):所有事情的发生是否有序的,是否是在正确的时刻,是否恰好及时

l          I     能查下反向关联吗?

使用和原方法相反的逻辑验证它们,如插入数据,使用查询这条数据进行验证。

l          C     能用其他手段交叉检查一下结果吗?

比较不同的方法对同一逻辑的处理结果进行比较来判断哪个方法是最优方法。也可以使用一个方法检查另一个方法应该产生的结果,如可以使用借书数量的方法来验证当前剩余数量的方法的结果。

l          E:      是否可以强制错误条件发生?

1.       内存/磁盘耗光

2.       时钟出现问题

3.       网络不可用或有问题

4.       系统过载

5.       受限的调色板

6.       显示分辨率过高/过低

l          P     是否满足性能要求?

1.       不频繁运行耗时的测试方法,每隔几天运行一次快速定位到我们可能引入新的任何问题。