文档库 最新最全的文档下载
当前位置:文档库 › 2.2边界值法练习题

2.2边界值法练习题

2.2边界值法练习题
2.2边界值法练习题

1.请用边界值分析法设计三角形问题的测试用例

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

边界值:0,1,2,99, 100, 101

序号

输入内容/操作

期望结果

实际

结果a b c

1 1 1 1 等边三角形

2 0 1 1 请输入[1,100]之

间的数

3 2 1 1 非三角形

4 99 1 1 等腰三角形

5 100 1 1 等腰三角形

6 101 1 1 请输入[1,100]之

间的数

7 1 0 1 请输入[1,100]之

间的数

8 1 2 1 非三角形

9 1 99 1 等腰三角形

10 1 100 1 等腰三角形

11 1 101 1 请输入[1,100]之

间的数

12 1 1 0 请输入[1,100]之

间的数

13 1 1 2 非三角形

14 1 1 99 等腰三角形

15 1 1 100 等腰三角形

16 1 1 101 请输入[1,100]之

间的数

2.请用边界值分析法写出NextDate函数的测试用例

在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

测试用例:

序号

输入内容

期望结果(NextDate)Year Mouth day

1 1911 10 6 Year超出[1912,2050]

2 1912 10 6 1912.10.7

3 1913 10 6 1913.10.7

4 1990 10 6 1990.10.7

5 2049 10

6 2049.10.7

6 2050 10 6 2050.10.7

7 2051 10 6 2051.10.7

序号

输入内容

期望结果(NextDate)Year Mouth day

1 1990 -1 6 mouth超出[1,12]

2 1990 1 6 1990.1.7

3 1990 2 6 1990.2.7

4 1990 11 6 1990.11.7

5 1990 12

6 1990.12.7

6 1990 13 6 mouth超出[1,12]

序号

输入内容

期望结果(NextDate)Year Mouth day

1 1990 10 0 day超出[1,31]

2 1990 10 1 1990.10.2

3 1990 10 2 1990.10.3

4 1990 10 30 1990.10.31

5 1990 10 31 1991.11.1

6 1990 10 32 day超出[1,31]

3.邮箱用户名:6~18个字符,包括字母、数字、下划线,以字母开头,用户名以字母或数字结尾,用户名中必须包含@符号,@符号后可以为数字、字母,邮箱以.com或.cn 或https://www.wendangku.net/doc/097245445.html,结尾

根据要求可以确定5个有效等价类和6个无效等价类

输入条件有效等价类无效等价类

邮箱用户名是否正确

6~18个字符(1)

用户名以字母开头(2)

用户名中含有@(3)

用户名以字母或数字

结尾(4)

邮箱以.com或.cn

或https://www.wendangku.net/doc/097245445.html,结尾(5)

<6个字符9(6)

>18个字符(7)

用户名以非字母开头

(8)

用户名中不含@(9)

用户名以其他字符(除

了字母或数字)结尾

(10)

