10 软件测试技术与测试实训教程讲座(10 ) 第10章 单元测试和测试实训 v1 3学时.ppt

上传人:99****p 文档编号:1451536 上传时间:2019-02-28 格式:PPT 页数:59 大小:694.50KB
下载 相关 举报
10 软件测试技术与测试实训教程讲座(10 ) 第10章 单元测试和测试实训    v1  3学时.ppt_第1页
第1页 / 共59页
10 软件测试技术与测试实训教程讲座(10 ) 第10章 单元测试和测试实训    v1  3学时.ppt_第2页
第2页 / 共59页
10 软件测试技术与测试实训教程讲座(10 ) 第10章 单元测试和测试实训    v1  3学时.ppt_第3页
第3页 / 共59页
10 软件测试技术与测试实训教程讲座(10 ) 第10章 单元测试和测试实训    v1  3学时.ppt_第4页
第4页 / 共59页
10 软件测试技术与测试实训教程讲座(10 ) 第10章 单元测试和测试实训    v1  3学时.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、软件测试技术与测试实训教程黎连业 王华 李龙 黎照北京:机械工业出版社2012.05 第 10讲: 第 10章 单元测试和单元测试实训 单元测试( Unite Testing)又称为模块测试,主要来检验软件设计中最小的单位 模块。一般来说模块的内聚程度高,每一个模块只能完成一种功能,因此模块测试的程序规模小,易检查出错误。我们可以通过单元测试进行程序语法检查和程序逻辑检查,验证程序的正确性。单元测试非常重要,因为它影响的范围比较广,主要表现在如果一个单元模块的一个函数或者参数出现问题,会造成后面很多问题的出现,而且如果单元测试做不好,使得集成测试或者后面系统测试工作也做不好。做好单元测试是一个

2、重要而且基础性的工作,主要的测试方法分为人工测试和自动化测试两种方式。 本章重点主要讨论以下内容: 单元测试的概述; 单元测试的步骤; 单元测试需要填写的表格; 单元测试提交的软件 BUG清单 单元测试的测试用例; 单元测试的人工测试实训和操作方法; 单元测试的自动化测试实训操作方法。 10.1单元测试的概述 单元测试是一种验证行为。程序中的每一项功能都应测试。作为单元测试,需要考虑以下内容。10.1.1单元测试的目的 单元测试目的主要有以下几点:( 1)检查单元模块内部的错误,为软件的评审验收提供依据。( 2)单元测试是以程序设计说明书和之前所作的测试数据(正常的和错误的)为指导,测试模块内

3、重要的路径,以检查出错误;( 3)检验信息能否正确地流入和流出单元;( 4)在单元测试工作过程中,其内部数据能否保持其完整性,包括内部数据的形式、内容及相互关系不发生错误,也包括全局变量在单元中的处理和影响。 ( 5)在为限制数据加工而设置的边界处,能否正确工作。( 6)单元的运行能否做到满足特定的逻辑覆盖。 ( 7)单元中发生了错误,其中的出错处理措施是否有效。10 1 2 单元测试的内容 模块是由程序员自己来完成的,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。程序员交付的代码一定是通过编译的代码,但代码通过编译,只是说明了它的语法正确;却无法保证它的语义也一定正确,没

4、有任何人可以轻易承诺这段代码的行为一定是正确的。 执行单元测试,就是为了证明模块代码的行为和系统期望是一致的。这个部分的测试工作是程序开发人员(程序员)进行的。测试人员或者 QA( Quality Assurance)人员对单元测试工作是要求对所有的局部的和全局的数据结构、外部接口和程序代码的关键部分进行桌前检查和严格的代码审查。 单元测试是以程序设计说明书为指导,测试模块范围内的重要控制路径,以揭露错误。 当程序编好以后,将它录制在媒体上,或者直接由终端键盘输入到机中进行调试。测试的相对复杂性和所发现的错误受到单元测试所限定的范围的限制。它在执行的过程中紧密的依照程序框架对模块进行测试(调试

5、),测试包含入口和出口的参数,输入和输出信息,错误处理信息,部分边界数值测试。需要在 8个方面对所测模块进行检查。1程序语法检查 程序语法从两个方面进行检查:一是通过编译语言对程序进行检查;二是通过人工检查。编译语言对程序的检查只检查与法的正确性与否,但不能够发现结构性和功能性的错误。人工检查是静态的,检查程序的结构、程序处理的功能以及程序书写的格式。 人工检查程序中错误的有关内容,一般如表 10-1所示。2 模块接口测试 模块接口测试是单元测试的基础,模块接口是模块内与模块外联系的关键部位。当模块通过外部调用时,数据必须能够正确流入,当模块结束问题的处理返回调用模块时,数据必须能够正确流出,

