测试用例设计之业务流程分析法

目录

    • 一.业务流程分析法简介
    • 二.业务流程分析法分类使用
    • 三.业务流程分析法好处
    • 四.业务流程分析法设计思路
    • 五.业务流程分析法实施步骤
    • 六.举例说明
      • 6.1需求
      • 6.2分析
        • 6.2.1测试需求分析
        • 6.2.2测试设计方法分析(流程分析法)
        • 6.2.3用例设计(确定测试路径)
      • 6.3用例详细(选取测试数据,构造测试用例)
    • 七.总结

一.业务流程分析法简介

业务流程测试用例编写原则以需求分析中的流程图做为编写测试用例的模型,坚持“测试驱动开发,用例指导结果,数据记录变化”的原则,灵活使用不同的方法制定测试用例。

二.业务流程分析法分类使用

流程分析法主要针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计,是从白盒测试设计方法中的路径覆盖分析法借鉴过来的一种很重要的方法。在白盒测试中,路径就是指函数代码的某个分支组合,路径覆盖法需要构造足够的用例覆盖函数的所有代码路径。在黑盒测试中,若将软件系统的某个流程看成路径的话,则可以针对该路径使用路径分析的方法设计测试用例。

三.业务流程分析法好处

  • 降低测试用例设计的难度。即只要清楚程序流程、看懂程序流程图,就可以设计出质量较高的测试用例;
  • 是在测试资源紧张的情况下,可以据此有选择的执行测试用例,而非全部依靠经验做取舍。

四.业务流程分析法设计思路

在业务流程的分析上,我们应该得到以下信息:
1)系统的主流程是什么
2)条件备选流程是什么
3)数据流向是什么
4)关键的判断条件是什么

五.业务流程分析法实施步骤

步骤1:画出业务流程图
步骤2:定义状态节点和条件分支
步骤3:确定测试路径
步骤4:选取测试数据,构造测试用例

六.举例说明

6.1需求

使用ATM机取款

6.2分析

6.2.1测试需求分析

a)用户向ATM取款机中插入银行卡,若银行卡合法,取款机提示用户输入密码;若插入无效银行卡,取款机提示用户“银行卡无效”,并自动退卡。
b)用户输入银行卡密码,取款机将密码传至银行主机进行校验。若密码正确,取款机提示用户输入取款金额,提示信息:“请输入取款金额:”若密码错误,取款机提示用户:“密码错误!”,并退回输入密码界面。当三次输入密码错误时,自动退卡,锁卡。提示:“密码错误,密码输入次数超限!”。
c)用户输入取款金额,系统校验金额正确。即取款机余款大于用户取款金额。提示:“请确认取款金额为XX!”。用户按下确认键,确认取款XX。若用户输入取款金额不正确,提示:“输入错误!”。此处为分析方便忽略输入取款金额错误的各种情况下的异常流程处理,降低分析的复杂度。
d)系统同步银行主机,点钞票,输出给用户并减去用户卡中相应数目的存款金额。若卡内余额小于用户取款金额,则提示:“余额不足!”,并退回输入取款金额界面。若取款机与银行主机通信超时、通信中断、传输错误等情况,提示:“连接超时,本次操作取消”。若主机已经做了数据库操作,减去了用户存款余额,则要做回退操作。
e)用户取款,银行卡退卡。用户拔出银行卡。取款机恢复初始界面。正常取款操作结束。若用户未按时拿走取出的钱款、用户未按时拔出银行卡,则取款机做相应异常处理操作。

6.2.2测试设计方法分析(流程分析法)

根据需求,画出业务流程图,如下:
测试用例设计之业务流程分析法_第1张图片
定义状态节点和条件分支:
上面的业务流程图中,只描述正常流程-取款成功的情况。异常流程未做描述,是为了分析方便,实际中异常流程必须在业务流程图中描述清楚状态、分支等。

6.2.3用例设计(确定测试路径)

需求描述及流程图中,ATM取款机的提示信息对应于测试用例中的预期输出部分,用户的操作对应测试用例中的测试步骤部分。原则是一条有效路径使用一个测试用例覆盖。
依据业务流程图确定测试路径,即需要测试的业务流程。其主要包含三个方面:
a)正常流程,取款成功(基本流程):对应一次性取款成功;
b)异常流程,取款失败(分支流程):对应取款失败,包括退卡、吞卡;
c)异常流程,取款成功(循环流程):对应取款中间出现意外,比如密码输入错误,但是最终成功取钱的情况。

6.3用例详细(选取测试数据,构造测试用例)

根据上一步确定的测试路径,写出用例详细。具体略。

七.总结

流程分析法适用于有先后顺序的测试。常用于业务流程测试安装流程测试等。流程分析法重点在于测试流程。因此,一般每个流程用一个测试用例验证。但是,流程测试没有问题并不能说明系统功能没有问题,还需要针对单步功能进行测试。对于包含复杂流程的系统,只有功能点和处理流程都进行测试覆盖,才算是比较充分的测试。

你可能感兴趣的:(#,测试设计)