史上最全的测试用例设计方法总结

发布时间:2018-09-25 测试 运维 数据库

测试用例的设计方法(全)
等价类划分方法:
一.方法简介
1.定义
是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。

2.划分等价类:
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
1)有效等价类
是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
2)无效等价类
与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。

3.划分等价类的标准:
1)完备测试、避免冗余;
2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;
3)并是整个集合:完备性;
4)子集互不相交:保证一种形式的无冗余性;
5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。
4.划分等价类的方法
1)在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0~100;

2)在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下,可确立一个有效等价类和一个无效等价类;
3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。
5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则);
6)在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

5.设计测试用例
在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:
1)为每一个等价类规定一个唯一的编号;
2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;
3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。

二.实战演习
1.某程序规定:"输入三个整数 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)
覆盖无效等价类的测试用例:

2.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在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 无效输入 ⑩

3.NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:
①1≤month≤12
②1≤day≤31
③1920≤year≤2050
1)有效等价类为:
M1={月份:1≤月份≤12}
D1={日期:1≤日期≤31}
Y1={年:1812≤年≤2012}
2)若条件 ① ~ ③中任何一个条件失效,则 NextDate 函数都会产生一个输出,指明相应的变量超出取值范围,比如 "month 的值不在 1-12 范围当中 " 。显然还存在着大量的 year 、 month 、 day 的无效组合, NextDate 函数将这些组合作统一的输出: " 无效输入日期 " 。其无效等价类为:
M2={月份:月份<1}
M3={月份:月份>12}
D2={日期:日期<1}
D3={日期:日期>31}
Y2={年:年<1812}
Y3={年:年>2012}
弱一般等价类测试用例
月份 日期 年 预期输出
6 15 1912 1912年6月16日
强一般等价类测试用例同弱一般等价类测试用例
注:弱--有单缺陷假设;健壮--考虑了无效值

(一)弱健壮等价类测试
用例ID 月份 日期 年 预期输出
WR1 6 15 1912 1912年6月16日
WR2 -1 15 1912 月份不在1~12中
WR3 13 15 1912 月份不在1~12中
WR4 6 -1 1912 日期不在1~31中
WR5 6 32 1912 日期不在1~31中
WR6 6 15 1811 年份不在1812~2012中
WR7 6 15 2013 年份不在1812~2012中
(二)强健壮等价类测试
用例ID 月份 日期 年 预期输出
SR1 -1 15 1912 月份不在1~12中
SR2 6 -1 1912 日期不在1~31中
SR3 6 15 1811 年份不在1812~2012中
SR4 -1 -1 1912 两个无效一个有效
SR5 6 -1 1811 两个无效一个有效
SR6 -1 15 1811 两个无效一个有效
SR7 -1 -1 1811 三个无效

4.佣金问题等价类测试用例,它是根据佣金函数的输出值域定义等价类,来改进测试用例集合。
输出销售额≤1000元 佣金10%
1000<销售额≤1800 佣金=100+(销售额-1000)15%
销售额>1800 佣金=220+(销售额-1800)20%
测试用例 枪机(45) 枪托(30) 枪管(25) 销售额 佣金
1 5 5 5 500 50
2 15 15 15 1500 175
3 25 25 25 2500 360
根据输出域选择输入值,使落在输出域等价类内,可以结合弱健壮测试用例结合。
边界值分析方法:
一.方法简介
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)利用边界值作为测试数据
项 边界值 测试用例的设计思路
字符 起始-1个字符/结束+1个字符 假设一个文本输入区域允许输入1个到255个 字符,输入1个和255个字符作为有效等价类;输入0个和256个字符作为无效等价类,这几个数值都属于边界条件值。
数值 最小值-1/最大值+1 假设某软件的数据输入域要求输入5位的数据值,可以使用10000作为最小值、99999作为最大值;然后使用刚好小于5位和大于5位的 数值来作为边界条件。
空间 小于空余空间一点/大于满空间一点 例如在用U盘存储数据时,使用比剩余磁盘空间大一点(几KB)的文件作为边界条件。
7)内部边界值分析:
在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到,也是最终用户可以很容易发现问题的。然而,在测试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。
内部边界值条件主要有下面几种:
a)数值的边界值检验:计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制。
项 范围或值
位(bit) 0或者1
字节(byte) 0——225
字(word) 0~65535(单字)或 0~4294967295(双字)
千(K) 1024
兆(M) 1048576
吉(G) 1073741824
b)字符的边界值检验:在计算机软件中,字符也是很重要的表示元素,其中ASCII和Unicode是常见的编码方式。下表中列出了一些常用字符对应的ASCII码值。
字符 ASCII码值 字符 ASCII码值
空 (null) 0 A 65
空格 (space) 32 a 97
斜杠 ( / ) 47 Z 90
0 48 z 122
冒号 ( : ) 58 单引号 ( ‘ ) 96
@ 64
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组:

①标题:这一组只有一个记录,其内容为输出成绩报告的名字。
②试卷各题标准答案记录:每个记录均在第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 。

错误推测方法
一. 方法简介

  1. 定义:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。
  2. 错误推测方法的基本思想:
    列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。
    1) 例如, 输入数据和输出数据为0的情况;输入表格为空格或输入表格只有一行。 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。
    2) 例如,前面例子中成绩报告的程序,采用错误推测法还可补充设计一些测试用例:
    I. 程序是否把空格作为回答
    II. 在回答记录中混有标准答案记录
    III. 除了标题记录外,还有一些的记录最后一个字符即不是2也不是3
    IV. 有两个学生的学号相同
    V. 试题数是负数。
    3) 再如,测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:
    I. 输入的线性表为空表;
    II. 表中只含有一个元素;
    III. 输入表中所有元素已排好序;
    IV. 输入表已按逆序排好;
    V. 输入表中部分或全部元素相同。
    二. 实战演习
    暂无

