热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

自动测试容易失败?这5个原因你值得反思!

之前在某测试论坛中,吐槽自己公司自动化测试项目失败,大概过程是自己所在部门的自动化测试经历了几次步进式的建设,都具有阶段性的成果ÿ

在这里插入图片描述
之前在某测试论坛中,吐槽自己公司自动化测试项目失败,大概过程是自己所在部门的自动化测试经历了几次步进式的建设,都具有阶段性的成果,但是总的看来却不是一个成功的案例。

因为赶进度,仓促的投入让一大堆的脚本质量比较低下,有几个测试组由于没有人力投入自动化开发而又不得不完成自动化的KPI,只好聘请外包来帮忙完成自动化。

理智地想一想,咱们花的那点钱请到过真正精通自动化技术又肯主动深入考察我们公司业务系统特征的外包么?况且外包终究还是要离开的,所以我们不得不接收一堆没有经过精心设计、没有组织性的脚本——尤其是在没有通用测试框架的情况下。且不说UI测试的自动化脚本本身就运行不了多久就会面临界面变更,单单是要让我们接收别人迥然不同的设计风格就是一件很难的事情。

结果呢?要么延续这种无组织性,让脚本数量更加庞大、更加杂乱无章,要么就是放弃对这些脚本的维护,任其自生自灭,最终变成一堆废材。

为了尽早解决这些问题,下面汇总了自动测试失败的五个主要原因。始终注意这些问题,可以作为参考,让自动化项目朝着正确方向进行测试自动化的指南。
在这里插入图片描述


遗忘手动测试

测试自动化工作可能失败的另一个原因是,测试团队可能没有在自动化与手动测试之间取得平衡,具体参考:自动化和手动测试,保持平衡!。如上所述,测试自动化并不能摆脱手动测试。相反,质量保障团队应该提供了更多时间和精力专注于仍需要人为操作的测试:参考手动测试存在的重要原因。

为了使自动化成为更具战略意义的决策,应该在进行自动化测试时要牢记手动测试。手动测试的目的与自动测试的目的完全不同,这会影响手动测试的设计,制定策略和执行方式。此外,业务测试人员拥有一套独特的技能,这使它们对于任何测试团队而言都是无价之宝,手动测试存在的重要原因。他们具有商业知识,可以更深入地测试应用程序,并且具有创建机器无法独立考虑的测试所必需的直觉。


业务逻辑更改

自动化测试对于重复性测试特别有用,但前期会占用大量时间和资源投入。无论是像测试登录过程一样简单,还是测试系统核心功能一样复杂,这些都是可以从自动化中受益的出色测试示例。
  
但是,当要更改网站用户界面时会发生什么?例如,当调整登录按钮以使站更加人性化时会发生什么?有解决这些问题的简单解决方案。
  
自动化测试对于重复性测试特别有用,但前期会占用大量时间和资源投入。无论是像测试登录过程一样简单,还是像检查主功能一样复杂,这些都是可以从自动化中受益的出色测试示例。

现在,即使使用的工具拥有很高的机器学习算法准确率,当这些测试仍然失败时,会发生什么?一个重要的免责声明是,尽管AI可以在更改应用程序后使测试维护更加容易,但是当所测试的流程发生变化时,它就无济于事。回到登录示例,AI可以正确克服更改的登录按钮,而无需任何人工干预。但是,它无法完成将登录过程添加一个全新步骤的测试,例如两因素身份验证或完善其他个人资料。为了阻止此测试的中断,测试人员需要进入并修改测试以在登录过程中包括此附加步骤,参考如何维护自动化测试。


及时更新流程

正确实施后,您可以快速掌握可以节省多少时间,以及它如何帮助QA团队更加融入软件开发流程。但是,长期采用自动化技术的公司有时可能会因需要定期进行的大量自动化测试方案而感到困惑。质量检查测试人员可能有一些自动化测试,在测试新功能时会经常使用这些测试,但随着时间的推移,其他测试可能会过时且麻烦。为确保测试自动化工作继续团队受益,重要的是要花时间优化现有的测试自动化套件。尤其是当测试自动化操作更加成熟时,重要的是要回过头来确保旧测试用例仍然有用,而不是仅仅专注于自动化新领域。这将使测试操作保持精简,并使团队更容易扩展测试自动化。

