我在一个将 Web 服务作为关键应用程序的组织中担任测试员。目前,我们通过 Web 前端加载大量测试数据,因为这是在现实世界中完成的方式。
这使数据具有一定程度的合法性,并防止数据格式出现错误。但是,以这种方式加载数据非常耗时,我经常想知道将数据直接加载到数据库是否会更有效率。
其他人是否有此决定,您选择了哪个选项?是否有另一种解决方案可以同时提供数据的速度和合法性。
我在一个将 Web 服务作为关键应用程序的组织中担任测试员。目前,我们通过 Web 前端加载大量测试数据,因为这是在现实世界中完成的方式。
这使数据具有一定程度的合法性,并防止数据格式出现错误。但是,以这种方式加载数据非常耗时,我经常想知道将数据直接加载到数据库是否会更有效率。
其他人是否有此决定,您选择了哪个选项?是否有另一种解决方案可以同时提供数据的速度和合法性。
这来自开发人员的角度而不是测试人员的角度,因此它可能适用也可能不适用。
我不能代表整个组织,但在我们的项目中,我们花了一些时间创建“类似真实世界”的数据,我们使用 SQL 脚本将这些数据加载到测试数据库中。该数据是来自生产环境的真实数据和为代表我们产品中的特定“问题情况”而定制的数据的组合。
这些脚本作为构建我们软件的一部分自动运行,并由单元测试框架驱动的自动化集成测试使用。这些测试将测试通过各种可用界面查找、创建、编辑和删除数据。
在这样的构建和测试运行期间,测试数据库被重置并多次重新加载数据。这样做是为了消除测试之间的依赖关系;一项测试不应依赖于另一项测试创建或修改的数据,并且因为某些测试的数据可能与其他测试的数据不同。但是,所有测试中的大多数都是基于相同的测试数据执行的。
设置这个测试数据(并维护它)一直(并且有时)有点令人头疼,但从长远来看,它在我们的案例中运行良好。
在大多数相同的情况下,测试人员更喜欢使用脚本加载测试数据,因为无法使用 UI 部分加载数据[耗时]。对于测试人员关键点,每个测试应该只对单行数据或整个数据库数据执行. 因此,为了更好地测试,请遵循制作脚本来加载数据的方法。这里还有一个要点,制作脚本是一次为整个项目加载数据的时间投资。
最后,我们决定从通过前端设置数据的系统迁移到数据插入系统。但请密切关注数据以确保它是真实世界。这运行良好,测试运行得更快。
我对测试数据有同样的问题。在我们的组织中,有一个批处理作业使用类似生产的数据填充数据库。我与功能测试人员协调以获取我的负载运行程序脚本的测试数据。