因果图方法
一. 方法简介
1.定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
2.因果图法产生的背景:
等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
3.因果图介绍
1) 4种符号分别表示了规格说明中向4种因果关系。

2) 因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。
3) Ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。Ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。

  1. 因果图概念
    1) 关系
    ①恒等:若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。“与”也可有任意个输入。
    2) 约束
    输入状态相互之间还可能存在某些依赖关系,称为约束。例如, 某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。

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。

  1. 采用因果图法设计测试用例的步骤:
    1)分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。
    2)分析软件规格说明描述中的语义,找出原因与结果之间, 原因与原因之间对应的关系,根据这些关系,画出因果图。
    3)由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。
    4)把因果图转换为判定表。
    5)把判定表的每一列拿出来作为依据,设计测试用例。
    二. 实战演习
  2. 某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
    解答:
    1) 根据题意,原因和结果如下:
    原因:
    1——第一列字符是A;
    2——第一列字符是B;
    3——第二列字符是一数字。
    结果:
    21——修改文件;
    22 ——给出信息L;
    23——给出信息M。
    2) 其对应的因果图如下:
    11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。

3)根据因果图建立判定表。

   表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,故应排除这两种情况。表的最下一栏给出了6种情况的测试用例,这是我们所需要的数据。 

2.有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
1) 分析这一段说明,列出原因和结果
原因:
1.售货机有零钱找
2.投入1元硬币
3.投入5角硬币
4.押下橙汁按钮
5.押下啤酒按钮
结果:
21.售货机〖零钱找完〗灯亮
22.退还1元硬币
23.退还5角硬币
24.送出橙汁饮料
25.送出啤酒饮料
2)画出因果图,如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:

  1. 投入1元硬币且押下饮料按钮
    1. 押下〖橙汁〗或〖啤酒〗的按钮
    2. 应当找5角零钱并且售货机有零钱找
    3. 钱已付清

3)转换成判定表:

4) 在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。第16列与第32列因什么动作也没做,也删去。最后可根据剩下的16列作为确定测试用例的依据。

判定表驱动分析方法
一. 方法简介
1.定义:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。
2.判定表的优点
能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。
在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。
3.“阅读指南”判定表

  1. 判定表通常由四个部分组成如下图所示。

1)条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序无关紧要。
2)动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
3)条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。
4)动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。
5.规则及规则合并
1)规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。
2)化简:就是规则合并有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系。
6.规则及规则合并举例
1)如下图左端,两规则动作项一样,条件项类似,在1、2条件项分别取Y、N时,无论条件3取何值,都执行同一操作。即要执行的动作与条件3无关。于是可合并。“-”表示与取值无关。

2)与上类似,下图中,无关条件项“-”可包含其他条件项取值,具有相同动作的规则可合并。

3)化简后的读书指南判定表
1 2 3 4

题 你觉得疲倦吗? - - Y N
你对内容感兴趣吗? Y Y N N
书中内容使你胡涂吗? Y N - -


议 请回到本章开头重读 x
继续读下去 X
跳到下一章去读 x
停止阅读,请休息 x
7.判定表的建立步骤:(根据软件规格说明)
1)确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2n种规则。
2)列出所有的条件桩和动作桩。
3)填入条件项。
4)填入动作项。等到初始判定表。
5)简化.合并相似规则(相同动作)。
二. 实战演习
1.问题要求:”……对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……” 。这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义 。请建立判定表。
解答:
①确定规则的个数:这里有3个条件,每个条件有两个取值,故应有222=8种规则。
②列出所有的条件茬和动作桩:

③填入条件项。可从最后1行条件项开始,逐行向上填满。如第三行是: Y N Y N Y N Y N,第二行是: Y Y N N Y Y N N等等。
④填入动作桩和动作顶。这样便得到形如图的初始判定表。
1 2 3 4 5 6 7 8

件 功率大于50马力吗? Y Y Y Y N N N N
维修记录不全吗? Y Y N N Y Y N N
运行超过10年吗? Y N Y N Y N Y N

作 进行优先处理 x x X X X
作其他处理 X x x
初始判定表
⑤化简。合并相似规则后得到图。
1 2 3 4 5

件 功率大于50马力吗? Y Y Y N N
维修记录不全吗? Y N N - -
运行超过10年吗? - Y N Y N

作 进行优先处理 x x X
作其他处理 x x
2.NextData函数的精简决策表
M1={月份, 每月有30天}
M2={月份, 每月有31天}
M3={月份, 2月} 有29=512条规则
D1={日期,1~28} 12月末31日和其它31
D2={日期,29} 日月份的31日处理不同
D3={日期,30} 平年2月28日处理不同
D4={日期,31} 于2月27日
Y1 ={年:年是闰年}
Y2 ={年:年不是闰年}
改进为
M1={月份: 每月有30天}
M2={月份: 每月有31天, 12月除外}
M4={月份:12月}
M3={月份: 2月}
D1={日期:1<=日期<=27}
D2={日期:28}
D3={日期:29}
D4={日期:30}
D5={日期:31}
Y1 ={年:年是闰年}
Y2 ={年:年不是闰年}
输入变量间存在大量逻辑关系的NextData决策表

  1. 用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。
    例如,输入为2004年11月29日,则该程序的输出为2000年12月1日。
    1)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类。
    2)分析程序规格说明,结合以上等价类划分的情况给出问题规定的可能采取的操作(即列出所有的动作桩)。
    3)根据(1)和(2),画出简化后的决策表。
    案例分析如下:
    1) month变量的有效等价类:
    M1: {month=4,6,9,11}
    M2: {month=1,3,5,7,8,10}
    M3: {month=12}
    M4: {month=2}
    2)day变量的有效等价类:
    D1:{1≤day≤26} D2: {day=27} D3: {day=28} D4: {day=29} D5: {day=30} D6: {day=31}
    3)year变量的有效等价类:
    Y1: {year是闰年} Y2: {year不是闰年}
    4)考虑各种有效的输入情况,程序中可能采取的操作有以下六种:
    a1: day+2 a2: day=2 a3: day=1
    a4: month+1 a5: month=1 a6: year+1
  2. 判定表在功能测试中的应用
    1)一些软件的功能需求可用判定表表达得非常清楚,在检验程序的功能时判定表也就成为一个不错的工具。如果一个软件的规格说明指出:
    I. 当条件1和条件2满足,并且条件3和条件4不满足,或者当条件1、3和条件4满足时,要执行操作1。
    II. 在任一个条件都不满足时,要执行操作2。
    III. 在条件1不满足,而条件4被满足时,要执行操作3。 根据规格说明得到如下判定表:

这里,判定表只给出了16种规则中的8种。事实上,除这8条以外的一些规则是指当不能满足指定的条件,执行3种操作时,要执行1个默许的操作。在没必要时,判定表通常可略去这些规则。但如果用判定表来设计测试用例,就必须列出这些默许规则(如下表)。
规则5 规则6 规则7 规则8
条件1 - N Y Y
条件2 - Y Y N
条件3 Y N N N
条件4 N N Y -
默许操作 x x x x
默许的规则
2)判定表的优点和缺点
I. 优点:它能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏。
II. 缺点:不能表达重复执行的动作,例如循环结构。
3)B. Beizer 指出了适合使用判定表设计测试用例的条件:
①规格说明以判定表形式给出,或很容易转换成判定表。
②条件的排列顺序不会也不影响执行哪些操作。
③规则的排列顺序不会也不影响执行哪些操作。
④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。
B. Beizer提出这5个必要条件的目的是为了使操作的执行完全依赖于条件的组合。其实对于某些不满足这几条的判定表,同样可以借以设计测试用例,只不过尚需增加其它的测试用例罢了。

正交实验设计方法
一.方法简介
利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。
正交实验设计方法:依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.类似的方法有:聚类分析方法,因子方法方法等.
利用正交实验设计测试用例的步骤:
1.提取功能说明,构造因子--状态表
把影响实验指标的条件称为因子.而影响实验因子的条件叫因子的状态.利用正交实验设计方法来设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把他们当作因子,而把各个因子的取值当作状态.对软件需求规格说明中的功能要求进行划分,把整体的概要性的功能要求进行层层分解与展开,分解成具体的有相对独立性的基本的功能要求.这样就可以把被测试软件中所有的因子都确定下来,并为确定个因子的权值提供参考的依据.确定因子与状态是设计测试用例的关键.因此要求尽可能全面的正确的确定取值,以确保测试用例的设计作到完整与有效。
2.加权筛选,生成因素分析表
对因子与状态的选择可按其重要程度分别加权.可根据各个因子及状态的作用大小,出现频率的大小以及测试的需要,确定权值的大小。
3.利用正交表构造测试数据集
正交表的推导依据Galois理论(这里省略,需要时可查数理统计方面的教材)。
利用正交实验设计方法设计测试用例,比使用等价类划分,边界值分析,因果图等方法有以下优点:节省测试工作工时;可控制生成的测试用例数量;测试用例具有一定的覆盖率。
二. 实战演习
暂无

功能图分析方法
一.方法简介
一个程序的功能说明通常由动态说明和静态说明组成.动态说明描述了输入数据的次序或转移的次序.静态说明描述了输入条件与输出条件之间的对应关系.对于较复杂的程序,由于存在大量的组合情况,因此,仅用静态说明组成的规格说明对于测试来说往往是不够的.必须用动态说明来补充功能说明.功能图方法是用功能图FD形式化地表示程序的功能说明,并机械地生成功能图的测试用例. 功能图模型由状态迁移图和逻辑功能模型构成.状态迁移图用于表示输入数据序列以及相应的输出数据.在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态.逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关系.逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定.测试用例则是由测试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成.功能图方法其实是是一种黑盒白盒混合用例设计方法。
(功能图方法中,要用到逻辑覆盖和路径测试的概念和方法,其属白盒测试方法中 的内容.逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计方法.该方法要求测试人员对程序的逻辑结构有清楚的了解.由于覆盖测试的目标不同,逻辑覆盖可分为:语句覆盖,判定覆盖,判定-条件覆盖,条件组合覆盖及路径覆盖.下面我们指的逻辑覆盖和路径是功能或系统水平上的,以区别与白盒测试中的程序内部的.)
1.功能图
功能图由状态迁移图和布尔函数组成.状态迁移图用状态和迁移来描述.一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变.同时要依靠判定表或因果图表示的逻辑功能.例,一个简化的自动出纳机ATM的功能图。
2.测试用例生成方法
从功能图生成测试用例,得到的测试用例数是可接受的. 问题的关键的是如何从状态迁移图中选取测试用例. 若用节点代替状态,用弧线代替迁移,则状态迁移图就可转化成一个程序的控制流程图形式.问题就转化为程序的路径测试问题(如白盒测试)问题了.
3.测试用例生成规则
为了把状态迁移(测试路径)的测试用例与逻辑模型(局部测试用例)的测试用例组合起来,从功能图生成实用的测试用例,须定义下面的规则.在一个结构化的状态迁移(SST)中,定义三种形式的循环:顺序,选择和重复.但分辨一个状态迁移中的所有循环是有困难的.(其表示图形省略)。
4.从功能图生成测试用例的过程
1)生成局部测试用例:在每个状态中,从因果图生成局部测试用例.局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成。
2)测试路径生成:利用上面的规则(三种)生成从初始状态到最后状态的测试路径。
3)测试用例合成:合成测试路径与功能图中每个状态中的局部测试用例.结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合。
5.测试用例的合成算法:采用条件构造树.
二.实战演习
暂无

