文档库 最新最全的文档下载
当前位置:文档库 › [黑盒测试基本方法]之等价类与边界值

[黑盒测试基本方法]之等价类与边界值

[黑盒测试基本方法]之等价类与边界值
[黑盒测试基本方法]之等价类与边界值

测试用例设计方法之等价类划分与边界值分析

1.等价类划分

1.1.前言

我们知道软件测试是根据软件开发各个阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例运行软件,以发现软件错误的过程。但在设计测试用例时,往往程序的输入是不可能穷举的。因此,我们在测试某个程序时就被限制在从所有的输入条件中挑选某个小的子集来设计测试用例。选择这个子集的前提是必须保证子集是正确的,保证子集尽可能的发现最多的错误,保证子集能代表其他大部分的测试用例,保证子集的数量是最为合理的。

1.2.定义

在前言中提到的“子集”,因为他们一个个具有代表性的集合,我们将这个“子集”称为等价类。等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某个等价类的代表值就等于对这一类其他值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。

等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。

1.3.方法应用

使用等价类划分方法来做测试,主要分两个步骤:确定等价类,生成测试用例。

1.3.1.确定等价类

确定等价类的过程是根据规格说明选取每一个输入条件将其划分为两个或更多的组。一般将等价类分为两类,有效等价类和无效等价类。有效等价类代表对程序的有效输入。无效

等价类代表的则是其他任何可能的不正确的输入。遵循“有效”,“无效”这个两个原则我们可以设计一个等价类表,确定等价类的结果就是生成一个等价类表。

1.3.

2.生成测试用例

根据第一步的等价类表来生成测试用例,其过程如下:

1.为每一个等价类设置一个不同的编号

2.编写新的测试用例,尽可能多地覆盖那些尚未被覆盖的有效等价类,直到所有的有效等

价类都被测试用例所覆盖。也就可理解为一个测试用用例可以涵盖多个有效等价类。

3.编写新的测试用例,覆盖一个且一个尚未被覆盖的无效等价类,直到所有的无效等价类

都被测试用例所覆盖。也就可以理解为一个测试用例只能涵盖一个无效等价类。

生成一个测试用例表:

1.4.一个范例

1.4.1.需求规格说明

在各种输入条件下,测试程序的登录对话框功能。

用户名和密码的规则如下:

?用户名长度为6至10位(含6位和10位)

?用户名由字符(a-z、A-Z)和数字(0-9)组成

?不能为空、空格和特殊字符

密码规则同用户名规则

1.4.

2.根据规格说明生成等价类表

这里做用户名输入的测试,因为密码输入和它一样(照样再做一套测试用例就可)

1.4.3.为每一个等价类设置一个不同的编号

1.4.4.设计测试用例

1.5.等价类划分小结测试题

(一)填空题:

1.等价类划分法中等价类一般分为_____○1和_____○2_______两个分类,对于

_____○1_______可以一个测试用例覆盖多个等价类,对于_____○2_______则一个测试用例只能覆盖一个等价类。

2.使用等价类划分的过程一般是先根据规格说明确定○3再根据○3设计出○4

(二) 设计题:

保险费率计算

某保险公司承担人寿保险,该公司保费计算方式为投保额*保险率,保险率又依点数不同而有别,10点以上费率为0.6 %,10点以下费率为0.1% :

输入数据说明。

要求:

年龄:一或两位数字。

性别:以英文「MALE」、「FEMALE」、「M」、「F」表示。

婚姻:「已婚」、「未婚」。

扶养人数:空白或一位数字。

保险费率:10点以上,10点以下。

请根据上面的规格说明,使用等价类划分设计出等价类表和测试用例表。

答案

填空题

○1: 有效等价类○2: 无效等价类○3: 等价类表○4: 测试用例表

设计题

等价类表:

测试用例表:

2.边界值分析

2.1.前言

一般很难提供一份如何进行边界值分析的“详细说明”,因为这种方法需要一定程度的创造性,以及对问题采取一定程度的特殊处理办法。

往往他是对其他方法的补充。例如与等价类划分综合使用时,在等价类取值时如果按照边界值来取值则具有更高的测试回报率。

边界值分析法与等价类划分法存在两个方面的不同:

1, 等价类划分是从等价类中挑选出任意一个元素,而边界值分析需要选择一个或多个元素且是边界元素;

2, 等价类划分仅仅关注输入条件,而边界值分析还要考虑输出等价类。

2.2.定义

边界值分析:对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

尽管说难提供一份如何进行边界值分析的“详细说明”。但还是可以归纳一些提取边界值的原则:

1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。

2)如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。

3)根据规格说明的每个输出条件,应用前面的原则①②。

4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。

5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。

6)分析规格说明,找出其他可能的边界条件。

2.3.应用方法

因为边界值需要考虑到输出域,所以要根据具体的需求看看是从结果域来划分还是从输入域来划分。如果从输入域划分,一般还是先利用等价类划分法确定出等价类表,再根据等价类表利用定义的原则取出边界值生成测试用例表。如果是从输出域划分,一般根据输出等价类来确认输入等价类表,再根据等价类表利用定义的原则取出边界值生成测试用例表。

