从今年年初的版本开始,项目要求各特性测试用例的自动化百分比要达到80%以上,于是乎我们花了很多时间在写自动化脚本上。最近的一个项目,因为考虑到后面还有好多轮迭代以及回归,因此我们鼓励尽早做自动化,甚至在第一版本转测的时候,我就开始埋头写自动化了,而不是先把用例手工执行一遍。

自动化的时机,到底在什么时候做自动化,其实,这涉及到一个两难的问题。

一种做法是一开始早就做自动化,这样做的好处是后面的多轮迭代可以充分利用这些自动化的成果,使你后面的测试工作更轻松。但是它的缺点就是干开始要耗费太多的时间,以至于第一轮测试你没办法去做一个充分的漫游和发散,错过了及早发现BUG的机会。

另一种做法是,一开始你就先手动测试,等手动测试完成后有闲暇时间再开始写自动化脚本。这样做刚好和上面相反,它有助于你及早发现错误,但是由于你前面自动化的用例太少,导致你第二轮第三轮测试可能还要做大量的重复性的手工测试。

这个问题困扰了我一段时间了,期间我基本上采用的是第一种方法。但后来在实践中证明,这并不是一种很好的方法,这种方法不但找到的BUG更晚一些而且更少一些。晚一些的原因上面已经说过。少一些有以下原因,原因一:杀虫剂效应,当这些用例一遍又一遍地执行的时候,已经很难再找出新BUG了;原因二:我一直在想自动化完成后,后面有的是时间,我可以进行一些发散测试,不过实践证明我并没有我想的那么勤劳,经常是把用例自动化完了就停滞不前了。

鉴于越早发现BUG修复的代价越小以及我不是个很勤劳的人这两点来看,第二种做法可能会更合适一些。最近也接触了一些探索测试的东西,现在总体的想法是,在第一轮测试的时候,先用探索测试的方法在已有用例基础上进行一些探索测试,快速将特性测试一遍。以便尽早地找出一些严重或显而易见的BUG。在这期间,每天还要安排一部分时间来写一点自动化用例,这可能需要我多付出一些时间和精力,但从对后面的工作提供的帮助来说,这绝对是值得的。总得来说,是更倾向于第二种方法,并把探索测试融合进来,但也要预留一定时间来写自动化。至于之间的时间分配比例,没有一个万能的值,实践出真知吧。

关于手工测试与自动化的两难问题相关推荐

  1. 如何从手工测试转自动化或测试开发

    首先,我们需要明确一下手工测试干的好好地,为啥非要转到自动化测试或者测试开发领域.总结一下有以下几条原因: 1.手工测试重复性很强,不断地从键盘或者鼠标输入,或者用手直接点手机,点了好几年了,心灵难免 ...

  2. 自动化横行的今天,手工测试如何杀出一条血路?

    自动化测试是每个软件公司反复提及的,放眼望去,测试岗位的招聘要求里十有八九都会有一条"掌握自动化测试技巧",甚至有的公司把用例自动化率(实现自动化的用例数/总用例数*100%)当作 ...

  3. 让天下没有难做的研发:解读阿里CI/CD、DevOps、分层自动化技术

    在互联网时代,产品快速迭代的重要性不言而喻.不管是传统企业还是初创企业,在提升研发效能方面都有很强的需求,如果能使用一套对项目流程管理和专项自动化提效工具,来支持项目的快速迭代发布,实现24小时持续集 ...

  4. UI自动化框架如何设计及搭建?

    目录 UI自动化框架 自动化原则: 如何减少自动化维护成本? UI自动化框架优化方案:(在不增加维护成本前提下) UI自动化脚本可分为3种: 已经实现自动化的模块可以不做手工测试了吗? UI自动化公式 ...

  5. 测试技能整理-python自动化

    pycharm工具基本使用及python基本 python简介 Python是一种跨平台.简单易学.面向对象的编程语言一门计算机语言 自动化测试-通过代码取代手工测试 市场自动化语言:python . ...

  6. 【自动化经验谈】自动化测试成长之路

    最近,小编拜读了测试同行Young的一篇博客园文章<写给想做自动化测试的人>,文中介绍了自动化测试是什么.为什么要进行自动化测试.什么样的人适合做自动化.怎么做自动化测试等内容.这篇文章作 ...

  7. 学习软件测试需要掌握哪些内容?这篇文章告诉你

    学习软件测试需要掌握哪些内容,主要取决于该岗位现在需要的技能有哪些,只有掌握了岗位需要的技能才能顺利地找到适合自己的工作,技术在不断更新,我们需要学习在实际工作中能够用到的企业级技术.那么学习软件测试 ...

  8. 花了我一天一夜整理出的软件测试学习路线

    目前软件测试这个行业大学还没有专门的课程,不像开发.想要进去这个行业无非自学和培训两种途径.发展到2018年初来说,这个行业已经比较稳定,但是并没有饱和,缺口依然很大,在未来的5~10年内发展会很快, ...

  9. python脚本语言采用声音作为手段_LKJ自动化测试脚本定义及生成技术研究

    LKJ 自动化测试脚本定义及生成技术研究 白鸿钧,张明凯,李冠军,杨清祥 [摘 要] 摘要:为实现对列车运行控制系统软件的自动化测试,在通用脚本语 言的基础上定义专用的脚本语言,讨论专用脚本语言的结构 ...

最新文章

  1. 组合计数 ---- 2020 EC final B. Rectangle Flip 2(枚举+组合计数)
  2. Python与PHP的区别?
  3. CSS-home.htm
  4. leetcode 155. 最小栈
  5. Docker最全教程——Redis容器化以及排行榜实战(十三)
  6. Java:GB18030字节数组与UTF8互转
  7. Linux 软件包管理
  8. froala 的使用
  9. TeamViewer安装——好用的远程办公软件
  10. 谷歌浏览器书签保存在哪里以及书签导入导出方法
  11. MySQL的日志 - relay log
  12. 【win10】win10值不值得升级?
  13. UltraEdit32常用快捷键
  14. Unity3D——游戏序列化
  15. 《Armv8/armv9架构入门指南》-【第四章】- ARMv8 寄存器
  16. 教育平台项目后台管理系统:课程内容模块
  17. 网站策划文案-新闻发布系统简介
  18. 轻松学Python数据分析3-数据处理
  19. L1-051 打折 (5 分)
  20. 马拉松成绩和体重的关系

热门文章

  1. JavaScript-ES6新特性使用教程
  2. 操作系统——廉价磁盘冗余阵列
  3. 有限公司与有限责任公司的区别
  4. java map类说_在Java中,关于HashMap类的描述,以下说法错误的是(   )。
  5. 对LCA、树上倍增、树链剖分(重链剖分长链剖分)和LCT(Link-Cut Tree)的学习
  6. Snowdrop 2.0.0.Final 发布
  7. Red 5 中让你猝不及防的一个坑
  8. 用GAPIT进行GWAS过程及出现问题
  9. Proto3使用指南
  10. 长租公寓大数据|2019年中国长租公寓行业发展分析报告