场景设计方发
一.方法简介
现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。
基本流和备选流:如下图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。

二.实战演习

  1. 例子描述
    下图所示是ATM例子的流程示意图。

2.场景设计:下表所示是生成的场景。
表3-8 场景设计
场景1——成功提款 基本流
场景2——ATM内没有现金 基本流 备选流2
场景3——ATM内现金不足 基本流 备选流3
场景4——PIN有误(还有输入机会) 基本流 备选流4
场景5——PIN有误(不再有输入机会) 基本流 备选流4
场景6——账户不存在/账户类型有误 基本流 备选流5
场景7——账户余额不足 基本流 备选流6
注:为方便起见,备选流3和6(场景3和7)内的循环以及循环组合未纳入上表。
3.用例设计
对于这7个场景中的每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。本示例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。
表3-9 测试用例表

TC(测试用例)ID号 场景/条件 PIN 账号 输入(或选择)的金额 账面
金额 ATM内的金额 预期结果
CW1 场景1:成功提款 V V V V V 成功提款
CW2 场景2:ATM内没有现金 V V V V I 提款选项不可用,用例结束
CW3 场景3:ATM内现金不足 V V V V I 警告消息,返回基本流步骤6,输入金额
CW4 场景4:PIN有误(还有不止一次输入机会) I V n/a V V 警告消息,返回基本流步骤 4,输入 PIN
CW5 场景4:PIN有误(还有一次输入机会) I
V n/a V V 警告消息,返回基本流步骤 4,输入 PIN
CW6 场景4:PIN有误(不再有输入机会) I V n/a V V 警告消息,卡予保留,用例结束

4.数据设计
一旦确定了所有的测试用例,则应对这些用例进行复审和验证以确保其准确且适度,并取消多余或等效的测试用例。
测试用例一经认可,就可以确定实际数据值(在测试用例实施矩阵中)并且设定测试数据,如表3-10所示。
表3-10 测试用例表
TC(测试用例)ID号 场景/条件 PIN 账号 输入(或选择)的金额
(元) 账面
金额(元) ATM内的金额(元) 预期结果
CW1 场景1:成功提款 4987 809-498 50.00 500.00 2 000 成功提款。账户余额被更新为450.00
CW2 场景2:ATM内没有现金 4987 809-498 100.00 500.00 0.00 提款选项不可用,用例结束
CW3 场景3:ATM内现金不足 4987 809-498 100.00 500.00 70.00 警告消息,返回基本流步骤6,输入金额
CW4 场景4:PIN有误(还有不止一次输入机会) 4978 809-498 n/a 500.00 2 000 警告消息,返回基本流步骤4,输入PIN
CW5 场景4:PIN有误(还有一次输入机会) 4978 809-498 n/a 500.00 2 000 警告消息,返回基本流步骤4,输入PIN
CW6 场景4:PIN有误(不再有输入机会) 4978 809-498 n/a 500.00 2 000 警告消息,卡予保留,用例结束

测试用例设计综合策略

  1. Myers提出了使用各种测试方法的综合策略:
    1)在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。
    2)必要时用等价类划分方法补充一些测试用例。
    3)用错误推测法再追加一些测试用例。
    4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例。
    5)如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法。
    2.测试用例的设计步骤
    1)构造根据设计规格得出的基本功能测试用例;
    2)边界值测试用例;
    3)状态转换测试用例;
    4)错误猜测测试用例;
    5)异常测试用例;
    6)性能测试用例;
    7)压力测试用例。
    3.优化测试用例的方法
    1)利用设计测试用例的8种方法不断的对测试用例进行分解与合并;
    2)采用遗传算法理论进化测试用例;
    3)在测试时利用发散思维构造测试用例。

转载于:https://blog.51cto.com/11170714/2285601

更多相关推荐


bug状态开发人员必知必会

发布时间:2008-12-02 测试 产品 OTHERS THINKING
在项目开发过程中,我发觉很多人在解决测试人员提出的bug之后,应该将这个bug修改成什么状态不太了解,导致了最后统计bug解决数量,以及遗留bug等等数据不准确。作为开发人员,我觉得了解bug的解决状态是一门基础课程。这里我将开发人员用到的bug解决状态列举出来,希望对大家有所帮助(这些都是开发人员在解决相应bug时应该在测试库中修改的状态):    FIXED(已解决):bug已经被解决,并且通...

系统测试流程