邮箱以其他字符(除

了.com或.cn

或https://www.wendangku.net/doc/097245445.html,)结尾(11)

邮箱用户名测试用例:

序号

输入内容

预期结果用例描述测试数据

1

(1)(2)(3)(4)

(5)duanyunzhe@163.

com

正确的邮箱用户名

2

(6)(2)(3)(4)

(5)

a@.cn 错误的邮箱用户名

3

(7)(2)(3)(4)

(5)duanyyunzhe@16

https://www.wendangku.net/doc/097245445.html,

错误的邮箱用户名

4

(1)(8)(3)(4)

(5)9uanyunzhe@163.

com

5

(1)(2)(9)(4)

(5)duanyunzhe163.co

m

6

(1)(2)(3)(10)

(5)duanyunzh#@163

.com

7

(1)(2)(3)(4)

(11)duanyunzhe@163.

cot

等等(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

无效输入(不找零)

R > 100 or R<=0 ,

0 < R < = 100 p>100

0 < R < = 100 p

有效输入(找零)

0 < R < = 100 ,R<= P <= 100

T=P-R T :找零

商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种,边界值T可取:0、1、4、5、9、10、49、50、99。

找零钱最佳组合测试用例:

序号

输入内容

输出(T)R P

1 101 or 0 or -1

错误的输入

2 100 99 or P=101

3 100 100 不找零

4 99 100 T=1 N1=1

5 9

6 100 T=4 N1=4

6 95 100 T=5 N5=1

7 91 100 T=9 N5=1,N1=4

8 90 100 T=10 N10=1

9 51 100 T=49 N10=4,N5=1,N1=4

10 50 100 T=50 N50=1

11 1 100 T=99 N50=1,N10=4,

N5=1,N1=4

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

案例白盒测试中的边界值测试 白盒测试中需要重点测试哪些边界值呢?总结起来有以下几点: 测试数据类型的边界值,如整型的范围、单精度数的范围等。 测试数组的边界值。 测试分支判断语句的边界值:如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个元素 }

2.2边界值法练习题

1.请用边界值分析法设计三角形问题的测试用例 在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为[1, 100] 。边1,边2,边3,还是a、b、c 按钮名称【提交】。 边界值:0,1,2,99, 100, 101 序号 输入内容/操作 期望结果 实际 结果a b c 1 1 1 1 等边三角形 2 0 1 1 请输入[1,100]之 间的数 3 2 1 1 非三角形 4 99 1 1 等腰三角形 5 100 1 1 等腰三角形 6 101 1 1 请输入[1,100]之 间的数 7 1 0 1 请输入[1,100]之 间的数 8 1 2 1 非三角形 9 1 99 1 等腰三角形 10 1 100 1 等腰三角形 11 1 101 1 请输入[1,100]之 间的数 12 1 1 0 请输入[1,100]之 间的数 13 1 1 2 非三角形

14 1 1 99 等腰三角形 15 1 1 100 等腰三角形 16 1 1 101 请输入[1,100]之 间的数 2.请用边界值分析法写出NextDate函数的测试用例 在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 测试用例: 序号 输入内容 期望结果(NextDate)Year Mouth day 1 1911 10 6 Year超出[1912,2050] 2 1912 10 6 1912.10.7 3 1913 10 6 1913.10.7 4 1990 10 6 1990.10.7 5 2049 10 6 2049.10.7 6 2050 10 6 2050.10.7 7 2051 10 6 2051.10.7

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

边界值分析法实例

实例: “某一为学生考试试卷评分和成绩统计的程序,其规格说明指出了对程序的要求: 程序的输入文件由80个字符的一些记录组成,这些记录分为三组: (1)标题:这一组只有一个记录,其内容为输出报告的名字。 (2)试卷各题标准答案记录:每个记录均在第80个字符处标以数字“2”。该组的第一个记录的第1至第3个字符为题目编号(取值1—999)。第10至59个字符给出第1至第50题的答案(每个合法字符表示一个答案)。该组的第2,第3,等等记录相应为第51至第100,第101至第150,等等题的答案。 (3)每个学生的答卷描述:该组中每个记录的第80个字符均为数字“3”。每个学生的答卷在若干个记录中给出。如甲的首记录第1至第9字符给出学生姓名及学号,第10至59字符列出的是甲所做的第1至第50题的答案。若试题数超过50,则其第2,第3,等等记录分别给出他的第51至第100,第101至150,等等题的解答。然后是学生乙的答案记录。 若学生最多为200人,输入数据的形式如下图所示: 该程序应给出4个输出报告,即: 按学生学号排序,每个学生的成绩(答对的百分比)和等级报告。 按学生得分排序,每个学生的成绩。 平均分数,最高与最低分之差。 按题号排序,每题学生答对的百分比。 以下两个表分别针对输入条件和输出条件,根据其边界值设置了测试用例。(共43个测试用例) 输入条件测试用例 输入文件空输入文件 标题无标题记录 只有1个字符的标题 具有80个字符的标题 出题个数出了1个题 出了50个题 出了51个题 出了100个题 出了999个题 没有出题 题目数是非数值量

答案记录标题记录后没有标准答案记录 标准答案记录多1个 标准答案记录少1个 学生人数学生人数为0 学生人数为1 学生人数为200 学生人数为201 学 生答题某学生只有1个答卷记录,但有2个标准答案记录该学生是文件中的第1个学生 该学生是文件中的最后1个学生 学生答题某学生有2个答卷记录,但仅有1个标准答案记录该学生是文件中的第1个学生 该学生是文件中最后1个学生 输出条件测试用例 学生得分所有学生得分相同 所有学生得分都不同 一些学生(不是全部)得分相同(用以检查等级计算) 1个学生得分0分 1个学生得分是100分 输出报告 (1)(2)1个学生编号最小(检查排序) 1个学生编号最大 学生数恰好使报告印满1页(检查打印) 学生人数使报告1页打印不够,尚多1人 输出报告 (3)平均值最大值(所有学生均得满分) 平均值为0(所有学生都得0分) 标准偏差取最大值(1学生得0分,1学生得100分)

因果图分析法实例讲解

因果图分析法: 前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑 输入条件之间的联系, 相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。 因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。 因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或 称原因),右结点表示输出状态(或称结果)。 ci 表示原因,通常置于图的左部;ei 表示结果,通常在图的右部。ci 和ei 均可取值0 或1,0表示某状态不出现,1表示某状态出现。 4种符号分别表示了规格说明中向4种因果关系。如上图所示。 ①恒等:若ci 是1,则ei 也是1;否则ei 为0。 ②非:若ci 是1,则ei 是0;否则ei 是1。 ③或:若c1或c2或c3是1,则ei 是1;否则ei 为0。“或”可有任意个输入。 ④与:若c1和c2都是1,则ei 为1;否则ei 为0。“与”也可有任意个输入。 因果图概念--约束 输入状态相互之间还可能存在某些依赖关系,称为约束。例如, 某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。 A.输入条件的约束有以下4类: ① E 约束(异):a 和b 中至多有一个可能为1,即a 和b 不能同时为1。 ② I 约束(或):a 、b 和c 中至少有一个必须是1,即 a 、b 和c 不能同时为0。 ③ O 约束(唯一);a 和b 必须有一个,且仅有1个为1。 ④R 约束(要求):a 是1时,b 必须是1,即不可能a 是1时b 是0。 B.输出条件约束类型 (d )与

