正如金钱让世界变得圆满,自动化使测试世界变得圆满。 自动化已不仅仅是一个流行词,现在已成为大多数组织骨干软件发布的关键部分。 但问题仍然存在,Test Automation是否以正确的方式完成? 或者更大的问题应该是,有没有正确的方法来进行测试自动化? 答案通常取决于…它取决于在测试下的应用程序,环境,数据,架构和大量其他因素中发挥的许多不同因素。

对于任何重大项目或任务,人们确实需要一个计划或一种策略来实现自动化。 许多人使用象限,金字塔和其他模型作为参考,以便在决定自动化方法时使车轮运动,例如围绕一些优秀模型(包括我自己的自动化三角模型)的一些精彩细节。

在我10年的测试自动化世界经验中,我的观察和经验使我在制定测试自动化战略时考虑了一些关键要素。 我将在下面讨论其中的一些。

1、测试用例的情况

测试用例的情况 - 测试管理工具或类似工具

让我们一路回到起步。 无论您是在探索性测试世界中使用特定的测试管理工具还是检查表/思维导图等,都有一个潜在的目标。 目的是为您解决测试任务带来某种规划或结构 。 在这个阶段,不管你信不信,这是第一个需要考虑测试自动化想法的地方。您应该在定义测试用例/方案期间识别典型的自动化候选者。

围绕测试管理工具或类似工具的另一个方面是它为所有人提供的可见性和透明度的关键要素。 测试自动化不应孤立地发生,并且提供完整的透明性,可追溯性和团队可见性的工具能力越好,与测试自动化工作的相关性就越高。 永远不要低估这个元素带来的力量,特别是对于一个正在发展的敏捷世界 - 团队游戏对任何组织的成功至关重要。 每个人都应该在您的团队自动化工作在相同层面上思考。 这里可以看到在测试覆盖范围,测试结果,测试趋势和各种花式自动化统计数据的可见性方面。

在某些情况下可能与测试管理工具相关的另一点或者可能是像Jenkins或Gitlab这样的CI / CD支持工具之类的外部工具,能够批量或在管道中执行这些自动化测试/脚本,计划或需求。 这是从存在于特定机器上的脚本的旧时代向前迈出的一步,并且通过在执行之前运行每个测试来执行相当繁琐的顺序

2、自动化的地方

自动化的地方 - 告诉我在哪里!

关于自动化策略的另一个关键因素是“Where”和“What”自动化。 在某种程度上,上面讨论了“什么”自动化,在这种情况下自动化的“Where”并不是指特定的测试环境,而是与应用程序层进行自动化。 我们是在讨论前端或后端的自动化,我们是在谈论API还是UI,甚至可能是DB。 然后,E2E测试的问题进入,甚至进一步发展到多个跨系统E2E测试。正如您所见,自动化在做之前需要进行大量思考。 因此,在决定“在哪里”关注自动化工作之前,通常团队间和测试人员的讨论至关重要

3、工具选择

工具选择 - 明智地选择

你知道的事情并没有变得容易

现在我们已经知道了“为什么以及在哪里”为自动化工作选择正确的自动化工具,这一更加艰巨的任务变得至关重要。 在某些情况下,公司购买已经工具,自动化现在必须遵守这个预先选择的工具,我在这篇文章中不会涉及。 如果命运在测试人员手中,那么工具的选择应该跨越多个区域。 关于工具选择的一些快速想法如下:

a)技术工具 - >工具可以自动化我们的Web应用程序吗? 该工具可以自动化我们的桌面应用吗? 它是否支持API自动化? 移动平台怎么样?

b)工具支持 - >是否有帮助提供有关问题,崩溃或工具维护的帮助。 该工具的新版本多久发布一次?

c)语言支持 - >所选工具支持哪种编码语言? 它是否支持Java和/或Javascript等多种语言。 在招聘和招聘时,这个问题也变得相关。

您的生态系统中可能还有许多其他要点与工具选择相关,但以上几点是首要考虑的因素。

4、环境稳定

环境稳定 - 保持整洁 clean code

这是一个经常被忽视的领域,但该领域的疏忽或不稳定几乎可以使所有测试自动化工作无效。 想想这一点,想象一下拥有最闪亮,制作精美的新时代游艇!但是你把它带到最最崎岖的水面上航行。 这将是一场史诗般的失败!

如果有稳定的环境,这正是它要的感觉。 有关环境正常运行时间的问题,依赖性可用性 (无论是本地还是外部)需要在此处解决。 这里想到的一个例子是类似于测试应用程序登录功能,依赖于谷歌API。 如果与外部服务的连接中断并且您的测试依赖于它,那么您的自动化测试就会变得十分脆弱。

找到解决环境问题的方法,并在增加自动化工作量时提出使环境更稳定的方法变得至关重要。

5、数据

数据,数据和更多数据