发布时间:2021-04-05 测试 软件测试
系统测试流程主要构成:计划、设计、实现、执行四个阶段;分为10个阶段:测试计划设计、测试需求分析、测试策略设计、测试规程设计、测试用例设计、配置测试环境、执行测试用例、缺陷跟踪回归、测试报告输出、测试结束活动。系统测试流程之测试计划设计测试计划设计编写模板之一如下:软件资源包括:操作系统资源(Windows、Linux、Unix、MAC)、数据库(SQLServer、Mysql、Oracle、Sy...

系统测试全过程(转)

我一直感觉系统测试总像马拉松总是测试不完,什么时候上线,什么时候算终点。虽然提交客户了,可是对于质量仍然心里没底,对于测试的效果没有评价的依据。后来经过高人指点,终于领悟到至关重要的精髓:明确测试目标!   如果要将系统进行全面测试,那么就要有一套完整的测试阶段,每个阶段都以测试目标为标准,科学、有序地进行测试,那么测试效率也就会自然而然跟着提高。测试阶段分为:测试前准备、需求分析、测试计划、测试...

关于软件业务场景分析的总结

发布时间:2010-09-24 敏捷 需求分析 网络 文档 测试 工作
     这两个月的时间都在搞软件业务场景分析,划分Story。由于软件基本上是给内部用户使用,这段时间就跟着行销、测试的屁股后面跑---弄清楚他们希望用这个软件规划什么样的网络,当前由人工来完成是怎么做的,软件要做到什么程度?是全自动(完全代替之前的人工操作),还是半自动(部分功能通过软件实现,部分仍由手工完成)。和行销用户、测试人员反复沟通,文档一再检视、返工,人困马乏,说分析阶段是软件开发最...

场景分析法

发布时间:2017-01-05 测试
场景分析法一.定义1.概念分析软件应用的场景,从用户的角度出发,从场景的角度来设计测试用例,是一种面向用户的测试用例设计方法。关心用户做什么,而不是关心产品做什么优点:实用性强,有效,设计出来的用例有价值缺点:可能使用的场景不一定能对事件系列进行全面的分析,设计出来的用例不完整。场景分析是通过描述流经用例路径来确定的过程,这个流经过程要从用例开始到结束遍历其中所有基本流:直黑线表示基本流,是最基本...

测试用例设计-----场景法

测试用例场景法在面试软件测试时总是会被面试官问到,你是如何使用场景法设计用例的???下面我就给大家详解一下:场景法是以程序的动作和事件、处理过程为出发点衍生设计测试的方法,适合于面向对象的可视化界面测试,业务、工单流的测试基本流:基本流表示通过业务流程时输入都正确,能达到目标的流程。备选流:备选流表示通过业务流程时输入错误(或者操作错误)导致流程存在反复,但是经过纠正后仍能达到能达到目标的流程。场...

测试用例设计方法

发布时间:2018-10-23 测试 PYTHON 运维
2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt;本文主要分析大概8种用例设计方法:等价类划分边界值分析错误推测因果图判定表驱动分析正交试验设计功能图分析场景设计写在前面:测试用例设计综合策略1、GlenfordJ.Myers 提出了使用各种测试方法的综合策略:1)在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。2)必要时用等价类...

场景模型驱动自动化测试在盒马的探索及实践

发布时间:2021-11-10 运维 自动化 单元测试
一引言盒马业务有如下几个特点:线上线下一体化、仓储配送一体化、超市餐饮一体化、经营作业一体化、多业态与平台化。在以上的种种原因,生鲜及物流体验是盒马的特点,但仓储配送一体化作业中,如何能更高效的提升测试效率也是盒马质量团队的重点探索。二背景及待解决问题介绍1盒马自动化体系发展新挑战在盒马,前期业务在狂奔,自动化基础较薄弱,近三年来,经过盒马人的不断突破,已经具备了一定的自动化体系,因为盒马业务的特...

什么场景下需要自动化测试

发布时间:2019-02-23 测试 人工智能
软件测试的一些大道理穷尽测试是不可能的,需要有自我(主观)的风险分析经验、能力,找出风险最高的优先进行测试;杀虫剂怪事(几乎不考虑)当测试变多,开发能熟悉你的套路,并产生免疫力。医学上称为耐药性;PS:我觉得你不形成规范和制度,这些低级错误永远都在。每次代码迭代都有风险每次迭代,缺陷修复总会以20%-50%的概率引入新缺陷;(不知道谁统计过没?)所以每次修复之后,还是必须重新运行之前的testli...

场景测试

发布时间:2017-03-30 测试 场景
场景法:通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。我们通常以正常的用例场景分析开始,然后再着手其他的场景分析。场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。场景主...

测试入门-badboy(1)

发布时间:2019-08-14 测试 BADBOY
 刚刚学习测试没有多久,因为工作需要接触学习badboy。那就一起聊聊badboy!PS:此文作为学习笔记,有许多不严谨,还能包涵。一、下载安装1.官网地址:http://www.badboy.com.au/  2.点击download3.点击安装二、界面及功能1)菜单栏1、file:新建、打开、保存和导出脚本等2、Edit:取消,重播,剪切,复制,粘贴,查询和替代3、view:显示或取消显示视图...

情景测试的16种方法

之前翻译过一篇关于情景测试的文章link,因为现在我所在的项目的测试到了胶着阶段,因此又提及情景测试。所谓胶着,自是因为项目开发到了相对稳定阶段,测试也用很多种方式进了了几次了,如回归测试、全覆盖测试等等,现在进入了效果不明显的阶段。因为开发人员还在修bug,所以测试人员自是不能掉以轻心。但是,这个时候,测试人员效率不高,回归测试的具体执行不一定完全。那么,怎么调动测试人员的积极性,继续测试,又怎...

【JAVA】关于自动化测试所需要学习的java基础知识笔记

1.JAVA相关1.1java三大特性封装,继承,多态。其中多态详解请看这篇博文:https://www.cnblogs.com/chenssy/p/3372798.html当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法。其中有一个经典实例:https://blog.csdn.net...

黑盒测试之状态迁移

发布时间:2019-03-26 测试 状态迁移
状态迁移使用场景:关注被测对象的状态变化,在需求规格说明书中是否有不可到达的状态;状态:被测对象在特定输入条件下保持的相应形式;测试流程:①:根据需求确定状态节点;②:画状态迁移图;③:回执状态迁移树;④:写测试用例;案例:售票系统(1)用户可以预定车票,此时车票信息处于‘预定’状态;(2)用户支付车票费用后,车票状态变为‘已支付’状态;(3)用户从售票处取出车票后,车票状态变为‘已出票’;(4)...

测试场景设计-测试方法论

发布时间:2018-06-25 测试 方法论
1.需求测试--查看需求文档,产品设计文档2.功能测试--满足功能设计要求3.UI界面设计--满足UI设计需求4.性能测试--登录5秒之内,接口响应300毫秒之内5.安全测试-SQL注入,防xss攻击,同一用户多点登录,不同用户同一台机器登录,错误登录限制6.兼容性测试-浏览器兼容性,系统平台兼容性,设备兼容性(移动平台)7.易用性测试-是否符合习惯性操作,快捷键,显示器适配8.错误测试-对错误场...

