PaaS小魔仙 发表于 2019-2-14 18:48:29

做自动化测试之前,你需要了解这些内容

什么是自动化测试
把以人为驱动的测试行为转化为机器执行的一种过程,自动化测试节省人力、时间或硬件资源,提高测试效率。


优势特点

快速比手工操作快
可靠精确地执行相同的操作,可以排除手工操作错误
可重复测试相同操作重复执行得到软件响应状况
可编程可以编程得到应用系统的隐藏信息
可重用针对不同版本,测试脚本可重复使用
综合测试覆盖应用系统的一套综合测试方案


自动化测试分层
[*]单元自动化测试(数据处理层):指对软件中最小的可测试单元进行检查和验证,一般需要借助单元测试框架,如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
[*]考虑整个技术团队主流用的语言





页: [1]
查看完整版本: 做自动化测试之前,你需要了解这些内容