黑盒测试--边界值设计测试用例
黑盒测试用例设计方法之等价类和边界值

⿊盒测试⽤例设计⽅法之等价类和边界值⼀、等价类划分等价类划分是⼀种重要的、常⽤的⿊盒测试⽅法,不需要考虑程序的内部结构,只需要考虑程序的输⼊规格即可。
它将不能穷举的测试过程进⾏合理分类,从⽽保证设计出来的测试⽤例具有完整性和代表性。
1、等价类的分类 有效等价类:指符合《需求规格说明书》,输⼊合理的数据集合。
⽆效等价类:指不符合《需求规格说明书》,输⼊不合理的数据集合。
2、等价类思考步骤 (1)先确定有效和⽆效等价类 (2)有效等价类就是题⽬条件(两端的极值(边界值)要判断、中间随意⼀个值也要判断) (3)⽆效等价类先划分与条件相反的情况,再找到特殊情况(中⽂、英⽂、符号、空格、空)3、例题:A、测试QQ账号,账号的要求是 6---10位正整数。
B、⼿机号码1. 某城市的电话号码由三部分组成。
这三部分的名称和内容分别是地区码:空⽩或三位数字;前 缀:⾮’0’或’1’开头的三位数;后 缀:四位数字。
解:第⼀步:划分等价类,包括4个有效等价类,11个⽆效等价类。
第⼆步:确定调试⽤例。
对11个⽆效等价类,要选择11个调试⽤例,如下所⽰:3、等价类分类总结通过上⾯的案例,我们可以总结⼀下,当我们在测试⽂本框的程序可以考虑如下的情况:a:⽂本框要求输⼊的长度b:输⼊的类型c:组成规则d:是否为空e:是否重复---区分⼤⼩写,f:是否去除空格⼆、边界值分析1.什么是边界值分析法?边界条件,是指输⼊和输出等价类中那些恰好处于边界、或超过边界、或在边界⼀下的状态。
边界值分析法也是⼀种常⽤的⿊盒测试⽅法。
特别要注意的是:⼤量的错误是发⽣在输⼊或输出范围的边界上,⽽不是在输⼊范围的内部。
我们先来看⼀个例题,解释⼀下为什么要⽤边界值。
题⽬:输⼊的参数值必须⼤于0同时⼩于100的整数。
接下来我们来看程序员写的⼀段代码:number = int(input("输⼊的参数值必须⼤于0同时⼩于100的整数:"))if 100 >= number >= 18:print("输⼊的数据合法")else:print("输⼊的数据不符合要求")各位思考⼀下,这⾥⾯有什么问题呢。
黑盒测试经典例题(精选8篇)

黑盒测试经典例题(精选8篇)【篇一】黑盒测试经典例题实验一黑盒测试(一)实验目的1.掌握用边界值方法设计测试用例和执行测试的过程;2.掌握用等价划分方法设计测试用例和执行测试的过程;3.掌握用决策表方法设计测试用例和执行测试的过程。
(二)实验内容测试“Ne某tDate”函数。
Ne某tDate返回输入日期后面的那个日期。
变量年、月、日都具有整数值,且满足如下条件:C1:1912≤年份≤2050C2:1≤月份≤12C3:1≤日期≤31(三)实验步骤用熟悉的语言(如C语言)编写实现该函数的功能,并用如下方法设计测试用例,进行黑盒测试。
参考源代码:#includeintne某tDate(intyear,intmonth,intday);voidmain(){/intyear,month,day;ne某tDate(2051,12,30);}intne某tDate(intyear,intmonth,intday) {/某如果还有明天,返回1;如果输入不合法,返回-1;某/witch(month){cae1:cae3:cae5:cae7:cae8:cae10:if(day==31){day=1;month=month+1;}eleday=day+1;break;cae4:cae6:cae9:cae11: if(day==30){day=1;month=month+1;}eleday=day+1;break;cae12:if(day==31){day=1;month=1;year=year+1;if(year==2022)printf("2022iover");}eleif(day=1912&&year12||month31||day【篇二】黑盒测试经典例题常用黑盒测试的方法黑盒测试(Black-bo某Teting,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。
利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
软件测试-测试用例的设计-黑盒测试方法

件存在的缺陷,而不是简单的复制软件设计规格说明文档 既要设计正面的测试用例,也要设计负面的测试用例
中软国际(天津ETC)
ChinaSoft International 中软国际
Logo
测试用例-黑盒测试用例的设计
产品说明书术语检查清单:
在审查产品说明书时,作为前一个清单的补充,还有一个问题用 语检查清单。
总是、每一种、所有、没有、从不。 当然、因此、明显、显然、必然。 某些、有时、常常、通常、惯常、经常、大多、几乎。 等等、诸如此类、以此类推、例如。 良好、迅速、廉价、高效、小、稳定。 处理、进行、拒绝、跳过、排除。 如果„„那么„„(没有否则)。
•软件功能需求规格说明书、产品设计文档。
•测试方法对测试用例的设计影响非常大。 •测试对象。客户端软件和服务器端系统、分布式系统和集中式系统等。 •软件实现所采用的技术。
8
Logo
测试用例-测试用例的概念和作用
设计测试用例的基本原则如下:
• • • • • • •
利用成熟的测试用例设计方法来指导设计
6
Logo
测试用例-测试用例的概念和作用
好的测试用例的特征
• • • • •
可以最大程度地找出软件隐藏的缺陷
可以最高效率的找出软件缺陷 可以最大程度地满足测试覆盖要求
既不过分复杂、也不能过分简单
使软件缺陷的表现可以清楚的判定
– 测试用例包含期望的正确的结果
– 待查的输出结果或文件必须尽量简单明了
函数边界值测试用例