边界值分析法案例

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

边界值测试

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

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

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

离生日12月31日的天数

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

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

边界值分析法的学习 (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)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试数据。

matlab练习程序(二值图像内外边界跟踪)

matlab练习程序(二值图像内外边界跟踪) 目标内边界的像素全都在目标里面,目标外边界的像素全都不在目标上,是包围着目标的。 二值图像内外边界的计算都是有两种方法的,所以一共是4种算法,不过实际用到跟踪的只有一个而已。 首先是内边界跟踪: 第一种方法不是跟踪方法。步骤是先对原图像腐蚀,然后用原图像减去腐蚀后的图像就得到边界了。 第二种方法是跟踪方法。步骤如下: 1.遍历图像。 2.标记第一个遇见像素块的前景像素(i,j)。 3.对这个像素周围八邻域逆时针搜索,如果搜索到周围有前景像素,那么更新坐标(i,j)为(i',j'),并标记。 4.不断执行第3步直到再次遇见此像素块第一次标记的像素。 5.继续执行第1步。 然后是外边界跟踪: 第一种方法和求内边界第一种方法类似。先对原图像进行膨胀,然后用膨胀后的图像减去原图像即可。 第二种也不算跟踪方法,只是标记算法而已。就是将图像中前景像素周围的非前景像素标记一下就行了。 效果如下: 原图:

内边界: 外边界: matlab程序如下: 内边界: 复制代码 clear all; close all; clc; img=imread('rice.png'); img=img>128; imshow(img); [m n]=size(img); imgn=zeros(m,n); %边界标记图像 ed=[-1 -1;0 -1;1 -1;1 0;1 1;0 1;-1 1;-1 0]; %从左上角像素,逆时针搜索 for i=2:m-1 for j=2:n-1 if img(i,j)==1 && imgn(i,j)==0 %当前是没标记的白色像素 if sum(sum(img(i-1:i+1,j-1:j+1)))~=9 %块内部的白像素不标记 ii=i; %像素块内部搜寻使用的坐标 jj=j; imgn(i,j)=2; %本像素块第一个标记的边界,第一个边界像素为2 while imgn(ii,jj)~=2 %是否沿着像素块搜寻一圈了。 for k=1:8 %逆时针八邻域搜索 tmpi=ii+ed(k,1); %八邻域临时坐标 tmpj=jj+ed(k,2); if img(tmpi,tmpj)==1 && imgn(tmpi,tmpj)~=2 %搜索到新边界,并且没有搜索一圈 ii=tmpi; %更新内部搜寻坐标,继续搜索 jj=tmpj; imgn(ii,jj)=1; %边界标记图像该像素标记,普通边界为1 break; end

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

