尽可能地实现测试自动化是软件行业的总体趋势。在软件测试中,自动化可以极大地提高生产力,但仅限于某些情况。

在这篇文章中,我们将介绍一种测试自动化的方法,目的是根据项目的上下文识别其可行性。对于测试人员来说,了解什么是自动化以及何时可以自动化非常有用。测试人员应该多多注意如何优化工作,无论是与其他同事、开发人员合作,还是自己尝试自动化工具。

我们将介绍一些在还没有自动化相关经验时非常重要的概念,并评估它们相对于手动测试相关的重要性和优势。

什么是测试自动化?

从历史上看,自动化的出现是为了减少可编程系统、机械操作的活动所需的人力,目的是简化繁重、重复和复杂的工作,使其更有效也更高效。通过这种方式,可以节省能源、时间和成本,同时让人们腾出时间专注于其他任务。

在软件开发中,可以用同样的方法,通过把原本要手动完成的工作自动化来实现。需要遵循的步骤被转化成可重复的脚本,所以他们可以将精力集中在其他提供更大价值、减少执行时间的特定任务上。在某些情况下,自动化让我们能执行人工本无法执行的测试,特别是考虑到在特定时间段内执行次数的限制,自动化可以更轻松地完成规模化、工程化测试。

当测试人员考虑自动化时,最常见的问题之一是,“什么时间可以进行自动化?”

想知道是否应该自动化,包括评估潜在的投资、方法、收益,最重要的是,评估目前手动流程的相关信息。

首先要充分了解手动过程,并且对这方面了如指掌,只有这样才能实现自动化。对于手动过程的完整了解是知道什么时间可以进行自动化的支柱,这意味着手动测试不能被完全替代。在可以实现自动化之前,必须非常熟练地掌握手动测试。先学会走路,然后再跑步。

自动化误区

自动化有其优点和缺点,具体取决于项目、时间、成本、质量和方法。

基于上述,另一个非常重要的点是,除了自动化或非自动化之外,还必须了解具体情况,而且所做的一切都是基于以最佳方式实现目标,选择和应用适当的方法、工具和技能。

避免陷入以下关于测试自动化的常见误区:

  • 任何软件都能自动化
  • 自动化的软件质量更好
  • 自动化测试优于手动测试
  • 自动化带来更快的投资回报

无论是手动还是自动,不妨以下述七个原则来理解测试的目标:

  • 任何实践的价值都取决于其背景;

  • 不存在“好的实践”,但上下文中会发现好的实践;

  • 人的合作是所有项目环境中最重要的部分;

  • 项目不是一成不变的,往往会采取不可预测的路径;

  • 该产品是一种解决方案。如果问题不解决,产品将无法工作;

  • 好的软件测试是一个具有挑战性的智力过程;

  • 只有通过在整个项目中合作实践的判断力和技能,才能在正确的时间做正确的事情,有效地测试产品。

这些原则是 Cem Kaner、James Bach 和 Brett Pettichord 在书籍《软件测试中的经验教训》中提出的,这有助于我们认识到适应当前项目情况的能力的重要性。

手动与自动

刚开始时,我们可能希望将一切都自动化,但开发和维护自动化测试脚本的成本可不是轻轻松松的。

当一个项目把赌注押在自动化上时,理想情况下,它应该有一个坚实的基础,从单元测试用例开始,通过即时反馈尽可能多地防止bug,然后继续到不同的层级。这样,手动和探索性测试在UI级别最有价值,专注于那些无法自动化的测试。

Michael Cohen 的自动化测试金字塔解释了这个概念:

在左边,可以看到自动化通常是如何完成的,而右边是理想的自动化测试,其中单元测试在金字塔中占据最大的比重。

尽管自动测试和手动测试之间存在差异,但它们并不相互排斥,而是被视为寻求更好软件质量的补充任务。

如果考虑测试的投资回报,手动测试新功能能以较低的成本快速了解应用程序的更多信息。随着知识的获取好测试的库存增加,手动测试的成本也会增加。另一方面,自动化具有更高的初始成本,随着它的进展而降低。这种趋势如下图所示:

可以看出自动化需要大量的初始投资,直到“突破点”,与手动测试相比,我们开始看到它对长期成本产生的积极影响,也能够清楚,这两种测试活动都是完全兼容,产生短期和长期利益。

下面是测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)

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


好文推荐

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

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

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

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

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

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