函数边界值测试用例1.引言1.1 概述在软件开发过程中,函数边界值测试是一种重要的测试方法,用于检验函数在边界值及其附近的输入情况下的行为和稳定性。
边界值是指函数输入的最小值、最大值以及特殊边界条件下的取值,可能会导致函数产生异常或错误的情况。
函数边界值测试的目标是验证函数在边界值情况下是否能够正确地处理输入,确保函数在各种边界条件下都能返回正确的结果。
这种测试方法可以有效地发现并解决潜在的错误和异常情况,提高软件的质量和稳定性。
函数边界值测试是一种基于黑盒测试的测试方法,即只关注函数的输入和输出,而不考虑函数的内部实现细节。
通过选择适当的输入值进行测试,可以尽可能地覆盖不同的边界条件,从而检验函数的健壮性和可靠性。
在函数边界值测试中,需要确定和选择适当的边界值和测试用例,以确保能够有效地覆盖函数的边界情况。
通常情况下,边界值测试需要考虑函数的最小值、最大值、边界情况、特殊取值等。
通过设计多种测试用例,可以覆盖不同的边界条件,检测函数在不同情况下的行为。
本文将详细介绍函数边界值测试的概念和重要性,以及相关的方法和步骤。
我们将进一步探讨如何选择和设计合适的边界值和测试用例,并总结函数边界值测试的重要性和应用。
同时,我们还将提出进一步研究的方向和建议,以促进函数边界值测试在软件开发中的广泛应用和发展。
1.2 文章结构文章结构部分的内容如下:文章结构部分旨在向读者呈现本篇长文的整体框架和组织方式,以便读者在阅读过程中能够有条理地理解文章的内容和脉络。
本文的结构主要分为引言、正文和结论三个部分。
引言部分对文章的背景和目的进行了介绍。
在概述部分,我们简要介绍了函数边界值测试的概念和重要性,这为后续的内容铺垫了基础。
接着,我们详细描述了本文的结构,包括各个部分的主要内容和目标。
正文部分是本文的核心,主要介绍了函数边界值测试的方法和步骤。
在2.1部分,我们阐述了函数边界值测试的概念和重要性,包括为什么要进行函数边界值测试以及其对软件质量的影响。
测试用例设计--黑盒测试、白盒测试

测试⽤例设计--⿊盒测试、⽩盒测试测试⽤例设计设计数据库测试⽤例就是针对数据库的功能和性能⽽设计的测试⽅案,并编⼊测试计划中。
测试⽤例的设计既要考虑正常情况,也应考虑极限情况以及字段取最⼤值和最⼩值等边界情况。
因为测试的⽬的是暴露数据库中隐藏的错误和缺陷,所以在设计测试⽤例时要充分考虑那些易于发现错误和缺陷的测试⽤例。
好的测试⽤例应该有较⾼的发现错误和缺陷的概率。
⽩盒测试的测试⽤例设计逻辑覆盖法和基本路径测试法是计算机软件⽩盒测试⽤例设计的两个重要⽅法。
这两个⽅法也适合存储过程、触发器、嵌⼊式SQL等数据库程序的测试。
语句覆盖语句覆盖语句覆盖是设计⾜够多的测试⽤例,运⾏所测程序,使得程序中每条可执⾏语句⾄少被执⾏⼀次。
不过,每条可执⾏语句⾄少执⾏⼀次是最基本的要求,但是它不能保证发现逻辑运算和程序逻辑错误,且并不是所有的分⽀被执⾏过。
例6-1 考虑图6-2,语句覆盖的测试⽤例如表6-1所⽰。
注意,该组测试⽤例不能覆盖判断E为假的分⽀。
⽽且,如果判断C误写为X>2 or Y>3,该组测试⽤例仍能够实现语句覆盖,因此该组测试⽤例发现不了这个错误。
测试⽤例⼀般不是唯⼀的。
例如,表6-2的测试⽤例也可以实现语句覆盖。
判定覆盖判定覆盖⼜称分⽀覆盖,是设计⾜够多的测试⽤例,运⾏所测程序,使得程序中每个判断的取真分⽀和取假分⽀分别⾄少执⾏⼀次。
例6-2 考虑图6-2,其中C、E为判断。
判定覆盖的测试⽤例如表6-3所⽰。
虽然判定覆盖能够保证所有判断的取真分⽀和取假分⽀执⾏⾄少⼀次,但判定覆盖不能保证发现条件表达式错误。
例如,如果语句C误写为X>2 or Y>3,表6-3给出的测试⽤例仍能够实现判定覆盖,因此该组测试⽤例发现不了这个错误。
条件覆盖条件覆盖是设计⾜够多的测试⽤例,运⾏所测程序,使得每个判断的每个条件成分取真值和假值分别⾄少执⾏⼀次。
例6-3 考虑图6-2。
⾸先对所有判断的条件成分取值进⾏标记:v条件覆盖的测试⽤例如表6-4所⽰。
黑盒测试--设计测试用例一

Pass
Fail
未产生可储存Server Name的Key Name
没有字段可供用户输入 IIS Port Number
数据形态与设计规格不 符合
阻止用户输入空白,同时部分字段只能输入数字 所有的Tab Order须按照正常顺序 所有的按钮都能起作用 所有的快捷键起作用
Pass Fail Fail Fail
黑盒测试--设计测试用例一
黑盒测试用例设计方法(2/2)
q 等价类划分的办法是把程序的输入域划分成若干部分,然后从每个部 分中选取少数代表性的数据作为测试用例。每一类的代表性数据在测 试中的作用等价于这一类中的其他值。
q 边界值分析是通过选择等价类边界的测试用例。边界值分析法不仅重 视输入条件的边界,而且也必须考虑输出域边界。
黑盒测试--设计测试用例一
测试用例的种类
在编写测试用例之前,必须先了解测试用例的种类有多少, 以及要如何纳入这些类别,以顾及到测试的深度和广度的 完整性。 可以将测试用例归纳为七大类 :
边界测试用例 功能测试用例 设置测试用例 状态测试用例 压力测试用例 错误处理测试用例 回归测试用例
黑盒测试--设计测试用例一
黑盒测试--设计测试用例一
黑盒测试试图发现的错误类型
q 黑盒测试是以用户的角度,从输入数据与输出数据 的对应关系出发进行测试的。
q 黑盒测试注重于测试软件的功能需求,主要试图 发现以下几类错误:
q 功能不正确或遗漏 q 界面错误 q 数据库访问错误 q 性能错误 q 初始化和终止错误等
黑盒测试--设计测试用例一
黑盒测试--设计测试用例 一
2021/1/5
黑盒测试--设计测试用例一
q 什么是黑盒测试 q 什么是测试用例 q 测试用例的种类
软件测试第一次实验黑盒测试设计实验报告指导

