测试用例设计
用例编写步骤: 拿到测试需求 -> 分析需求(画思维导图) -> 编写用例 -> 划分用例优先级 用例编写特性: · 一致性:主要包括用例模板一致;各同事的编写手法一致;以及用例的细粒度一致。 · 覆盖率:主要包括对需求的覆盖(也包含隐含的需求);新需求可能对那些功能会产生影响的覆盖;对各种场景的覆盖等 。 ·可执行性:主要是指步骤易于理解、信息描述准确、且能快速识别出测试点 。 ·执行准确性:是指用例执行的准确度,本身没什么技术含量。但这里需要注意的是执行人对待执行用例的态度。不要因为用例简单或者一些外界的因素,导致部分用例未实际执行标为通过的情况。 ·持续更新:要及时不断的更新,要尽量减少用例库中失效的用例 。 ·复用性:主要用例可以被不断的复用,从而减少维护成本 用例设计方法: 1. 等价类与边界值(重点方法) 等价类:等价类划分法是把所有可能输入的数据,有无效等价类和有效等价类(即正确输入和非法输入),即程序的输入域划分策划国内若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。方法是一种重要的、常用的黑盒测试用例设计方法。 边界值:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。 与等价类区别: · 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。 · 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。 等价类与边界值的结合使用: 例:一个文本框的输入长度为 6-10 个字符 分析:有效等价类: >=6个字符,<=10个字符 无效等价类:<6个字符,>10个字符 边界值:5,6,7,9,10,11个字符 2. 场景法(重点方法) 定义:通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。 基本流:是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束) 备选流:一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不在加入到基本流中;(各种错误情况) 场景法的运用: 例:有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。 · 基本流 · 备选流: 1) 进入购物网站,选择物品,登录账号,付费,生成订单 2)账号不存在 3) 账户余额不足 更多的备选流。。。。。。 3. 正交排列驱动法 定义:在界面中有多个控件,控件之间有多种组合关系,如果组合的数量巨大(一般超过20种),没有必要将所有组合都测试,可以通过正交排列法将组合中最优,最少的组合进行测试。 正交表公式: Ln(m^k) · L(line)行 n:表示正交表的行数 提示:正交表确定后,n值是固定的,不需要测试人员计算 m:表示正交表中数据的最大值 测试时:m表示每个控件的取值个数 K:表示正交表的列数 测试时:k表示参与组合的控件的个数 与判定表驱动法的区别:正交表一般用于组合较多的场合(一般>20种),判定表一般用于组合较少的情况 判定表示例:https://baike.baidu.com/pic/%E6%AD%A3%E4%BA%A4%E8%A1%A8/948850/0/ac345982b2b7d0a2394108ccc9ef76094a369ad2?fr=lemma&ct=single#aid=0&pic=ac345982b2b7d0a2394108ccc9ef76094a369ad2 4. 因果图 1.定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 2.因果图法产生的背景: 等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。 如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。 3.因果图介绍 1) 4种符号分别表示了规格说明中向4种因果关系。 2) 因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。 3) Ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。Ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。 4. 因果图概念 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。 5. 采用因果图法设计测试用例的步骤: 1)分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。 2)分析软件规格说明描述中的语义,找出原因与结果之间, 原因与原因之间对应的关系,根据这些关系,画出因果图。 3)由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。 4)把因果图转换为判定表。 5)把判定表的每一列拿出来作为依据,设计测试用例。 5. 判定表 定义:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。 判定表的优点 · 能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。 ·在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。 判定表通常由四个部分组成如下图所示: 1)条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序无关紧要。 2)动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。 3)条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。 4)动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。 6. 错误推测法 定义:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法 错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例