软 件 工 程(软件测试)

上传人:ZJ****1 文档编号:58869781 上传时间:2018-11-02 格式:PPT 页数:32 大小:319KB
返回 下载 相关 举报
软 件 工 程(软件测试)_第1页
第1页 / 共32页
软 件 工 程(软件测试)_第2页
第2页 / 共32页
软 件 工 程(软件测试)_第3页
第3页 / 共32页
软 件 工 程(软件测试)_第4页
第4页 / 共32页
软 件 工 程(软件测试)_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《软 件 工 程(软件测试)》由会员分享,可在线阅读,更多相关《软 件 工 程(软件测试)(32页珍藏版)》请在金锄头文库上搜索。

1、软 件 工 程 第10讲:软件测试,主讲人:阳王东 Email:,主要内容,软件测试概述 软件测试概念 测试原则 软件测试过程 黑盒测试 白盒测试法,软件测试概念,软件测试是软件质量 “层层把关”的一个重要环节,是软件产品在“发布”之前,对需求分析、设计和实现(编码)等开发工作的最后复审。 软件测试的基本目标是采用行之有效的测试方案,找出迄今未被发现的、尽可能多的错误,并加以纠正。 软件分析与设计:软件编码:软件测试=4:2:4 成功的软件测试只能证明软件的错误,而不能证明软件是正确的。,软件测试任务,测试任务通过采用一定的测试策略,找出软件中的错误; 调试任务,或称为纠错任务如果测试到错误,

2、定位软件中的故障源,加以纠正。 被测对象一定有错(该假定是合理的)。 测试要能发现尽可能多的错误,争取测试效益最大化。 测试仅能证明错误的存在,而不能证明错误的不存在。,软件测试过程,软件测试步骤 制定软件测试大纲 编写测试用例。测试用例为了进行有效的测试而设计的输入数据和预期的输出结果数据。 执行测试用例 测试总结 测试是一个过程 测试不仅是事后的结果检查 测试与开发并行 测试驱动,软件测试过程(续),需求分析,概要设计,详细设计,编码,编写单元测试用例,编写集成测试用例,编写确定测试用例,需求分析报告,概要设计说明书,详细设计说明书,执行单元测试,执行集成测试,执行确定测试,系统测试,验收

3、测试,硬件环境,网络环境,项目策划,测试 计划,项目开始,项目结束,软件测试原则,应尽早和不断地进行软件“测试”,即将这种“测试”贯穿于软件开发的各个阶段,坚持各个阶段的技术评审,以便尽早地发现和预防错误。 测试用例中,不仅要选择合理的输入数据,还要选择不合理的输入数据。 在开发各阶段应事先分别制定出相应的测试计划,在测试开始后应严格执行,防止随意性。 对发现错误较多的程序模块,应进行重点测试。Pareto指出,测试发现错误的80%集中在20%的模块中。发现错误较多的模块质量较差,需重点测试,并要测试是否引入了新的错误。 避免程序员测试自己的程序。 测试用例的设计应有第三方参与。对于大型软件的

4、测试,一般的做法是:设计者与测试者共同完成单元测试任务,而综合测试由专门的测试机构负责,有时其中也可以有设计者参加 用穷举测试是不现实的,一般通过设计测试用例,充分覆盖所有条件或所有语句即可。 长期妥善保存测试计划、测试用例、出错统计和有关的分析报告。,黑盒测试,等价类划分法边界值分析法,黑盒测试方法,黑盒测试是从输入集合中选择出一个极有可能发现错误的输入子集,根据功能描述分析,检查其相应的输出是否是预期的结果。主要是测试软件是否满足功能需求 黑盒测试由于注重于功能和数据信息域的测试,它既适用于由功能模块组成的系统,也适用于由对象构成的系统。一般能发现下列错误: 功能错误或有遗漏 性能错误 数

5、据结构或数据库访问错误 接口错误 界面有错 初始化或终止错误等一些类型的错误。,设计测试用例原则,黑盒测试方法带有经验性质的设计测试用例原则: 对有输入的所有功能,既要用有效的输入来测试,也要用无效的输入来测试。 经过菜单调用的所有功能都应该被测试,包括通过同一个菜单调用的组合功能也要测试。 设计的测试用例数量,能够达到合理测试所需的“最少”(减少测试成本)。 设计的测试用例,不仅能告知有没有错误,而且能告知错误可能是某些类型(提高测试效率)。,等价类划分,等价类划分的思想是将输入数据按有效的(合理的)和无效的(不合理的)划分成若干个等价类,认为测试等价类中的一个代表值的结果就等于对该类其他值

