测试数据是纷繁复杂的,往往执行的用例只有一个而需要的数据会有很多,这是为了测试不同的业务情况。测试数据是测试设计及执行的重要依据。不同的测试数据模拟不同的场景,没有合理、完备的测试数据我们也无法对系统进行全面的测试。一般的,测试数据需要在每次迭代创建branch的时间点前完成以供执行回归测试使用。

  正常情况下,测试数据可以由DBA或者测试人员进行创建、维护。测试人员描述需要的数据信息及要求,DBA在数据库中做出符合要求的数据。在每次要执行回归测试之前,将数据导入到相应服务器上。如果是测试人员自己创建需要的数据,之后由Teamleader统一进行导出,再在执行回归之前导入进数据库。这两种方式都是我认为相对比较正规、从一定程度上可以保证测试质量的方式。那么如果数据由开发人员创建维护会造成哪些弊端呢?

  直接的问题是开发的测试数据无法运行在测试执行中。由于时间少、测试数据需求理解的出入,很有可能导致开发人员创建的数据是无法使用的,不符合测试场景的需要,不能进行全面的功能测试,成为测试执行的障碍。其次,有可能功能开发完了数据还没准备好。对于开发人员来说,开发工作的优先级一定会高于准备测试数据。后,测试人员对数据库表知之甚少,测试真正成为了“表面功夫”。

  如果项目是要求测试数据由开发维护,那么我认为做到以下几点是非常重要的:

  1、这个开发人员对系统的了解是全面、深入的;

  2、测试人员对数据要求的描述也要尽可能清晰;

  3、重要的一点,即使在前两点不具备的情况下也要做到的是大量的沟通,双方要互相了解所需和能提供什么才能把事情做好;

  4、还有是,TestLeader及Developerleader对于这个工作的监管也是非常重要的。为什么有些数据总是无法达到预期要求,哪方面的问题要及时改进。

  当然,如果是由DBA来管理这些问题也是存在的,需要多方面的沟通、协调才能把数据做好。所以,我认为由各个测试人员将自己需要的数据做到数据库中,之后进行导出,再执行回归之前导入是比较稳妥的方式。同样的,这样也有需要注意的问题,系统的质量是否可以正常运行保证创建数据时不出现问题?测试人员相互之间的数据是否有冲突?这些问题可以通过内部调节或其他方法进行规避。

  避免冲突数据,每个测试人员之间的数据是相互独立,互不影响的。对于模块间相互交叉的数据,要进行协调后统一创建;

  对于系统功能的稳定性,创建数据前与developerleader进行沟通,哪些功能可用,哪些功能不可用。在开始初期问题会较多,慢慢的随着问题的不断改进,严重级别的问题会减少,完成创建数据的流程应该应当顺利执行。这样创建数据的过程也是验证系统功能、深入理解功能的过程。

  软件开发过程中每个小的环节事实上也需要质量的监控,质量不单单是后那几轮测试。如果说大到功能需求,小到测试数据的质量都有所保证,那系统的质量也是有所保障的。我想,在这里提到的数据创建方式和注意事项可以为数据质量提供一个坚实的保障。如果各位对测试数据的维护有其他的意见要留言告诉我哈。谢谢!