软件测试的内容讲解

上传人:我** 文档编号:116944848 上传时间:2019-11-17 格式:PPT 页数:87 大小:353KB
返回 下载 相关 举报
软件测试的内容讲解_第1页
第1页 / 共87页
软件测试的内容讲解_第2页
第2页 / 共87页
软件测试的内容讲解_第3页
第3页 / 共87页
软件测试的内容讲解_第4页
第4页 / 共87页
软件测试的内容讲解_第5页
第5页 / 共87页
点击查看更多>>
资源描述

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

1、第7章 软件测试 软件测试是在软件投入运行之前,对软件的需求分析、设 计规格说明和编码的最后复审。 由于软件开发的各个阶段均包含了大量的人的创造性劳动 ,不可避免地会引入错误,尤其是大型、复杂的软件系统。 本章主要内容: n软件测试的目的和原则 n软件测试的方法 n软件测试的步骤 n调试 n软件测试工具 第7章 软件测试 软件测试的概念和意义 什么是软件测试: 软件测试的定义:软件测试是为了发现错误而运行 程序的过程。 根据软件开发各阶段的规格说明和程序内部结构精 心设计一批测试用例,并利用这些用例去运行程序,以 发现程序中的错误。 软件测试的概念和意义 软件测试在软件生命期中跨越两个阶段:

2、1.编写每一个模块后,进行单元测试。通常模块的 编写者和测试者是同一个人。 2.每一个模块完成单元测试后,对软件进行各种综 合测试。由专门的测试人员完成。 软件测试的概念和意义 目前,在软件开发过程中,将40%以上的工作量投入到 软件测试之中。 几个典型系统中软件测试的费用 系统名称 测试费用占软件开发预算的比例 SAGE 47% NAVAL TACTICAL 50% DATA SYSTEM GENINI 47% S ATURN V 44% 软件测试的目的和原则 软件测试的目的(G.J.Myers提出): 1、软件测试是为了发现错误而运行程序的过 程。 2、一个好的测试用例能够发现至今尚未发现

3、 的错误。 3、一个成功的测试是发现了至今尚未发现的 错误的测试。 软件测试的目的和原则 软件测试的原则: (1)应当把“尽早地和不断地测试”作为开发者的座右铭 (2)软件测试工作应该由独立的专业软件测试机构来完成 (3)测试工作要全面,但不可能实现“穷举” (4)把Pareto原理应用到软件测试中 (5)妥善保存一切测试过程文档 (6)制定严格、合理的测试计划 (7)错误经过修改后,相关的测试必不可少 测试用例的要求 n测试用例应由输入数据和预期的输出数据 两部分组成。 n测试用例不仅选用合理的输入数据,还要 选择不合理的输入数据。 n长期保留测试用例。 软件测试的范围 软件测试的对象: 软

4、件测试不等于程序测试,在软件定义与软件开发的 各个阶段所得到的各种文档资料,都是测试对象,包括需 求规格说明、概要设计规格说明、详细设计规格说明、源 程序等。 软件测试步骤 测试过程分为4个步骤: 单元测试 集成测试 确认测试 系统测试 单元 测试 单元 测试 单元 测试 被测模块 被测模块 被测模块 集成 测试 设计信息 确认 测试 系统 测试 已集成的 软件 已确认的 软件 可交付的 软件 软件需求 已测试 模块 其他系统元素 软件测试方法 静态测试 (程序不执行) 软件测试 动态测试 (程序执行) 黑盒测试(测试功能) 白盒测试(测试结构) 静态分析器(自动工具) 代码审查(人工方式)

5、软件测试方法的分类 软件测试方法 静态测试 静态测试指被测程序不在机器上运行,而采用人工检测 和计算机辅助静态检测的手段对程序进行测试。 1、人工检测:人工审查程序或评审软件。人工审查程序 偏重于编码质量的检验,而人工评审软件除了审查编码还要 对各阶段的软件产品进行检验。人工检测可以发现计算机不 易发现的错误,据统计人工检测可发现30%70%的逻辑 设计和编码错误,从而减少系统测试的总工作量。 包括”办公室“检查、会审、走查(排查)。 2、计算机辅助静态检测:利用静态检测工具对程序进行测 试。从程序中提取一些信息,以便检查程序逻辑的各种缺陷 和可疑的程序构造。 软件测试工作 动态测试 动态测试

