目录
单元测试
①模块接口。
②局部数据结构。
③重要的执行路径。
④出错处理。
⑤边界条件。
【软考-软件设计师-历年真题-2013年上半年上午基础知识】
【例】单元测试中,检查模块接口时,不需要考虑(36)。
(36)A.测试模块的输入参数和形式参数的个数、属性、单位上是否一致
B.全局变量在各模块中的定义和用法是否一致
C.输入是否改变了形式参数
D.输入参数是否使用了尚未赋值或者尚未初始化的变量
【答案】D
【解析】本题考查单元测试方面的基础知识。
单元测试也称为模块测试,在模块编写完成且无编译错误后就可以进行。单元测试侧重于模块中的内部处理逻辑和数据结构。单元测试主要检查模块的以下5个特征:模块接口、局部数据结构、重要的执行路径、出错处理和边界条件。
①模块接口。模块的接口保证了测试模块的数据流可以正确地流入、流出。在测试中应检査以下要点:
•测试模块的输入参数和形式参数在个数、属性、单位上是否一致。
•调用其他模块时所给出的实际参数和被调用模块的形式参数在个数、属性、单位上是否一致。
•调用标准函数时所用的参数在属性、数目和顺序上是否正确。
•全局变量在各模块中的定义和用法是否一致。
•输入是否仅改变了形式参数。
•开/关的语句是否正确。
•规定的I/O格式是否与输入输出语句一致。
•在使用文件之前是否已经打开文件或是用文件之后是否己经关闭文件。
②局部数据结构。在单元测试中,局部数据结构出错是比较常见的错误,在测试时应重点考虑以下因素:
•变量的说明是否合适。
•是否使用了尚未赋值或尚未初始化的变量。
•变量的初始值或默认值是否正确。
•变量名是否有错(例如:拼写错误)。
③重要的执行路径。在单元测试中,对路径的测试是最基本的任务。由于不能进行穷举测试,需要精心设计测试例子来发现是否有计算、比较或控制流等方面的错误。
•计算方面的错误:算术运算的优先次序不正确或理解错误;精度不够;运算对象的类型彼此不相容;算法错误;表达式的符号表示不正确等。
•比较和控制流的错误:本应相等的量由于精度造成不相等;不同类型进行比较; 逻辑运算符不正确或优先次序错误;循环终止不正确(如多循环一次或少循环一 次)、死循环;不恰当地修改循环变量;当遇到分支循环时,出口错误等。
④出错处理。好的设计应该能预测到出错的条件并且有对出错处理的路径。虽然计算机可以显示出错信息的内容,但仍需要程序员对出错进行处理,保证其逻辑的正确性,以便于用户维护。
⑤边界条件。边界条件的测试是单元测试的最后工作,也是非常重要的工作。
软件容易在边界出现错误。