另外,有些边界值在软件的内部,最终用户几乎看不到,但是软件测试仍有必要检查。这样的边界条件称为次边界条件或内部条件,也称做隐式条件。作为综合测试方法的一种补充手段,往往要考虑规格说明中的一些隐式边界值。例如存储空间的溢出、数组下标计算的溢出、内存分配的溢出等。

对应每个边界值需要单独设计一个测试用例。

2.4.一个范例

2.4.1.需求规格说明

找零钱最佳组合

假设商店货品价格(R)皆不大於100元(且为整数),若顾客付款在100元内(P),求找给顾客之最少货币个(张)数?(货币面值50元(N50),10元(N10),5元(N5),1元(N1)四种)

2.4.2.根据规格说明生成等价类表

2.4.

3.根据等价类表,取边界值生成测试用例表

2.5.边界值分析小结测试题

(一)填空题

1.边界值分析法作为等价类划分法的补充,它和等价类划分的主要两个区别是:

○1

○2

2.请举出三类隐式边界值:○3○4○5

(二)设计题

测试一个计算结果保存在一个字节中的最大两位数加法计算器。

答案

填空题

○1等价类划分从等价类中随机取一个值,而边界值分析需要取两个或两个以上○2等价类只考虑输入域,而边界值分析不仅考虑输入域还要考虑输出域

○3内存溢出

○4下标溢出

○5存储空间溢出

设计题

等价类表:

测试用例表:

等价类与边界值练习题解

解答: 等价类 一、某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。) 分析题目中给出和隐含的对输入条件的要求: (1)整数(2)三个数(3)非零数(4)正数 (5)两边之和大于第三边(6)等腰(7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 列出等价类表并编号

覆盖有效等价类的测试用例: a b c 覆盖等价类号码 3 4 5 (1)--(7) 4 4 5 (1)--(7),(8) 4 5 5 (1)--(7),(9) 5 4 5 (1)--(7),(10) 4 4 4 (1)--(7),(11) 覆盖无效等价类的测试用例:

二、设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。 1)划分等价类并编号,下表等价类划分的结果 日期的类型及长度①6位数字字符②有非数字字符 ③少于6位数字字符 ④多于6位数字字符 年份范围⑤在1990~2049之间⑥小于1990 ⑦大于2049 月份范围⑧在01~12之间⑨等于00 ⑩大于12 2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、 ⑤、⑧,设计的测试用例如下: 测试数据期望结果覆盖的有效等价类 200211 输入有效①、⑤、⑧ 3)为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据期望结果覆盖的无效等价类 95June 无效输入② 20036 无效输入③ 2001006 无效输入④ 198912 无效输入⑥ 200401 无效输入⑦ 200100 无效输入⑨ 200113 无效输入⑩

案例 白盒测试中的边界值测试

案例白盒测试中的边界值测试 白盒测试中需要重点测试哪些边界值呢?总结起来有以下几点: 测试数据类型的边界值,如整型的范围、单精度数的范围等。 测试数组的边界值。 测试分支判断语句的边界值:如if(a>=0)中的a=0。 1.数据类型的边界值 任何数据类型在内存中都是有一定的存储空间的。例如C语言分为DOS平台和 如果是在Turbo C(DOS环境)里面定义了一个整型变量,就需要测试这个整型变量的数值是否超出了-32768—32767这个范围;而如果是在VC(Windows 环境)里面定义了一个整型变量,就需要测试这个整型变量的数值是否超出了-2147485648—2147483647这个范围。 现看一个数据类型边界值测试的例子: #incldue void main() { int a=32765; int b=3; int c; c=a+b;;

printf(“%d”,c); } 假设该程序是用DOS环境下的Turbo C开发的,则求得的c值为32768超出了这个范围,当然不能正确打印。 启发:a和b作为两个整形变量,它们没有超出范围,而a和b计算之后的结果却超出了边界值,这也是程序员们经常犯的一个错误,要引起足够的重视。 2.数组的边界值 当测试数组时要重点测试其边界值,防止产生数组越界的问题,请看下面的例子: #include void main() { int a[5]; int i=0; for(i=0;i<=5;i++) scanf(“%d”,&a[i]); //输入数组5个元素 for(i=1;i<5;i++) printf(“%d”,a[i]); //打印数组5个元素 } 上面程序中循环时i的取值有问题。 ?第一个for循环:for(i=0;i<=5;i++),i值从0到5,赋给a[i]就变成了a[0]到a[5];而数组a[5]的范围却是从a[0]到a[4],没有a[5]这个 元素,这就是越界问题。它会有什么后果呢?我们事先在内存中只给a[5] 分配了5个整型元素所占的空间,而在用scanf语句输入时,却要输入 6个元素,那么多输入的这一个元素存在哪里呢?只能存在与数组a[5] 相邻的内存空间,而这一空间是没有提前分配的,其中不一定存储什么 样的数据,因此就比较危险,可能幼年期内存溢出的错误。 ?第二个for循环:for(i=1;i<5;i++),i值从1到4,输出a[1]到a[4],显然把a[0]这一数组元素漏掉了,虽然这一问题不是数组越界问题,但 也属于边界值出了问题。 可以将程序修改如下: #include void main() { int a[5]; int i=0; for(i=0;i<5;i++) scanf(“%d”,&a[i]); //输入数组5个元素 for(i=0;i<5;i++) printf(“%d”,a[i]); //打印数组5个元素 }

