数据驱动测试在税务软件的应用
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结合。
当然,这只是一个测试方法,不能说所有的测试都适合,实际中还要配合界面测试等方法。
浙公网安备 33010602011771号