单元测试内容:
在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。
(1) 模块接口测试:在单元测试的开始,应对通过被测模块的数据流进行测试。测试项目包括: 调用本模块的输入参数是否正确; 本模块调用子模块时输入给子模块的参数是否正确; 全局量的定义在各模块中是否一致。在做内外存交换时要考虑:文件属性是否正确;OPEN与CLOSE语句是否正确;缓冲区容量与记录长度是否匹配;在进行读写操作之前是否打开了文件;在结束文件处理时是否关闭了文件; 正文书写/输入错误;I/O错误是否检查并做了处理。
(2) 局部数据结构测试。测试项目包括:不正确或不一致的数据类型说明;使用尚未赋值或尚未初始化的变量;错误的初始值或错误的缺省值; 变量名拼写错或书写错; 不一致的数据类型; 全局数据对模块的影响。
(3) 路径测试。测试项目包括:选择适当的测试用例,对模块中重要的执行路径进行测试;应当设计测试用例查找由于错误的计算、不正确的比较或不正常的控制流而导致的错误;对基本执行路径和循环进行测试可以发现大量的路径错误。
(4) 错误处理测试。包括: 出错的描述是否难以理解;出错的描述是否能够对错误定位; 显示的错误与实际的错误是否相符;对错误条件的处理正确与否;在对错误进行处理之前,错误条件是否已经引起系统的干预等。
(5) 边界测试。包括:注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试。如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。
单元测试的步骤:
模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。包括:驱动模块、桩模块 (stub) ── 存根模块。 如果一个模块要完成多种功能,可以将这个模块看成由几个小程序组成。必须对其中的每个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。对支持某些标准规程的程序,更要着手进行互联测试。有人把这种情况特别称为模块测试,以区别单元测试。