武 夷 学 院 实验报告 数学与计算机系 课程名称: 软件测试 实验题目: 边界值测试 学生班级: 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 99999999999-99999999999 差为0 0 0 相符 2 99999999999-99999999998 差为正 数 1 1 相符 3 1-99999999999 差为负 数 -99999999998 -99999999999 不相符 4 2-99999999999 差为负 数 -99999999997 -99999999999 不符99999999998-99999999999 差为负-1 -1 相符5 1+99999999998 和为正 数 99999999999 99999999999 相符 6 99999999999/81 商为正1234567901. 1234567901. 相符 7 99999999999/99999999998 商为正 数 1.000000000 1.000000000 相符 8 99999999999 Sqrt 316227.7660 316227.7660 相符 9 99999999999*25% 24999999999 24999999999 相符 -9999999999*25% -2499999999 2499999999 相符 1/99999999999 1.00000E-11 1.00000E-11 相符正数加 法 质数13+13 13+56

13+49 13+0.3 13+3.247 13+2sqrt 13+1/3 偶数 56+49 56+0.3 56+3.247 56+2sqrt 56+1/3 非质数 的奇数 49+0.3 49+3.247 49+2sqrt 49+1/3 有限小 数 0.3+3.247 0.3+2sqrt 0.3+1/3 无限小 数

因果图分析法实例讲解教学资料

因果图分析法实例讲 解

仅供学习与交流,如有侵权请联系网站删除 谢谢2 因果图分析法: 前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条 件,但未考虑输入条件之间的联系, 相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件 容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况 也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相 应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻 辑模型)。 因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种 组合情况。 因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输 入状态(或称原因),右结点表示输出状态(或称结果)。 ci 表示原因,通常置于图的左部;ei 表示结果,通常在图的右部。ci 和 ei 均可取值0或1,0表示某状态不出现,1表示某状态出现。 (d )与

因果图概念—关系 4 种符号分别表示了规格说明中向4种因果关系。如上图所示。 ①恒等:若ci 是1,则ei 也是1;否则ei 为0。 ②非:若ci 是1,则ei 是0;否则ei 是1。 ③或:若c1或c2或c3是1,则ei 是1;否则ei 为0。“或”可有任意个输入。 ④与:若c1和c2都是1,则ei 为1;否则ei 为0。“与”也可有任意个输入。 因果图概念--约束 输入状态相互之间还可能存在某些依赖关系,称为约束。例如, 某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。 A.输入条件的约束有以下4类: ① E 约束(异):a 和b 中至多有一个可能为1,即a 和b 不能同时为1。 ② I 约束(或):a 、b 和c 中至少有一个必须是1,即 a 、b 和c 不能同时为0。 ③ O 约束(唯一);a 和b 必须有一个,且仅有1个为1。 ④R 约束(要求):a 是1时,b 必须是1,即不可能a 是1时b 是0。 B.输出条件约束类型 输出条件的约束只有M 约束(强制):若结果a 是1,则结果b 强制为0。 E I O

边界值分析方法

设计测试用例方法--边界值分析方法 1方法简介 1.1 定义 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。 1.2 与等价划分的区别 1) 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。 2) 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。 1.3 边界值分析方法的考虑 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。 使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。 1.4 边界值分析 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) 相应地,以上类型的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、空/满等情况下。

黑盒测试--边界值设计测试用例

黑盒测试--边界值分析方法: 一.方法简介 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

测试用例八大分析报告方法和实例

测试用例设计方法 1等价类划分 1.1 理论知识 等价类划分是一种典型的黑盒测试方法。这一方法完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭示程序中的错误都是等效的。 等价类合理地假设:某个等价类的代表值,与该等价类的其他值,对于测试来说是等价的。 因此,可以把全部的输入数据划分成若干的等价类,在每一个等价类中取一个数据来进行测试。这样就能以较少的具有代表性的数据进行测试,而取得较好的测试效果。 等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法. ) 分类: 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类. 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能. 无效等价类:与有效等价类的定义恰巧相反. 设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性. )划分等价类的方法: 下面给出六条确定等价类的原则: ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类. ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效

二值图像的轮廓跟踪

