首页 > 知识点讲解
       单元测试
知识路径: > 信息系统开发和运行管理知识 > 系统实施基础知识 > 系统测试的目的、类型和方法 > 系统测试过程 > 
被考次数:3次     被考频率:中频率     总体答错率:31%     知识难度系数:     
相关知识点:6个      
        单元测试也被称为被模块测试。在模块编写完成且无编译错误后就可以进行。可以选用人工测试或机器测试,当用机器测试时,一般采用白盒测试法,多个模块可以同时进行。
        (1)单元测试的内容。
        在单元测试中,主要从模块的5个特征进行检查:模块接口、局部数据结构、重要的执行路径、出错处理和边界条件。
        ①模块接口,如果所测模块的数据流不能正确地输入、输出,则根本就无法进行其他的测试。所以在单元测试中要考察模块的接口。Myers提出了接口测试要点如下。
        .调用被测模块的输入参数和形式参数在个数、属性、单位上是否一致
        .调用其他模块时所给的实际参数和被调模块的形式参数在个数、属性、单位上是否一致
        .调用标准函数时所用的参数在属性、数目和顺序上是否正确
        .全局变量在各模块中的定义和用法是否一致
        .输入是否仅改变了形式参数
        如果模块完成了外部的输入或输出,还应该再检查以下要点:
        .开/关的语句是否正确
        .规定的I/0格式是否与输入输出语句一致
        .在使用文件之前是否已经打开文件或使用文件完毕后是否已关闭文件
        .输入输出的错误是否被检查并处理
        .输出的提示信息是否有误
        ②局部数据结构,在单元测试中,局部数据结构出错是比较常见的错误,在测试时应重点考虑以下因素。
        .变量的说明是否合适
        .是否使用了尚未赋值或尚未初始化的变量
        .变量的初始值或默认值是否正确
        .变量名是否有错,例如拼写错误
        .是否出现上溢。下溢或地址异常的错误
        如果有可能,还应确定全局变量对模块的影响。
        ③重要的执行路径,在单元测试中,对路径的测试是最基本的任务。由于不能进行穷举测试,需要精心设计测试用例来发现是否有计算、比较或控制流等方面的错误。
        计算方面的错误主要有:算术运算的优先次序不正确或理解错误;精度不够;运算对象的类型彼此不匹配;算法不正确;表达式的符号表示不正确等。
        比较和控制流是紧密结合的,一般是通过比较来决定控制流的改变。关于这方面的错误主要有:本应相等的量由于精度问题造成不相等;不同类型进行比较;逻辑运算符不正确或优先次序错误;循环终止不正确(如多循环一次或少循环一次)、死循环;不恰当地修改循环变量;当遇到分支循环时,发生出口错误等。
        ④出错处理,好的设计应该能预测到出错的条件并且有对出错处理的路径。虽然计算机可以显示出错信息的内容,但仍需要程序员对出错进行处理,保证其逻辑的正确性,便于用户维护。对出错的测试应该着重考虑这些常见错误:错误的描述难于理解;错误提示与实际错误不相符;出错的提示信息不足以确定错误或确定造成错误的原因;在对错误进行处理之前,系统已经对错误条件进行了干预等。
        ⑤边界条件,边界条件的测试是单元测试的最后工作,也是非常重要的工作。软件容易在边界出现错误,如一个n维数组,在处理数组第n个下标时常常发生错误。要仔细选择测试用例,重点考察数据流、控制流在刚好等于、大于或小于最大值或最小值的情况。
        模块测试通常由程序员本人来完成。但项目负责人应该注意测试结果,将这些些测试资料妥善保存,为后续的测试工作打下良好的基础。
        (2)单元测试的方法。
        由于模块不是独立运行的程序,各模块之间存在联系,即存在调用与被调用的关系,在对每个模块进行测试时,需要开发两种模块:
        ①驱动模块(driver),相当于一个主程序,用于接收测试用例的数据,将这些数据送到被测模块,输出测试结果。
        ②桩模块(stub),也被称为存根模块,桩模块用来代替被测模块中所调用的子模块,其内可进行少量的数据处理,目的是为了检验入口,输出调用和返回信息。
        驱动模块和桩模块是测试用的软件,不是要交给用户的软件组成部分,但需要占用一定的开发费用。为了降低成本,对于一些不能用简单的测试软件进行充分测试的模块,可以用下节介绍的增量式测试方法,在组装测试的同时完成对模块的详细测试。
        提高模块的内聚度可以简化单元测试。如果每个模块只完成一种功能,对于具体模块来讲,所需的测试方案数目就会显著减少,而且更容易发现和预测模块中的错误。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2019年上半年
   信息系统管理工..
   上午试卷 综合知识
第52题
选择题
以下关于单元测试的叙述中,不正确的是( )。

34%
   2013年上半年
   信息系统管理工..
   上午试卷 综合知识
第21题
选择题
为验证程序模块A是否实现了系统设计说明书的要求,需要进行(21);该模块能否与其他模块按照规定方式正确工作,还需要进行(22)。

32%
>>  更多  本知识点历年真题
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有