软件工程第七章软件测试2

合集下载

《软件工程》 第七章软件测试技术PPT课件

《软件工程》  第七章软件测试技术PPT课件
软件测试
1
整体概况
概况一
点击此处输入 相关文本内容
01
概况二
点击此处输入 相关文本内容
02
概况三
点击此处输入 相关文本内容
03
2
内容介绍
一 软件测试概述 二 测试方法及技术 三 测试用例的设计 四 测试过程 五 调试
3
在开发软件的过程中,我们使用了保证软件质量 的 方法分析、设计和实现软件,但难免还会在工作中 犯错 误。这样,在软件产品中就会隐藏着许多错误和 缺陷 。 特别是对于规模大、 复杂性高的软件更是如 此。在这 些错误中,有些是致命性的错误如果不排除 ,就会导致 生命与财产的重大损失。
软件测试工程师 (Software Test Engineer ,简称STE)
7
SDE/T
负责写测试工具代码,并 利用测试工具对软件进行 测试;或者开发测试工具 为软件测试工程师服务。
8
负责理解产品的功能要求, 然后对其进行测试,检查软 件有没有错误(Bug),决定软 件是否具有稳定性,并写出 相应的测试规范和测试案例。
STE
9
Exchange 2000 和 Windo试人员 测试人员/开发
人员
Exchange 2000
25人 140人 350人
2: 5
Windows 2000
约 250人 约 1700人 约 3200人
1: 9
10
软件测试人员的任务很清楚,就是站在使用者 的角度上,通过不断地使用和攻击刚开发出来 的软件产品尽量多地找出产品存在的问题,也 就是我们所称的 Bug 。
black-box , or closed-box testing ——Make sure that every kind of input is submitted, and the output observed matches the output expected.

软件工程导论(第7章)

软件工程导论(第7章)

测试的正确定义:“为了发现程序中的错 误而执行程序的过程。”
7.2.2 软件测试准则
1)所有测试都应该能追溯到用户需求;
2)应该远在测试前就制定出测试计划;
3)把Pareto原理应用到软件测试中;Pareto原理 说明测试发现的错误中的80%很可能是由程序 中20%的模块造成的。
4)应该从“小规模”测试开始,并逐步进行“大 规模”测试;
USER32.DLL; GDI32.DLL; KERNEL32.DLL。
Windows消息机制:
1)基于消息的事件驱动 消息可以是由硬件发来的(存于系统队列),
也可以由Windows系统和应用程序发来(存于 程序队列中);
每一个Windows程序在不停的捕捉各种消息, 并进行处理;
每个窗口都必须有一个窗口函数,来负责消息 的判断与处理。
3)重要的执行路径 由于不可能进行穷尽测试,因此选择测试
路径是非常关键的。 4)出错处理通路 5)边界条件
7.3.2 代码审查
审查小组: 1)组长; 2)程序的设计者; 3)程序的编写者; 4)程序的测试者。
7.3.3 计算机测试
由于软件模块不是一个独立的系统,不能独 立运行,要依靠其他模块调用,或需要调用其 他模块。
1.模块测试 模块测试又称单元测试,它把每个模块作为
单独的实体来测试。 2.子系统测试
子系统测试是把经过单元测试的模块放在一 起形成一个子系统来测试。
3.系统测试 系统测试是把经过测试的子系统装配成一个完
整的系统来测试。 4.验收测试
验收测试把软件系统作为单一的实体进行测试 (利用用户的实际数据测试)。 5.平行运行
如PL/1、PASCAL、C、ADA等 3)专用语言 如APL、BLISS、FORTH、LISP、PROLOG等

软件工程考核知识点-第7章-软件测试

软件工程考核知识点-第7章-软件测试

软件工程考核知识点-第7章-软件测试7.1 软件测试的目的及原则7.1.1 软件测试的目的(1)软件测试是为了发现错误而执行程序的过程。

(2)一个好的测试用例能够发现至今尚未发现的错误。

(3)一个成功的测试是发现了至今尚未发现的错误的测试。

因此,测试阶段的基本任务应该是根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组“高产”的测试用例,利用这些实例执行程序,找出软件中潜在的各种错误和缺陷。

