数据驱动测试在税务软件的应用

Alex Yao

 

        首先感谢广州软件测试协会以及蔡敏,前段时间参加了广州软件测试协会的第七次广州软件测试交流会,会上蔡敏作了“数据驱动测试”的主题演讲。觉得对我们公司之前的一些测试过程中的困惑有很大益处,以下是我个人的一些应用。(转载请注明出处并保持原样)

1.        问题:

公司有税务项目较多,测试用例设计的时候,经常会出现以下问题:

ü       流程一致,但是业务复杂,数据可以说上千差万别,而且不同的业务失效都会导致比较严重的后果,所以不同的测试项目都要重新定制测试用例,而且要经过客户评审,重构的成本比较大;

ü       另外客户相当挑剔,需求变化大,可以说是国情;

ü       业务专家不定时的支持,但是他们不太懂测试方法,这些对于测试人员来说很难把握;

ü       工作成果估算困难。

2.        解决方法:

数据驱动测试的概念:

     把测试数据写入到简单表格中,这种方法被称为表驱动( table-driven ),数据驱动 (data-driven)

 

步骤:

1.       写出要测试用例的步骤

2.       提取测试步骤里面的可变部分作为输入变量

3.       设计表格

 

检查点:

1.       步骤必须清晰、易懂

2.       设计输入变量必须另外起一行

3.       用括号把可变部分括起来,作为变量

4.       输入变量标记应该尽可能的常用

 

一般表格:

ID

以变量为字段

期望值

测试结果

注释列

 

一个表格设计的例子:

首先,我们把测试的步骤整理好,这个基本流程在其他税种里面都比较适用

Step

Description

0001.             

进入登录页面

0002.             

点击在线申报下面的增值税

0003.             

输入所属时期起(sssq_q

0004.             

输入所属时期止(sssq_z

0005.             

系统取纳税人所属税务机关(ZGSWJG

0006.             

系统取纳税人类别(NSRLB

0007.             

系统取纳税人申报方式(SBFS

0008.             

系统取纳税人申报状态(SBZT

0009.             

系统取纳税人多缴税额(DJSE

00010.          

输入销售额(XSE

00011.          

点击计算

00012.          

点击提交

 

接着,着手设计数据表格,通过对申报表中的各个字段的考查,设计了一下表格:

Id

sssq_q

sssq_z

ZGSWJG

NSRLB

SBFS

SBZT

DJSE

XSE

期望结果

实际结果

注释

0001.             

2006-7-3

2006-7-3

\

\

\

\

\

\

提示不合法

 

对所属时期的校验

0002.             

2006-7-1

2006-7-31

999999(准备方法0001)

\

\

\

\

\

提示机关不合法

 

校验税务机关不合法

0003.             

2006-7-1

2006-7-31

\

\

\

上期申报(准备方法是0002

\

 \

提示上期未申报

 

目的有上期未申报校验

0004.             

2006-7-1

2006-7-31

\

\

\

 

6000(准备方法是0003

3000

本期应缴为零,多缴税额改变

 

为了测试多缴比本期税额大

说明,以上是根据业务构造了部分用例,然后,我们可以看出,我们这个系统牵扯到其他几个系统,数据不是想来就来,我在里面加入了一个索引,这个索引对测试组非常有用,如果一个新来的人员想快速上手,如何培训,可以根据我们以前的经验来学习,数据准备的文档就很方便了,以下数据准备的列表

ID

具体操作

0001

update B01_NSRSWJGDY   SET ZGSWJG =''  /*或者等于999999*/ WHER NSRBM = "01*****1204";

0002

在申报软件中,将上一个税期的申报删除

0003

在申报软件中,增加一个多缴情况

 

3.        优点

ü         允许把测试内容写在具有一定格式的表格中,这样方便数据设计和数据的检视。

ü         如果测试组中有缺少测试经验的业务专家参与测试,采用数据驱动测试方很合适的

ü         同时我们自己的测试人员也很容易上手

 

 

 

4.        前景

ü         自动化测试,只需要将步骤那一步用脚本实现就可以了;

ü         量化工作量,有多少条未执行很容易看到;

ü         错误定位,可以将出错的业务模块找出来;

ü         检查覆盖情况,通过同业务专家、项目管理人员评审后的测试用例,可以知道测试覆盖了哪些风险,可以最终与FMEA结合。

 

当然,这只是一个测试方法,不能说所有的测试都适合,实际中还要配合界面测试等方法。

 

posted on 2006-07-20 17:12  沉淀 软件人  阅读(341)  评论(1)    收藏  举报