• 自动化测试认知


    软件测试基础之-自动化认知

    标签(空格分隔): 自动化


    自动化定义:

    自动化测试,是由人对软件的行为转化为机器执行测试行为的一种实践,对于常见的GUI自动化测试来说讲,就是有自动化测试工具模拟之前需要人工软件界面上的各种操作;

    自动化本质:

    自动化的本质是先写一段代码,然后测试另一段代码,所以实现自动化测试用例本身属于开发工作,需要投入大量的时间和精力,并且已经开发完的成的项目还要随着迭代不断的更新自己的代码,你需要付出维护的成本;

    *:
    当你发现自动化的维护成本高于其节省的测试成本的时间的时候,自动化的测试就失去了价值和意义,你也需要在是否使用自动化的基础上衡量取舍了;

    为什么需要自动化测试

    自动化的优势:

    1.自动化可以代替手工大量的重复的工作,测试可以把大量的时间放在用例设计和新功能上边
    2.自动化可以大量提升回归测试效率,特别适合敏捷开发
    3.自动化可以大量的利用无人值守的时间去执行用例,特别适合非工作是爱你执行测试,工作时间分析测试用例失败的工作模式
    4.自动化可以实现某种测试无法完成或者付出巨大的代价测试类型,比如关键业务的测试7*24持续运行系统的稳定性和高并发场景的压力测试;
    5.自动化可以保证每次执行的操作和验证的一致性和可重复性,避免认为的遗漏和疏忽;

    自动化的劣势和坑:

    1.自动化不能代替手工,他只能代替手工测试中执行频率高,机械化重复的步骤,千万不要奢望所有的测试都要自动化,否则会得不偿失;
    2.自动比起手工测试脆弱,无法对测试系统的变化做出识别,业界流传:开发手一抖,自动化测试忙一宿,这也从侧面反应了,自动化测试一直居高不下的事实,原因自动化不具备智能识别,只能按部就班按的测试,没有任何的处理能力;
    3.自动化测试的开发工作量远远大于单次的手工测试,所以只有开发完成的手工测试大于5次,才能收回自动化测试的成本;
    4.手工测试发现的bug通常回比自动化发现的错误多,且自动化只能发现回归测试的缺陷;
    5.测试效率很大程度上依赖自动化用例设计以及实现质量,不稳定的自动化比没有自动化更糟糕;

    什么样的项目适合自动化:

    1.需求稳定不会频繁变更
    2.研发和维护周期长,需要频繁的回归测试;
    3.需要多个平台重复运行相同的测试场景;
    4.某些测试项目无法通过手工测试实现,或者手工的成本高;
    5.被测试软件开发较为规范,能够保证系统的稳定可测试性;
    6.测试具备编码能力

  • 相关阅读:
    浅谈Java两种并发类型——计算密集型与IO密集型
    设置线程池的大小
    Java 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecuto
    gitlab的简单操作
    GitHub vs GitLab:区别?
    前端小知识汇总
    花里胡哨的CSS集锦
    码云如何上传代码
    小程序自定义底部导航
    Vue实践过程中的几个问题
  • 原文地址:https://www.cnblogs.com/surewing/p/11601304.html
Copyright © 2020-2023  润新知