初步介绍自动化测试
作者:网络转载 发布时间:[ 2012/5/25 10:46:51 ] 推荐标签:
自动化测试只不过是实施测试的一种手段,是用来弥补手动测试的不足的。
举个例子:
某手机研发公司,客户抱怨3G视频通话中偶尔有图像传输不过来的情况,测试部门展开测试,由人去一遍一遍不停地执行3G视频通话,耗费和很多人工,重复上百次上千次亦无法重现故障。
正好这时候该公司刚刚开始组建自动化测试团队,自动化测试工程师编写程序,模拟各种通话条件,让手机去自动执行。程序部署好以后,在实验室内调集了十几部手机,开始执行,测试人员下班回家去了。第二天上班来看结果,已经自动执行了好几千次通话过程了,而这几千次通话过程中,有2次图像传输失败。
然后,察看相应的串口日志、TAPI日志、关键函数的输入输出结果,已经可以锁定系统内部的故障点了。
然后通过日志分析,找到了always reproduce故障的scenario,从而找到了正确的复现故障的repro steps
然后把repro steps、log等关键信息提交给开发部门进行bug fixing
这是一个真实的案例,从这个案例中你会看到,自动化测试可以实现手动测试不能或者不便于实现的事情。
在上述案例中,手动测试在某些情况下无法地模拟特定的故障发生的条件,而且在大量重复测试中测试人员会产生疲劳的问题,是否每次都能正确地执行测试计划?人的因素带来很大的不确定性。更不要说手动测试的大量的人工消耗,要知道在一家知识型企业里,人工的价格是很昂贵的。该企业为了降低人工消耗的成本,雇佣大量初级的测试工程师,更加加大了人的不可靠性因素。
但是自动化测试则不同,它开发成本略大,但执行成本很低,而且无论重复一千次还是一万次,都能精确执行测试计划。
有些故障的重现可能在几千次测试中的1、2次,如果执行测试计划不精确,也许把这宝贵的1、2次故障重现给略过了,导致为测试付出的成本付诸东流。
另外自动化测试能够比手动测试更加深入到系统内部,比如,在执行测试计划的同时,收集日志和系统关键状态、关键函数的输入输出。
这一点虽然手动测试也可以做,但往往没有那么深入,而且为了多监控一个系统状态要使测试复杂度上升很多。
但是自动化测试也有不足,这些不足恰好是可以通过手动测试来弥补的。比如某些理化条件非常复杂的测试,自动化测试很难模拟所有条件,这时不得不借助手动测试来完成测试计划。另外手动测试也更容易发现真实使用场景中的故障,而自动化测试则严重依赖于test case的设计是否严谨合理。
往往初级的测试工程师一般是从手动测试开始做起,高级的测试工程师经常开发自动化测试工具,而的测试工程师的手动测试又比高级测试工程师增加很多,但这时的手动测试和初级工程师的手动测试有所不同,更侧重于深层次的分析。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11