测试成功的关键因素有两个:一是好的测试用例及文档,覆盖应用的所有可能场景。二是有合适的测试数据来运行所有测试用例。
测试数据提供有两种方式:
1、数据挖掘
这里数据挖掘不是大数据那个挖掘,是拷贝实际数据,并且用智能查询的方式找到符合需要的测试数据。适用于大数据量的测试及用户参与的测试。关键词是查询。
所要做的工作:1、从生产环境load数据切片到测试环境。 2、使用一些数据漂白或屏蔽的。 3、数据分析,确认数据的特征。 4、按照测试的需求进行数据挖掘或查询,把所需要的数据提供出来。
2、人工创建
人工创建可以创建比较特殊的数据,但由于数据表关联复杂等因素,只适合创建一些简单的,少量的数据。(我认为自动化创建大量的可控数据可以很好的解决两方面的问题,挑战在于数据需求的整理及具体化,以及自动化实现,端到端创建或许是个突破口)
数据准备的挑战
组织复杂的IT系统以及上下游系统,使得数据完整性困难。
数据安全,敏感性的问题。
各测试团队建自己的数据,总体性、可重用性差。
不可用或用过的数据可能会妨碍新建数据。
测试团队通常重点关注测试策略、用例、执行,对数据的质量、自动化生成数据等做的想得都太少。
数据提升的效率这一点测试团队想得太少。
服务化管理测试数据
综上,测试数据管理作为一个单独的服务或功能是一个非常有价值的事。
价值有:
1、数据组由多技能的人组成,负责理解组织内多系统的关联,从而在其中建造或搜集有用的测试数据。设计自己的框架去建造数据和查询数据。
2、更有效的管理数据。
3、设计数据归档机制,可以使有用的数据被保留,无用数据被清除。
4、数据重用性提升。
5、统一设计数据管理工具。
6、数据建立的效率可衡量。
7、测试人员至少可以减少20%建立数据的时间。
8、As per the various software testing forums, in the current scenario 20 % to 25 % of the overall project budget is allocated to testing