实验报告内容要求:1.实验目的:理解黑盒测试的基本方法, 掌握等价类划分法和边界值方法设计测试用例。
2.实验内容:1)输入三个整数a、b、c, 分别作为三角形的三条边, 通过程序判断这三条边是否能构成三角形?如果能构成三角形, 则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
要求输入三个整数a、b、c, 必须满足以下条件:1≤a≤100;1≤b≤100;1≤c≤100。
要求:a.大家用自己熟悉的编程语言, 实现上面问题的描述。
b.请用等价类设计测试用例。
2) 程序有三个输入变量month、day、year(month、day和year均为整数值, 并且满足: 1≤month≤12.1≤day≤31.1900≤ year ≤2050。
), 分别作为输入日期的月份、日、年份, 通过程序可以输出该输入日期在日历上下一天的日期。
例如, 输入为2005年11月29日, 则该程序的输出为2005年11月30日。
请用黑盒测试方法的边界值设计测试用例。
3.实验步骤:步骤一: 编写源程序并运行该程序。
步骤二: 测试用例设计。
1)三角形判定问题1.对测试用例进行等价类划分:2 6 6 5 等腰三角形 63 6 5 6 等腰三角形74 5 6 6 等腰三角形85 6 6 6 等边三角形96 -5 6 6 输入非法107 6 0 6 输入非法118 6 6 3.6 输入非法129 0 -5 6 输入非法1310 5.6 6 -2 输入非法1411 6 0 3.5 输入非法1512 3.5 5.6 4.5 输入非法1613 6 - - 请输入数据1714 - 5 - 请输入数据1815 - - 5 请输入数据1916 6 6 - 请输入数据2017 6 - 4 请输入数据2118 - 5 6 请输入数据2219 - - - 请输入数据2320 5 6 15 不能构成三角形2421 6 7 13 不能构成三角形2522 4 10 5 不能构成三角形2623 6 10 4 不能构成三角形2724 5 6 15 不能构成三角形2825 7 8 15 不能构成三角形29 3.测试截图2)NextDay问题1.对测试用例进行边界值分析:各变量分别取: 最小值、略大于最小值、正常值、略小于最大值、最大值。
2.黑盒测试:边界值及测试用例设计

20 15 —20 16 学年第 2 学期软件测试技术课程实验报告学院:计算机科学技术专业:软件工程班级:软件二班姓名:吴德宁学号:041340217任课教师:刘玉宝实验日期:2016年 5 月9 日实验题目实验2、黑盒测试:边界值分析方法及设计测试案例实验目的1、掌握边界值的概念2、掌握边界值分析法的测试用例设计方法。
实验内容1、对于找零钱最佳组合问题运用边界值分析法设计测试用例,并执行测试,撰写实验报告。
实验步骤:假设商品总价为T,顾客付款为P①分析边界值。
分析输入情形:1.T无效:T<=02.T有效:T>0此种情况下考虑P:2_1.P无效:P<T (款不够支付)2_2.P有效:P>=T分析输出情形:考虑输出—找零个数这里是有效数据,关于“找给顾客值最少钱币张数”的有效值50:0/110:0/1/2/3/45 :0/11 :0/1/2/3/4分析规格中每一个决策情形:无效输入(不找零):T<=0(商品总价小于等于0错误)T>0 P<T(付款不够支付)输出相应错误有效输入(找零)T>0 P>T此时考虑的输出(Change=P-T假设计算正确,不考虑这种情况的无效输出)0<=Change<45<= Change <1010<= Change <5050<= ChangeChange:0、1、4、5、9、10、49、50、99②运用健壮性边界条件法设计测试用例,得到测试用例表(测试用例表格式同实验1)。
付款总价余额预期输出T1 -1 50 超出范围T2 0 50 不可能T3 100 50 50 1T4 101 50 超出范围T5 50 -1 超出范围T6 50 0 50 1T7 50 100 不可能T8 50 101 超出范围T9 50 51 不可能T10 60 59 1 1T11 72 23 49 9T12 85 75 10 1T13 80 71 9 5T14 95 90 5 1T15 55 51 4 4T16 60 60 0 0③执行测试,填写软件缺陷报告(软件缺陷报告格式同实验1)。
实践:黑盒测试之边界值案例

黑盒测试法是根据被测程序功能来进行测试,所以通常
也称为功能测试。用黑盒测试法设计测试用例,有4 种常用
技术:
等价分类法
边界值分析 错误猜测法
决策表法
因果图法
2. 边界值分析法(Boundary
Value Analysis)
被测试 子域
测试内点
测试外点
期望结果
显示出错 显示出错 显示出错 显示出错 显示出错 输入有效 输入有效 输入有效 显示出错 显示出错 输入有效 输入有效 显示出错 显示出错
选取理由 仅有1个合法字符 比有效长度少1 比有效长度多1 只有1个非法字符 6个非法字符 类型及长度均有效
最小日期 最大日期 刚好小于最小日期 刚好大于最大日期 最小月份 最大月份 刚好小于最小月份 刚好大于最大月份
ቤተ መጻሕፍቲ ባይዱ
软件边界与悬崖很类似
例:某报表处理系统要求用户输入处理报表 的日期,日期限制在2005年1月至2009年12 月,即系统只能对该段期间内的报表进行 处理,如日期不在此范围内,则显示输入 错误信息。系统日期规定由年、月的6位数 字字符组成,前四位代表年,后两位代表 月。
“报表日期”边界值分析法测试用例
报表日 期的类 型及长 度
日期 范围
在有效范围 边界上选取 数据
月份为1月 月份为12月 月份<1 月份>12
月份 范围
输入 条件 测试用例说明 1个数字字符 5个数字字符 7个数字字符 有1个非数字字符 全部是非数字字符 6个数字字符 测试数据 5 20065 2007005 2008.5 MAY--200605 200501 200912 200500 200913 200501 200512 200500 200513
第三章 黑盒测试-边界值分析[20页]
![第三章 黑盒测试-边界值分析[20页]](https://img.taocdn.com/s3/m/cf7d487d5fbfc77da369b14b.png)
边界值分析方法选择测试用例原则
2)如果输入条件规定了值的个数,则用最大个数, 最小个数,比最小个数少一,比最大个数多一的数 作为测试数据。 比如,一个输入文件应包括1~255个记录,则测试 用例可取1和255,还应取0及256等。
因此,对于有n个变量的函数采用 健壮性测试需要6n+1个测试用例。
健壮性边界值测试用例
4、边界值分析举例
–(1)三角形问题的边界值分析测试用例 设计
• 边长是整数,下界1,上界100
测试用例
A
B
C
预期结果
T01
60
60
1
等腰三角形
T02
60
60
2
等腰三角形
T03
60
60
60
等边三角形
T04
50
用输入变量的 ➢ 最小值(min)、 ➢ 略大于最小值(min+)、 ➢ 输入值域内的任意值(nom)、 ➢ 略小于最大值(max-)和 ➢ 最大值(max)
来设计测试用例。
边界值分析测试用例 推论:对于有n个变量的函数用边界值分析需要4n+1个测试用例。
边界值分析法是基于可靠性理论中称 为“单故障”的假设,即有两个或两个以 上故障同时出现而导致软件失效的情况很 少,也就是说,软件失效基本上是由单故 障引起的。
测试用例 TC1 TC2 TC3 TC4 TC5 TC6 TC7 TC8 TC9 TC10 TC11 TC12 TC13 TC14 TC15 TC16 TC17 TC18 TC19
x
y
z
1
10
10
2
10
黑盒测试之边界值测试

