3.7盒测试方法 之 业务路径覆盖法

一、场景法

  场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。当拿到一个测试任务时,我们并不是先关注某个控件的边界值、等价类是否满足要求,而是先要关注它的主要功能和业务流程是否正确实现,这就需要使用场景法来完成测试。当业务流程测试没有问题,也就是该软件的主要功能没有问题时,我们再重点从边界值、等价类等方面对控件进行测试。

  在冒烟测试时也主要采用场景法进行测试进行测试。

1.1 场景法中重要的概念

(1)基本流:按照正确的业务流程来实现的一条操作路(也就是模拟正确的操作流程);

(2)备选流: 导致程序出现错误的操作流程(So,模拟错误的操作流程)。

给大家截了个图,可以参考一下:

1.2 场景法的基本设计步骤

(1)根据说明,描述出程序的基本流及各项备选流;

(2)根据基本流和各项备选流生成不同的场景;

(3)对每一个场景生成相应的测试用例。

案例:

使用场景法设计ATM机取款功能的测试用例

步骤一:根据说明,描述出程序的基本流及各项备选流;

步骤二:根据基本流和各项备选流生成不同的场景

步骤三:对每一个场景生成相应的测试用例,例如:

大家可以试着编写更好的测试用例,在之后,我也会相继给大家写一些或上传比较好的用例,我认为还是可以的\(^o^)/~

二、状态图

给大家展示的状态图转换法案例:货币转换器

2.1.1案例演示

输入人民币金额,选择要转换的国家,再输入汇率,即可计算所输入的人民币等价的货币金额。

用户的操作可能是:

输入人民币金额->选择国家->输入汇率->点击“计算”按钮;

选择国家 ->输入汇率->输入人民币金额->点击“计算”按钮;

输入人民币金额->选择国家->点击“清除”按钮。。。

2.1.2两个重要的概念

1、软件的状态

软件运行到某个时刻所处的情况

例如:

(1)刚刚启动处于“空闲”状态;

(2)输入人民币金额以后变为“人民币金额已输入”状态;

(3)所有输入正确完成后,点击“计算”按钮,程序应该处于“显示等价金额”状态;

(4)点击“清除”按钮后处于清除状态。

2、输入的动作

用户向软件进行的操作

例如:

(1)输入人民币金额

(2)点击某个国家单选按钮

(3)点击“计算”按钮

2.2 状态转换图法

  找出软件所有的状态以及导致这些状态发生变化的所有输入动作,进而用图形的方法把相关联的输入动作和状态联系在一起,真实模拟用户的操、作顺序流程。

2.2.1 状态转换图法的核心

(1)软件所有的状态

(2)导致状态发生变化的所有输入动作

2.2.2 使用状态转换图法的步骤

(1)找出程序的所有输入动作,

并进行编号列出用户能够向软件输入的每一个独立的动作,并进行编号;

(2)找出程序的所有状态,

可以认为用户每输入一个动作就会使程序的状态发生变化,如果不能决定是否为一个独立状态,可以先假设“是”

(3)找出什么动作会导致什么状态发生,画出状态转换图(一般情况下这是一个反复的过程);

(4)把相关联的动作和状态联系起来,设计测试用例。

例子:

使用状态转换图法分析货币转换器程序

步骤一:找出程序的所有输入动作,并进行编号;

步骤二:找出程序的所有状态

可以认为用户每输入一个动作就会使程序的状态发生变化

1.系统启动后处于空闲状态

2.人民币金额已输入状态

3.国家已选择状态

4.国家已选择、汇率已输入状态

5.人民币金额已输入、国家已选择状态

6.所有输入已完成状态

7.显示等价金额状态

8.错误提示状态

(1)人民币未输入或输入错误;

(2)国家未选择错误;

(3)汇率未输入或输入错误。

9.清除状态

把清除状态看做空闲状态也可以

10.退出状态

步骤三:找出什么动作会导致什么状态发生,画出状态转换图(一般情况下这是一个反复的过程)

第1轮、将所有可能的输入单独加载到被测系统的空闲状态,得到新的状态

第2轮、将所有可能的输入单独加载到上一步得到的每一个状态中,再得到新的状态。

第3轮、1.先找到主要动作和状态

第3轮、2.先找到次要动作和状态

第4轮、1.先找主要动作和状态

第4轮、2.先找次要动作和状态

第5轮

步骤四:根据状态转换图,把相关联的动作和状态联系起来,设计测试用例

(1)先写主要操作(功能比较重要或用户操作比较频繁的动作),后写次要操作。

(2)为了减少测试用例数量,一条测试用例最好沿着状态转换图的一条路径编写完。

以此类推,写出所有测试用例。。。

最后给大家总结了状态转换图法小知识点:

(1)每种状态至少访问一次。无论用什么方法,每一种状态都必须测试。

(2)测试看起来最常见最普遍的状态转换。可以根据产品说明书,通过与客户、开发人员沟通,了解哪些操作更常用、更重要。

(3)测试状态之间最不常用的分支。这些分支是最容易被产品设计者和程序员忽视的。

(4)测试所有错误状态及其返回值。错误没有得到正确处理、错误提示信息不正确等情况是常有的。

时间: 2024-08-19 10:31:16