数据是另一个对自动化方法至关重要的概念。 数据很复杂并且可能带来许多挑战,这主要取决于每种情况下可能存在的众多排列 。 硬编码自动化测试输入和变化几乎是不受欢迎的,因此在许多情况下,因为通过为每次执行提供随机数据,可以极大地增强脚本找到缺陷的能力。 通过这种方法,您可以大大增加每个独特数据场景中发现缺陷的可能性。 在某种程度上,这可以看作是一种自动化探索性测试的形式,这是一种双赢的局面。

因此,专注于寻找随机生成或获取不同数据输入组合的方法,以加强您的自动化工作,无论是从表格,文件还是API获取数据,这绝对值得研究。 这里要考虑的一点是速度方面。 读取这些数据会减慢你的脚本吗? 它会减慢多少? 这些是在考虑如何处理数据与覆盖业务时,需要作为一个团队性问题进行的进一步的讨论。

6、在结束时

总而言之,这一切都始于你如何开始。 对于经过深思熟虑的自动化方法,必须牢记自动化不仅仅会发生。 早期自动化候选人识别,可见性,团队互动和总体规划是必不可少的基础。 一旦建立起来,就需要解决其他关键因素,如工具选择,自动化水平,数据和环境问题,以使您的自动化在您的世界中取得成功。

最后: 可以关注公众号:伤心的辣条 ! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

如何制定自动化测试战略?10年经验让我考虑这些关键要素!相关推荐

  1. 5000字权威指南分享!企业如何正确制定 IT 战略及其路线图

    今天,每家公司都是一家技术企业,或者至少说是一家技术型企业.IT 在业务的各个方面的普适性使其成为为企业创建有效 IT 战略(信息技术战略)和路线图的战略要务. 鉴于其重要性,创建 IT 战略和构建 ...

  2. 10年经验总结,华为fellow教你如何成为一名优秀的架构师?

    摘要:华为云首席架构师分享成为架构师必备的一些特质和能力. 本文分享自华为云社区<10年经验总结,华为fellow教你如何成为一名优秀的架构师?>,作者: 技术火炬手 . 在<云享人 ...

  3. 项目经理的专业面试10条经验总结

    作者:红哥笔记 链接:https://www.zhihu.com/question/20635088/answer/2683203738 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商 ...

  4. 华为聘请华盛顿顶级公关公司 帮助公司制定媒体战略

    [TechWeb]3月27日消息,据国外媒体报道,华为最近聘请了华盛顿一家顶级公关集团帮助其在美国处理公关事务,此前该公司经受了数月的媒体关注. 华为 申报文件显示,华为上月聘请了Burson Coh ...

  5. 我早年在Google学到的10条经验

     Matt Cutts:我早年在Google学到的10条经验 摘要:High Scalability创始人Todd Hoff与Google公司资深工程师.知名博主Matt Cutts深入探讨了在谷 ...

  6. java自动化测试报告_Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  7. java 自动化测试报告_Java自动化测试框架-10 - TestNG之测试结果篇

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  8. java testng 优化_Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  9. 10年开发,10条经验:怎样成为一名成功的开源开发者?

    作者 | 席时鉴 大江东去浪淘尽. Linus Torvalds创立的Linux无疑是开源史上最成功的例子之一.从1991年的一个个人项目开始,直到发展为现今的Linux帝国,Linus一直作为一名开 ...

最新文章

  1. php 顺序结构,顺序存储结构php实现
  2. Python3 爬虫实战 — 58同城武汉出租房【加密字体对抗】
  3. java增删改一键生成_easyCode(java自动生成增删改查代码)
  4. 【形式语言与自动机】有限状态机
  5. SharePoint 2013 基础版 离线安装步骤
  6. WIN10下使用VS2017的MSVC编译FFMPEG3.4.2动态静态库
  7. JAVA项目案例模板,仅供参考怎么写
  8. 理解辐射校正、辐射定标、大气校正关系
  9. 复制xml导致乱码问题解决。
  10. 基于Django框架的物联网空气质量监测系统的实现
  11. css制作类似优惠券的卡片样式(vue)
  12. 2013年国考行测错题集(省级)
  13. Delphi与JAVA 互通AES文件加解密源码(支持D6-XE10)
  14. 体系结构学习7-乱序执行
  15. 2020年鼠年正月二十一 雪中送炭难
  16. AUTOSAR——MBD应用之NM模块Stateflow实现
  17. 单片机第四次实验课——外部中断实验
  18. Swift学习笔记笔记(七) UIKit常用组件的使用
  19. weblogicT3反序列化之CVE-2017-3248CVE-2018-2628CVE-2018-3245
  20. Android 性能优化必知必会

热门文章

  1. python拦截修改数据包_拦截指定数据、修改JS -- mitmproxy
  2. php监控url,php对URL地址探测
  3. 32位应用程序如何使用大于2GB的内存?
  4. C++面试题-指针-动态内存指针
  5. OpenCV自动内存管理
  6. #includemmsystem头文件出错
  7. 配置nginx,Tomcat日志记录请求耗时
  8. vue $refs的基本用法
  9. fedora16 解码方案
  10. android批量文件上传(android批量图片上传)