831单元测试 单元测试又称模块测试,集中对软件设 计的最小单位—模块进行测试,主要是为 了发现模块内部可能存在的各种错误和不足, 进行单元测试时,根据程序的内部结构 设计测试用例,主要使用白盒测试法。由于 各模块间相对独立,因而对多个模块的测试 可以并行地进行,以提高测试效率
单元测试又称模块测试,集中对软件设 计的最小单位——模块进行测试,主要是为 了发现模块内部可能存在的各种错误和不足。 进行单元测试时,根据程序的内部结构 设计测试用例,主要使用白盒测试法。由于 各模块间相对独立,因而对多个模块的测试 可以并行地进行,以提高测试效率。 8.3.1 单元测试
单元测试也叫模块测试 编码与单元测试一般编写人进行 测试重点是:重要执行通路、接口、局 部数据结构、异常处理路径、边界等 方法:人工测试和计算机测试
• 单元测试也叫模块测试 • 编码与单元测试一般编写人进行 • 测试重点是:重要执行通路、接口、局 部数据结构、异常处理路径、边界等 • 方法:人工测试和计算机测试
1、单元测试的内容 (1)模块接口 主要进行的测试项目有以下几方面: 所测模块的形式参数和调用该模块的实际输入参数在参数数 目、属性和顺序上是否匹配; 是否修改了只做输入用的形式参数; 输出给被调用模块的参数在数目、属性和顺序上是否正确; 全程变量的定义和用法在各个模块中是否一致。 若模块中有外部的Ⅳ/O操作,还应该进行以下的测试项目 文件属性是否正确; 打开文件语句和关闭语句是否正确; 格式说明书与输入/输出语句是否一致; 缓冲区的大小与记录长度是否匹配 使用文件之前是否先打开了文件; 文件操作结束后是否关闭了文件; 是否进行了输入/输出错误检査并进行了相应的处理
1、单元测试的内容 (1)模块接口 主要进行的测试项目有以下几方面: n 所测模块的形式参数和调用该模块的实际输入参数在参数数 目、属性和顺序上是否匹配; n 是否修改了只做输入用的形式参数; n 输出给被调用模块的参数在数目、属性和顺序上是否正确; n 全程变量的定义和用法在各个模块中是否一致。 n 若模块中有外部的I/O操作,还应该进行以下的测试项目: n 文件属性是否正确; n 打开文件语句和关闭语句是否正确; n 格式说明书与输入/输出语句是否一致; n 缓冲区的大小与记录长度是否匹配; n 使用文件之前是否先打开了文件; n 文件操作结束后是否关闭了文件; n 是否进行了输入/输出错误检查并进行了相应的处理
(2)局部数据结构 模块的局部数据结构是常见的错误来源,测试者 应该仔细设计测试用例,以便发现这样一些类型的 错误: 错误的变量名(变量名拼写错或被编译程序截 短); 错误的或不一致的数据类型说明; 使用尚未赋值或尚未初始化的变量; 错误的初始值或错误的缺省值; 数据类型不相容; 上溢、下溢或地址异常。 如果有可能的话,在单元测试期间除了局部数据 结构之外,还应该检查全程数据对模块的影响
(2)局部数据结构 模块的局部数据结构是常见的错误来源,测试者 应该仔细设计测试用例,以便发现这样一些类型的 错误: 错误的变量名(变量名拼写错或被编译程序截 短); 错误的或不一致的数据类型说明; 使用尚未赋值或尚未初始化的变量; 错误的初始值或错误的缺省值; 数据类型不相容; 上溢、下溢或地址异常。 如果有可能的话,在单元测试期间除了局部数据 结构之外,还应该检查全程数据对模块的影响
(3)重要的执行路径 选择适当的测试用例,对模块中的最有代表性、最可能发现 错误的执行路径进行测试 错误的计算主要集中在以下几个方面 运算的优先次序不对或误解了运算符的优先次序; 混合运算(运算对象的类型彼此不相容); 变量的初始值赋值不正确; 运算的精度不够; 表达式的符号有错误。 错误的比较和控制流主要集中在以下几个方面: 不同数据类型之间的比较; 逻辑运算符不正确或优先次序不正确; 由于精度问题造成的两值比较时不相等; ■差“1错,即循环次数多一次或少一次 ■错误的或不可能的循环终止条件; ■当遇到发散的迭代时不能终止的循环; ■错误地修改循环变量
(3)重要的执行路径 选择适当的测试用例,对模块中的最有代表性、最可能发现 错误的执行路径进行测试。 错误的计算主要集中在以下几个方面: n 运算的优先次序不对或误解了运算符的优先次序; n 混合运算(运算对象的类型彼此不相容); n 变量的初始值赋值不正确; n 运算的精度不够; n 表达式的符号有错误。 n 错误的比较和控制流主要集中在以下几个方面: n 不同数据类型之间的比较; n 逻辑运算符不正确或优先次序不正确; n 由于精度问题造成的两值比较时不相等; n差“1”错,即循环次数多一次或少一次; n错误的或不可能的循环终止条件; n当遇到发散的迭代时不能终止的循环; n错误地修改循环变量