浅谈自动化测试
浅谈自动化测试
为什么要做自动化
- 开发测试时间紧张, 回归测试任务巨大
- 人为手工测试带来的随意性、偶然性和不确定性
- 交付质量无法保证, 全靠运气
- 系统功能越多越复杂, 问题越多
- 开发时间长、代码质量差、测试缺陷多、上线问题多
自动化风潮的兴起
自动化、自动化现在只要是个测试的面试, 面试官就可能会问到自动化相关的问题, 不学可能就会失去相关的机会, 学了可能在某些公司也用不上, 该怎样权衡呢;
市场环境
个人认为, 在市场大环境的变化下, 很多的公司开始对软件质量越来越重视, 更愿意借助自动化测试的加持来提高对软件质量的把控, 所以现在对自动化测试和测试开发需求还是很多的; 但是不能改变现在测试还是以功能测试为主的现状, 大部分的公司体量都不大发展一般没有资源来推动自动化, 便宜好用就行可有可无影响好像都不大
测试要求
在自动化的风靡下, 对测试的要求也越来越高, 无论是学历、技能、经验方面很多公司都提出了更高的要求, 所以学习是非常有必要的, 这并不是一种内卷而是一种行业的健康发展。测试要求的知识面积也越来越广, 测试左移与右移的区间也越来越大, 这也要测试需要越来越专业而且具备一定的编码能力。
国内外测试对比
国内
- 测试门槛较低, 经过简单的培训或者不需要培训就能上手
- 竞争力较弱可替代性强且可有可无, 随时可以被踢掉
- 主要为功能测试
- 测试话语权低, 测试人员比低
国外
- 测试门槛较高, 大多数由经验丰富的开发担任
- 编码能力较强, 能够为公司开发测试工具
- 主要为自动化测试
- 测试话语权高, 测试人员比重高
从招聘条件来看国外对测试人员的能力要求是更高的, 除了初级测试以外其余的均会要求编码的相关能力, 但是也不能一概而论, 近年来国内测试的发展也向测试人员提出了更高的要求, 这其实对行业来说是很健康的。自动化测试重要吗?很重要, 学会肯定比只会点点点强一些, 知识的累计一定会让你摆脱开发眼中"弱鸡"的头衔
自动化实践的现实条件
公司支持
有的公司对软件的质量要求越来越高, 也会在相关的领域投入更多的资源;但是现有条件下, 大部分公司因为资源和体量大小的原因其实并不是太关注产品质量, 更多的还是对开发力量的关注, 有的公司甚至没有测试产品质量完全由开发决定, 或者测试没有话语权地位最低, 这是客观的现实。
开发对公司产生的是直接价值, 开发是创造者而测试则什么都没有, 在这种情况下在公司看来测试也只是开发的附庸, 好像可有可无都对公司没有损失, 公司情况不好时肯定是测试优先被开, 这也是实际情况。
领导支持
很多自动化实践的成功均离不来一个支持的上级(公司或者上级领导), 上级的强有力支持可以加速自动化实践的成功, 并为产品带来良性的发展
能力支持
由于需要写代码且涉及范围更广, 自动化的实施对测试也提出了更高的技能要求, 没有足够技能的测试人员是无法成功实践自动化测试的, 反而会适得其反
开发支持
自动化测试不仅仅是测试的事情, 也需要开发的支持, 仅仅靠测试一个人是无法完成自动化的, 开发的支持会减少测试自动化的实施难度, 而且开发的支持也是必要的, 测试与开发是密不可分的关系
自动化测试的目的与不足
目的
- 降低测试回归压力, 减少手动回归测试时间, 使测试人员能够专注于更重要的问题
- 降低人为因素带来的随意性、偶然性和不确定性
- 提高回归覆盖率
- 提高产品的稳定型和交付质量
不足
- 无法发现新的bug, 新的功能无法快速使用自动化测试, 只能用于回归和冒烟测试
- 人力投入增加, 增加了测试代码的维护任务
- 不是所有所有系统所有功能都适合做自动化测试
- 测试技能要求较高, 需要测试人员拥有一定的编码能力, 测试团队能力不足也不适合推动自动化, 只有一个人的自动化实践是失败的