何时适合进行自动化测试?(上)相关推荐

  1. 哪种语言更适合做自动化测试?

    经常有测试新手问我:Python和Java语言,哪个更适合做自动化测试?本来想简单的回答一下的,但又觉得对不起大家对小编的信任.因此,小编今天专门写了一篇文章来回答这个问题.欢迎各位大佬补充~ 1.什 ...

  2. 【软件测试】什么样的项目适合做自动化测试?自动化测试有需要那些技术?

    少部分从事软件自动化测试,会接触底层服务端.API .Web.APP.H5 等等,对自动化有了解. 想做自动化,首先得了解一下自动化测试的一些常见问题. 也是面试时,必问的一些问题(这么简单的面试问题 ...

  3. 什么样的项目适合UI自动化测试

    我们在考虑做自动化测试之前,一定要先分析一下,这个项目到底适不适合做自动化测试,避免在不太适合自动化测试的项目中痛苦挣扎,既浪费了大量的人力和时间,又收效甚微.下面简单列举一下评估一下项目是否适合做自 ...

  4. 儿童节html5小游戏,适合儿童节活动上玩的亲子互动小游戏

    为了活跃气氛,也为了拉近家长与孩子之间的关系,在儿童节活动这一天安排一些有趣的亲子互动小游戏是一个很好的选择,下面给大家推荐几个适合玩的游戏给大家. 儿童节亲子互动游戏一:<亲子二人行> ...

  5. 在软件测试领域,Java和Python哪个更适合做自动化测试?

    功能测试人员提升技能的方向就是自动化测试,要学自动化测试就要进阶编程语言,常用的编程语言有两种,Python和Java,掌握哪门编程语言更容易做自动化测试呢? 什么是自动化测试? 简单来说,自动化测试 ...

  6. java和python的web自动化有什么区别-Python和Java哪个更适合做自动化测试?

    Python:易于学习,语法简洁 不可否认的是,Python相对于其他语言来说,要容易的多.因为Python语言的简单明了,很多外行人也能读懂它的代码.Python语言不需要拥有很丰富的词汇,简单明了 ...

  7. 树莓派html5播放器,树莓派|5 个很适合在课堂上演示的树莓派项目

    1. 我的世界: Pi 源于 Raspberry Pi 基金会. CC BY-SA 4.0 "我的世界"是世界上几乎每一个青少年都特别喜欢的一款游戏,而且它成功抓住了年轻人眼球,成 ...

  8. 什么样的人适合做自动化测试

    这个问题是写给想要做自动化测试的人,或许你以为软件测试的门槛很低,低到任何人都可以做,随便点点就可以了,这个行业太low了,所以你想做自动化测试,提升自己的逼格,我想说手工测试并不low,如果让一个什 ...

  9. robotframework框架ui自动化测试上传附件问题

    一.input标签直接输入 获取元素直接sendkeys,传入文件路径(此方法没有成功,可能和框架有关,上传流文件不可以?) 二.使用autoit3工具生成exe文件,os.system运行文件 1. ...

最新文章

  1. R语言ggplot2可视化在lines线图的尾端添加线图标签、并且去除图例实战
  2. AutoX“真无人”车队驶上繁忙街头,中国正式进无人驾驶时代
  3. node.js浅入深出---之fs模块
  4. 如何设置JTable行颜色
  5. Google Guava v07范例
  6. LeetCode 题 - 35. 搜索插入位置
  7. 利用CloudIDE当做简单linux环境,执行简单python工程任务
  8. python数据库实现注册函数_10.注册和登录功能实现(3)—— 注册数据写入数据库...
  9. httprunner接口测试脚本自动生成
  10. 编写程序销毁一个单链表
  11. 实用的技巧之免费下载百度文库VIP文章
  12. java设置excel自动调整行高_Java设置Excel自适应行高、列宽
  13. MongoDB系列之添加账号和密码
  14. SDP: Session Description Protocol(会话描述协议) (RFC2327)
  15. 2018年陕西文科生可以报计算机专业am,2018年高考志愿:文科生,可以报考哪些专业!...
  16. Oracle如何限制非法调用包中过程
  17. Android Studio 处理Api28 网络图片加载不出来问题
  18. 学习前端和后端必学之HTTP协议学习
  19. quill.js官方文档(六)【增量Delta】
  20. 中华PDF开天裁决传奇这个该死的东西怎么删除?

热门文章

  1. codova添加android慢_从 0 开始学 Linux 内核之 android 内核栈溢出 ROP 利用
  2. 如何将一个完整项目推到码云_怎么将本地项目放到码云(gitee)上面?图文详解
  3. python 滚动字幕_Python pygame绘制文字制作滚动文字过程解析
  4. 免费录屏、最快截图、装X必备、看完工作学习效率直接翻倍
  5. fasterrcnn论文_【论文解读】Yolo三部曲解读——Yolov1
  6. linux内核通俗理解,简洁明了!高手带你理解ARM-Linux的启动过程
  7. 计算机成原理第2版,清华大学出版社-图书详情-《计算机组成原理(第2版)》...
  8. html文本框中有一个叉号标志,html 输入框显示“小叉叉”的清空方法
  9. matlab最小费用最大流函数,Matlab最小费用最大流算法通用程序
  10. 安卓10未知来源_华为已将“基于安卓10”变成“兼容安卓10”,EMUI就是鸿蒙OS