黑盒测试方法实例

黑盒测试方法实例分析 一:三角形问题(等价类划分法) 例:输入三个整数为三角形的三条边的长度值,程序打印输出这个三角形为不等边的,等腰的,或是等边三角形。 分析: 设三边分别为A,B,C,如能构成三角形的三边,须: ●A>O,B>0,C>0,且A+B>C,B+C>A,A+C>B; ●如是等腰三角形,则要判断A=B||A=C; ●如是等边三角形,须判断是否A=B,且B=C,且A=C; 由此可得三角形等价类设计表:

设计测试用例,输入顺序为A,B,C 二:找零钱最佳组合(边界值分析法) 例:假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内(P),求找给顾客最少货币个(张)数?(货币面值50元(N50),10元(N10),5元(N5),1元(N1)四种); 1:分析输入的情形 R:商店货品价格(R=<100且R为整数) P:顾客付款金额(0 100 (无效输出)(1) ●R <= 0 (无效输出)(2)

(1)(2)为R的无效输入 ●P > 100(多付)(无效输出)(3) ●0 < R < = 100 P < R (少给)(无效输出)(4) (3)(4)为P的无效输入 ●R<= P <= 100 (5) 0 < R < = 100 (6) (5)(6)同时满足,交易才能进行2:分析输出情形 设PR=P-R(即PR为找给顾客的余额) ●N50 N50 = 1 (PR>=50)(7) N50 = 0 (PR<50)(8) ●N10 4>=N10>=1 (40>=PR>=10) (9) N10 = 0 (PR<10) (10) ●N5 N5=1 (11) N5 = 0 (PR减去个位上钱数能被10整除)(如14-4=10)(12)●N1 4>=N1>=1 (13) N1 = 0 (PR为5的倍数)(14) 3:由上述输入/输出条件组合出可能的情形。 ●R > 100 (1) ●R <= 0 (2) ●0 < R <= 100, P > 100 (3) ●0 < R <= 100, P < R (4) ●0 < R <= 100, R <= P <= 100, RR = 50 (5)(6)(7) ●0 < R <= 100, R <= P <= 100, RR = 49 (5)(6)(8)(9)(11)

黑盒测试基本方法状态迁移法

状态迁移法 一、概念 1.什么是状态迁移法 在定义状态迁移法之前,先介绍一下程序的功能说明。一个程序的功能说明通常由动态说明和静态说明组成。动态说明描述了输入数据的次序或转移的次序。静态说明描述了输入条件与输出条件之间的对应关系。对于较复杂的程序,由于存在大量的组合情况,因此,仅用静态说明组成的规格说明对于测试来说往往是不够的,必须用动态说明来补充功能说明。 功能图方法是用功能图形式化地表示程序的功能说明,并机械地生成功能图的测试用例。功能图模型由状态迁移图和逻辑功能模型构成: (1)状态迁移图用于表示输入数据序列以及相应的输出数据。用状态和 迁移来描述一个状态指出数据输入的位置(或时间),而迁移则指明状态 的改变,同时要依靠判定表或因果图表示的逻辑功能。在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。 (2)逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关 系。逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定。 (3)测试用例则是由测试中经过的一系列状态和在每个状态中必须依靠 输入/输出数据满足的一对条件组成。 如何从状态迁移图中选取用例我们采用节点代替状态,弧线代替迁移,那么状态迁移图就转换成为一个程序的控制流程图,问题也就随之转换为路径测试的问题了。所以,功能图方法其实是是一种黑盒/白盒混合使用的用例设计方法。比如在功能图方法中,用到的逻辑覆盖与路径测试的概念和方法,就是属于白盒测试方法中的内容。(逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计方法,该方法要求测试人员对程序的逻辑结构有清楚的了解。由于覆盖测试的目标不同,逻辑覆盖可分为:语句覆盖,判定覆盖,判定-条件覆盖,条件组合覆盖及路径覆盖。) 注意:测试人员应当注意区分黑盒测试中系统功能或者系统水平上的逻辑覆

黑盒测试流程及方法

测试流程依次如下: 1.需求:阅读需求,理解需求,与客户、开发、架构多方交流,深入了解需求。--testing team 2.测试计划: 根据需求估算测试所需资源(人力、设备等)、所需时间、功能点划分、如 何合理分配安排资源等。---testing leader or testing manager 3.用例设计:根据测试计划、任务分配、功能点划分,设计合理的测试用例。---testing leader, senior tester 4.执行测试:根据测试用例的详细步骤,执行测试用例。--every tester(主要是初级测试人员) 5.执行结果记录和bug记录:对每个case记录测试的结果,有bug的在测试管理工具中编写bug记录。--every tester(主要是初级测试人员) 6.defect tracking:追踪leader分配给你追踪的bug.直到 bug fixed。--every tester 7.测试报告:通过不断测试、追踪,直到被测软件达到测试需求要求,并没有重大bug. 8.用户体验、软件发布等…… 详细测试步骤: 1. 书写测试计划 2. 审核测试计划,未通过返回第一步 3. 书写测试用例; 4. 审核测试用例,未通过返回第三步 5. 测试人员按照测试用例逐项进行测试活动,并且将测试结果填写在测试报告上;(测试 报告必须覆盖所有测试用例) 6. 测试过程中发现bug,将bug填写在bugzilla上发给集成部经理;(bug状态NEW) 7. 集成部经理接到bugzilla发过来的bug 7.1 对于明显的并且可以立刻解决的bug,将bug发给开发人员;(bug状态ASSIGNED); 7.2 对于不是bug的提交,集成部经理通知测试设计人员和测试人员,对相应文档进行修改; (bug状态RESOLVED,决定设置为INVALID); 7.3 对于目前无法修改的,将这个bug放到下一轮次进行修改;(bug状态RESOLVED,决定设置为REMIND) 8. 开发人员接到发过来的bug立刻修改;(bug状态RESOLVED,决定设置为FIXED) 9. 测试人员接到bugzilla发过来的错误更改信息,应该逐项复测,填写新的测试报告 (测试报告必须覆盖上一次中所有REOPENED的测试用例); 10. 如果复测有问题返回第六步(bug状态REOPENED) 11. 否则关闭这项BUG(bug状态CLOSED)

ok等价类划分和边界值分析法实例

一、等价类划分法实例: 1.输入条件为某个范围的取值: 例: 在某大学学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中的等价类划分技术,它的有效和无效等价类分别为? 2.输入条件为输入值的集合: 例: 假设PowerPoint打印输出幻灯片的页数分别为{1,2,3,6,9 },则根据黑盒测试中的等价类划分技术,它的有效和无效等价类分别为? 3.输入为BOOL变量,它的有效和无效等价类分别为? 4.输入条件中由若干规则组成,其中各个规则都是独立的:例: 一条输入的字符串中不能含有“#”和“&”两个特殊字符(其他字符都是合法的)的规则,它的有效和无效等价类分别为?5.输入条件由一个合法的规则组成: 例: 某个变量的取值必须为100,那么它的有效和无效等价类分别为? 6.为输入条件的组合关系划分等价类: 输入条件同时满足x>10和y<200两个判断表达式决定,那

么它的有效和无效等价类分别为? 二、边界值分析法实例: 1.大小范围边界 例: 若10≤x≤200,利用边界值分析法需要选择哪些测试数据? 若10

黑盒测试的五种典型方法

1.等价类划分 等价类划分是一种典型的黑盒测试方法。等价类是指某个输入域的集合。它表示对揭露程序中的错误来说,集合中的每个输入条件是等效的。因此我们只要在一个集合中选取一个测试数据即可。等价类划分的办法是把程序的输入域划分成若干等价类,然后从每个部分中选取少数代表性数据当作测试用例。这样就可使用少数测试用例检验程序在一大类情况下的反映。 在考虑等价类时,应该注意区别以下两种不同的情况: 有效等价类:有效等价类指的是对程序的规范是有意义的、合理的输入数据所构成的集合。在具体问题中,有效等价类可以是一个,也可以是多个。 无效等价类:无效等价类指对程序的规范是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。 确定等价类有以下几条原则: 如果输入条件规定了取值范围或值的个数,则可确定一个有效等价类和两个无效等价类。例如,程序的规范中提到的输入条包括“……项数可以从1 到999……”,则可取有效等价类为“l考项数<999”,无效等价类为“项数<l,,及“项数>999”。 输入条件规定了输入值的集合,或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。如某程序涉及标识符,其输入条件规定“标识符应以字母开头……”则“以字母开头者”作为有效等价类,“以非字母开头”作为无效等价类。 如果我们确知,已划分的等价类中各元素在程序中的处理方式是不同的,则应将此等价类进一步划分成更小等价类。 输入条件有效等价类无效等价类 。。。。。。 。。。。。。。。。。。。 。。。。。。。。。。。。 。。。。。。 根据已列出的等价类表,按以下步骤确定测试用例: 为每个等价类规定一个唯一的编号; 设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖; 设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步,使所有无效等价类均被覆盖。这里强调每次只覆盖一个无效等价类。这是因为一个测试用例中如果含有多个缺陷,有可能在测试中只发现其中的一个,另一些被忽视。等价类划分法能够全面、系统地考虑黑盒测试的测试用例设计问题,但是没有注意选用一些“高效的”、“有针对性的”测试用例。后面介绍的边值分析法可以弥补这一缺点。 2.因果图 等价类划分法并没有考虑到输入情况的各种组合。这样虽然各个输入条件单独可能出错的情况已经看到了,但多个输入情况组合起来可能出错的情况却被忽略。采用因果图方法能帮助我们按一定步骤选择一组高效的测试用例,同时,还能为我们指出程序规范的描述中存在什么问题。

黑盒测试方法课程练习题及答案

黑盒测试方法课程练习题 练习1 某城市的电话号码由三部分组成。第一部分为地区码:空白或三位数字;第二部分为前缀:非0或1开头的三位数;第三部分为主要电话号码:八位数字。 请用等价分类法来设计测试用例。 划分等价类: 输入等价类有效等价类无效等价类 地区码空白(1) 三位数字(2)不是空白(3) 有非数字字符(4)少于三位数字(5)多于三位数字(6) 前缀不是0开头(7) 不是1开头(8) 三位数字(9)0开头(10) 1开头(11) 有非数字字符(12)少于三位数字(13)多于三位数字(14) 电话号码八位数字(15)有非数字字符(16) 少于三位数字(17) 多于三位数字(18)设计测试用例: 选取数据覆盖等价类编号 234-12345678 (1)(7)(8)(9)(15) 123-234-12345678 (2)(7)(8)(9)(15) 123-234-12345678 (3) 1we-234-12345678 (4) 12-234-12345678 (5) 1234-234-12345678 (6) 123-012-12345678 (10) 123-123-12345678 (11) 123-a12-12345678 (12) 123-23-12345678 (13) 123-2345-12345678 (14) 123-234-1234567a (16) 123-234-12334 (17) 123-234-123456789 (18)

练习2 某城市的电话号码由三部分组成。第一部分为地区码:空白或三位数字;第二部分为前缀:非0或1开头的三位数;第三部分为主要电话号码:八位数字。 等价类结合边界值法: 选取数据覆盖等价类编号 234-12345678 (1)(7)(8)(9)(15) 123-234-12345678 (2)(7)(8)(9)(15) 123-234-12345678 (3) 1we-234-12345678 (4) 12-234-12345678 (5) 1-234-12345678 (5) 1234-234-12345678 (6) 12345-234-12345678 (6) 123-012-12345678 (10) 123-123-12345678 (11) 123-a12-12345678 (12) 123-23-12345678 (13) 123-2-12345678 (13) 123-2345-12345678 (14) 123-23456-12345678 (14) 123-234-12334 (17) 123-234-123 (17) 123-234-123456789 (18) 123-234-12345678912 (18) 练习3 有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。 请用因果图分析法来设计测试用例。 原因结果 (1)投入1元5角硬币(9)送出“可乐”按钮 (2)投入的是2元硬币(10)送出“雪碧”按钮 (3)按下“可乐”按钮(11)送出“红茶”按钮 (4)按下“雪碧”按钮(12)退还5角硬币 (5)按下“红茶”按钮 中间按钮: (6)按下“可乐”、“雪碧”、或“红茶”按钮 (7)退还5角硬币 (8)钱已付清

边界值分析法案例

1.边界条件测试 边界条件是指软件计划的操作界限所在的边缘条件。 程序在处理大量中间数值时都是对的,但是可能在边界处出现错误。比如数组的[0]元素的处理。想要在Basic中定义一个10个元素的数组,如果使用Dimdata(10) AsInteger,则定义的是一个11个元素的数组,在赋初值时再使用For i =1 to 10 ...来赋值,就会产生权限,因为程序忘记了处理i=0的0号元素。 数据类型:数值、字符、位置、数量、速度、地址、尺寸等,都会包含确定的边界。 应考虑的特征:第一个/最后一个、开始/完成、空/满、最慢/最快、相邻/最远、最小值/最大值、超过/在内、最短/最长、最早/最迟、最高/最低。这些都是可能出现的边界条件。 根据边界来选择等价分配中包含的数据。然而,仅仅测试边界线上的数据点往往不够充分。提出边界条件时,一定要测试临近边界的合法数据,即测试最后一个可能合法的数据,以及刚超过边界的非法数据。以下例子说明一下如何考虑所有可能的边界: -------------------------------------------------------------------------------- 如果文本输入域允许输入1-255个字符。 尝试:输入1个字符和255个字符(合法区间),也可以加入254个字符作为合法测试。 输入0个字符和256个字符作为非法区间。 -------------------------------------------------------------------------------- 如果程序读写软盘 尝试:保存一个尺寸极小,甚至只有一项的文件。 然后保存一个很大的——刚好在软盘容量限制之内的文件。

黑盒测试流程及方法

(又叫用户体验测试UAT) Bugzilla是Mozilla公司提供的一款开源的免费Bug(错误或是缺陷)追踪 系统,用来帮助你管理软件开发,建立完善的BUG跟踪体系。Bugzilla是一开源Bug Tracking System,是专门为Unix定制开发的。但是在windows平台下依然可以成功安装使用.Bugzilla是一个搜集缺陷的数据库。它让用户报告的缺陷从而把它们转给合适的开发者。开发者能使用保持一个要做事情的优先表,还有时间表和跟踪相关性。不是所有的"bugs"都是。一些数据库中的内容是作为增强的请求(RFE)。一个RFE是一个严重级别字段被设为"enhancement"的"Bug".人们常说"bug",实际上意思是Bugzilla中的记录,所以RFEs经常被称作bug。 黑盒测试 黑盒测试也称,它是通过测试来检测每个功能是否都能正常使用。在测试中,把看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于外部结构,不考虑内部,主要针对和软件功能进行测试。 注重于测试软件的功能需求,主要试图发现下列几类错误。 功能不正确或遗漏; 界面错误; 输入和输出错误; 访问错误; 性能错误; 和错误等。 从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证有组织、按步骤,以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证,而就是将测试行为具体量化的方法之一。具体的黑盒方法包括等价类划分法、边界值分析法、错误推测法、、判定法、正交试验设计法、功能图法、法等。 等价类划分的办法是把的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒方法。 划分等价类 1) 划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类。 有效等价类:是指对于的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。 :与有效等价类的定义恰巧相反。 设计时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性。 划分等价类准则 2)划分等价类的方法:下面给出六条确定等价类的原则。 ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。 ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个. ③在输入条件是一个的情况下,可确定一个有效等价类和一个无效等价类。 ④在规定了输入数据的一组值(假定n个),并且要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。 ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个(从不同角度违反规则)。