单元测试、接口测试、功能测试的区别

发布时间:2019-06-12 测试
单元测试、接口测试、功能测试的区别功能测试的进行:首先编写测试用例,测试用例中最主要的是测试步骤和预期结果;测试人员根据测试用例执行操作步骤,然后通过眼睛和思考判断实际结果与预期结果是否相等,如果相等,测试通过;如果不相等,测试失败。自动化测试要做的事情与功能测试是一致的,这里的自动化测试主要包含三个层面的自动化,单元测试自动化,接口测试自动化和web测试自动化。当然,不同层面的自动化关注点不一样...

最简单的方法教你查看 iOS 手机上的日志

发布时间:2021-06-08 测试 IOS 软件测试
前言随着互联网时代的飞速发展,移动端的产品已经遍布了我们的所有领域对于现在的很多人来说,衣、食、住、行,都已经离不开各式各样的app了所以,对于我们测试工程师而言,在公司里对app进行测试,已经不是什么新鲜玩意了那么今天,我们就主要来看一下如何在iOS上app的日志mac自带控制台查看日志环境准备mac电脑一台(一体机和笔记本都一样)iPhone手机一台数据线一根1、首先,先将iPhone通过数据...

黑盒测试方法---边界值分析

发布时间:2012-03-27 测试 数据结构与算法
边界值分析法一.方法简介1.定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。 2.与等价划分的区别  1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。  2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。 3.边界值分析方法的考虑: ...

功能性测试之边界值测试

发布时间:2015-10-08 测试 VIEWUI 前端
边界值测试,即使用输入空间的边界值来标识测试用例。基本原理是错误很可能出现在输入变量的极值附近。基本思想就是使用变量的最小值、略高于最小值、正常值、略低于最大值、最大值来测试程序的正确反应。  边界值测试有个假设,“单缺陷”假设,这个假设的内容是“问题极少是由两个或多个缺陷同时发生所引起的”,所以在进行边界值测试的时候只要考虑让一个变量取上述五个值而让另外一个变量取正常值。  对于n个变量的输入,...

测试用例设计方法

发布时间:2018-05-08 测试
一、等价类划分法  定义:某个输入域的集合,在集合中没分输入条件都是等效的,其中一方不能导致问题的话,原则上来说这一类都没有问题  分类:有效等价值(合理输入数据)、无效等价值(不合理的输入数据)  步骤:确定输入—确定输入条件—划分有效和无效—测试用例覆盖有效(用最少用例尽可能的覆盖更多的有效)--测试用例覆盖无效(一条用例覆盖一个无效)  特点:只考率覆盖 二、边界值分析法  上点:边界上的点...

常用测试设计方法--判定表

发布时间:2011-10-07 测试
判定表测试设计技术场景:IF(C1andC2)ORC3THENR1R2ELSER3STEP1,分析系统功能,识别判定点、条件及结果;STEP2,基于风险分析的结果选择判定点覆盖类型;STEP3,基于覆盖类型填写判定表,识别测试条件; 测试条件TC1TC2TC3TC4 条件C10?1? C2?01? C300?1 结果R1  pp R2  pp R3pp  STEP4,创建测试用例,每一列为一个测试...

软件测试--基本流和备选流用例

发布时间:2008-10-29 BUILD 软件测试 作业 日记 测试 工作
测试用例首先来自于对于需求的分析,是否能为测试挑选最合适或最关键的需求,关系到项目的成败。思考方法1:正反面思考法为每个测试需求至少编制两个测试用例:正面测试用例&amp;负面测试用例正面测试用例:用于证明该需求已经满足;负面测试用例:反映某个无法接受、反常或意外的条件或数据,用于论证只有在所需条件下才能够满足该需求基本流:是经过用例的最简单的路径备选流:在某个特定条件下执行 前置条件是执行用例之...

输入的第一个字符必须是字母,第二个字符必须是#或*, 第三个字符必须是数字,在此情况下进行文件的修改;如果第一个字符不是字母,

发布时间:2021-05-17 测试 测试类型 软件测试
因果图法设计测试用例题目:程序的规格说明要求:输入的第一个字符必须是字母,第二个字符必须是#或*,第三个字符必须是数字,在此情况下进行文件的修改;如果第一个字符不是字母,则给出信息L;如果第二个字符不是#或不是*,则给出信息M;如果第三个字符不是数字,则给出信息N。解题步骤:(1)分析程序的规格说明,列出原因和结果。(2)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。(3)将...

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

发布时间:2017-08-28 测试 测试方法 黑盒测试
一、定义对输入或输出边界值进行测试的一种黑盒测试方法。通常边界值法是对等价类划分法的补充。对输入值的选择不是对等价类的任意取值,而是选择等价类的边界(甚至是次边界)取值的方法。二、选择测试用例的原则如果输入条件规定了值得范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据;如果输入条件规定了值得个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数...

软件测试方法之黑盒测试

发布时间:2015-04-26 测试
 在软件测试中,有很多重要的测试方法,在此不一一赘述,在这篇博客中,主要讨论的是黑盒测试。 所谓黑盒测试,主要是将被测软件看作一个打不开的黑盒,根据功能需求设计测试用例,进行测试。它是软件测试中一个非常重要的测试方法。 往下细分,黑盒测试还可以分为等价类划分,边界值分析,因果图法,决策表法等。1、先说一下等价类划分法:所谓等价类是指输入域的某个互不相交的子集合,所有等价类的并集便是整个输入域。目的...

MySQL只有information_schema,test两个数据库