3.7盒测试方法 之 业务路径覆盖法的相关文章

白盒测试法:逻辑覆盖与路径覆盖

一.实验目的 (1)掌握逻辑覆盖和路径覆盖测试的基本方法 二.实验要求 (1)完成程序的编写 (2)运用逻辑覆盖和基本路径覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否 三.实验内容 (1)设计程序的逻辑覆盖测试用例,语句覆盖.条件覆盖.分支覆盖.分支/条件覆盖.条件组合覆盖. (2)设计程序的基本路径覆盖测试用例(要求绘制控制流图,利用三种方式计算圈复杂度). (3)编写程序进行实际测试,并给出测试结果. 伪代码程序如下: 1    Input(X) 2    If

白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖(转)

转自:http://wenda.tianya.cn/wenda/thread?tid=758a1e447e62b7df&hl=ja 白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视.白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试.因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向.本文介绍六种白盒子测试方法:语句覆盖.判定覆盖.条件覆盖.判定条件覆

Z路径覆盖

Z路径覆盖是路径覆盖的一个变体.路径覆盖是白盒测试最为典型的问题.着眼于路径分析的测试可称为路径测试.完成路径测试的理想情况是做到路径覆盖.对于比较简单的小程序实现路径覆盖是可能做到的.但是如果程序中出现多个判断和多个循环,可能的路径数目将会急剧增长,达到天文数字,以至实现路径覆盖不可能做到. 为了解决这一问题,我们必须舍掉一些次要因素,对循环机制进行简化,从而极大地减少路径的数量,使得覆盖这些有限的路径成为可能.我们称简化循环意义下的路径覆盖为Z路径覆盖. 这里所说的对循环化简是指,限制循环的

hiho 第118周 网络流四·最小路径覆盖

描述 国庆期间正是旅游和游玩的高峰期. 小Hi和小Ho的学习小组为了研究课题,决定趁此机会派出若干个调查团去沿途查看一下H市内各个景点的游客情况. H市一共有N个旅游景点(编号1..N),由M条单向游览路线连接.在一个景点游览完后,可以顺着游览线路前往下一个景点. 为了避免游客重复游览同一个景点,游览线路保证是没有环路的. 每一个调查团可以从任意一个景点出发,沿着计划好的游览线路依次调查,到达终点后再返回.每个景点只会有一个调查团经过,不会重复调查. 举个例子: 上图中一共派出了3个调查团: 1

hdu3861 强连通+最小路径覆盖

题意:有 n 个点,m 条边的有向图,需要将这些点分成多个块,要求:如果两点之间有路径能够互相到达,那么这两个点必须分在同一块:在同一块内的任意两点相互之间至少要有一条路径到达,即 u 到达 v 或 v 到达 u:每个点都只能存在于单独一个块内.问最少需要划分多少块. 首先,对于如果两点之间能够相互到达则必须在同一块,其实也就是在同一个强连通分量中的点必须在同一块中,所以首先就是强连通缩点.然后在同一块内的任意两点之间要有一条路,那么其实就是对于一块内的强连通分量,至少要有一条路径贯穿所有分量.

POJ2594 Treasure Exploration[DAG的最小可相交路径覆盖]

Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 8301   Accepted: 3402 Description Have you ever read any book about treasure exploration? Have you ever see any film about treasure exploration? Have you ever explored

COGS728. [网络流24题] 最小路径覆盖问题

算法实现题8-3 最小路径覆盖问题(习题8-13) ´问题描述: 给定有向图G=(V,E).设P是G的一个简单路(顶点不相交)的集合.如果V中每个顶点恰好在P的一条路上,则称P是G的一个路径覆盖.P中路径可以从V的任何一个顶点开始,长度也是任意的,特别地,可以为0.G的最小路径覆盖是G的所含路径条数最少的路径覆盖.设计一个有效算法求一个有向无环图G的最小路径覆盖. 提示: 设V={1,2,...  ,n},构造网络G1=(V1,E1)如下: 每条边的容量均为1.求网络G1的(x0,y0)最大流.

【最小路径覆盖】BZOJ2150-部落战争

[题目大意] 给出一张图,'*'表示不能走的障碍.已知每只军队可以按照r*c的方向行军,且军队与军队之间路径不能交叉.问占据全部'.'最少要多少支军队? [思路] 首先注意题意中有说“军队只能往下走”,弄清楚方向. 从某点往它能走的四个点走一趟,连边.最小路径覆盖=总数-二分图最大匹配. 哦耶!老了,连匈牙利的板子都敲错orzzzzzz 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int MAXN=55; 4 int m,n

有向无环图(DAG)的最小路径覆盖

DAG的最小路径覆盖 定义:在一个有向图中,找出最少的路径,使得这些路径经过了所有的点. 最小路径覆盖分为最小不相交路径覆盖和最小可相交路径覆盖. 最小不相交路径覆盖:每一条路径经过的顶点各不相同.如图,其最小路径覆盖数为3.即1->3>4,2,5. 最小可相交路径覆盖:每一条路径经过的顶点可以相同.如果其最小路径覆盖数为2.即1->3->4,2->3>5. 特别的,每个点自己也可以称为是路径覆盖,只不过路径的长度是0. DAG的最小不相交路径覆盖 算法:把原图的每个点