function C = contour_following(BW)定义函数 % CONTOUR_FOLLOWING takes a binary array and returns the sorted row and % column coordinates of contour pixels.CONTOUR_FOLLOWING一个二进制的数组,并返回排序的行和轮廓像素的列坐标 % C = CONTOUR_FOLLOWING(BW) takes BW as an input. BW is a binary array % containing the image of an object ('1': foreground, '0': background). It % returns a circular list (N x 2, C(1,:)=C(end,:)) of the % (row,column)-coordinates of the object's contour, in the order of % appearence (This function was inspired from the freeman contour coding % algorithm).C = CONTOUR_FOLLOWING(BW)作为输入体重。BW是一个二进制的数组,包含一个对象的图像('1':前景,'0':背景)。它返回一个循环链表(为N×2,C级(1,:) =(年底,:))在appearence 秩序,对象的轮廓(行,列)坐标(此功能的启发弗里曼轮廓编码算法) % Note: % - if the object is less than 3 pixels, CONTOUR_FOLLOWING sends back [0 0].如果对象是小于3个像素,CONTOUR_FOLLOWING发回[0]。 % - the algorithm is quite robust: the object can have holes, and can also % be only one pixel thick in some parts (in this case, some coordinates % pair will appear two times: they are counted "way and back"). 算法是相当稳健的对象可以有洞,也可以是只有一个像素厚(在这种情况下,在一些地区,一些坐标对将出现两次:他们都算“回溯”) [m,n]=size(BW); % getting the image height and width 获取图像的高度和宽度 Itemp=zeros(m+2,n+2); % we create a '0' frame around the image to avoid border problems 创建0为图像帧,以避免边界问题 Itemp(2:(m+1),2:(n+1))=BW; BW=Itemp; BW = BW - imerode(BW,[0 1 0 ; 1 1 1 ; 0 1 0]); % gets the contour by substracting the erosion to the image 获得减去侵蚀图像轮廓 BW = bwmorph(BW,'thin',Inf); % to be sure to have strictly 8-connected contour 一定要有严格的八连轮廓 if (sum(sum(BW))<3), % we consider that less than 3 pixels cannot make a contour 我们认为不到三个像素不算一个轮廓 C=[0 0]; return; end; [row,col]=find(BW,1); % takes the first encountered '1' pixel as the starting point of the contour 以第一次遇到1像素为轮廓起点 MAJ=[6 6 0 0 2 2 4 4]; % variable initialization 变量初始化 C=[0 0 ; 0 0]; k=0; ended=0; direction=4; while(ended==0),

使用边界值测试方法和决策表测试方法对三角形问题进行测试

题目: 三角形问题:输入3个整数a、b和c,作为三角形的3条边。通过程序判断出由这3条边构成的三角形的类型是等边三角形、等腰三角形还是一般三角形,并打印出相应的信息。条件: 1、输入3个整数a、b和c 作为三角形的三条边 2、正数 3、a ∈[ 1, 100] b ∈[ 1, 100] c ∈[ 1, 100] 4、三角形两边之和大于第三边 输出三角形类型的条件: 1、一般三角形:a+b>c 或a+c>b 或b+c > a 2、等腰三角形:在满足一般三角形的前提下,且a=b≠c 或a=c≠b 或b=c≠a 3、等边三角形:在满足一般三角形的前提下,且a=b=c 4、不能构成边三角形:a+b

⑤99 50 50 等腰三角形 ⑥0 50 50 不能构成三角形 ⑦101 50 50 不能构成三角形 ⑧50 1 50 等腰三角形 ⑨50 100 50 不能构成三角形 ⑩50 2 50 等腰三角形 ○1150 99 50 等腰三角形 ○1250 0 50 不能构成三角形 ○1350 101 50 不能构成三角形 ○1450 50 1 等腰三角形 ○1550 50 100 不能构成三角形 ○1650 50 2 等腰三角形 ○1750 50 99 等腰三角形 ○1850 50 0 不能构成三角形 ○1950 50 101 不能构成三角形 二、决策表测试方法 ①②③④⑤⑥⑦⑧ 输入边值a∈[ 1, 100] Y Y Y Y N N N N b∈[ 1, 100] Y Y N N Y Y N N c∈[ 1, 100] Y N Y N Y N Y N 输出三角形的类 型不能构成三角形V V V V V V V 一般三角形V 等腰三角形V 等边三角形V