6、是通过运行程序发现错误。 一般意义上的测试都是动态测试。为使测试发现尽可能多的 错误,动态测试时需采用一些有效的方法。 一方面通过测试检查软件每个功能的执行情况,另一方面 详细测试软件的内部结构和处理过程。分别称为黑盒测试和白盒 测试。 软件测试工作 软件测试过程中的信息: 测试过程需要三类信息: 1、软件配置:包括需求规格说明、软件设计规格说明、源程序等; 2、测试配置:包括测试方案、测试用例、测试驱动程序等; 3、测试工具:计算机辅助测试的有关工具。如测试数据自动生成工具 、静态分析程序、动态分析程序、测试结果分析程序、驱动测试的测试数据 库。 软件测试方法 软件测试信息流: 测试 结果

7、分析 可靠性 分析 排错 软件配置 测试配置 测试结果 预期结果 错误 出错率 数据 改正的软件 预测的可靠性 测试工具 设计 测试用例 准备 测试数据 用测试数据 运行程序 测试结果 分析 测试用例测试报告 预期结果 测试结果 软件动态测试过程 白盒测试法 n白盒测试法是通过分析程序内部的逻辑与执 行路径来设计测试用例,并对测试用例进行 测试的方法,也称做结构测试或逻辑驱动方 法。 n白盒测试法对程序的执行细节进行测试,验 证程序模块的每个路径的执行情况。 软件测试方法 白盒测试法 白盒测试是结构测试,所以被测对象基本上是源程序,以程序的内部结 构为基础,设计测试用例。 1、逻辑覆盖 追求程

8、序内部的逻辑覆盖程度,当程序中有循环时,覆盖每条路径是不 可能的,要设计使覆盖程度较高的或覆盖有代表性的路径的测试用例。 (A1)AND(B=0) (A=2)OR(X1) 语句段1 语句段2 T F F T 1 2 3 4 5 如右图:一个被测 程序的流程图。 软件测试方法 (1)语句覆盖: 为了提高发现错误的可能性,在测试时应该执行到程序中的每一个语句 。语句覆盖是指设计足够的测试用例,使被测程序的每个语句至少执行一次 。 (A1)AND(B=0) (A=2)OR(X1) 语句段1 语句段2 T F F T 1 2 3 4 5 测试路径为1-2-4,即可保证每个语 句至少执行一次。所以测试用

9、例为:A=2 、B=0 、X=3。程序每个语句都能执行 ,语句覆盖似乎全面地检查了每个语句, 但该测试用例只检查了逻辑表达式为“真” 的情况,如将“AND” 错写为“ OR ”、 X1错写为X1)AND(B=0) (A=2)OR(X1) 语句段1 语句段2 T F F T 1 2 3 4 5 测试路径为1-2-4,1-3-5或1-2-5,1 -3-4,即可达到覆盖标准。所以测试用例 为:A=3、B=0 、X=1(1-2-5), A=2 、B=1、X=2(1-3-4)。对于多分支的 判定,判定覆盖要使得每一个判定表达式 获得每一个可能的值。判定覆盖比语句覆 盖严格,若通过各个分支,各个语句也执

10、行了。但该测试仍不充分,上述数据只覆 盖了全部路径的一半,如将X1错写为 X1 , B=0 ,A=2,X1 要选择足够的测试用例,使得: 判定表达式1出现:A1,B=0;A1,B0 判定表达式2出现:A=2, X1; A2, X1 ,B=0, A=2 , X1 通过路径1-2-4) A=1,B=1, X=1(满足A1,B0, X1, A2通过路径1-3-5 ) (A1)AND(B=0) (A=2)OR(X1) 语句段1 语句段2 T F F T 1 2 3 4 5 软件测试方法 以上两组数据不仅覆盖了判定表达式中的所有条件的可能 取值,而且覆盖了 所有判定的取“真”分支和取“假”分支,在这 种

11、情况下条件覆盖强于判定覆盖。但也有例外,如选择以下两 组数据: A=1,B=0, X=3(满足A1,B=0,A 2 ,X1) A=2,B=1, X=1(满足A1,B0,X 1,A=2) 以上两组数据覆盖了判定表达式中的所有条件的可能取值,但 只覆盖了 第一个判定表达式的取“假”分支和第二个判定表达式 的取“真”分支,此例不满足判定覆盖。所以满足条件覆盖不一 定满足判定覆盖。为了解决此问题,需要对条件和分支兼顾。 (A1)AND(B=0) (A=2)OR(X1) 语句段1 语句段2 T F F T 1 2 3 4 5 软件测试方法 (4)判定/条件覆盖: 该覆盖标准是指设计足够的测试用例,使被测