字符 Null(空) Space(空格) /(斜杠)
0(零) :(冒号)
@
表 4-1-2 部分 ASCII 码值表
ASCII 码值
字符
0
A
32
a
47
Z
48
z
58
‘(单引号)
64
{(大括号)
ASCII 码值 65 97 90 122 96 123
3.其他边界条件 有某些边界条件轻易被人忽视,例如在文本框中不是 没有输入正确旳信息,而是根本就没有输入任何内容,然 后就按“确认”按钮。这种情况经常被遗忘或忽视了,但 在实际使用中却时常发生。所以在测试时还需要考虑程序 对默认值、空白、空值、零值、无输入等情况旳反应。 在进行边界值测试时,怎样拟定边界条件旳取值呢? 一般情况下,拟定边界值应遵照下列几条原则: (1) 假如输入条件要求了值旳范围,则应取刚到达这个 范围旳边界旳值,以及刚刚超越这个范围边界旳值作为测 试输入数据。
例如,假如程序旳规格阐明中要求:“重量 在10公斤至50公斤范围内旳邮件,其邮费 计算公式为… … ”。作为测试用例,我们 应取10及50,还应取10.01,49.99,9.99及 50.01等。
(2)假如输入条件要求了值旳个数,则用 最大个数、最小个数、比最小个数少一、比 最大个数多一旳数作为测试数据。
例如,有一种二元函数f(x,y),要求输入变量x,y分 别满足:x∈[0,100],y∈[1000,3000],对其进行强健性 测试,则需要设计13个测试用例。根据强健性测试旳原理, 能够得到下面一组测试数据:{<-1,1500>,<0,1500>, <1,1500>,<50,1500>,<99,1500>,<100,1500>, <101,1500>,<50,999>,<50,1000>,<50,1001>, <50,2999>,<50,3000>,<50,3001>}。
黑盒测试用例设计方法案例与练习题

⿊盒测试⽤例设计⽅法案例与练习题⿊盒测试⽤例设计⽅法案例与练习题1、等价类案例登录功能⽤户名和密码登录(以在线考试系统为例)年龄字段输⼊2、⽹站注册页⾯年龄输⼊要求:某⽹站前台⽤户注册页⾯,其中有年龄字段的输⼊,要求练习题三⾓形输⼊三⾓形三边应为正整数,分别构成⾮三⾓形、⼀般三⾓形、等腰三⾓形和等边三⾓形。
1、需求分析:1、正整数2、两边之和⼤于第三边3、两边相等4、三边相等232、边界值案例登录功能实例同等价类年龄字段输⼊实例同等价类,边界值设计如下练习题保险费率计算某保险⽹站的前台计算保费页⾯,其中有年龄字段的输⼊,不同的年龄段会使⽤不同的费率计算标准。
其中:01-15岁,费率为:10%16-20岁,费率为:15%21-50岁,费率为:20%等价类与边界值综合练习题1、在某⼀版的编程语⾔中对变量名称规格作如下规定:变量名称是由字母开头的,后跟字母或者数字的任意组合构成。
编译器能够区分的有效字符数为8个,并且变量名称必须先声明,后使⽤,在同⼀声明语句中,变量名称⾄少必须有⼀个。
输⼊条件:1、变量名称是由字母开头6、变量名称不能重复2、字母或者数字的组合7、字母⼤⼩写敏感3、有效字符数为8个8、不能使⽤关键字4、变量名称必须先声明5、声明语句中变量名称⾄少必须有⼀个3、有效字符数为8个[1-8] [1-8]1 A17 0 0 B118 A18>8 9 B126 A194、变量名称必须先声明先声明A20不声明使⽤B13先使⽤后声明B145、声明变量⾄少为⼀个声明变量为⼀个A21⽆变量声明B15 声明变量为多个A226、变量名称不能重复变量名称不重复A23 变量名称重复B167、字母⼤⼩写敏感字母⼤⼩写敏感AbD A248、不能使⽤关键字不使⽤关键字abc A25 使⽤关键字int B17 2、126邮箱注册输⼊条件有效等价类编号⽆效等价类编号字符长度[6-18] 10 9 118 11 空格123、判定表案例读书选择1、如果觉得疲倦并且对书的内容感兴趣,同时书中的内容让你糊涂的话,回到本章重读2、如果觉得疲倦并且对书的内容感兴趣,同时书中的内容不让你糊涂,继续读下去3、不觉得疲倦并且对书的内容感兴趣,但是书中的内容让你糊涂的话,回到本章重读4、如果觉得疲倦并且对书中的内容不感兴趣,同时书中的内容不让你糊涂,停⽌阅读,请休息5、如果觉得疲倦并且对书的内容不感兴趣,并且书中的内容让你糊涂,请停⽌阅读,休息6、不疲倦,对书的内容感兴趣,书中的内容不糊涂,继续读下去7、不疲倦,不感兴趣,书中内容糊涂,跳到下⼀章去读8、不疲倦,不感兴趣,书中内容不糊涂,跳到下⼀章去读1、需求分析条件:是否疲倦、是否感兴趣、是否糊涂结果:本章重读、继续读、停⽌阅读、跳到下⼀章1、3优点:组合充分,没有遗漏缺点:⽤例数量随条件的递增⽽过多(2n n:条件的个数)条件的类型:布尔3、合并判定表条件有⼀个不同风险:产⽣分⽀或者路径的遗漏练习题密码修改若需修改密码,系统验证旧密码正确,两个新密码相同,则更新密码,旧密码即失效,其他修改项也⽣效,并提⽰“⽤户信息修改成功”;若旧密码不正确,则提⽰“⽤户密码错”,系统将不修改个⼈信息;若两个新密码不同,则提⽰“新密码与验证新密码不同”,系统将不修改个⼈信息。
软件黑盒测试用例设计

点击并进入留言板页面; 点击‚我要留言‛,进入留言提交页面; 输入以下任意(或只输入一项)错误组合: 数据项 联系人邮箱:输入不含有@字符,>50 字符或不输入任何 您愿留联性所联联公意言系别在系系司通时人 :地电 地名过间区址称: 话邮:::::选件>> > > >择为与223220‚只您0002字000先读联字字字字符生项系符符符符,‛,:不显不O含示R进特格行选殊式选择符为择‚号x女xx士x‛-xx-xx 您愿意通过短信与您联系:不进行选择 进((行12))1-点点3击击步‚‚骤取提后消交,‛‛进。。入以下一种操作: 预言页期面结。果:(1()留2)言出未现提相交关,错页误面提跳示转信至息前,台页留面言停列留表在页提面交。留
每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就 是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例 子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错 误,则这一类中的其他例子也不会查出错误。
使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上 划分等价类,列出等价类表。
1. 点击‘未处理询价单列表’,进入未处理询价单 列表页面; 2. 选择相应的记录; 3. 点击‘处理’,系统显示未处理询价单处理页 面; 4. 输入错误信息:
报价单价: 非数值型 报价说明: >128个字符 5. 点击‘确定’; 6. 系统提示输入信息错误,要求重新输入; 预期结果: 系统提示信息正确。
如果测试一组数据需要1毫秒,一年工作365×24小时, 完成所有测试需5亿年。
我们现有的测试用例更趋于是针对软件产品的功 能、业务规则和业务处理所设计的测试方案,大多 都没有详细的要求输入的数据具体应该是什么。
在我们不可能进行穷举测试的情况下,为了节省时 间和资源、提高测试效率,我们是否应该把测试数 据具体化。
黑盒测试用例设计方法-案例参考答案

黑盒测试用例设计方法-案例21、等价类划分案例有一个程序读入3个整数,把这3个整数作为一个三角形的3条边的长度值。
这个程序要打印出信息,说明这3个整数是否能组成三角形,如果能组成三角形,说明这个三角形是不等边、等腰或等边三角形。
解答:分析题目中给出和隐含的对输入条件的要求:(1)整数(2)三个数(3)非零数(4)正数(5)两边之和大于第三边(6)等腰(7)等边如果三条边满足条件(1)~ (4),则输出下列四种情况之一:☐如果不满足条件(5),则程序输出为“非三角形”☐如果三条边相等即满足条件(7),则程序输出为“等边三角形”☐如果只有两条边相等、即满足条件(6),则程序输出为“等腰三角形”☐如果三条边都不相等,则程序输出为“不等边三角形”可以设定3条边分别为A,B,C。
如果他们能构成三角形的3条边,必须满足:0<A, 0<B, 0<C,且A+B>C,B+C>A,A+C>B如果是等腰,要判断A=B,或B=C,或A=C如果是等边,要判断A=B,且B=C,且A=C2、边界值案例Void CMyClass::Grow(int years) {mAge += years;if(mAge<10)mPhase = "儿童";else if(mAge<20)mPhase = "少年";else if(mAge<45)mPhase = "青年";else if(mAge<60)mPhase = "中年";elsemPhase = "老年";}测试用例3、因果图案例1某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
找出原因和结果:原因:C1——第一列字符是AC2——第一列字符是BC3——第二列字符是一数字结果:E1——给出信息LE2——修改文件E3——给出信息M生成因果图转换为判定表4、因果图案例2有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
利用黑盒测试技术设计测试用例

利用黑盒测试技术设计测试用例黑盒测试是一种软件测试方法,旨在检验软件功能是否按预期工作,而不考虑内部代码结构。
设计测试用例是黑盒测试的重要步骤之一,通过设计有效的测试用例可以全面评估软件功能的正确性和完整性。
本文将介绍利用黑盒测试技术设计测试用例的方法和步骤。
1. 确定测试输入与输出在设计测试用例之前,首先需要分析被测试软件的功能和需求,确定每个功能模块的输入和输出。
测试输入是指向软件系统提供的数据或信号,测试输出是系统对输入数据做出的响应。
通过了解系统的输入输出,可以有针对性地设计测试用例。
2. 识别边界值边界值测试是黑盒测试中常用的一种技术方法,通过测试输入数据的边界值来检测软件系统的稳定性和健壮性。
在设计测试用例时,要特别关注输入数据的边界值,设计测试用例覆盖各种情况,包括边界值、最大值、最小值等。
3. 利用等价类划分法等价类划分法是一种简单有效的黑盒测试技术,通过将输入数据划分为若干个等价类,从每个等价类中选择一个典型值进行测试。
在设计测试用例时,可以根据等价类划分法选择代表性测试数据,以提高测试用例的效率和覆盖度。
4. 设计路径测试用例路径测试是黑盒测试中的一种重要技术,通过设计测试用例来覆盖软件系统的各个路径,检测系统在不同路径上的运行情况。
在设计路径测试用例时,可以利用控制流图、状态转换图等工具,深入理解系统的执行逻辑,设计能够触发不同路径的测试用例。
5. 考虑异常情况在设计测试用例时,还需要考虑系统的异常情况,设计能够触发异常处理机制的测试用例。
测试异常情况可以帮助发现系统的容错能力和稳定性,提高系统的质量和可靠性。
结论利用黑盒测试技术设计测试用例是软件测试中至关重要的一环,通过系统性的测试用例设计,可以全面评估软件功能的正确性和完整性,发现潜在的缺陷和问题,提高软件系统的质量和可靠性。
要设计好测试用例,需要充分理解被测试软件的功能和需求,灵活运用各类黑盒测试技术,设计详细有效的测试用例,提高测试效率和覆盖度。
测试用例的设计-边界值法例子

测试⽤例的设计-边界值法例⼦测试⽤例的设计-边界值法边界值分析也是⼀种⿊盒测试⽅法,适度等价类分析⽅法的⼀种补充,由长期的测试⼯作经验得知,⼤量的错误是发⽣在输⼊或输出的边界上。
因此针对各种边界情况设计测试⽤例,可以查出更多的错误。
选择测试⽤例的原则:⼀、如果输⼊条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输⼊数据;⼆、如果输⼊条件规定了值的个数,则⽤最⼤个数、最⼩个数、⽐最⼤个数多1格、⽐最⼩个数少1个的数做为测试数据;三、根据规格说明的每⼀个输出条件,使⽤规则⼀;四、根据规格说明的每⼀个输出条件,使⽤规则⼆;五、如果程序的规格说明给出的输⼊域或输出域是有序集合(如有序表、顺序⽂件等),则应选取集合的第⼀个和最后⼀个元素作为测试⽤例;六、如果程序⽤了⼀个内部结构,应该选取这个内部数据结构的边界值作为测试⽤例;七、分析规格说明,找出其他可能的边界条件。
边界值法举例找零钱最佳组合假设商店货品价格(R) 皆不⼤於100 元(且为整数),若顾客付款在100 元内(P) ,求找给顾客之最少货币个(张)数?(货币⾯值50 元(N50) ,10 元(N10) , 5 元(N5) , 1 元(N1) 四种)⼀、分析输⼊的情形。
R > 1000 < R < = 100R <= 0P > 100R<= P <= 100P < R⼆、分析输出情形。
N50 = 1N50 = 04 > N10 >= 1N10 = 0N5 = 1N5 = 04 > N1 >= 1N1 = 0三、分析规格中每⼀决策点之情形,以RR1, RR2, RR3 表⽰计算要找50, 10, 5 元货币数时之剩余⾦额。
R > 100R <= 0P > 100P < RRR1 >= 50RR2 >= 10RR3 >= 5四、由上述之输⼊/输出条件组合出可能的情形。
软件测试报告

软件测试基础测试报告选题:前一日——PreDate指导老师:***学号:**********姓名:***一、问题描述前一日函数实现了一个这样的功能:输入一个合法日期,程序给出这一天的前一天。
为了方便测试,在程序中将年份人为地规定为1812年——2012年,超出这个界限则认为是错误的。
二、黑盒测试用例设计1.边界值测试由于有三个变量,如果用健壮最坏情况测试则需要7*7*7个测试用例,为了使测试相对完全而又不过于繁琐,我们这里使用最坏情况测试,共有125个测试用例。
表1 最坏情况测试用例(续)(续)(续)注:由于是边界值测试,其变量是按统一的定义域来测试的,并没有把不同天数的月份分开,所以会有一些输入日期是不存在的,程序也会因此提示输入错误。
2.等价类测试PreDate是一个三变量函数,即月份、日期和年,这些变量的有效值区间定义如下:M1={月份:前一月有30天}M2={月份:前一月有31天但不包含1月}M3={月份:1月}M4={月份:3月}D1={日期:2≤日期≤31}D2={日期:日期=1}Y1={年:年是闰年}Y2={年:年是平年}共有16个强一般等价类测试用例,如下表所示:表2强一般等价类测试用例注:由于考虑到一月的时候年份会减1,所以将一月单独化为一个等价类。
3.基于决策表的测试把等价类划分的每个类看成一个原因,再列出可能会出现的结果:a1. 不可能a2. 日期减1a3. 日期置31a4. 日期置30a5. 日期置29a6. 日期置28a7. 月份减1a8. 月份置12a9. 年份减1由于因果图画起来比较乱,所以省去了因果图,依据原因和结果得到PreDate的决策表如下:表3 PreDate函数的决策表对每一列生成测试用例:表4PreDate函数的决策表测试用例三、白盒测试用例设计1.被测主要代码1.i nt M,D,YStep1: Get Input2.Output("请输入")3.Input(M,D,Y)Step2: Is datetime right?4. If ((M<1) || (M>12) || (D<1) || (D>31) || (Y<1812) || (Y>2012))5. Then IsDatetimeRight=False6. Else IsDatetimeRight=True7. End ifStep3: Determine the datetime8. If IsDatetimeRight9. Then if (D>=2)10. Then {D=D-1Output ("前一日日期为"+Y+"年"+M+"月"+D+"日")}11. Else if (M==3)12. Then if (((Y%4==0) &&(Y%100! =0)) ||(Y%400==0))13. Then {M=2, D=29,Output("前一日日期为"+Y+"年"+M+"月"+D+"日")}14. Else {M=2, D=28,Output("前一日日期为"+Y+"年"+M+"月"+D+"日")}15. End if16. Else if (M==1)17. Then {M=12, D=31, Y=Y-1,Output("前一日日期为"+Y+"年"+M+"月"+D+"日")}18. Else if ((M==5) || (M==7) || (M==10) || (M==12))19. Then {M=M-1, D=30Output("前一日日期为"+Y+"年"+M+"月"+D+"日")}20. Else {M=M-1, D=31Output("前一日日期为"+Y+"年"+M+"月"+D+"日")}21. End if22. End if23. End if24.End if25. Else output ("Datetime is wrong!")26. End if27. End3.DD—路径图根据以上程序图,列出对应的DD—路径图中的节点,如表5所示:表5 图DD—路径类型相应的DD—路径图如下图所示:PreDate程序的DD—路径图4.基路径圈复杂度8基路径:1)ABCEFGIMOQRSTUW2)AB D EFGIMOQRSTUW3)ABCEF V W4)ABCEFG H UW5)ABCEFGI J L TUW6)ABCEFGI K L TUW7)ABCEFGIM N STUW8)ABCEFGIM0P RSTUW由源程序可知,该问题中存在逻辑依赖规则,即—若经过节点C,则必经过节点G—若经过节点D,则必经过节点V所以程序的基路径为:1)ABCEFGIMOQRSTUW9)AB D EFVW4)ABCEFG H UW5)ABCEFGI J L TUW6)ABCEFGI K L TUW7)ABCEFGIM N STUW8)ABCEFGIM0P RSTUW5.测试用例四、测试执行和报告1.程序代码package Predate;public class PreDate {public boolean isLeapYear(int year){/*** 判断闰年*/if(year%4==0&&year%100!=0)return true;if(year%400==0)return true;return false;}public boolean isLegalData(int year,int month,int day){ /*** 判断日期是否合法*/if(month>12||month<=0)return false;if(day<=0||day>31)return false;if(month==4||month==6||month==9||month==11){if(day>30)return false;return true;}if(month==2){if(isLeapYear(year)&&day>29)return false;if(!isLeapYear(year)&&day>28)return false;return true;}return true;}public String predate(int year,int month,int day){ if(!isLegalData(year, month, day))return"Date not legal";else if(day==1){if(month==1){year=year-1;return year+"年"+"12月"+"31日";}else if(month==3){if(isLeapYear(year))return year+"年"+"2月"+"29日";elsereturn year+"年"+"2月"+"28日";}else if(month==5||month==7||month==10||month==12){ month=month-1;return year+"年"+month+"月"+"30日";}else{month=month-1;return year+"年"+month+"月"+"31日";}}else{day=day-1;return year+"年"+month+"月"+day+"日";}}}2.测试代码package Test;import static org.junit.Assert.*;import Predate.PreDate;import org.junit.Before;import org.junit.Test;public class PreDateTest {private PreDate date;@Beforepublic void setUp() throws Exception {this.date = new PreDate();}@Testpublic void testIsLeapY ear() {/*** 测试年份是否为闰年*/assertEquals(true, date.isLeapYear(1992));assertEquals(true, date.isLeapYear(1812));assertEquals(true, date.isLeapYear(2012));assertEquals(false, date.isLeapY ear(1991));assertEquals(false, date.isLeapY ear(1990));}@Testpublic void testIsLegalData() {/*** 测试输入日期是否为合法日期*/assertEquals(true, date.isLegalData(2012, 12, 1));assertEquals(false, date.isLegalData(2013, 12, 1));assertEquals(true, date.isLegalData(1812, 12, 1));assertEquals(false, date.isLegalData(1811, 12, 1));/*** 以上四个测试用例测试了年份应在1812年至2012年之间*/assertEquals(true, date.isLegalData(2000, 1, 15));assertEquals(true, date.isLegalData(2000, 12, 15));assertEquals(false, date.isLegalData(2000, -1, 15));assertEquals(false, date.isLegalData(2000, 0, 15));assertEquals(false, date.isLegalData(2000, 13, 15));/*** 以上测试用例测试了月份的合法性(1~12)*/assertEquals(false, date.isLegalData(2000, 12, 0));assertEquals(true, date.isLegalData(2000, 12, 31));assertEquals(false, date.isLegalData(2000, 12, 32));assertEquals(true, date.isLegalData(2000, 6, 30));assertEquals(false, date.isLegalData(2000, 6, 31));assertEquals(true, date.isLegalData(2000, 2, 29));assertEquals(false, date.isLegalData(2000, 2, 30));assertEquals(false, date.isLegalData(2000, 2, 31));assertEquals(false, date.isLegalData(2001, 2, 29));assertEquals(false, date.isLegalData(2001, 2, 30));assertEquals(false, date.isLegalData(2000, 6, 31));/*** 以上测试用例测试了日期的合法性*/}@Testpublic void testPredate() {/*** 测试前一日函数,这里用的是基于决策表的测试用例*/assertEquals("2001年6月30日", date.predate(2001, 7, 1));assertEquals("2001年6月29日", date.predate(2001, 6, 30));assertEquals("2001年6月4日", date.predate(2001, 6, 5));assertEquals("2000年5月31日", date.predate(2000, 6, 1));assertEquals("1996年1月4日", date.predate(1996, 1, 5));assertEquals("1995年12月31日", date.predate(1996, 1, 1));assertEquals("2001年3月4日", date.predate(2001, 3, 5));assertEquals("2001年2月28日", date.predate(2001, 3, 1));assertEquals("2000年2月29日", date.predate(2000, 3, 1));}}3.发现的失效由于程序比较简短,所以只检测到部分错误,比如刚开始闰年的判断条件少了year%4=0&&year%100!=0的后半段,结果将1900年判断为闰年,经过分析将代码改正,能够正确的进行前一日的输出。
黑盒测试的设计测试用例方法

