基于不同行业的测试,对于测试数据的准备是各种类型的测试来说都是很重要的。数据作为可重用的部分对手工、自动化测试的帮助是很大的。但对于不同行业,数据的准备又有着不同的特点。以金融行业为例,大部分金融行业都会牵扯到清算、结算类似的业务,抛开清算业务不实现自动化测试的话,那么自动化测试的覆盖率不会有实质性的提高,并且对手工测试的“松绑”也很难发挥作用。
我所在的项目中采用了数据切面的方式对结算后的数据进行验证,以验证清算是否成功。数据切面的本质即对数据进行结算,在初始化数据的基础上验证基本功能;之后通过脚本命令导入清算后的数据,对清算结果进行验证。这样做自动化测试的覆盖面从表面意义上会有大幅提高,但数据的准备需要花费很大成本,需要独立的环境,起初我们是使用了已有的数据库备份,虽然这样一开始很省力但之后推倒重来耗费了很多人力和时间。从这个角度来说,我还是更赞成一劳永逸的方法。另外,这种做法虽然从功能的角度验证了清算过程的正确性,但要从本质上验证清算还是需要配合接口一类的灰盒测试才能谈的上提高了测试的覆盖率。
从最近的自动化测试过程中,我觉得项目对于基于功能的自动化测试期望值过高,并且在数据准备方面准备不够充分。对于这种需要与外部应用交互的系统,如何进行自动化测试,期待大家多多交流,想的不全望大家拍砖。谢谢!