7.1.2软件测试的原则在软件测试中,应注意以下原则:(1)测试用例应由输入数据和预期的输出数据两部分组成。

这样便于对照检查,做到"有的放矢"。

(2)测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。

这样能更多地发现错误,提高程序地可靠性。

对于不合理地输入数据,程序应拒绝接受,并给出相应提示。

(3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。

例如程序正确打印出用户所需信息的同时还打印出用户并不需要的多余的信息。

(4)应制定测试计划并严格执行,排除随意性。

(5)长期保留测试用例。

测试用例的设计耗费很大的工作量,必须作为文档保存。

因为修改后的程序可能有新的错误,需要进行回归测试。

同时,为以后的维护提供方便。

(6)对发现错误较多的程序段,应进行更深入的测试。

有统计数字表明,一段程序中所发现的错误数越多,其中存在的错误概率也越大。

因为发现错误数多的程序段,其质量较差。

同时在修改错误过程中又容易引入新的错误。

(7)程序员避免测试自己的程序。

测试是一种"挑剔性"的行为,心理状态是测试自己程序的障碍。

另外,对需求规格说明的理解而引入的错误则更难发现。

因此应由别的人或另外的机构来测试程序员编写的程序会更客观,更有效。

7.2 测试方法软件测试方法一般分为两大类:动态测试方法与静态测试方法,而动态测试方法中又根据测试用例的设计方法不同,分为黑盒测试与白盒测试两类。

软件工程第7章软件测试

软件工程第7章软件测试

软件测试的任务和目标
软件测试的原则:
(1)应当把“尽早地和不断地测试”作为开发者的座右铭 (2)软件测试工作应该由独立的专业的软件测试机构来完成 (3)测试工作要全面,但不可能实现“穷举”。 (4)把Pareto原理应用到软件测试中。即对发现错误较多的程序段, 应进行更深入的测试。 (5)妥善保存一切测试过程文档,作用是不言而喻的,测试的重现性 往往要靠测试文档。 (6)不要希望在极短的时间内完成一个高水平的测试。 (7)错误经过修改后,相关的测试必不可少。
软件测试方法
常用的覆盖技术有: (3)条件覆盖: 条件覆盖是指设计足够的测试用例,使被测程序的每个判定表达式中每 个条件的各种可能的值至少出现一次。即对该程序中的四个条件A>1 B=o A=2,X>1 要选择足够的测试用例,使得: 判定表达式1出现:A>1,B=0;A≤1,B≠0 判定表达式2出现:A=2, X>1; A≠2, X≤1 达到条件覆盖标准。 为满足上述要求,选择以下两组数据: A=2,B=0, X=3(满足A>1 ,B=0, A=2 , X>1 通过路径124) A=1,B=1, X=1(满足A≤1,B≠0, X ≤1, A≠2通过路径135 )
Exchange 项目经理 25人 Windows 2000 约250人
开发人员
测试人员 测试人员/开发人员
140人
350人 2.5
约1700人
约3200人 1.9
软件测试的任务和目标
目前软件开发结构,将研制力量的40%以上投入到 软件测试之中。 几个典型系统中软件测试的费用
系统名称 SAGE 测试费用占软件开发预算的比例 47%
2、一个好的测试用例能够发现至今尚未发现的错误。

软件工程第七章软件测试2

软件工程第七章软件测试2
在设计测试用例时,要同时考虑有效 等价类和无效等价类的设计。
35
划分等价类等价类的原则。 (1) 如果输入条件规定了取值范围,或 值的个数,则可以确立一个有效等价类 和两个无效等价类。
36
例如,在程序的规格说明中,对输入条 件有一句话:
“…… 项数可以从1到999 ……” 则有效等价类是“1≤项数≤999” 两个无效等价类是“项数<1”或
5
用黑盒测试发现程序中的错误,必须在 所有可能的输入条件和输出条件中确定 测试数据,来检查程序是否都能产生正 确的输出。
但这是不可能的。
6
假设一个程序P有输入量X和Y及输出量 Z。在字长为32位的计算机上运行。若 X、Y取整数,按黑盒方法进行穷举测 试:
可能采用的 测试数据组: 232×232 =264
8
软件人员使用白盒测试方法,主要想对程 序模块进行如下的检查:
对程序模块的所有独立的执行路径 至少测试一次;
对所有的逻辑判定,取“真”与取 “假”的两种情况都至少测试一次;
在循环的边界和运行界限内执行循 环体;
测试内部数据结构的有效性,等。
9
对一个具有多重选择和循环嵌套的程 序,不同的路径数目可能是天文数字。 给出一个小程序的流程图,它包括了一 个执行20次的循环。
T1T2T3T4 ①, ⑤
T1T2T3T4 ②, ⑥ ③, ⑦
T1T2T3T4 ④, ⑧ T1T2T3T4
30
6 路径测试
路径测试就是设计足够的测试用例,覆 盖程序中所有可能的路径。
测 试 用 例 通过路径 覆盖条件
【(2, 0, 4), (2, 0, 3)】 ace (L1) T1T2T3T4
40
例如,Pascal语言规定 “一个语句必须 以分号‘;’结束”。这时,可以确定一 个有效等价类 “以‘;’结束”,若干个 无效等价类 “以‘:’结束”、“以‘,’ 结束”、“以‘ ’结束”、“以LF结 束”等。

软件工程课程目录

软件工程课程目录

第一章软件工程概述介绍软件工程概念的提出以及发展历程,并分析软件开发的本质。

软件工程概论课程介绍第二章软件过程介绍如何定义一个项目的过程,主要涉及三方面的知识:(1)要了解软件开发通常需要做哪些工作,即软件生存周期过程;(2)要了解定义过程的基准框架,即软件生存周期模型;(3)是要了解一般性的过程规划技术。

软件过程(1)-20100913软件过程(2)-20100916软件过程(3)-20100916第三章软件需求与软件需求规约介绍软件需求的定义、需求的分类、常用的需求发现技术,以及需求规约。

软件需求-20100923第四章结构化分析介绍结构化需求分析、需求验证及实例研究。

结构化分析方法-0927第五章结构化设计结构化设计:总体设计的目标及其表示、总体设计方法、设计评价准则与启发式规则、设计优化、详细设计、软件设计规格说明书、实例研究。

结构构化设计方法-总体设计0930结构化设计-详细设计和软件设计规约1011第六章面向对象方法-UML面向对象方法发展以及UML(Unified Modeling Language)的提出、表达客观事物的术语、表达关系的术语、组织信息的通用机制--包、模型表示工具。

面向对象介绍面向对象方法UML(1)面向对象方法UML(2)面向对象方法UML(3)第七章面向对象分析、设计和编程技术介绍面向对象分析、设计和编程技术。

面向对象分析模型规约面向对象设计(1)面向对象设计(2)面向对象编程第八章面向对象方法-RUPRUP(Unified Software Development Process)的作用和特点、核心工作流。

RUP-1-1207RUP-2-1210RUP-3-1214第九章软件测试软件测试目标与软件测试过程模型、软件测试技术、软件测试步骤、静态分析技术-程序正确性证明。

软件测试(1)软件测试(2)软件测试-扩展报告第十章软件工程管理软件工程管理活动;软件规模、成本和进度估算;能力成熟度模型CMM;ISO9000标准。

自学考试软件工程第7章自测题及参考答案

第7章自测题及参考答案一、名词解释1. 软件测试2.黑盒法3.白盒法4.渐增式测试5.非渐增式测试6.调试二、填空题1.软件测试是为了_____而执行程序的过程。

2.运行被测程序的方法称为_______测试。

3.动态测试中,主要测试软件功能的方法称为______法。

4.选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准称为_______。

5.要覆盖含有循环结构的所有路径是不可能的,一般通过限制_____来测试。

6.用等价类划分法设计测试用例时,如果被测程序的某个输入条件规定了取值范围,则可确定一个合理的等价类和_______。

7.凭经验或直觉推测程序中可能存在的错误而设计测试用例的方法是_______。

8.集成测试中的具体方法是______。

9.确认测试阶段的两项工作是______。

10.在单元测试中,测试一个模块时,需要设计_______。

三、选择题1.测试的关键问题是( )。

A.如何组织软件评审B.如何选择测试用例C.如何验证程序的正确性D.如何采用综合策略2.软件测试用例主要由输入数据和( )两部分组成。

A.测试计划B.测试规则C.预期输出结果D.以往测试记录分析3.成功的测试是指运行测试用例后( )。

A.未发现程序错误B.发现了程序错误C.证明程序正确D.改正了程序错误4.下列几种逻辑覆盖标准中,查错能力最强的是( )。

A.语句覆盖B.判定覆盖C.条件覆盖D.条件组合覆盖5.在黑盒测试中,着重检查输入条件组合的方法是( )。

A.等价类划分法B.边界值分析法C.错误推测法D.因果图法6.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( )。

A.系统功能B.局部数据结构C.重要的执行路径D.错误处理7.软件测试过程中的集成测试主要是为了发现( )阶段的错误。

A.需求分析B.概要分析C.详细设计D.编码8.不属于白盒测试的技术是( )。

A.路径覆盖B.判定覆盖C.循环覆盖D.边界值分析9.集成测试时,能较早发现高层模块接口错误的测试方法为( )。

《软件工程》第7章 软件测试-大纲

第7章软件测试7.1 软件测试目标——测试是为了证明程序有错,而不是证明程序无错误7.2 软件测试准则(6个)——所有测试都应该能追溯到用户需求——测试开始之前制定测试计划——Pareto原理可应用于软件测试——从小规模测试开始,并逐步进行大规模测试——穷举测试是不可能的——由独立的第三方从事测试工作7.3 软件测试方法——测试时是否需要执行被测软件……静态测试定义:对被测程序进行特性分析的方法的总称,这些方法的主要特性是无须执行被测代码,而是借助专用的软件测试工具评审软件文档或程序,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编写的程序的不足之处,减少错误出现的概率。

……动态测试定义:实际运行被测程序,通过输入相应的测试用例,判定执行结果(输入/输出的对应关系)是否符合要求,从而检验程序的正确性、可靠性和有效性。

——测试是否针对内部结构和具体实现算法……黑盒测试定义:是一种从用户观点出发的测试。

用这种方法进行测试时,把被测程序当作一个黑盒,不考虑程序内部结构和特性,测试者只考虑程序输入输出和程序功能,根据需求规格说明书来设计测试用例,推断测试结果的正确性……白盒测试定义:依赖于对程序内部细节的严密检验,针对特定条件设计测试用例,对软件的逻辑路径进行测试。

……灰盒测试7.4 软件测试过程7.4.1 单元测试——定义:将每个模块作为一个独立的实体来测试。

用详细设计描述作指南,对重要的程序执行通路进行测试,以便发现模块内部的错误。

发现编码和详细设计的错误。

——驱动模块,桩模块(存根程序)7.4.2 集成测试——定义:按照概要设计的要求组装独立模块成为子系统或系统,同时经过测试来发现接口错误的一种系统化的技术。

——模式:……非渐增式测试方法(分模块测试→一次性组装→所有模块集成测试)……渐增式测试方法(分模块测试→逐个模块组装→直到集成测试)●自顶向下集成(深度优先策略,宽度优先策略)●自底向上集成●三明治集成7.4.3 系统测试——定义:系统测试是指将经过集成测试的软件作为整个基于计算机系统的一个元素,与计算机硬件、外设、支持软件、数据和人员等元素结合在一起,对计算机系统进行一系列的组装测试和确认测试。

软件工程测试题2

软件工程测试题(二)一、选择题。

1.面向对象方法中实现信息隐蔽是通过对象的( C)A.分类性B.继承性C.封装性D.共享性2.ISO软件质量评价模型分为( C )A. 1层B. 2层C. 3层D. 4层3.为了定量评价软件质量,必须对软件特性进行(A )A.评审B.测试C.分析D.维护4.实现容错的主要技术手段是(D )A.白盒技术B.黑盒技术C.结构化技术D.冗余技术5.容错软件常用的技术不包括( D )A.结构冗余B.信息冗余C.时间冗余D.人员冗余6.软件开发环境是支持软件产品开发的( A)A.工具B.工具箱C.工作台D.软件系统7.早期的软件工具只完成一个特定任务,后来出现了工作台,它是一组( B)A.工具B.工具的集合C.软件D.软件的集合8.软件开发环境中最主要的组成部分是( C)A.软件工程B.项目管理工具C.软件工具D.需求分析工具9.软件工具是一个( C)A.软件工程B.项目管理工具C.软件系统D.需求分析工具10.CASE(Computer-Aided Software Engineering)的含义是计算机辅助( D)A.设计B.教育C.分析D.软件工程二、填空题。

1.DD中有四类条目:数据流条目、数据项条目、数据存储条目、加工条目。

2.需求分析阶段要确定对系统的综合需求,其中最主要的是功能需求,该阶段产生的最重要的文档之一是需求规格说明。

3.解决一个复杂问题,往往采取的策略是分解。

4.SA方法中主要描述工具是DFD(数据流图) 与DD(数据字典) 。

5.数据流图中的箭头表示数据流,椭圆表示加工(处理) ,双杠表示数据存储,矩型框表示外部实体(数据源点或终点)。

6.DFD中,每个加工、数据存储至少有1 个输入流和1 个输出流。

7.当DFD中某加工的一组动作存在多个复杂组合判断时,宜用判定表或判定树。

8.一张判定表由四个部分组成,其左上角是条件列表,左下角是操作列表,右上角是条件值组合列,左下角是各条件值组合列对应的操作列。

《软件工程学》第7章 软件测试-答案

7.1 软件测试目标1.软件测试的目的是发现并改正错误。

2.系统测试是把软件、硬件和环境连在一起的全面测试。

(√ )3.完成测试作业后,为了缩短源程序的长度应删去源程序中的注释。

(×)4.如果测试过程没有发现任何错误,则说明软件没有错误。

(×)7.2 软件测试准则1.简要说明软件测试的准则。

答:(1)所有测试都应该能追溯到用户需求(2)测试开始之前制定测试计划(3)Pareto原理可用于软件测试(4)从小规模测试开始并逐步进行大规模测试(5)穷举测试是不可能的(6)由独立的第三方从事测试工作7.3 软件测试方法1.软件测试中,白盒法是通过分析程序的( B )来设计测试用例的。

A.应用范围B.内部逻辑C.功能D.输入数据2.以下测试方法中,不属子白盒测试技术的是( C )。

A.逻辑覆盖B.基本路径测试C.等价类划分D.循环覆盖测试3.使用黑盒测试时,测试用例应根据( D )。

A.程序的内部逻辑B.程序的复杂程度C.使用说明书D.程序的功能4.系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。

(×)7.4 软件测试过程1.单元测试的测试对象是(B)。

A.系统B.模块C.模块接口D.系统功能2.确认测试主要涉及的文档是(A)。

A.需求规格说明书B.概要设计说明书C.源程序D.详细设计说明书3.验收的依据是需求说明书。

(√ )7.5 测试用例的设计1.黑盒测试:等价类划分,边界值法某教务管理信息系统中要求用户输入成绩。

成绩限制为0到100之间的整数,即系统只能对该范围内的成绩进行处理。

如果用户输入的成绩不在此范围内,则显示“输入错误”。

输入的成绩小于60则显示“不及格”,大于等于60显示“及格”。

(该系统规定成绩只能为整数,输入小数或其它字符无效。

)试用等价类划分法和边界值分析法设计测试用例,来测试程序的“输入成绩”功能。

(1)依据题目,划分的等价类为:采用等价划分法设计的测试用例如下:(2)边界值法设计测试用例的情况如下表所示:2.白盒测试:设计下列伪码程序的判定覆盖和条件组合覆盖测试用例:STARTINPUT(A,B,C,D)IF(A>0)AND (B>0)THEN X= A+BELSE X=A-BENDIF(C>A) OR (D<B)THEN Y=C-DEI.SE Y= C+DENDPRINT (X,Y)STOP答:(1)判定覆盖标准为,使每个判定表达式的每个分支(取真分支/取假分支)都至少执行一次。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20
【(2, 0, 4),(2, 0, 3)】覆盖 ace【L1】 【(1, 1, 1),(1, 1, 1)】覆盖 abd【L2】
(A=2) and (B=0) or (A>1) and (B=0) and (X/A>1)
not (A>1) and not (A=2) and not (X>1) or
12
a b F (A>1) and (B=0) T c
X=X/A
d F (A=2) or (X>1) T e
X=X+1
13
L1 ( a c e ) = {(A>1) and (B=0)} and
{(A=2) or (X/A>1)} = (A>1) and (B=0) and (A=2) or
在图例中,正好所有的可执行语句都在 路径L1上,所以选择路径 L1设计测试用 例,就可以覆盖所有的可执行语句。
18
测试用例的设计格式如下 【输入的(A, B, X),输出的(A, B, X)】
为图例设计满足语句覆盖的测试用例是: 【(2, 0, 4),(2, 0, 3)】 覆盖 ace【L1】
26
测 试 用 例 覆盖分支 条件取值
【(2, 0, 4),(2, 0, 3)】L1(c, e) T1T2T3T4
【(1, 1, 1),(1, 1, 1)】L2(b, d) T1T2T3T4
(A=2) and (B=0) or (A>1) and (B=0) and (X/A>1)
not (A>1) and not (A=2) and not (X>1) or
{(A=2) or (X>1)} = { not (A>1) or not (B=0)} and
{(A=2) or (X>1)} = not (A>1) and (A=2) or
not (A>1) and (X>1) or not (B=0) and (A=2) or not (B=0) and (X>1)
【(1, 1, 2), (1, 1, 3)】 abe (L3) T1T2T3T4 【(3, 0, 3), (3, 0, 1)】 acd (L4) T1T2T3T4
31
黑盒测试的测试用例设计
等价类划分 边界值分析 错误推测法
32
1 等价类划分
等价类划分是一种典型的黑盒测试方法, 使用这一方法时,完全不考虑程序的内 部结构,只依据程序的规格说明来设计 测试用例。
(A>1) and (B=0) and not (A=2) and not (X/A>1)
22
3 条件覆盖
条件覆盖就是设计若干个测试用例,运 行被测程序,使得程序中每个判断的每个 条件的可能取值至少执行一次。
在图例中,我们事先可对所有条件的取 值加以标记。例如,
对于第一个判断:
条件 A>1 取真为T1,取假为T 1 条件 B=0 取真为 T2,取假为 T 2
如果测试一组数据需要1毫秒,一年工 作365× 24小时,完成所有测试需5亿年。
7
白盒测试
此方法把测试对象看做一个透明的盒子, 它允许测试人员利用程序内部的逻辑结 构及有关信息,设计或选择测试用例, 对程序所有逻辑路径进行测试。
通过在不同点检查程序的状态,确定实 际的状态是否与预期的状态一致。因此 白盒测试又称为结构测试或逻辑驱动测 试。
黑盒测试又叫做功能测试或数据驱动 测试。
4
黑盒测试方法是在程序接口上进行测试, 主要是为了发现以下错误:
是否有不正确或遗漏了的功能?
在接口上,输入能否正确地接受? 能否输出正确的结果?
是否有数据结构错误或外部信息 (例如数据文件)访问错误?
性能上是否能够满足要求?
是否有初始化或终止性错误?
T1T2T3T4①, ⑤
T1T2T3T4 ②, ⑥
T1T2T3T4 ③, ⑦ ④, ⑧
T1T2T3T4
30
6 路径测试
路径测试就是设计足够的测试用例,覆 盖程序中所有可能的路径。
测 试 用 例 通过路径 覆盖条件
【(2, 0, 4), (2, 0, 3)】 ace (L1) T1T2T3T4
【(1, 1, 1), (1, 1, 1)】 abd (L2) T1T2T3T4
not (B=0) and not (A=2) and not (X>1)
27
and or
A>1 T
F
B=0 T
F
X=X/A
A=2 T
F
X>1 T
F
X=X+1
28
5 条件组合覆盖
条件组合覆盖就是设计足够的测试用 例,运行被测程序,使得每个判断的 所有可能的条件取值组合至少执行一 次。
记 ① A>1, B=0 作 T1T2 ② A>1, B≠0 作 T1T2 ③ A≯1, B=0 作 T1T2 ④ A≯1, B≠0 作 T1T2
16
L4 ( a c d ) = {(A>1) and (B=0)} and
not {(A=2) or (X/A>1)} = (A>1) and (B=0) and not (A=2) and
not (X/A>1)
17
1 语句覆盖
语句覆盖就是设计若干个测试用例,运 行被测程序,使得每一可执行语句至少 执行一次。
40
例如,Pascal语言规定 “一个语句必须 以分号‘;’结束”。这时,可以确定一 个有效等价类 “以‘;’结束”,若干个 无效等价类 “以‘:’结束”、“以‘,’ 结束”、“以‘ ’结束”、“以LF结 束”等。
38
(3) 如果输入条件是一个布尔量,则可 以确定一个有效等价类和一个无效等价 类。 (4) 如果规定了输入数据的一组值,而 且程序要对每个输入值分别进行处理。 这时可为 每一个输入值确立一个有效等 价类,此外针对这组值确立一个无效等 价类,它是所有不允许的输入值的集合。
39
例如,在教师上岗方案中规定对教授、 副教授、讲师和助教分别计算分数,做 相应的处理。因此可以确定4个有效等 价类为教授、副教授、讲师和助教,一 个无效等价类,它是所有不符合以上身 分的人员的输入值的集合。 (5) 如果规定了输入数据必须遵守的规 则,则可以确立一个有效等价类(符合 规则)和若干个无效等价类(从不同角 度违反规则)。
29
⑤ A=2, X>1 作 T3T4
⑥ A=2, X≯1 作 T3T4
⑦ A≠2, X>1 作 T3T4
⑧ A≠2, X≯1 作 T3T4
测试用例
覆盖条件 覆盖组合
【(2, 0, 4), (2, 0, 3)】(L1) 【(2, 1, 1), (2, 1, 2)】(L3) 【(1, 0, 3), (1, 0, 4)】(L3) 【(1, 1, 1), (1, 1, 1)】(L2)
等价类划分方法把所有可能的输入数据, 即程序的输入域划分成若干部分,然后 从每一部分中选取少数有代表性的数据 做为测试用例。
33
使用这一方法设计测试用例要经历划分 等价类(列出等价类表)和选取测试用 例两步。
划分等价类 等价类是指某个输入域的子集合。在该 子集合中,各个输入数据对于揭露程序 中的错误都是等效的。测试某等价类的 代表值就等价于对这一类其它值的测试。
(A=2) and (B=0) or (A>1) and (B=0) and (X/A>1)
19
2 判定覆盖
判定覆盖就是设计若干个测试用例, 运行被测程序,使得程序中每个判断 的取真分支和取假分支至少经历一次。
判定覆盖又称为分支覆盖。 对于图例,如果选择路径L1和L2,就
可得满足要求的测试用例:
not (B=0) and not (A=2) and not (X>1)
21
如果选择路径L3和L4,还可得另一组可 用的测试用例: 【(2, 1, 1),(2, 1, 2)】覆盖 abe【L3】 【(3, 0, 3),(3, 1, 1)】覆盖 acd【L4】
not (A>1) and (X>1) or not (B=0) and (A=2) or not (B=0) and (X>1)

T1T2T3T4
T1T2T3T4
T1T2T3T4
24
测 试 用 例 覆盖分支 条件取值
【(1, 0, 3),(1, 0, 4)】 L3(b, e) T1T2T3T4
【(2, 1, 1),(2, 1, 2)】 L3(b, e) T1T2T3T4
25
4 判定/条件覆盖
判定-条件覆盖就是设计足够的测试用例, 使得判断中每个条件的所有可能取值至少 执行一次,每个判断中的每个条件的可能 取值至少执行一次。
8
软件人员使用白盒测试方法,主要想对程 序模块进行如下的检查:
对程序模块的所有独立的执行路径 至少测试一次;
对所有的逻辑判定,取“真”与取 “假”的两种情况都至少测试一次;
在循环的边界和运行界限内执行循 环体;
测试内部数据结构的有效性,等。
9
对一个具有多重选择和循环嵌套的程序, 不同的路径数目可能是天文数字。给出 一个小程序的流程图,它包括了一个执 行20次的循环。
5
用黑盒测试发现程序中的错误,必须在 所有可能的输入条件和输出条件中确定 测试数据,来检查程序是否都能产生正 确的输出。
但这是不可能的。
6
假设一个程序P有输入量X和Y及输出量 Z。在字长为32位的计算机上运行。若 X、Y取整数,按黑盒方法进行穷举测 试:
可能采用的 测试数据组: 232×232 =264
36
例如,在程序的规格说明中,对输入条 件有一句话:
相关文档
最新文档