等价类划分法及边界值分析法测试实验

黑盒测试实验 实验项目:等价类划分法及边界值分析法用例设计及Selenium工具实践 实验目的:1、根据产品规格说明书的要求,利用等价类划分法及边界值分析法设计测试用例;2、掌握使用Selenium工具进行黑盒测试的基本方法 实验要求:个人独立搭建测试平台、设计测试用例;使用Selenium工具录制脚本及组织测试套件。 实验过程(Windows7环境): 一、用等价类划分法和边界值分析法设计测试用例。 1.条件:产品规格说明书要求图书编号的取值位数是6~10位正整数 2.设计测试用例(建议将设计结果写在表格里) 二、测试平台的搭建 1.MySQL的安装。点击SETUP.EXE,按提示点击NEXT,注意跳过注册界面,进入配置界面 2.MySQL的配置:基本都取默认设置,要注意将字符集(Character Set)设置为GB2312并 记住登录密码。 3.创建MySQL数据库。①用记事本打开library.sql并复制文件内的所有SQL命令; ②点击开始菜单下的MySQL命令行客户端,输入登录密码后粘贴复制的SQL命令。4.用记事本修改文件夹library下的web.config,将其中密码pass改为你的MySQL登录密码。5.IIS的安装。控制面板→程序和功能→打开或关闭Windows功能→勾选Internet信息服务下的相关功能项→确定。 6.”大学图书管理系统”的安装。进入控制面板→管理工具→IIS管理器→右击”默认网站”,添加虚拟目录,并指定物理路径(即文件夹library所在路径),然后将该虚拟目录转换为应用程序。 7.火狐浏览器的安装。 8.测试工具Selenium的安装。打开火狐浏览器,将文件Selenium-ide-2.4.0.xpi拖进浏览器三、用Selenium进行脚本录制及套件组织 1.打开火狐浏览器,右击其标题栏勾选菜单栏 2.在”工具”菜单下找到并点击”Selenium-IDE”启动Selenium工具,并点击右上角”脚本录制”红按钮进入录制状态。 3.在浏览器地址栏输入http://localhost/abc/login.aspx ,输入用户名:admin ,密码:pass123正常登录后,保存为1个测试用例后,关闭Selenium-IDE然后再打开上述测试用例,之后将光标定在脚本末尾并让工具进入录制状态,将测试用例输入并保存。 4.重复3得到其他测试用例。 5.打开Selenium创建一个测试套件,并依次打开或添加已保存的测试用例并保存。

