其他分享
首页 > 其他分享> > 自动化测试测试技术

自动化测试测试技术

作者:互联网

手工测试优点:

  1. 测试人员的经验可以继承,对错误有猜测能力
  2. 测试人员有审美能力和心理体验
  3. 测试人员有逻辑推断能力

自动化的优点

综述:提高测试效率,提高测试覆盖率,提高测试的一致性和更快的反馈测试结果。


自动化测试的缺点


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

第一,需求稳定,不会频繁变更。

自动化测试最怕的就是需求不稳定,过高的需求变更频率会导致自动化测试用例的维护成本直线上升。刚刚开发完成并调试通过的用例可能因为界面变化,或者是业务流程变化,不得不重新开发调试。所以自动化测试更适用于需求相对稳定的软件项目。

第二,研发和维护周期长,需要频繁执行回归测试。

1.在我看来,软件产品比软件项目更适合做自动化测试。首先,软件产品的生命周期一般都比较长,通常会有多个版本陆续发布,每次版本发布都会有大量的回归测试需求。
同时,软件产品预留给自动化测试开发的时间也比较充裕,可以和产品一起迭代。
其次,自动化测试用例的执行比高于 1:5,即开发完成的用例至少可以被有效执行 5 次以上时,自动化测试的优势才可以被更好地体现。 2.对于软件项目的自动化测试,就要看项目的具体情况了。
如果短期的一次性项目,就算从技术上讲自动化测试的可行性很高,但从投入产出比(ROI)的角度看并不建议实施自动化,因为千辛万苦开发完成的自动化用例可能执行一两次,项目就结束了。我还遇到过更夸张的情况,自动化测试用例还没开发完,项目都已经要上线了。所以,对于这种短期的一次性项目,我觉得你应该选择手工探索式测试,以发现缺陷为第一要务。
而对于一些中长期项目,我的建议是:对比较稳定的软件功能进行自动化测试,对变动较大或者需求暂时不明确的功能进行手工测试,最终目标是用 20% 的精力去覆盖 80% 的回归测试。

第三,需要在多种平台上重复运行相同测试的场景。

这样的场景其实有很多,比如:
对于 GUI 测试,同样的测试用例需要在多种不同的浏览器上执行;
对于移动端应用测试,同样的测试用例需要在多个不同的 Android 或者 iOS 版本上执行,或者是同样的测试需要在大量不同的移动终端上执行;对于一些企业级软件,如果对于不同的客户有不同的定制版本,各个定制版本的主体功能绝大多数是一致的,可能只有个别功能有轻微差别,测试也是需要覆盖每个定制版本的所有测试;这些都是自动化测试的最佳应用场景,因为单个测试用例都需要被反复执行多次,能够使自动化测试的投资回报率最大化。

第四,某些测试项目通过手工测试无法实现,或者手工成本太高。

对于所有的性能和压力测试,很难通过手工方式实现。
比如,某一个项目要求进行一万并发用户的基准性能测试(Benchmark test),难道你真的要找一万个用户按照你的口令来操作被测软件吗?又比如,对于 7×24 小时的稳定性测试,难道你也要找一批用户没日没夜地操作被测软件吗?这个时候,你就必须借助自动化测试技术了,用机器来模拟大量用户反复操作被测软件的场景。当然对于此类测试是不可能通过 GUI 操作来模拟大量用户行为的。

第五,被测软件的开发较为规范,能够保证系统的可测试性。

从技术上讲,如果要实现稳定的自动化测试,被测软件的开发过程就必须规范。比如,GUI 上的控件命名如果没有任何规则可寻,就会造成 GUI 自动化的控件识别与定位不稳定,从而影响自动化测试的效率。另外,某些用例的自动化必须要求开发人员在产品中预留可测试性接口,否则后续的自动化会很难开展。比如,有些用户登录操作,需要图片验证码,如果开发人员没有提供绕开图片验证码的路径,那么自动化测试就必须借助光学字符识别(OCR)技术来对图片验证码进行模式识别,而它的设计初衷是为了防止机器人操作,可想而知 OCR 的识别率会很低,就会直接影响用例的稳定性。

第六,测试人员已经具备一定的编程能力。

如果测试团队的成员没有任何开发编程的基础,那你想要推行自动化测试就会有比较大的阻力。这个阻力会来自于两个方面:前期的学习成本通常会比较大,很难在短期内对实际项目产生实质性的帮助,此时如果管理层对自动化测试没有正确的预期,很可能会叫停自动化测试;
测试工程师通常会非常热衷于学习使用自动化测试技术,以至于他们的工作重点会发生错误的偏移,把大量的精力放在自动化测试技术的学习与实践上,而忽略了测试用例的设计,这将直接降低软件整体的质量。
自动化测试是,把人工对软件的测试转化为由机器执行测试行为的一种实践,可以把测试工程师从机械重复的测试工作中解脱出来,将更多的精力放在新功能的测试和更全面的测试用例设计上。
然而自动化测试试一把“双刃剑”,虽然它可以从一定程度上解放测试工程师的劳动力,完成一些人工无法实现的测试,但并不适用于所有的测试场景,如果维护自动化测试的代价高过了节省的测试成本,那么在这样的项目中推进自动化测试就会得不偿失。

什么样的项目不适合自动化测试

你们的自动化测试的实践策略是怎么样的?

自动化技术的种类

你们的自动化(用例执行自动化)流程是怎么样的?

自动化测试的设计原则

你在自动化测试中遇到什么问题?

自动化测试的常见使用场景

如果让你来从零主导,如何开展自动化测试?

前期准备

  1. 评估被测项目是否适合做自动化测试(什么样的项目、团队适合开展自动化测试?)
  2. 评估被测项目适合在哪些功能模块做自动化测试(什么样的功能模块适合开展自动化测试?)
  3. 确定使用何种测试工具、测试框架
  4. 评估开展自动化测试需要哪些资源,包括:人员、机器、时间;
  5. 当前可用或是可以申请到的资源
  6. 如何在不影响日常测试工作的前提下,开展自动化测试工作

启动自动化测试工作

  1. 确定自动化测试框架的开发原则
  2. 搭建自动化测试框架
  3. 确定自动化测试用例的编写原则
  4. 根据功能测试用例,筛选可转换为自动化测试用例的用例集,评审
  5. 编写自动化测试用例
  6. 评审自动化测试用例
  7. 编写自动化测试脚本
  8. 调试自动化测试脚本
  9. 运行自动化测试脚本
  10. 输出测试结果,将报告发送至同事邮箱

后期工作

  1. 完善自动化测试用例
  2. 定期根据实际情况,调优自动化测试脚本、框架
  3. 集成 CI,定时执行自动化测试脚本,自动发送测试结果到同事邮箱

如何挑选自动化测试框架/工具?

根据测试类型进行初步区分

接口自动化测试

UI 自动化测试

性能测试

自动化测试用例覆盖度到什么程度?

标签:脚本,手工,技术,测试用例,测试,自动化,执行
来源: https://www.cnblogs.com/profoundwu/p/auto-test.html