黑盒测试:边界值分析法及测试用例设计

20 14 —20 15 学年第 2 学期 软件测试技术课程 实验报告 学院:计算机科学技术 专业:软件工程 班级:软件一班 姓名:马文龙 学号:041240139 任课教师:刘玉宝

实验日期:2015年 4 月23 日实验题目黑盒测试:边界值分析法及测试用例设计 实验目的1、掌握边界值的概念。 2、掌握边界值分析法的测试用例设计方法。 实验内容 对于找零钱最佳组合问题运用边界值分析法设计测试用例,并执行测试,撰写实验报告。 实验步骤: ①分析边界值。 ②运用健壮性边界条件法设计测试用例,得到测试用例表(测试用例表格式同实 验1)。 ③执行测试,填写软件缺陷报告(软件缺陷报告格式同实验1)。 实验步骤: 通过假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。 1.用例编号说明表格式如下: 用例编号N50 N10 N5 N1 找零张数 1 2 0 0 0 0 2 2 0 0 1 Error 3 0 100 0 0 0 4 0 0 20 0 0 5 0 0 0 100 0 6 0 101 0 0 Error

7 0 0 21 0 Error 8 0 0 0 101 Error 9 0 0 0 0 1 2.运用边界值测试用例设计法设计测试用例,得到测试用例表。测试用例表格式如 下: 测试用例 ID 输入数据操作期望结果实际输出 B1 N50=2 N10=0 N5=0 N1=0 计算找零张数0 0 B2 N50=2 N10=0 N5=0 N1=1 计算找零张数Error Error B3 N50=0 N10=100 N5=0 N1=0 计算找零张数0 0 B4 N50=0 N10=0 N5=20 N1=0 计算找零张数0 0 B5 N50=0 N10=0 N5=0 N1=100 计算找零张数0 0 B6 N50=0 N10=101 N5=0 N1=0 计算找零张数Error Error

边界值分析法案例

1. 边界条件测试 边界条件是指软件计划的操作界限所在的边缘条件。 程序在处理大量中间数值时都是对的,但是可能在边界处出现错误。比如数组的[0]元素的处理。想要在Basic中定义一个10个元素的数组,如果使用Dim data(10) As Integer ,则定义的是一个11个元素的数组,在赋初值时再使用For i =1 to 10 ...来赋值,就会产生权限,因为程序忘记了处理i=0的0号元素。 数据类型:数值、字符、位置、数量、速度、地址、尺寸等,都会包含确定的边界。 应考虑的特征:第一个/最后一个、开始/完成、空/满、最慢/最快、相邻/最远、最小值/最大值、超过/在内、最短/最长、最早/最迟、最高/最低。这些都是可能出现的边界条件。 根据边界来选择等价分配中包含的数据。然而,仅仅测试边界线上的数据点往往不够充分。提出边界条件时,一定要测试临近边界的合法数据,即测试最后一个可能合法的数据,以及刚超过边界的非法数据。以下例子说明一下如何考虑所有可能的边界: -------------------------------------------------------------------------------- 如果文本输入域允许输入1-255个字符。 尝试:输入1个字符和255个字符(合法区间),也可以加入254个字符作为合法测试。 输入0个字符和256个字符作为非法区间。 -------------------------------------------------------------------------------- 如果程序读写软盘 尝试:保存一个尺寸极小,甚至只有一项的文件。 然后保存一个很大的——刚好在软盘容量限制之内的文件。 保存空文件。 保存尺寸大于软盘容量的文件。 -------------------------------------------------------------------------------- 如果程序允许在一张纸上打印多个页面 尝试:只打印一页 打印允许的最多页面 打印0页 多于所允许的页面(如果可能的话) -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 2. 次边界条件测试 上面所讲的是普通的边界条件,在产品说明书中有定义,或者在软件的过程中确定。但有些边界在软件内部,最终用户几乎看不到,但是软件测试仍有必要检查,这样的边界条件成为次边界条件或者内部边界条件。寻找这样的边界条件,不要求软件测试员成为程序员或者具有阅读源代码的能力,但是确实要求大体了解软件的工作方式。2的乘方和ASCII表是这样的两个例子: -------------------------------------------------------------------------------- 2的乘方 术语

相关文档