6、的测试。利用等价类划分的测试步骤如下: 划分等价类。从程序的功能说明中找出每个输入条件,然后将其划分成若干个有效和无效的等价类。 设计测试用例。 设计一个有效等价类的测试用例,使其尽可能多地覆盖尚未被覆盖过的有效等价类。如此重复,直到所有有效等价类都被覆盖为止。 设计一个测试用例,仅覆盖一个无效等价类,如此重复,直到所有无效等价类都被覆盖为止。,等价类的划分原则,如果规定了输入值的范围,则可划分出一个有效的等价类(输入值在此范围内)和两个无效的等价类(输入值小于最小值或大于最大值)。 如果规定了数据输入的个数,则可划分出一个有效的等价类(输入值的个数符合规定)和两个无效的等价类(输入值的个数少

7、于或多于规定个数)。 如果规定了输入数据的一组值,而且程序对不同的输入值进行不同的处理,则每个允许的输入值是一个有效的等价类,此外还有一个无效的等价类(规定的这一组值以外的值)。 如果规定了输入数据必须遵循的规则,则可划分出一个有效的等价类(符合规则)和若干个无效的等价类(从不同的角度违反规则)。 如果输入条件规定了一个集合,则可划分出一个有效的等价类(此集合)和一个无效的等价类(此集合的补集)。,测试样例,设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月2008年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来

8、测试程序的“日期检查功能”。,等价类划分的结果,等价类的测试用例,设计测试用例,以便覆盖所有的有效等价类 列出了3个有效等价类,编号分别为、,设计的测试用例如下: 测试数据 期望结果 覆盖的有效等价类 200211 输入有效 、 为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据 期望结果 覆盖的无效等价类 95June 无效输入 20036 无效输入 2001006 无效输入 198912 无效输入 200401 无效输入 200100 无效输入 200113 无效输入 ,边界值方法,边界值 如果输入条件/输出条件规定了值的范围,则应取刚达到这个范围的边界值以及刚刚超过这个范围边界

9、的值作为测试输入数据。 边界数目 如果输入条件/输出条件规定了值的个数,则用最大个数、最小个数和比最大个数多1个、比最小个数少1个的数作为测试数据。 集合边界 如果程序的规格说明给出的输入域或输出域是有序集合 (如有序表、顺序文件等),则应选取集合中的第一个和 最后一个元素作为测试用例。 数据结构边界 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。 等价类的边界,边值分析法举例,按照输入值范围的边界。例如:输入值的范围是-1.0至1.0,则可选择用例 1.0、1.0、-1.001、1.001。 按照输入/输出值个数的边界。例如:输入文件可有1-255个记

10、录,则 设计用例:文件的记录数为 0个、1个、255个、256个。 输出值域的边界。例如:检索文献摘要,最多4篇。设计用例:可检索0篇、1篇、4篇,和5篇(错误)。 输入/输出有序集(如顺序文件、线性表)的边界。 应选择第一个元素和最后一个元素。,程序的边界,NextDate函数的边界值分析测试用例 在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1mouth12和1day31,并设定变量year的取值范围为1912year2050,边界值用例,白盒测试方法,语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 组合覆盖 路径覆盖,白盒测试方法,白盒测试也称结构测试或逻辑驱动

11、测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。 白盒测试法检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。但即使每条路径都测试过了,仍然可能存在错误。因为: 穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。 穷举路径测试不可能查出程序因为遗漏路径而出错。 穷举路径测试发现不了一些与数据相关的错误。,白盒测试原则和方法,采用白盒测试方法必须遵循以下几条原则,才能达到测试的目的: 保证一个模块中的所有独立路径至少被测试一次。 所有逻辑值均需测试真 (true) 和假 (false) 两种

12、情况。 检查程序的内部数据结构,保证其结构的有效性。 在上下边界及可操作范围内运行所有循环。 白盒测试主要是检查程序的内部结构、逻辑、循环和路径。常用测试用例设计方法有: 逻辑覆盖法(逻辑驱动测试) 基本路径测试方法,白盒测试,覆盖测试 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 组合覆盖 路径覆盖 循环测试 路径测试,逻辑覆盖法,void DoWork (int x,int y,int z) int k=0,j=0;if ( (x3) /语句块3 ,语句覆盖,使得程序中的每个可执行语句至少执行一次,x=4 y=5 z=5,判定覆盖,使得程序中的每个判定至少都获得一次“真”值和“假”值, 也

13、就是使程序中的每个取“真”分支和取“假”分支至少均经历一次,x=4 y=5 z=5,x=2 y=5 z=5,abd-TT,ace-FF,条件覆盖,使得程序中每个判定包含的每个条件的可能取值(真/假)都至少满足一次。,T1:X3 T2:Z5,判定/条件覆盖,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次,组合测试,组合覆盖的目的是要使设计的测试用例能覆盖每一个判定的所有可能的条件取值组合 1、x3, z3, z=10 记做T1 -T2,第一个判定的取假分支3、x=10 记做-T1 -T2,第一个判定的取假分支5、x=4, y5 记做T3 T4,第二个判定的取真分支6、x=4, y5 记做-T3 T4,第二个判定的取真分支8、x!=4, y1) AND (B=0) THEN X:=X/A ;IF (A=2) OR (X1) THEN X:=X+1END;,画出程序流程图,作业,设计系统的黑盒测试和白盒测试用例,

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

当前位置:首页 > 学术论文 > 毕业论文

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