什么是自动化测试
把以人为驱动的测试行为转化为机器执行的一种过程,自动化测试节省人力、时间或硬件资源,提高测试效率。
优势特点
自动化测试分层 - 单元自动化测试(数据处理层):指对软件中最小的可测试单元进行检查和验证,一般需要借助单元测试框架,如java的Junit、TestNG,python的unittest,常见的手段是code review等
- 接口自动化测试(业务逻辑层):主要检查验证模块间的调用返回以及不同系统、服务间的数据交换,常见的接口测试工具有postman、jmeter、loadrunner等
- UI自动化测试(GUI界面层):UI层是用户使用产品的入口,所有功能通过这一层提供给用户,测试工作大多集中在这一层,常见的测试工具有UFT、Robot Framework、Selenium、Appium等
自动化测试分类 功能自动化测试、性能自动化测试、 接口自动化
在开始做自动化测试之前,需要确定以下几个方面: 1、什么项目适合做自动化测试? 测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要不断更新测试用例以及测试脚本,而脚本的维护实际上是代码开发的过程,需要修改、调试,必要时还要修改自动化测试的框架,所花费的人力、物力大便不值得弄自动化测试。 自动化测试需求的确定、框架的设计、测试脚本的编写与调试均需要相当长的时间来完成,如果项目周期较短,没有足够时间支持,结果还不如手工测试来的快、简单,就不需要做自动化测试。 需要在多平台运行相同的测试用例、组合遍历型的测试、大量重复测浏览器的兼容、操作系统的兼容 主要考虑三个方面,1)所测试的项目之间是否很大的差异性(如C/S系统和B/S系统的差异);2)所选择的测试工具是否适应这种差异;3)测试人员是否有能力开发出适应这种差异的自动化测试框架。
2、技术选型 首先要分析项目的架构和状况。对于一个后端的服务,它如果是纯粹以接口的形式提供给其它组件去调用,那可以采取“接口自动化”;对于一个Web产品,如果前后端都在测试的保障范围,而且前端页面相对比较稳定,可以考虑采用“UI自动化”(此时接口自动化其实已经不足以保障产品的端到端功能);对于更后端的组件,如果想测试组件自身的基础核心功能,可以采用“基于shell交互命令执行的自动化”,通过自动化脚本的方式封装shell命令的调用。 3、工具的选择 桌面程序(C/S)的工具有:QTP、AutoRunner
web应用(B/S)的工具有:QTP、AutoRunner、Robot Framework、watir、selenium 4、编码语言的选择 - 从语言易学性来讲,首选ruby,python
- 从语言应用广度来讲,首选java,C#,php
- 从语言相关测试技术成度:ruby,python,java
- 考虑整个技术团队主流用的语言
|