测试数据的准备过程
2009-10-10 01:00
429 查看
公司实施的测试流程中有一个环节是测试数据的准备,这个环节处于测试设计和测试用例完成后,在测试实施之前。而在一般的小项目中大家都没有太注重数据的准备。而在上次项目做完,紧接着做了一个大日常,而这个日常用到了很多数据,都是项目过后的残留数据,为什么叫残留是因为在项目中用过这些数据后我并没有去有意去收集这些数据,然后作为沉淀带下次用,只是我记忆力比较好,刚好用到,而因此我发现我的测试效率提高很多,测试过程非常愉快。而今现在又有项目和大日常做,我想要真正的完成一次测试数据,测试数据很重要。
那么如何做测试数据呢?
个人认为测试数据的制作也公司的业务有很大关系,所以要具体问题具体分析,这里写下我自己准备数据的方式。
背景就依据我现在工作:一个大日常是在原来的功能上做改动,可以理解为升级一个功能。
首先:分析自己的业务需要什么数据,功能需要升级,那么就一定要有老功能的回归测试,以及老功能过度到新功能的测试,还有新功能的独立测试。
1.老功能回归的数据是可以在代码提交前准备的,因为目前老功能是在使用的,所以数据可以直接跑业务产生。
2.老功能过度到新功能的测试数据是一定要准备的,老功能过度到新功能一般会是在用户操作某个模块的修改或者升级过程完成的,新功能兼容老功能的测试一定不能大意,那么这种老功能到新功能开始前的数据一定要准备,也可以通过跑老功能产生。
3.新功能的数据可以准备一些,比如新功能是会员登录后做的一些操作,而如果不同级别或者权限的会员登录后操作会有所不同,那么这些级别和权限不同的会员都是要准备好的,可以通过跑业务产生。
其次:就以上通过跑业务产生数据的方式可能会觉得如果数据量大的话会烦死,并且没有人愿意不断的跑业务,而我的方式是,用脚本在虚拟机上跑,并且公司本来对稳定的老功能都有做脚本,如果没有就自己做。
当然也可以直接操作数据库,比如insert之类的,但是这要求一个测试工程师的sql能力很强,并且有些数据中有的字段是MD5加密过的,还是唯一性键值,那么这样的数据造起来就需要测试工程师考虑更多,使用更多技术。
而我本人比较担心造数据过程产生数据制造错误,并且本身就有脚本可以跑业务,所以选择在虚拟机上跑脚本。
再其次:因为测试过程分为3轮,而第一轮要跑完所有用例覆盖所有功能,第二轮要验证bug和跑级别高的用例,第三轮就是回归主要流程和功能,可以看出仅仅一套测试数据是不够用的,那么我们就要在第一轮测试后恢复数据以便数据可以再第二轮使用,有必要的话在第二轮测试结束后恢复数据以便第三轮测试用。那么恢复数据的方式是什么:我选择用脚本来加载数据,也就用脚本来编写一个删除数据和插入数据的过程。跑业务产生的数据都很合理,在这里对这些合理的数据进行一个快照,然后使用这些数据跑第一轮测试后,删除被用过的数据,然后加载快照的数据。加载和删除数据的方法很多可以用TestDataBuilder去加载,由于我们的脚本中有加载数据的功能,所以我是借助脚本来加载数据的,其实也就是用ruby语言写的连接数据库,读取excel中的数据操作语句然后直接操作数据库。
最后:是一个数据的整理过程,不属于该次测试数据的准备,但是属于下次测试数据的准备,本次功能测试完成是在新功能都稳定后产出的一些数据,而这些数据有极高的利用价值,整理和分析这些通过新业务功能而产出的数据,然后抓取数据快照,下次再有改动该功能或者升级该功能时就可以直接利用这些数据了
实践过程中,如果实践中有新发现,或者更高效的准备数据的方法再来完善该日志。
本文出自 “大眼睛” 博客,转载请与作者联系!
那么如何做测试数据呢?
个人认为测试数据的制作也公司的业务有很大关系,所以要具体问题具体分析,这里写下我自己准备数据的方式。
背景就依据我现在工作:一个大日常是在原来的功能上做改动,可以理解为升级一个功能。
首先:分析自己的业务需要什么数据,功能需要升级,那么就一定要有老功能的回归测试,以及老功能过度到新功能的测试,还有新功能的独立测试。
1.老功能回归的数据是可以在代码提交前准备的,因为目前老功能是在使用的,所以数据可以直接跑业务产生。
2.老功能过度到新功能的测试数据是一定要准备的,老功能过度到新功能一般会是在用户操作某个模块的修改或者升级过程完成的,新功能兼容老功能的测试一定不能大意,那么这种老功能到新功能开始前的数据一定要准备,也可以通过跑老功能产生。
3.新功能的数据可以准备一些,比如新功能是会员登录后做的一些操作,而如果不同级别或者权限的会员登录后操作会有所不同,那么这些级别和权限不同的会员都是要准备好的,可以通过跑业务产生。
其次:就以上通过跑业务产生数据的方式可能会觉得如果数据量大的话会烦死,并且没有人愿意不断的跑业务,而我的方式是,用脚本在虚拟机上跑,并且公司本来对稳定的老功能都有做脚本,如果没有就自己做。
当然也可以直接操作数据库,比如insert之类的,但是这要求一个测试工程师的sql能力很强,并且有些数据中有的字段是MD5加密过的,还是唯一性键值,那么这样的数据造起来就需要测试工程师考虑更多,使用更多技术。
而我本人比较担心造数据过程产生数据制造错误,并且本身就有脚本可以跑业务,所以选择在虚拟机上跑脚本。
再其次:因为测试过程分为3轮,而第一轮要跑完所有用例覆盖所有功能,第二轮要验证bug和跑级别高的用例,第三轮就是回归主要流程和功能,可以看出仅仅一套测试数据是不够用的,那么我们就要在第一轮测试后恢复数据以便数据可以再第二轮使用,有必要的话在第二轮测试结束后恢复数据以便第三轮测试用。那么恢复数据的方式是什么:我选择用脚本来加载数据,也就用脚本来编写一个删除数据和插入数据的过程。跑业务产生的数据都很合理,在这里对这些合理的数据进行一个快照,然后使用这些数据跑第一轮测试后,删除被用过的数据,然后加载快照的数据。加载和删除数据的方法很多可以用TestDataBuilder去加载,由于我们的脚本中有加载数据的功能,所以我是借助脚本来加载数据的,其实也就是用ruby语言写的连接数据库,读取excel中的数据操作语句然后直接操作数据库。
最后:是一个数据的整理过程,不属于该次测试数据的准备,但是属于下次测试数据的准备,本次功能测试完成是在新功能都稳定后产出的一些数据,而这些数据有极高的利用价值,整理和分析这些通过新业务功能而产出的数据,然后抓取数据快照,下次再有改动该功能或者升级该功能时就可以直接利用这些数据了
实践过程中,如果实践中有新发现,或者更高效的准备数据的方法再来完善该日志。
本文出自 “大眼睛” 博客,转载请与作者联系!
相关文章推荐
- MySQL循环插入数据存储过程(速度较慢,准备测试数据用)
- mongodb[零]准备数据,方便测试
- 测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程
- mysql存储过程和函数(三)——存储过程和自定义函数示例,大批量测试数据的插入
- 第十七篇【测试数据准备的那些事儿】
- mysql利用存储过程插入测试数据
- 如何准备测试数据?
- 自动化测试数据 准备 (转载)
- Flume-ng生产环境实践(二)flume-ng 测试过程中event丢失部分body数据
- 【LFW大规模测试的准备1】基于java接口实现LFW数据规范写入写出
- mysql存储过程对900w数据进行操作测试
- 基于测试数据覆盖率的测试数据准备的手法示例
- PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品,产品设计严格遵循国际数据挖掘标准CRISP-DM(跨行业数据挖掘过程标准),具备完备的数据准备、模型构建、模型评估、模型管理、海量数据处理和高纬数据可视化分析能力。
- mysql存储过程插入固定数量测试数据
- mysql 使用 存储过程制造测试数据
- shell开发基础:准备100万条测试数据在MYSQL中
- 创建测试表,批量插入数据的存储过程,分页存储过程
- 读书笔记(六)核心测试过程:计划,准备和完善
- ITA 测试时之数据准备(大量数据导入与导出)(主键的最高位最好有值,而不是0)。
- SqlServer存储过程分页:大数据量分页存储过程效率测试附代码