黑盒测试的设计测试用例方法黑盒测试是软件测试中一种重要的测试方法,它是在不考虑系统内部结构及实现细节的情况下对软件系统进行功能性测试的一种方法。
设计有效的测试用例是黑盒测试的核心之一,下面将介绍一些设计测试用例的方法。
1. 等价类划分等价类划分是一种常用的测试用例设计方法,通过把输入数据划分成等价类,从每个等价类中选择一个有效测试用例和若干无效测试用例。
以此来代表整个等价类的测试用例。
例如,对于一个需要输入1到100之间的数字的功能进行测试,可以划分为三个等价类:小于1,1到100之间,大于100。
可以选择一个有效的测试用例如输入50,以及无效的测试用例如输入-1和101。
2. 边界值分析边界值分析是一种对合法和非法输入值的测试设计方法。
在这种测试方法中,重点关注数据输入的边界值。
通常情况下,边界值处的软件往往容易出现问题,因此通过边界值分析可以有效发现潜在的问题。
比如对于一个需要输入1到100之间的数字的功能进行测试,可以选择测试用例如:1,100,101,0,99等来分析系统在边界值处的表现。
3. 判定表驱动判定表驱动是通过表格的方式描述测试用例的一种方法。
通过列出各种输入条件组合的可能性和相应的输出结果,来设计测试用例。
以网站登录功能为例,判定表驱动方法可以列出用户名和密码的组合,以及对应的验证结果,如正确的用户名和密码、错误的用户名和正确的密码、错误的用户名和密码等。
4. 因果图因果图是通过分析系统中各种可能的输入条件和相应的输出结果之间的关系,从而设计测试用例的方法。
将输入条件和输出结果之间的因果关系用图形的方式表示出来,有助于设计出全面的测试用例。
以一个简单的电梯系统为例,因果图可以将各种可能的输入条件如按下上行按钮、按下下行按钮等与相应的输出结果如电梯上行、电梯下行等之间的关系进行可视化展示。
结论设计测试用例是黑盒测试中非常重要的一步,通过合理的测试用例设计方法可以帮助发现潜在的软件缺陷。
黑盒测试--边界值设计测试用例

