在进行错误处理测试时,要检查如下内容:

  ● 在资源使用前后或其他模块使用前后,程序是否进行错误出现检查。

  ● 出现错误后,是否可以进行错误处理,如引发错误、通知用户、进行记录。

  ● 在系统干预前,错误处理是否有效,报告和记录的错误是否真实详细。

  5. 边界测试

  边界测试是单元测试中后的任务。软件常常在边界上出错,例如,在一个程序段中有一个n次循环,当到达第n次循环时可能会出错;或者在一个有n个元素的数组中,第n个元素时是很容易出错的。因此,要特别注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试。

  此外,如果对模块性能有要求的话,还要专门进行关键路径测试,以确定坏情况下和平均意义下影响运行时间的因素。下面是边界测试的具体要检查的内容:

  ● 普通合法数据是否正确处理。

  ● 普通非法数据是否正确处理。

  ● 边界内接近边界的(合法)数据是否正确处理。

  ● 边界外接近边界的(非法)数据是否正确处理等。

  ● 在n次循环的第0次、第1次、第n次是否有错误。

  ● 运算或判断中取大小值时是否有错误;

  ● 数据流、控制流中刚好等于、大于、小于确定的比较值时是否出现错误。

  为了使单元测试能充分细致地展开,应在实施单元测试中遵守下述要求:

  1)语句覆盖达到。语句覆盖指被测单元中每条可执行语句都被测试用例所覆盖。语句覆盖是强度低的覆盖要求,要考虑语句覆盖的意义,只要想象一下用一段从没执行过的程序控制庞大的飞行器升上天空,然后设法使它精确入轨,这种轻率简直是荒唐。实际测试中,不一定能做到每条语句都执行到。第一,存在“死码”,即由于程序设计错误在任何情况下都不可能执行到的代码。第二,不是“死码”,但是由于要求的测试输入及条件非常难达到或单元测试的条件所限,使得代码没有得到运行。因此,在可执行语句未得到执行时,要深入程序作详细的分析。如果是属于以上两种情况,则可以认为完成了覆盖,但是对于后者,如果可能一定要尽量测试到,如果以上两者都不是,则是因为测试用例设计不充分,需要再设计测试用例。

  2)分支覆盖达到。分支覆盖指分支语句取真值和取假值各一次,分支语句是程序控制流的重要处理语句,在不同流向上测试可以验证这些控制流向的正确性。分支覆盖使这些分支产生的输出都得到验证,提高测试的充分性。

  3)覆盖错误处理路径。

  4)单元的软件特性覆盖。软件的特性包括功能、性能、属性、设计约束、状态数目、分支的行数等。

  5)对试用额定数据值、奇异数据值和边界值的计算进行检验,用假想的数据类型和数据值运行,测试排斥不规则输入的能力。

  单元测试通常是由编写程序的人自己完成的,但是项目负责人应当关心测试的结果。所有的测试用例和测试结果都是模块开发的重要资料,需妥善保存。