测试人员要学会造“假”,假数据,驱动系统运行,以模拟不同环境、不同角色下的系统的运行状态。
驱动和桩,需要通过数据进行驱动。
需要造哪些“假”?
- 功能/业务数据,模拟系统业务流程所需要的数据。
不需要多,收集真实的场景数据,使用等价类、边界值方法,基于UI层面,覆盖系统实际应用时使用的原始数据和过程数据。
- 性能数据,模拟系统在峰值和长期疲劳运行下的数据。
模拟不同流程生成数据,使业务数据多样化,尽可能多,保证系统访问有足够的压力。
如何造”假”?
- 手工
按系统流程重复执行某个流程操作,生成所需的数据。重复点击鼠标、敲击键盘。
一般只用来做少量的功能数据,对于性能测试所需的大数据,手工的重复操作对于个体而言是个灾难。
手工操作制造数据只能按系统遵循即有流程由现有系统生成数据,存在数据类型覆盖面不全,对于接口或是集成测试会有缺失。
对于分层结构的系统来讲,层与层之间数据一致性判断有缺失(各层次的数据验证),往往出现同一数据界面层限制,逻辑层和数据库层并未做限制。
- 使用工具
- 使用自动化工具模拟手工操作,通过工具或是脚本执行多次生成系统测试所需的数据。
工具可以是自已编写的脚本,或是通过自动化工具生成的脚本。
需要遵从现有系统业务操作流程,同样存在数据类型及层次结构间的数据覆盖不全的问题。
有时使用性能测试工具在不考虑测试场景的情况通过简单操作生成性能测试所需的据,可以算是一个取巧的方法
- 使用数据生成工具
使用已有的数据生成工具(开源或商业),按系统数据设计结构配置后,生成所需数据。
需要操作者对系统底层的数据库结构比较了解。
- 直接操作数据库
通过SQL语句插入操作或是存储过程生成所需的数据,可以控制生成数据的类型、属性(长度?)。
一方面可以验证数据库设计的正确性,另一方面可以通过UI操作验证系统业务流程的正确性。
当然需要操作者熟悉底层数据库结构、熟练使用SQL语法。
造“假”数据,是手工测试的一部分,但需要借助数据库知识、一定的编码能力制造出所面的“假”数据。
也许,手工和工具,手工和自动化并不矛盾。