黑盒测试法定义及常用方法

黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。 采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。 黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。 黑盒测试试图发现以下类型的错误: 1)功能错误或遗漏; 2)界面错误; 3)数据结构或外部数据库访问错误; 4)性能错误; 5)初始化和终止错误。 一、黑盒测试的测试用例设计方法 ·等价类划分方法 ·边界值分析方法 ·错误推测方法 ·因果图方法 ·判定表驱动分析方法 ·正交实验设计方法 ·功能图分析方法 等价类划分: 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.

1) 划分等价类: 等价类是指某个输入域的子集合.在该子集 合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可 以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较 好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类. 有效等价类:是指对于程序的规格说明来说是合理的,有意义 的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能. 无效等价类:与有效等价类的定义恰巧相反. 设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软 件具有更高的可靠性. 2)划分等价类的方法:下面给出六条确定等价类的原则. ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类. ②在输入条件规定了输入值的集合或者规定了“必须如何” 的条件的情况下,可确立一个有效等价类和一个无效等价类. ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类. ④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类. ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则). ⑥在确知已划分的等价类中各元素在程序处理中的方式不同 的情况下,则应再将该等价类进一步的划分为更小的等价类.

测试用例设计方法——边界值分析法

边界值分析法的学习 (2016/2/29--------2016/3/6)本周是我来北京学习的第二周,通过对上周等价类划分法的学习是我深深感受到了,在做功能测试时,测试用例设计的好坏直接影响到测试效率和质量。一个好的测试用例能有效提高工作效率,更能有效节省公司的有限资源。 我相信大家在开发一个软件的时候,循环结构可能会不厌其烦的出现在你的程序设计中。下面就是一个循环结构的代码片段: int i = 0; while(i < 10){ System.out.println(i); //输出变量的值 i++; //变量的值增加1 } 其执行流程为: 1、执行int I = 0; 2、判断i<10 是否成立,如果不成立则结束,否则执行 下一步 3、输出变量i 的值 4、i 的值增加1 5、跳转到步骤2 继续执行 代码很简单,相信大家都可以理解。那么,大家知道这

段代码在黑盒测试中如何来确定I<10中的关系运算符是<、>、还是>=、<=呢?很多人可能已经想到了就是几个关键性的数据:9、10、11。 通过这个小例子,大家也许就明白了什么是边界值分析法。即: 1)如果输入(输出)条件规定了取值范围,则应该以该范围的边界值及边界附近的值作为测试数据; 2)如果输入(输出)条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数 多一的数作为测试数据; 3)如果程序规格说明书中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和最 后一个元素作为测试数据; 4)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试数据。