法:一.方法简介1.泄义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
2.与等价划分的区别1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
3.边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输岀范围的边界上,而不是发生在输入输岀范围的内部。
因此针对各种边界情况设计测试用例,可以査出更多的错误。
使用边界值分析方法设计测试用例,首先应确定边界情况。
通常输入和输出等价类的边界,就是应着重测试的边界情况。
应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
4.常见的边界值1)对16-bit的整数而言32767和-32768是边界2)屏幕上光标在最左上、最右下位置3)报表的第一行和最后一行4)数组元素的第一个和最后一个5)循环的第0次、第1次和倒数第2次、最后一次5.边界值分析1)边界值分析使用与等价类划分法相同的划分,只是边界值分析假左错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。
例:测试计算平方根的函数—输入:实数—输出:实数一规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0:库函数Print-Line可以用来输岀错误信息。
2)等价类划分:I.可以考虑作出如下划分:a、输入(i)<0 和(ii)>=0、输岀(a)>=0 和(b) ErrorII.测试用例有两个:a、输入4,输出2。
对应于(ii)和(a)。
b、输入-10,输出0和错误提示。
对应于G)和(b)。
3)边界值分析:划分(ii)的边界为0和最大正实数:划分G)的边界为最小负实数和0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
黑盒测试--边界值分析方法:
一.方法简介
1.定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
2.与等价划分的区别
1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
3.边界值分析方法的考虑:
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。
因此针对各种边界情况设计测试用例,可以查出更多的错误。
使用边界值分析方法设计测试用例,首先应确定边界情况。
通常输入和输出等价类的边界,就是应着重测试的边界情况。
应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
4.常见的边界值
1)对16-bit 的整数而言 32767 和 -32768 是边界
2)屏幕上光标在最左上、最右下位置
3)报表的第一行和最后一行
4)数组元素的第一个和最后一个
5)循环的第 0 次、第 1 次和倒数第 2 次、最后一次
5.边界值分析
1)边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。
例:测试计算平方根的函数
--输入:实数
--输出:实数
--规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0;库函数
Print-Line可以用来输出错误信息。
2)等价类划分:
I.可以考虑作出如下划分:
a、输入 (i)<0 和 (ii)>=0
b
、输出 (a)>=0 和 (b) Error
II.测试用例有两个:
a、输入4,输出2。
对应于 (ii) 和 (a) 。
b、输入-10,输出0和错误提示。
对应于 (i) 和 (b) 。
3)边界值分析:
划分(ii)的边界为0和最大正实数;划分(i)的边界为最小负实数和0。
由此得到以下测试用例:
a、输入 {最小负实数}
b、输入 {绝对值很小的负数}
c、输入 0
d、输入 {绝对值很小的正数}
e、输入 {最大正实数}
4)通常情况下,软件测试所包含的边界检验有几种类型:数字、字符、位置、重量、大小、速度、方位、尺寸、空间等。
5)相应地,以上类型的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、空/满等情况下。
6)利用边界值作为测试数据
7)内部边界值分析:
在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到,也是最终用户可以很容易发现问题的。
然而,在测试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。
内部边界值条件主要有下面几种:
a)数值的边界值检验:计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制。
b)字符的边界值检验:在计算机软件中,字符也是很重要的表示元素,其中ASCII和Unicode是常见的编码方式。
下表中列出了一些常用字符对应的ASCII码值。
c)其它边界值检验
6.基于边界值分析方法选择测试用例的原则
1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
例如,如果程序的规格说明中规定:"重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……"。
作为测试用例,我们应取10及50,还应取10.01,49.99,9.99及50.01等。
2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。
3)将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。
例如,某程序的规格说明要求计算出"每月保险金扣除额为0至1165.25元",其测试用例可取0.00及1165.24、还可取一0.01及1165.26等。
再如一程序属于情报检索系统,要求每次"最少显示1条、最多显示4条情报摘要",这时我们应考虑的测试用例包括1和4,还应包括0和5等。
4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
6)分析规格说明,找出其它可能的边界条件。
二.实战演习
1.现有一个学生标准化考试批阅试卷,产生成绩报告的程序。
其规格说明如下:程序的输入文件由一些有80个字符的记录组成,如右图所示,所有记录分为3组:
①标题:这一组2只有一个记录,其内容为输出成绩报告的名字。
②试卷各题标准答案记录:每个记录均在第80个字符处标以数字"2"。
该组的第一个记录的第1至第3个字符为题目编号(取值为1一999)。
第10至第59个字符给出第1至第50题的答案(每个合法字符表示一个答案)。
该组的第2,第3……个记录相应为第51至第100,第101至第150,…题的答案。
③每个学生的答卷描述:该组中每个记录的第80个字符均为数字"3"。
每个学生的答卷在若干个记录中给出。
如甲的首记录第1至第9字符给出学生姓名及学号,第10至第59字符列出的是甲所做的第1至第50题的答案。
若试题数超过50,则第2,第3……纪录分别给出他的第51至第100,第101至第150……题的解答。
然后是学生乙的答卷记录。
④学生人数不超过200,试题数不超过999。
⑤程序的输出有4个报告:
a)按学号排列的成绩单,列出每个学生的成绩、名次。
b)按学生成绩排序的成绩单。
c)平均分数及标准偏差的报告。
d)试题分析报告。
按试题号排序,列出各题学生答对的百分比。
解答:分别考虑输入条件和输出条件,以及边界条件。
给出下表所示的输入条件及相应的测试用例。
输出条件及相应的测试用例表。
2.三角形问题的边界值分析测试用例
在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。
在此,我们将三角形每边边长的取范围值设值为[1, 100] 。
3.NextDate函数的边界值分析测试用例
在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 。
(注:素材和资料部分来自网络,供参考。
请预览后才下载,期待你的好评与关注!)。