自动化测试应用

接口自动化

冒烟测试,系统测试,回归测试

UI自动化

自动化冒烟测试,系统测试,回归测试

自动化测试环境

压测、自动化、本机

自动化测试规划

任务(UI层)

时间

责任人

输出物

用例筛选及评审

 

 

《自动化测试用例列表》

用例编写及调试

 

 

 《UI自动化测试用例》

测试账号、测试数据准备

 

 

 《ui自动化账号一览》

操作说明及培训

---

 

 《UI自动化操作说明》

脚本执行(各个设备×各个版本)

---

 

 《UI自动化执行报告》

框架维护及优化

 

 

 

知识积累总结

 

 

 

框架编写、框架维护、脚本编写、测试执行的标准化、规范化

 

 

 《自动化测试脚本》

任务(API层)需要业务解耦

时间

责任人

输出物

账号准备、接口测试数据准备

 

 

《接口自动化账号一览》

测试用例编写

 

 

《接口自动化测试用例》

接口自动化使用文档及培训

 

 

《接口自动化操作说明》

接口自动化执行

 

 

《接口自动化执行报告》

框架维护以及优化

 

 

《jmeter+git+ant+jenkins框架说明》

 

 

 

 

项目讨论-自动化覆盖率

  • 项目中符合自动化测试的部分(目标和范围,入准出标准)

1:主流程,包括工作流,消息推送,客户/服务商创建,页面通点等频繁回归的用例

2:稳定的需求点、变动较少的页面2.比较频繁的回归测试

 

3:需要在多平台上运行的相同测试案例、组合遍历型的测试、大量的重复任务

  • 自动化用例在整个项目的测试用例的覆盖率达到50%

团队建设岗位职责

 

建立自动化测试的组,测试开发、自动化测试工程师

主管:

在设计脚本之前,对自动化整体设计,推动测试自动化开发的顺利开展

规划自动化方向,提供需求,如要求自动化工程师为某项测试任务研发工具、脚本

测试开发:

基本工作:

  1. 自动化框架的建设,确定自动化框架的设计模式、第三方代码工具的封装、中间公共模块的设计和调用
  2. 测试用例、测试脚本的管理和执行
  3. 测试报告和测试结果的输出(文件输出和邮件通知)
  4. 提供自动化测试程序的安装文档和使用文档。
  5. 保证自动化测试是符合一般测试执行人员的思维习惯的

长期规划:

  1. 搭建持续集成服务器的环境,进行持续交付和自动化的冒烟测试等。
  2. 测试工具编写。

培训的任务:

  1. 需要将设计的框架以及封装的驱动,对其他成员进行培训。
  2. 保证测试执行人员能够理解测试结果,并能够正确分析失败的测试执行结果

自动化测试工程师:

  1. 配合测试开发人员,实施测试框架的建设。主要负责中间公共模块的实现和实例化等,以及部分高难度和流程复杂的自动化用例脚本编写和调试等工作。
  2. 提交及跟踪自动化测试发现的bug。

功能测试人员:

  1. 提供具体测试任务相关的咨询,并且提供测试自动化的需求。
  2. 帮助检验所开发自动化测试是否有用、可理解和可信赖。

技术方案

技术方案1:Slenium+ Python

优势:开源。目前selenium+python的自动化框架已经搭建并调试完成,可以直接套用测试用例去执行。

劣势:测试人员没有经过系统的python语言培训,不清楚基本的语法,脚本编写难度大,培训时间可能较长

 

技术方案1:QTP+VBS

优势:工具操作简单,语法相对简单,测试人员经过前期的培训,有一定的脚本编写能力,可以直接上手

劣势:QTP的页面识别机制相对不够灵活,驱动的灵活性不如selenium。且从长远看,不适合进行大规模的自动化持续集成测试

 

技术方案3:Appium+python(APP自动化)

优势:扩展性强,驱动灵活,,较为适合APP自动化的推进

劣势:环境构建较为复杂,脚本编写难度大,需要有一定的python语言基础

 

接口自动化

技术方案:jmeter

优势:技术工具开源。工具操作灵活,脚本编写简洁,适合构建接口自动化的大规模持续集成

劣势:接口脚本编写需要对协议有一定的了解,熟练正则表达式的编写,需要编写java语言构建扩展包,培训周期较长

 

脚本编写规范

帕斯卡命名

脚本注释规范:日期/责任人/脚本说明

可能遇到的问题

几个使自动化测试项目陷入困境的因素:

  1. 自动化测试时间不充足:自动化也要尽早介入,争取保持与开发周期同步,而不是与测试周期同步。
  2. 页面持续变更,元素无法定位,使测试人员丧失信心
  3. 缺乏一个稳定的学习过程
  4. 缺乏清晰的目标:有很多好的理由去开展自动化测试工作,诸如自动化测试可以节省时间,使测试更加简单,提高测试的覆盖率,可以让测试人员保持更好的测试主动性。但是,自动化测试不可能同时满足上述的目标。不同的人员对自动化测试有不同的希望,这些希望应该提出来,否则很可能面对的是失望。
  5. 缺乏经验:对基础语言陌生,脚本编写吃力,经常半途而废
  6. 更新换代频繁:测试自动化往往需要花费很多时间学习的,当自动化测试更新换代频繁的时候,你就丧失了刚刚学习到的自动化测试经验。
  7. 关注于技术:如何实现软件的自动化测试是一个很吸引人的技术问题。不过,过多的关注如何实现自动化测试,导致忽略了自动化测试方案是否符合测试需要。
  8. 如何保证需求变更后,能够及时提供更新后的自动化测试?如果自动化测试与需求变更无法同步,那么自动化测试的效果就无法保证了,测试人员就不愿意花费时间学习如何使用新的测试工具和如何诊断测试工具上报的错误。关注项目里程碑,自动化测试工程师可以保持与开发周期同步,而不是与测试周期同步。

 

posted on 2020-04-21 10:20  璇子的蓝色城堡  阅读(293)  评论(0编辑  收藏  举报