12、程序的每个 判定表达式中每个条件的各种可能的值至少出现一次。并使每 个判定表达式所有可能的结果也至少出现一次。对该例程序, 可选择以下两组数据达到判定/条件覆盖标准: A=2,B=0, X=3 A=1,B=1, X=1 从表面上看,判定/条件覆盖测试了所有条件的取值,但 实际上条件组合中的某些条件会抑制其它的条件,如“与”运算 的判定表达式中,第一个条件为“假”,则这个表达式后面的几 个条件均不起作用,后面的表达式中的错误也就测试不出来。 (A1)AND(B=0) (A=2)OR(X1) 语句段1 语句段2 T F F T 1 2 3 4 5 软件测试方法 (5)条件组合覆盖: 该覆盖标准是指

13、设计足够的测试用例,使被测程序的每个判定表达式中每 个条件的各种可能的值的组合至少出现一次。条件组合覆盖是较强的覆盖标准 。该例中,两个判定表达式共有4个条件,有8种组合: A1, B=0 ; A1, B0 ; A1,B=0; A1, B0 ; A=2, X1 ; A=2, X1; A2, X1; A2, X1 ; 测试用例4组数据: A=2, B=0, X=2;覆盖条件组合 ,路径1-2-4 A=2, B=1, X=1;覆盖条件组合 ,路径1-3-4 A=1, B=1, X=1;覆盖条件组合 ,路径1-3-5 A=1, B=0, X=2;覆盖条件组合 ,路径1-3-4 显然,满足条件组合覆盖

14、的测试,一定满足判定覆盖、条件覆盖、判定/条件 覆盖,但该测试没有覆盖程序所有可能的执行路径,1-2-5路径没有覆盖。 (A1)AND(B=0) (A=2)OR(X1) 语句段1 语句段2 T F F T 1 2 3 4 5 软件测试方法 (6)路径覆盖: 该覆盖标准是指设计足够的测试用例,覆盖被测程序中所有可能路径: 该例可选择以下测试用例,覆盖程序中的4条路径: A=2, B=0, X=2;覆盖路径1-2-4,条件组合 ; A=2, B=1, X=1;覆盖路径1-3-4,条件组合 ; A=1, B=1, X=1;覆盖路径1-3-5,条件组合 ; A=3, B=0, X=1;覆盖路径1-2-

15、5,条件组合 ; 显然,该测试满足路径覆盖,但没有满足条件组合覆盖。 (A1)AND(B=0) (A=2)OR(X1) 语句段1 语句段2 T F F T 1 2 3 4 5 软件测试方法 发 现 错 误 能 力 语语句覆盖每条语语句至少执执行一次 判定覆盖每个判定的每个分支至少执执行一次 条件覆盖每个判定的每个条件应应取到各种可能的 值值 判定/条件覆盖 同时满时满 足判定覆盖和条件覆盖 条件组组合覆盖每个判定中各条件的每一种组组合至少出 现现一次 路径覆盖使程序中每一条可能的路径至少执执行一次 强 弱 六种覆盖标准的对比 六种覆盖标准的对比 n语句覆盖发现错误能力弱; n判定覆盖包含语句覆

16、盖,但可能会使一些条件得不到测试; n条件覆盖对每一条件进行单独检查,一般情况下其检错能力 较判定覆盖强,但有时达不到判定覆盖的要求; n判定/条件覆盖包含了判定覆盖与条件覆盖的要求,但受软件 的影响,有时达不到判定覆盖的标准; n条件组合覆盖发现错误能力较强; n路径覆盖查错能力强。 总结:在实际的逻辑覆盖测试中,一般以条件组合覆盖为主设 计测试用例,然后再补充部分用例,以达到路径覆盖测试标 准。 软件测试方法 2、基本路径测试 基本路径测试是在程序图的基础上,通过分析环 路复杂度,导出独立路径的基本集合,从而设计测试用 例,保证这些路径至少被执行一次。 基本路径测试的步骤 n画出程序图 以详细设计或源程序为基础,导出程序流程图的拓扑结 构-程序图。 程序

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

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

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