等价类边界值综合练习题-万年历

练习题:万年历查询软件,要求用户输入以年月日表示的日期,然后系统会换算出该日期的农历表示法及相关黄历信息。假设日期限定在1900年1月1日~2049年12月31日,并规定日期由8位数字字符组成,前4位表示年,中间2位表示月,最后2位表示日期。其中4、6、9、11月只有30天,平年的2月份只有28天,闰年的2月份有29天。 (备注:为简化处理,本题在进行用例设计时,不必考虑对平年、闰年的判断)

一、先用等价类划分法设计测试用例,来测试程序的"日期检查功能"。1)划分等价类并编号,下表等价类划分的结果 2)设计测试用例覆盖所有的有效等价类,设计的测试用例如下: 3)为每一个无效等价类设计一个测试用例,设计结果如下:

4)测试用例举例: 5)存在的问题: 1、在对2月、大月、小月的无效日期进行用例选择时,日期没有取到边界上,如果程序忘记了对2月份的日期进行特殊判断,而是粗略写成所有的日期都必须小于等于28,那么用例9、用例10并不能发现错误。 2、在对大月、小月进行用例选择时,按照等价类的思想,从集合{1、 3、5、7、8、10、 12}和{4、6、9、11}中任意挑选了中间数据,感觉令人不够放心。 6)解决办法: 二、结合边界值方法进行用例设计。 首先还是利用等价类的方法进行用例设计,然后看看哪些边界值已经被覆盖到