在这里插入图片描述


未选择正确的工具

在选择适合的自动化测试工具,了解工具的范围以及它提供的功能是否与团队的优先事项兼容很重要。

没有选择正确的工具来满足自动化测试的需求。在选择自动化测试工具时,了解工具的范围以及它提供的功能是否与团队的优先事项兼容很重要,建议选择商业工具,次之开源。
 
有些公司可能正在寻找与移动应用程序兼容的解决方案,而另一些公司可能会优先考虑可以在其框架内运行的工具。请参考:如何选择正确的自动化测试工具、如何选择API测试工具。


资源分享

下面这些是我的收集和整理的资料,对于开始学习【软件测试】或是技能进阶的朋友来说,绝对是最全面的教程仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你
在这里插入图片描述

关注【程序媛木子】微信公众号测试资源将免费获取,技术交流群(644956177)


推荐阅读
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • 择要:Fundebug的JavaScript毛病监控插件同步支撑Vue.js异步毛病监控。Vue.js从降生至今已5年,尤大在本年2月份宣布了严重更新,即Vue2.6。更新包含新增 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 使用Pandas DataFrame探索十大城市房价与薪资对比
    在本篇文章中,我们将通过Pandas库中的DataFrame工具,深入了解中国十大城市的房价与薪资水平,探讨哪些城市的生活成本更为合理。这是学习Python数据分析系列的第82篇原创文章,预计阅读时间约为6分钟。 ... [详细]
  • 深入探讨Web服务器与动态语言的交互机制:CGI、FastCGI与PHP-FPM
    本文详细解析了Web服务器(如Apache、Nginx等)与动态语言(如PHP)之间通过CGI、FastCGI及PHP-FPM进行交互的具体过程,旨在帮助开发者更好地理解这些技术背后的原理。 ... [详细]
  • Golang与微服务架构:构建高效微服务
    本文探讨了Golang在微服务架构中的应用,包括Golang的基本概念、微服务开发的优势、常用开发工具以及具体实践案例。 ... [详细]
  • [编程题] LeetCode上的Dynamic Programming(动态规划)类型的题目
    继上次把backTracking的题目做了一下之后:backTracking,我把LeetCode的动态规划的题目又做了一下,还有几道比较难的Medium的题和Hard的题没做出来,后面会继续 ... [详细]
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 深度学习与神经网络课程总结
    本文档总结了神经网络和深度学习课程中的关键概念和理论,包括机器学习的基本要素、算法类型以及数据特征表示等。 ... [详细]
  • 本文介绍了两个重要的Node.js库——cache-content-type和mime-types,它们在处理HTTP响应头时非常有用。cache-content-type是基于mime-types构建的,并且实现了缓存机制以提高性能。 ... [详细]
  • 本文详细记录了一位Java程序员在Lazada的面试经历,涵盖同步机制、JVM调优、Redis应用、线程池配置、Spring框架特性等多个技术点,以及高级面试中的设计问题和解决方案。 ... [详细]
  • 本文介绍了推荐系统的基本概念及其在个性化服务中的重要作用,重点探讨了协同过滤算法的工作原理,包括基于用户的协同过滤和基于物品的协同过滤两种方式,并详细解释了几种常见的相似度计算方法。 ... [详细]
  • 来自FallDream的博客,未经允许,请勿转载,谢谢。一天一套noi简直了.昨天勉强做完了noi2011今天教练又丢出来一套noi ... [详细]
  • 本文探讨了一个Web工程项目的需求,即允许用户随时添加定时任务,并通过Quartz框架实现这些任务的自动化调度。文章将介绍如何设计任务表以存储任务信息和执行周期,以及如何通过一个定期扫描机制自动识别并加载新任务到调度系统中。 ... [详细]
author-avatar
mobiledu2502903113
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有