发布时间:2016-01-22 数据库
安装好数据库时,连接MySQL,查看数据库时,发现只有两个数据库。MBP:~gegongxian$mysqlWelcometotheMySQLmonitor. Commandsendwith;or\g.YourMySQLconnectionidis75Serverversion:5.6.27MySQLCommunityServer(GPL)Copyright(c)2000,2015,Oraclea...

远程访问mysql只显示test和information_schema两个库

远程访问权限问题。在mysql服务器登录mysql-uroot-p*****先查一把确认是不是有人删库走人:mysql&gt;showdatabases;如果,很幸运的查出来你的库都还在,看看ip和用户的对应关系:mysql&gt;selecthost,userfrommysql.user;然后查看,远程登录的用户是否有权限:mysql&gt;showgrantsforuser(用户名)@'%';...

linux服务器安装Mysql后,只能看到information_schema/test这两个库,无法修改密码

发布时间:2020-02-25 MYSQL JAVA LINUX 数据库
1.关闭Mysql:执行servicemysqlstop2.用安全模式启动Mysql,如果是自己通过tar包手动安装的Mysql,mysqld_safe命令在“${mysql}/bin”下mysqld_safe--skip-grant-tables执行这条命令后,当前ssh命令行会停住,如下图3.复制当前链接,再打开一个ssh连接,登录到mysql数据库直接用命令mysql,就进入了数据了,不需要...

边界值法测试

发布时间:2022-01-01 测试 测试用例 单元测试
两位数加法器边界值设计的原则如果输入条件规定了取值范围,应以该范围的边界内及刚刚超范围的边界外的值作为测试用例如以a和b为边界,测试用例应当包含a和b及略大于a和略小于b的值我们继续用计算器的例子,根据边界值分析的方法来看看如何对边界值进行测试由于允许输入的数值在-99到99之间,所以我们可以把-99和99看作两个边界值。我们测试的时候可以取紧邻边界值的数值和边界值本身作为输入 边界值用例设计练习...

测试用例设计--场景法

发布时间:2018-05-07 测试
1、为什么用场景法设计测试用例?大多数业务软件由后台管理(比如:用户管理、角色管理、权限管理等等各种管理)和工作流等几个部分组成。终端用户,期望软件能够实现业务需求,而不是简单的功能的组合。对于单点功能利用等价类、边界值、判定表用例设计方法能够解决大部分问题。涉及业务流程的软件系统,采用场景法比较合适。2、什么是场景法?场景业务流通常分为基本流、备选流、异常流程基本流:基本流表示通过业务流程时输入...

sqlyog连接Linux上的mysql报错误号码2013,错误号码1130的解决办法

发布时间:2018-09-23 运维 操作系统 数据库
 sqlyog连接Linux上的mysql报错误号码2013,错误号码1130的解决办法1.报错误号码2013,可能是端口号不是默认的3306,需要改成对应的,检查命令是:[root@hostetc]#netstat-an|grep330 看看有没有对应的端口号。更直接点是查看配置文件cat /etc/my.cnf(注意:在windows下是my.ini,Linux下则是my.cnf)重新测试连接...

转 Error No. 1130 Host '*.*.*.*' is not allowed to connect to this MySQL server