了,最后再针对没有被覆盖的边界值补充测试用例。 设计测试用例覆盖等价类和边界值

可以再补充1月31日、11月30日的测试用例,因为1月是大月的第一个月,11月是小月的最后一个月,也可以算是边界值。 设计测试用例覆盖无效等价类:

边界值测试

“三角形问题”边界值测试

“日期处理”边界值测试判断闰年 计算下一天 计算上一天

测试结果中1990年1月28日的上一天在显示结果中没有显示,截图如下: 分析原因:在程序中计算上一天的函数中对于当月份等于1是只考虑了1月份的第1日,而忘记考虑1月份的其他日期,所以导致当输入1月28日时没有出现上一日的结果。 计算星期几

离生日12月31日的天数

佣金计算”边界值测试 实验总结: 此次的实验主要是对三角形问题,日期处理问题,佣金计算问题的程序分别进行边界值测试,在实验中,我对自己的三个程序分别进行了一般边界值测试,三角形问题中通过对设计用例的测试结果显示预测输出和测试结果全部符合没有出现问题,在日期处理问题中,计算上一日的过程中1900年1月28日的测试结果与预期结果有不同,程序中出现了错误,通过分析,由于对1月份的处理过程中没有对1月份的除第一日以外的其他的值进行处理,所以出现了错误,其他的测试结果与预期结果都是相符的。在佣金计算中,预期输出与测试结果都相符。通过此次的实验我学会了对于一般边界值测试的分析方法及过程,在测试过程开始之前要先对参数进行范围的确定,然后根据一般边界值测试的方法和参数设计用例。 通过实验总结的一般边界值测试法的优缺点: 优点:通过对测试结果的分析,可以更准确的知道错误点,能够更快的确定程序中由于什么错误而导致了结果与预期的输出不相符。同时测试的用例较少但是能够基本的找出程序中的错误。 缺点:测试用例不够全面,只能找到程序中的基本错误,不能够全面的对程序进行测试分析。测试用例对于程序的结构分析不能起到很好的指导作用。

软件测试 边界值测试 实验报告

