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