发布时间:2010-11-24 MYSQL 数据库 SERVER
出现情况:     使用mysql的客户端SQLyogEnterprise连接到mysql的服务端时,出现如下错误:     ErrorNo.1130     Host'*.*.*.*'isnotallowedtoconnecttothisMySQLserver原因:     这是由于mysql服务端root用户所对应的客户端权限设置问题。默认所对应的客户端地址只有localhost(也就是服务端...

SQLyog远程连接Mysql报错1130

发布时间:2022-02-16 MYSQL 服务器 数据库
解决该问题有以下两个方法1、改表法可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改“mysql”数据库里的“user”表里的“host”项,从”localhost”改称”%”mysql-uroot-pvmwaremysql&gt;usemysql;mysql&gt;updateusersethost='%'whereuse...

SQLyog远程连接1130错误解决方案

发布时间:2021-12-21 MYSQL 数据库
当连接mysql数据库的时候,出现ERROR1130(HY000):Host‘xxxx’isnotallowedtoconnecttothisMySQLserver的问题。解决该问题使用以下方法:授权法例如,你想root用户使用123456密码从任何主机连接到mysql服务器的话。GRANTALL PRIVILEGES ON *.*TO 'root'@'%' IDENTIFIEDBY '12345...

xampp安装后httpd无法启动

发布时间:2014-03-31 WEB服务器 C/C++ 数据库 PHP
安装xampp(xampp-win32-1.8.0-VC9-installer.exe91.9MB)后,apache无法启动,老是提示:11:55:50[apache]Statuschangedetected:running11:55:51[apache]Statuschangedetected:stopped启动tomcat也失败搜索,大部分说是80和443端口被占用,但发现不是这问题,也有说A...

CICD之jenkins

发布时间:2020-04-15 运维 LINUX JENKINS
jenkins是什么?为什么要用jenkins?jenkins如何安装和使用?本篇文章主要回答这些问题。jenkins是什么从官网(https://jenkins.io/zh/)介绍来看: Jenkins是开源CI&amp;CD软件领导者,提供超过1000个插件来支持构建、部署、自动化,满足任何项目的需要。CI&amp;CD(ContinousIntegration&amp;ContinousDe...

通过tomcat安装部署jenkins

发布时间:2021-12-24 运维 TOMCAT 各种下载安装 JENKINS
目的:本次是为了实现python脚本定时执行以及发邮件功能路径:利用tomcat安装,或者brew命令安装,此次使用tomcat第一步:下载tomcathttps://tomcat.apache.org/download-90.cgi建议下载版本8,其他的可能会报错,不兼容,我下图下载的10,搞了好久第二步:解压,放到指定路径mac点击桌面左上角【前往】,长按option键,出现资源库,将解压好的...

做为测试经理如何保证测试质量

发布时间:2015-06-19 测试
如何保证测试质量1、有质量人员参与,达到CMMI三级以上标准2、BUG定义、上线标准 3、在需求阶段测试人员就参与评审,进行需求分析4、产品、研发的输出测试人员参与评审5、测试用例覆盖需求与功能、业务场景用例、用例评审6、测试环境:一键搭建、备份、监控系统、debug日志7、单元测试、集成测试、系统测试、8、接口测试、自动化测试、分布式并行测试、性能测试、静态代码自动测试、兼容性测试9、持续集成、...

测试之路一 测试脚本设计和测试场景设置

发布时间:2014-05-20 测试 测试脚本 测试计划
测试脚本设计本次性能测试以选取的典型业务为依据,每个业务设计一个脚本。测试脚本设计如下:XX系统性能测试脚本设计序号主模块脚本名称事务定义(统计事务响应时间)1登录系统系统登录_日期(录制日期)系统登录2报表上报新增信息_日期新增信息 xx系统性能测试脚本设计序号主模块脚本名称事务定义(统计事务响应时间)1用户审核用户审核_日期用户审核2用户汇总用户汇总_日期用户汇总3数据查询数据查询_日期数据查...

测试报告编写规范

发布时间:2017-10-24 测试 PYTHON 操作系统
2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt;1.      引言1.1   编写目的本测试报告的具体编写的目的,指出预期的读者范围;1.2   项目背景对项目的背景进行简单的说明;1.3   系统简介对整个系统进行简单的介绍说明;2.      测试概要测试的概要介绍,包括测试的一些声明、测试范围、测试目的等等,主要是测试情况简介。2.1测试用例设计        简要...

性能测试漫谈:性能测试之场景设计思想

验证测试是用于验证在特定的场景、时间、压力、环境和操作方式下系统能够正常的运行,服务器、应用系统和网络环境等软硬件设施还能否良好的支撑这些情况下用户的使用。验证性测试主要针对有明确的压力目标和预期结果,验证系统在这种压力下的各方面反映能够达到预期结果。主要分以下几种:压力测试:已知系统高峰期使用人数,验证各事务在最大并发数(通过高峰期人数换算)下事务响应时间能够达到客户要求。系统各性能指标在这种压...

软件性能测试(二)场景的设计(LoadRunner)

发布时间:2020-07-19 运维 程序人生 安全 后端 性能测试
1、场景的创建1.1场景创建的要点场景创建设置对话框场景的分类面向目标场景的创建场景目标的编辑手动场景的设置压力产生器用户组的增加与修改删除运行时设置(RTS)场景详细信息设置(Details按钮)1.2创建场景及其操作1、打开控制器创建场景2、使用Goal-OrientedScenario,导入性能测试(一)中创建的脚本。3、LoadRunner默认的场景设置4、若对当前默认场景设置不满意,则可...

信息安全等级测评师考试重点梳理

发布时间:2017-02-17 操作系统 数据库 网络
第一章网络安全测评网络全局1.1结构安全(G3)a)  应保证主要网络设备的业务处理能力具备冗余空间,满足业务高峰期需要;b)  应保证网络各个部分的带宽满足业务高峰期需要;c)   应在业务终端与业务服务器之间进行路由控制建立安全的访问路径;(静态动态路由、动态路由协议认证功能。)ospf开放最短路径优先)d)  应绘制与当前运行情况相符的网络拓扑结构图;e)  应根据各部门的工作职能、重要性和...

手机测试用例-时钟测试用例

发布时间:2018-02-23 测试
ID功能描述操作步骤预期结果testtimeP/FcommenttestertesttimeP/Fcommenttester时钟设置闹钟功能1、设置时钟和日期与当地时间日期相符合,整个测试期间,除特别要求更改时间、日期外,不要随意更改基准时间;2、一般日期设置完毕,星期自动生成,应准确无误;3、以24小时为一观察周期,比较手机时间与标准时间的误差;4、设置实际不存在的时间和日期,设置日期0月、0日...

<转>时钟——黑盒测试用例设计实例

发布时间:2013-09-02 测试
电子时钟模块在很多系统上都会背集成,是一个运用比较广泛的模块,针对电子时钟,我们应该当如何设计测试用例呢?其实写用例,除了书上说的几种设计方法,每个人也有自己偏好的套路。比如某些人喜欢用先用边界再用等价,有些人喜欢先等价后再用边界,这些套路都是没有大的区别的,只是个人的逻辑思维方式不同而已。我说说自己的套路吧:确定测试目标(其实就是确定测试用例的粒度)——提取测试元素——分类(其实就是一个整体的等...

缺陷探测率(DDP Defect Detection Percentage)

发布时间:2010-05-15 测试 软件测试理论 工作
缺陷探测率DDP是衡量限额是工作效率的软件质量成本的一个重要指标,其公式如下: DDP=测试者发现的错误数/(测试者发现的错误数+客户发现并反馈技术支持人员进行修复的错误数)探测率越高,发布后客户发现的错误就越少,降低了外部故障不一致成本,达到了节约成本的目的,可获得较高的测试投资回报率(ROI)。因此,缺陷探测率是衡量测试投资回报的一个重要的标志。...

什么是缺陷清除率、缺陷率和缺陷密度

发布时间:2007-05-30 测试 审查 产品 单元测试
    缺陷清除率(亦叫“缺陷排除率”),英文缩写DER(DefectEliminationRate)。这个东西可以用作缺陷的预测和分析。 说到DRE就必须提到OFE(OpportunityForError),即错误几率。  缺陷密度(DefectDensity)-缺陷在规模(如KLOC,PF)上的分布     缺陷率(DefectRate)-缺陷在时间上的分布。  一般来讲,在过程稳定,人员技术...