武 夷 学 院 实验报告 数学与计算机系 课程名称: 软件测试 实验题目: 边界值测试 学生班级: 09级计科一班 学生姓名: 学生学号: 200940110 指导教师: 刘靖 完成日期: 2011.10.11

实验二边界值测试 一、实验目的 通过本次实验使学生熟悉黑盒测试的边界值测试方法,并初步具备针对功能的测试用例设计。 二、实验环境 硬件环境:微型计算机。 软件环境:Windows 操作系统,Microsoft V isual Studio 2005等。 三、实验内容 题目一:三角形问题 输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。 题目二:找零钱最佳组合问题 假设商店货品价格(R)皆不大于100 元(且为整数),若顾客付款在100 元内 (P) ,求找给顾客最少货币个(张)数?(货币面值50 元10 元,5 元,1 元四种)1.请用针对输入域的边界值分析法对三角形问题设计测试用例,并将这次测试和三角形问题的第一次测试做一下比较分析。 2.请用针对输出域的边界值分析法对找零钱最佳组合问题设计测试用例,并将这次测试和找零钱最佳组合问题的第一次测试做一下比较分析。 四、实验步骤 1.针对输入域用边界值分析法对三角形问题设计测试用例 用边界值分析法设计测试用例,按照下列步骤进行: (1)分析各变量取值 (2)测试用例数 (3)设计测试用例边界值测试方法设计测试用例 (4)执行测试用例,记录测试结果,报告发现的问题 (5)将这次测试和三角形问题的第一次测试做一下比较分析。

1等价类边界值练习AG

1、在各种输入条件下,测试程序的登录对话框功能。 用户名和密码的规则如下: ?用户名长度为6至10位(含6位和10位) ?用户名由字符(a-z、A-Z)和数字(0-9)组成 ?不能为空、空格和特殊字符 密码规则同用户名规则 2、根据下面给出的规格说明,进行测试用例的设计。 一个程序读入3个正整数,把这三个数值看作一个三角形的3条边的长度值。这个程序要打印出信息,说明这个三角形是普通的、是等腰的、还是等边的。 3、万年历查询软件,要求用户输入以年月日表示的日期,然后系统会换算出该日期的农历表示法及相关黄历信息,假设日期限定在1900年1月1日~2049年12月31日,并规定日期由8位数字字符组成,前4位表示年,中间2位表示月,最后两位表示日期。其中 4、6、9、11月只有30天,平年的2月份只有28天,闰年的2月份有29天。(备注:位简化处理,本题进行用例设计时。不考虑对平年、闰年的判断 4、现有一个档案管理系统,容许用户通过输入年月对档案文件进行检索,系统对查询条件年月的输入限定为1990年1月~2049年12月,并规定:日期由6 20161;(2) 2016121;(3) 20160J;(4) 198908(6) 205008(7) 201600(9) 201613(10)

5、保险费率计算<=100岁 某保险公司承担人寿保险,该公司保费计算方式为投保额*保险率,保险率又依点数不同而有别,10点以上费率为0.6 %,10点以下费率为0.1% : 年龄:一或两位数字。 性别:以英文「MALE」、「FEMALE」、「M」、「F」表示。 婚姻:「已婚」、「未婚」。 扶养人数:空白或一位数字。 保险费率:10点以上,10点以下。 请对该案例进行相应的用例设计 6.农业银行ATM机提供现金存入异地银行的业务。存入金额为1000-50,000。以100元为单位。手续费为千分之五。最多只收取50元。

黑盒测试的7种测试方法

黑盒测试的7种测试方法 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。 黑盒测试有7种测试方法分别是等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、功能图法、正交实验法。下面将一一介绍。 等价类划分法等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。 1、划分等价类: 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。 无效等价类:与有效等价类的定义恰巧相反。设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件

边界值法练习题

1.请用边界值分析法设计三角形问题的测试用例 2.在三角形问题描述中,除了要求边长是整数外,没有给出其它的限 制条件。在此,我们将三角形每边边长的取范围值设值为[1, 100] 。边1,边2,边3,还是a、b、c 按钮名称【提交】。 边界值:0,1,2,99, 100, 101

2.请用边界值分析法写出NextDate函数的测试用例 3.在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 。 边界值:year 取 1911 1912 1913 1990 2049 2050 2051 mouth取 -1 1 2 11 12 13 day取 0 1 2 30 31 32 测试用例:

3.邮箱用户名:6~18个字符,包括字母、数字、下划线,以字母开头,用户名以字母或数字结尾,用户名中必须包含@符号,@符号后可以为数字、字母,邮箱以或或.结尾

根据要求可以确定5个有效等价类和6个无效等价类 邮箱用户名测试用例:

等等(8)(9)(10)(11)任意两个、三个、四个组合都是错误的邮箱用户名。 4. 假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。 请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。 有效等价类: 0 < R < = 100 ,R<= P <= 100 R :货币价格 无效等价类:R > 100 or R<=0 ,p>100 or p 100 or R<=0 ,

相关文档
相关文档 最新文档