自动化测试概念
自动化:在没有人或极少人直接参与下,去实现预期目标的过程。
自动化测试:程序测试程序、代码代替思维、脚本代替人工
手动测试与自动化测试的区别:
1、二者并不是对立的,手工测试仍然有必要。自动化测试和手工测试应该互相结合、互相补充。
自动化的目的仅仅在于让测试人员从繁琐重复的流程中解脱出来,把更多的精力放在更有价值的测试中,例如探索性测试。因此自动化测试和手工测试应该互相结合、互相补充。
2、手工测试有较强的异常处理能力、用例执行具有一定的步骤跳跃性。
但如果修正缺陷的所需时间较长,回归测试会变得异常困难(用例多,难以对不可视对象、属性进行测试)
3、用例步骤间的关联性强、让测试人员从繁琐重复的流程中解脱出来、测试具有可移植性和重复性。
自动化测试的优点:
1、避免因重复操作带来的厌倦感
2、提高效率。
3、保证每次测试的一致性和可重复性
4、快速高效
5、回归测试更加方便可靠(确保曾经的缺陷在新版本上不会出现)
6、执行一些手工测试做不到的测试,如大量的用户并发测试、性能测试
7、脚本可复用
8、支持多环境下的测试
9、可以将产品知识固化到脚本中,降低测试人员对项目流动造成的影响
自动化测试的弊端:
1、从短期来看,系统开发时间不一定变短,在开展前期成本投入高、风险大,对测试人员要求高
2、不能取代手工测试
3、不容易发现界面、布局问题。
4、发现缺陷要比手工测试少,几乎无法发现新缺陷
5、可能制约软件开发
6、没有想象力
自动化测试的分层:UI测试、集成接口测试、单元测试(效果最好)
什么项目适合自动化测试?
1、项目变动少
2、项目周期足够、资源足够
3、能够自动编译自动发布的系统
4、回归测试
5、多次重复机械性动作、需要频繁运行测试