软件测试第二章单元测试1研究报告

上传人:yuzo****123 文档编号:141364617 上传时间:2020-08-07 格式:PPT 页数:26 大小:329.50KB
返回 下载 相关 举报
软件测试第二章单元测试1研究报告_第1页
第1页 / 共26页
软件测试第二章单元测试1研究报告_第2页
第2页 / 共26页
软件测试第二章单元测试1研究报告_第3页
第3页 / 共26页
软件测试第二章单元测试1研究报告_第4页
第4页 / 共26页
软件测试第二章单元测试1研究报告_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《软件测试第二章单元测试1研究报告》由会员分享,可在线阅读,更多相关《软件测试第二章单元测试1研究报告(26页珍藏版)》请在金锄头文库上搜索。

1、2020/8/7,1,第2章: 单元测试,主讲: 林跃进,2020/8/7,2,3.1单元测试概述,定义:单元测试又称程序模块测试,是检验程序的最小的单位测试。 单元测试的主要任务: 单元测试针对每个程序的模块,主要测试5个方面的问题: 模块接口、局部数据结构、边界条件、独立的路径、错误处理,2020/8/7,3,3.1单元测试概述,模块接口 这是对模块接口进行的测试,检查进出程序单元的数据流是否正确。模块接口测试必须在任何其它测试之前进行。,2020/8/7,5,3.1单元测试概述,局部数据结构 在模块工作过程中,必须测试模块内部的数据能否保持完整性,包括内部数据的内容、形式及相互关系不发生

2、错误。,2020/8/7,6,对于局部数据结构,应该在单元测试中注意发现以下几类错误: (1)变量从来没有被使用,包括可能别的地方使用了外部变量或函数。 (2)变量没有初始化。 (3)错误的类型转换。 (4)数组越界。 (5) 变量或函数名称拼写错误,包括使用了外部变量或者函数。,2020/8/7,7,3.1单元测试概述,边界条件测试: 主要检查临界数据是否正确处理。 (1)普通合法数据是否正确处理; (2)普通非法数据是否正确处理; (3)边界内最接近边界的(合法/非法)数据是否正确处理。,2020/8/7,8,3.1单元测试概述,独立路径测试 在单元测试中,最主要的测试是针对路径的测试。测

3、试用例必须能够发现由于计算错误、不正确的判定或不正常的控制流而产生的错误。,2020/8/7,9,3.1单元测试概述,常见的错误有: 死代码 错误的计算优先级; 精度错误,包括比较运算错误、赋值错误; 表达式的不正确符号,包括,=,=,=,!=; 循环变量的使用错误,包括错误赋值。,2020/8/7,10,3.1单元测试概述,出错处理 测试出错处理的重点是模块在工作中发生了错误,其中的出错处理设施是否有效。 检验程序中的出错处理可能面对的情况有:,2020/8/7,11,3.1单元测试概述,(1)是否检查错误出现,包括资源使用前后、其它模块使用前后; (2)出现错误是否进行处理,包括抛出错误、

4、通知用户、进行记录。 (3)错误处理是否有效,包括在系统干预前处理、报告和记录的错误都应真实详细。,2020/8/7,12,3.2 单元测试的执行过程,单元测试的执行过程 单元测试常常是和代码编写工作同时进行的,在完成了程序编写、复查和语法正确性验证后,就应进行单元测试用例设计。 在单元测试时,如果模块不是独立的程序,需要设置一些辅助测试模块。辅助测试模块有两种:,2020/8/7,13,3.2 单元测试的执行过程,(1)驱动模块(Drive) 用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启动被测模块,并打印出相应的结果。 (2)桩模块(Stu

5、b) 用来模拟被测模块工作过程中所调用的模块。它们一般只进行很少的数据处理。,2020/8/7,14,1.单元测试,2020/8/7,15,3.2 单元测试的执行过程,驱动模块和桩模块都是额外的开销,虽然在单元测试中必须编写,但并不需要作为最终的产品提供给用户。,2020/8/7,16,单元测试,#include void iszero(int m) if(m!=0) printf(“%d”,m); else printf(“%d”,1); ,void main (void) int a5; int i=0; printf(“输入5个整数:n”); for(i=0;i=4;i+) scanf(

6、“%d”, ,2020/8/7,17,3.3 单元测试的执行过程,在代码编写完成后的单元测试工作主要分为两个步骤:人工静态检查(静态测试)和动态执行跟踪(动态测试)。,2020/8/7,18,3.3 单元测试的执行过程,静态测试是指测试不运行的部分只是检查和审阅。 动态测试是指通常意义上的测试运行和使用软件。 单元测试的依据是详细设计和概要设计!,2020/8/7,19,3.3 单元测试的执行过程,静态测试 不运行程序,通过程序员本人或其它人员执行人工检查,主要检查: 代码风格和规则检查 程序设计和结构的检查 业务逻辑检查 同行评审:走读、小组评审、审查。(p.23),2020/8/7,20,

7、静态测试,(1)走读 一般检查代码,也可以是检查设计文档。 一般是项目内部的其它开发人员,不涉及公司高层或外部专家。,2020/8/7,21,静态测试,(2)小组评审 由一个正式的组织对产品进行评价。确认任何与需求规格、设计规格或标准不一致的地方或者在检查后给出可替换的建议。 参与者主要是公司技术领导或权威公司及外部专家,主要适用于需求规格和概要设计的评审。,2020/8/7,22,静态测试,(3)审查 遵循严格的过程,人员经过培训,检查过程有标准,检查针对实际的产品或半成品,目的是发现存在的错误。 参加人员:公司内部设计、开发、测试、质量等部门中的工作性相关的员工组成。,2020/8/7,2

8、3,静态测试,详细设计静态测试(p.25) 代码静态测试 (p.26),2020/8/7,24,动态测试,动态测试 黑盒测试 白盒测试,2020/8/7,25,3.4 基于JUnit的单元测试,详细见实验指导书,2020/8/7,26,作业,1。简述单元测试的步骤 2。什么是驱动模块和桩模块?为下面的函数构造一个驱动模块,并至少设计5条测试用例。 /*计算两个整数的除法运算,将结果转换为单一精度输出*/ float divide(int a,int b) float c; if(b=0) printf(“除数不能为0!”); return 0; c=(float )a/b; return c; ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号