应该知道的自动化测试陷阱2
陷阱6:所有测试都可以被自动化
并非所有的测试都可以被自动化。
自动化测试是手工测试的增强。乞求项目中的测试百分百实现自动化是不合理的。在首次引入自动化测试时,最好先验证一下,工具是否能识别出所有对象和第三方的控件。这对于基于GUI的测试工具来说非常重要,因为这类工具往往在识别一些个性化控件方面有困难,例如一些calendar、spin、grid控件,而这些控件被广泛应用在程序界面中,并且这些控件往往由第三方编写,大部分测试工具厂商未能跟上他们的发展速度。
测试工程师在碰到这种情况时要么放弃这部分应用了难以识别的控件的测试自动化,要么找出一些解决的办法。
另外,还有一些测试是基本上不可能被自动化实现的,例如,测试工程师可以实现自动化地把文档发送到打印机的过程,但是检查打印的效果(是否被正确地打印出来,有没有越过纸张打印线)这部分则必须人工进行。
至于哪些测试用例应该被自动化实现,可以参考下表决定:
YES | NO | ||
测试执行的次数 | 测试会被执行多次吗? | ||
测试会有规律地运行吗?例如经常被重用,作为回归测试的一部分或每日构建测试? | |||
测试的关键程度 | 测试覆盖了软件功能的最关键部分的路径吗? | ||
测试覆盖了最复杂的部分吗?(通常是最容易出错的部分) | |||
测试的代价 | 如果手工进行测试的话,是否不可能、非常难以执行,例如并发测试、持久性测试、性能测试、内存泄漏测试等。 | ||
测试非常耗时吗?例如需要检查成百上千个测试结果输出。 | |||
测试的类型 | 测试需要组合很多输入,但是共用一个测试步骤吗?例如同一个功能,用很多不同的输入来验证。 | ||
测试需要在多种软硬件配置环境下执行吗? | |||
被测试应用或系统 | 测试是在一个稳定的应用程序上执行的吗?例如功能特性已经基本完成。 | ||
使用兼容的技术和开放的架构 |
陷阱7:自动化能提供百分百的测试覆盖率
并非所有内容都可以被自动化地测试到。不可能覆盖所有可能的输入,所有可能的组合和路径。
自动化测试可以增加测试的广度和深度,但是仍然无法达到100%的测试覆盖率,因为没有足够的时间或资源。
例如一个简单的登录界面的测试,假设我们需要测试它的密码验证函数的正确性,密码长度在6到8个字符之间,每个字符可以大写或小写,至少包含一个数字,那么输入的可能组合将达到2,684,483,063,360个。
即使我们可以每分钟创建一个测试,也需要155年来完成全面的测试。因此,不可能穷尽所有可能的输入的测试。
陷阱8:测试自动化就是录制和回放
仅仅录制得到的不是有效的自动化脚本。
很多项目经理仍然把测试自动化等同于使用录制回放工具。而事实上,录制得到的脚本通常是不可重用的脚本,脚本中充满了硬编码的值,这些值应该被参数化,否则脚本仅仅适用于一个测试情况,脚本还应该加入条件判断、循环等结构,以便增强测试脚本的灵活性。
陷阱9:自动化的软件测试与手工的软件测试过程一样
自动化测试所需要的技巧与手工测试所需要的技巧是不一样的。
通常,你的项目经理会被那些测试工具销售们迷惑,认为自动化的软件测试就是简单地按一个录制的按钮,产生测试脚本。而事实上并没有那么简单。
区分自动化测试所需要的技巧与手工测试所需要的技巧是非常重要的。最重要的是,自动化测试工程师需要掌握软件开发技巧,没有接受任何培训的手工测试人员,或者没有编程背景的手工测试人员,在实施自动化测试时会碰到很多困难。
陷阱10:忘记了测试的最终目标:找到BUG
在自动化测试中,同样要注意把边界值分析、等价类分析、基于风险的测试方法、挑选最合适的测试用例等技术应用起来。
通常在自动化测试过程中,我们都忙着搭建自动化框架和编写测试脚本,但是我们往往忘记了测试的本来目的:找bug。
项目经理可能雇佣了最好的自动化开发人员来搭建框架,使用了最新最好的自动化开发技术,创建了成千上万的自动化测试脚本。但是如果BUG仍然被遗漏了,那些本该被自动化测试脚本捕捉到的BUG,结果没有被捕捉到,那么你的自动化测试仍然会被认为是失败的。
小结
正在你忧心重重,担心项目经理一步步迈向自动化测试的陷阱的时候,你看到了这篇文章,你决定拿给项目经理看看,希望他在看完这篇文章之后,对自动化测试有一个新的认识,从而把那只即将踏入陷阱的脚抽回来!
应该知道的自动化测试陷阱2相关推荐
- 自动部署 管道 ci cd_自动化测试在CI CD管道中的作用
自动部署 管道 ci cd 业界广泛采用的软件开发实践:持续集成和持续部署可确保良好地交付产品并经常交付. 常规代码提交需要常规/连续测试,而如果忽略它,则可能导致非弹性基础结构. 如何交付坚固的CI ...
- 自动化测试在CI CD管道中的作用
业界广泛采用的软件开发实践:持续集成和持续部署可确保良好地交付产品并经常交付. 常规代码提交需要常规/连续测试,而如果忽略它,则可能导致基础架构无法恢复. 如何交付坚固的CI CD管道? 对于许多公司 ...
- 【转载】自动化测试:为什么受伤的总是我?
自动化测试专家Elfriede Dustin在2008年10月的<Software Testing and Performance>杂志上发表文章,深入探讨了为什么如此多的自动化测试项目会 ...
- selenium自动化测试_您如何使用Selenium来计算自动化测试的投资回报率?
selenium自动化测试 跨浏览器测试是一种测试,需要大量的精力和时间. 通过不同的浏览器,操作系统,设备,屏幕分辨率测试Web应用程序,以评估针对各种受众的Web内容呈现的过程是一项活动. 特别是 ...
- 您如何使用硒来计算自动化测试的投资回报率?
跨浏览器测试是一种测试,需要大量的精力和时间. 通过不同的浏览器,操作系统,设备,屏幕分辨率测试Web应用程序,以评估针对各种受众的Web内容呈现的过程是一项活动. 特别是如果手动处理. 使用Sele ...
- 如何避免单元测试陷阱?
单元测试的目的是为了随着时间的变化,系统能够按预期工作.一来系统质量得到了保证,开发人员能够提前发现和解决问题,不用身陷bug的泥潭无法自拔:二来开发人员有更多的时间和精力去完善自己技术.提升自己的生 ...
- 这些问题你遇见过吗?职场中,新人必须堤防的6大陷阱
我们总是说一入职场深似海,与学生时代的青涩不同,职场中难免会产生利益纠纷和竞争的关系,由此引发出各式各样的矛盾,因此对于新人而言,初入职场,如何让自己不吃亏就成为了我们首要考虑的问题. 俗话说&quo ...
- Selenium-IDE脚本录制,selenium-side-runner自动化测试教程
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 昨天突然想学学 Selenium,就上网查了一些介绍,发现一些教程基本都是比较老版本的了,使用起来略有不便,所以今天试着写一些最新版本的.请参考Sel ...
- SAP UI5 应用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...
最新文章
- Spring MVC 五大组件
- 简单JS实现走马灯效果的文字(无需jQuery)
- asp.net中上传文件实例
- 调链接_古筝谱 |踏山河是七叔呢演唱歌曲 双手版 D调 简谱唱谱
- Python 面向对象(中)
- 关于外键,再唠叨一下下
- 学习HTML的第二次课
- iOS传感器开发——为APP添加手机密码、指纹进行安全验证
- winserver 08 64位安装sql05 64位提示asp版本注册
- manjaroLinux下安装mysql时初始化mysql出错解决办法
- 2020MathorCup第一届大数据赛B题Paddle方案
- Linux系统上QQ闪退的问题
- Windows 10 配置Java 环境变量
- 如何下载和安装iOS 15公测版【附更新建议】
- 破网与立网,数字螺旋下的适者生存
- 【BZOJ4200】【LOJ2134】【NOI2015】小园丁与老司机(DP,有源汇上下界最小流)
- 论文笔记 Digging into self-supervised monocular depth estimation
- element el-transfer穿梭框的使用,自定义穿梭框的数据项
- 伊隆 马斯克经典语录英文_我写关于伊隆·麝香的信时叫我出去
- Java中PO、BO、VO、DTO、POJO、DAO什么意思?