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

  采用路径分析的方法设计测试用例的好处:

  1、降低测试用例设计的难度。即只要清楚程序流程、看懂程序流程图,可以设计出质量较高的测试用例;

  2、是在测试资源紧张的情况下,可以据此有选择的执行测试用例,而非全部依靠经验做取舍。

  使用流程分析法的具体实施步骤:

  步骤1:画出业务流程图;

  步骤2:定义状态节点和条件分支;

  步骤3:确定测试路径;

  步骤4:选取测试数据,构造测试用例。

  例子:

  一、需求:使用ATM机取款

  二、分析:

  1、测试需求分析:

  a)用户向ATM取款机中插入银行卡,若银行卡合法,取款机提示用户输入密码;

  若插入无效银行卡,取款机提示用户“银行卡无效”,并自动退卡。

  b)用户输入银行卡密码,取款机将密码传至银行主机进行校验。若密码正确,取款机提示用户输入取款金额,

  提示信息:“请输入取款金额:”若密码错误,取款机提示用户:“密码错误!”,并退回输入密码界面。

  当三次输入密码错误时,自动退卡,锁卡。提示:“密码错误,密码输入次数超限!”。

  c)用户输入取款金额,系统校验金额正确。即取款机余款大于用户取款金额。提示:“请确认取款金额为XX!”。

  用户按下确认键,确认取款XX。若用户输入取款金额不正确,提示:“输入错误!”。

  此处为分析方便忽略输入取款金额错误的各种情况下的异常流程处理,降低分析的复杂度。

  d)系统同步银行主机,点钞票,输出给用户并减去用户卡中相应数目的存款金额。

  若卡内余额小于用户取款金额,则提示:“余额不足!”,并退回输入取款金额界面。

  若取款机与银行主机通信超时、通信中断、传输错误等情况,提示:“连接超时,本次操作取消”。

  若主机已经做了数据库操作,减去了用户存款余额,则要做回退操作。

  e)用户取款,银行卡退卡。用户拔出银行卡。取款机恢复初始界面。正常取款操作结束。

  若用户未按时拿走取出的钱款、用户未按时拔出银行卡,则取款机做相应异常处理操作。

  2、测试设计方法分析(流程分析法):

  根据需求,画出业务流程图,如下:

  定义状态节点和条件分支:

  上面的业务流程图中,只描述正常流程-取款成功的情况。异常流程未做描述,是为了分析方便,实际中异常流程必须在业务流程图中描述清楚状态、分支等。

  3、用例设计(确定测试路径):

  需求描述及流程图中,ATM取款机的提示信息对应于测试用例中的预期输出部分,用户的操作对应测试用例中的测试步骤部分。原则是一条有效路径使用一个测试用例覆盖。

  依据业务流程图确定测试路径,即需要测试的业务流程。其主要包含三个方面:

  a)正常流程,取款成功(基本流程):对应一次性取款成功;

  b)异常流程,取款失败(分支流程):对应取款失败,包括退卡、吞卡;

  c)异常流程,取款成功(循环流程):对应取款中间出现意外,比如密码输入错误,但是终成功取钱的情况。

  三、用例详细(选取测试数据,构造测试用例):

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

  具体略。

  总结:

  流程分析法适用于有先后顺序的测试。常用于业务流程测试、安装流程测试等。

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