6、这样,模块才能完成它的功能。 模块接口测试应考虑下列因素: 调用其他模块时所给的输入参数与模块的形式参数在个数、属性、顺序上是否匹配; 调用其他模块时所给实际参数的个数是否与被调模块的形式参个数相同; 调用其他模块时所给实际参数的属性是否与被调模块的形式参属性匹配; 调用预定义函数时所用参数的个数、属性和次序是否正确; 输入的实际参数与形式参数的个数是否相同; 输入的实际参数与形式参数的属性是否匹配; 输入的实际参数与形式参数的量纲是否一致; 是否修改了只做输入用的形式参数; 是否存在与当前入口点无关的参数引用; 是否修改了只读型参数; 对全程变量的定义各模块是否一致; 是否把某些约束作为参数

7、传递; 输出给标准函数的参数在个数、属性、顺序上是否正确; 限制是否通过形式参数来传送; 文件属性是否正确; OPEN/CLOSE语句是否正确; 格式说明与输入输出语句是否匹配; 缓冲区大小与记录长度是否匹配; 文件使用前是否已经打开; 是否处理了输入 /输出错误; 输出信息中是否有文字性错误; 在结束文件处理时是否关闭了文件。3 程序逻辑检查 程序逻辑检查主要是检查程序的逻辑结构是否正确?程序中所使用的循环语句的上下项以及循环次数是否有问题?函数或子模块是否有自我调用问题?4局部数据结构测试 局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确的基础。模块的局部数据结构往往

8、是错误的根源,力求发现最常见的几类错误: 不合适或不相容的类型说明; 变量无初值; 变量初始化或省缺值有错; 不正确的变量名(拼错或不正确地截断); 出现上溢、下溢和地址异常。 5路径测试 应对模块中重要的执行路径进行测试。由于错误的计算、不正确的比较或不正常的控制流而导致执行路径的错误。路径错误应考虑下列因素: 运算的优先次序不正确或误解了运算的优先次序; 运算的方式错,即运算的对象彼此在类型上不相容; 算法错; 初始化不正确; 浮点数运算精度问题而造成的两值比较不等; 关系表达式中不正确的变量和比较符号表示不正确; 不正确地多循环一次或少循环一次; 错误的或不可能的循环终止条件; 当遇到发

9、散的迭代时不能终止的循环; 不适当地修改了循环变量等。6 边界条件测试 边界条件测试是单元测试中最重要的一项任务。软件经常在边界上失效,边界条件测试是一项基础测试,也是后面系统测试中的功能测试的重点,边界测试执行的较好,可以大大提高程序健壮性。边界条件测试应考虑下列因素: 程序内有一个 n次循环, n次循环应是 1n, 而不是 0n; 小于、小于等于、等于、大于、大于等于、不等于确定的比较值出错; 出现上溢、下溢和地址异常。7错误处理测试 比较完善的模块设计要求能预见出错的条件,并设置适当的出错处理,以便在一旦程序出错时,能对出错程序重做安排,保证其逻辑上的正确性。这种出错处理也应当是模块功能的一部分。错误处理测试应考虑下列因素: 出错的描述难以理解; 出错的描述不足以对错误定位,不足以确定出错的原因; 显示的错误与实际的错误不符; 对错误条件的处理不正确; 异常处理不当。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。