自动化测试之测试数据准备

来源:互联网 发布:北京网络职业学院 八维 编辑:程序博客网 时间:2024/06/04 23:02

         无论我们做手工测试还是自动化测试,测试数据的准备都是必须的过程。而自动化的测试数据准备又有其特殊性,就是数据的可重复利用。因为脚本的执行跟人工的最大区别就是,它只会重复地机械地执行一个动作。而它最大的好处就是,公正。如果脚本failed了,那肯定是哪里出了问题,但这个问题不一定是bug。

       测试数据的准备又可以叫做测试的前提条件的准备。比如我们要测一个客户加入一个会员的业务。那么我们就要考虑哪些作为前提条件,哪些通过脚本来自动化测试。作为前提条件的业务,我们就会在数据服务器上手工进行操作,将自动化脚本需要用到的数据提前在上面创建好。这里我们又提到了一个概念,测试数据服务器(TestData Server)。在自动化测试中,会单独拿一台服务器作为存储测试数据的服务器,而且该数据服务器是整个体系中的重点保护对象,需要有很好的备份和容错机制。

       我们将前提条件的数据创建好后,在脚本里就只需编写加入会员的业务过程。有些人可能会想在脚本里将创建客户和会员的过程也自动化,但是这样加重自动化测试的不稳定性。大家知道UI自动化中环境的影响是很大的,有的时候跑能通,下一次跑可能就不通过了,再rerun一下又能通过。所以我们在做UI自动化的时候,并不是要将所有的case内容都写成脚本。应该是把测试的目标内容自动化,其他步骤作为该case的前提条件,做成测试数据,每次跑脚本的时候重复使用这些数据。

       这样做还有一个好处,就想前面说的UI的自动化并不稳定,所以减少不必要的自动化脚本量,就减少了不稳定的风险。比如之前我们提到的那个case,主要目的是测试加入会员是否成功,而不是创建客户和会员的是否成功。如果我们把创建的过程也自动化了,那么这个case如果在前面创建的代码中因为某些原因failed了,但是它实际要测试的地方还没跑到,这样就失去了这条case测试的本身意义。所以好的测试数据准备可以减少我们的自动化脚本量,也能减低非bug的failed率。有些人可能会陷入一种玄技的漩涡里,觉得代码写的越多越好,其实不然,作为测试代码,能用最少的代码达到我们的目的是最重要的。因为一直用这套数据,所以测试人员对数据很熟悉,所以测试数据的重复利用,也可以帮助我们快速定位failed的原因。

0 0
原创粉丝点击