《 自动化测试最佳实践:来自全球的经典自动化测试案例解析》一一2.9 在经过一段很艰难的时光后才得到的经验教训

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 本节书摘来自华章出版社《 自动化测试最佳实践:来自全球的经典自动化测试案例解析 》一 书中的第2章,第2. 9节,作者:(英)Dorothy Graham Mark Fewster 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.9 在经过一段很艰难的时光后才得到的经验教训
在过去的三四年里,我们遇到了无数的困难:
软件测试变得非常成熟,有时反而会使我们忽略一些最简单的测试。比如,我们往往测试了复杂的SQL查询语句,却忽略了对在用户组之外创建新用户这类简单操作的测试。事实上,这种语句是不允许出现的,因为可能会由于在用户组的权限设置中没有考虑到这种情况而导致重大的错误。
我们过于关注大规模的自动化测试中的变化,导致有些非功能性测试有时并未得到足够的重视。比如,用户可能会获得只有专业人员才能看懂的错误提示消息,软件产品中经常缺少帮助功能,这些都是软件设计和测试中存在的问题。
使用随机生成的输入数据来进行测试时,有时虽然发现了严重的缺陷,但是因为测试人员能力有限,不能再重新生成导致故障的数据,所以并不能对调试过程产生任何帮助。经常讨论上述这种测试,一般是从经济的角度:它们通常需要额外的资源来辅助进行分析,并且在大多数情况下,并不能通过它们找到产生bug的原因,因此,也不可能通过它们找到产生软件缺陷的根本原因。
对自动化投入的评估主要看ROI的效果。如果不在比较的过程中引入其他因素,很有可能得出错误的故障报告。比如,我们要仔细地对结果进行比较,考虑到地域因素,有时要先进行转换再进行比较等。例如,当你在比较一台位于挪威境内的PC上的日期和一台位于美国境内的PC上的日期的时候,不同的时间格式(挪威为“日/月”而美国境内为“月/日”)导致时间显示的结果也会不同。
有时候通过软件来模拟物理故障并不是很容易,并且要模拟这些故障在多台电脑上几乎同时发生也是很困难的。此外,通过软件来模拟的断电和断网情形与实际发生的断电和断网也可能并不一样。
有时候可能会发生结果误报问题,因为测试时,即便遇到一个或多个失效也可能报告正确的结果。对于那些长期使用都未出现过故障的测试用例,往往更容易忽略对其正确性的检查。但随着时间的流逝,这些测试可能会不断积累许多错误,因此在报告中要不定期地对其正确性进行检查。
如果一些优先级比较低的次要bug没有立即修复,那么它们可能会掩盖一些主要bug,而这些主要bug由于引入的时间太长,往往更难对其进行分析。
必须要插入和修改等待时间来保证在测试继续运行之前,前面的强制性过程已经完成了。用更新的硬件取代现有硬件通常意味着要对这一过程再一次进行同步。
【真知灼见】
预测可能会发生改变的事物,并使它们在必要的时候更容易改变(例如,保存同步时间的核心列表)。
在测试套件的某些部分中,期望结果模板用来与实际结果进行比较。由于这类模板需要大量的维护工作,因此我们试图将这些基于模板的测试改为基于断言的测试。
引入新的平台有时会产生一些问题,并需要大量的资源来解决这些问题。同时,对操作系统的监控力度也要加大。
对于基于Windows的测试,要关闭自动更新,并将更新放在等待队列中,在测试可以中断的那个时段之前,再运行这些更新。
我们要清楚正在运行测试的网络中所发生的一切。比如,每隔一个月午夜时候出现一些无法解释的故障,最后发现,故障是由前雇员的一台电脑上的夜间执行工作所导致的:这台电脑没有关闭,而是仍然非常活跃地向本地网络发送查询请求的垃圾邮件。
【小窍门】
回头看有些错误是非常显而易见的,但你如果没有想到,它们可能就会困扰你。
建议定期做探索性测试,你将会对所发现的问题感到非常惊奇,同时,有时候你还可以将这些经验用于新的自动化测试中。

相关文章
|
4天前
|
设计模式 前端开发 JavaScript
自动化测试框架设计原则与最佳实践####
本文深入探讨了构建高效、可维护的自动化测试框架的核心原则与策略,旨在为软件测试工程师提供一套系统性的方法指南。通过分析常见误区,结合行业案例,阐述了如何根据项目特性定制自动化策略,优化测试流程,提升测试覆盖率与执行效率。 ####
23 6
|
20天前
|
机器学习/深度学习 安全 大数据
揭秘!企业级大模型如何安全高效私有化部署?全面解析最佳实践,助你打造智能业务新引擎!
【10月更文挑战第24天】本文详细探讨了企业级大模型私有化部署的最佳实践,涵盖数据隐私与安全、定制化配置、部署流程、性能优化及安全措施。通过私有化部署,企业能够完全控制数据,确保敏感信息的安全,同时根据自身需求进行优化,提升计算性能和处理效率。示例代码展示了如何利用Python和TensorFlow进行文本分类任务的模型训练。
59 6
|
11天前
|
存储 人工智能 自然语言处理
高效档案管理案例介绍:文档内容批量结构化解决方案解析
档案文件内容丰富多样,传统人工管理耗时低效。思通数科AI平台通过自动布局分析、段落与标题检测、表格结构识别、嵌套内容还原及元数据生成等功能,实现档案的高精度分块处理和结构化存储,大幅提升管理和检索效率。某历史档案馆通过该平台完成了500万页档案的数字化,信息检索效率提升60%。
|
14天前
|
PHP 开发者 容器
PHP命名空间深度解析与最佳实践####
本文深入探讨了PHP中命名空间(namespace)的机制、应用场景及最佳实践,旨在帮助开发者有效避免命名冲突,提升代码的组织性和可维护性。通过实例讲解,本文将引导您理解如何在实际项目中灵活运用命名空间,以及如何遵循业界公认的最佳实践来优化您的PHP代码结构。 ####
|
12天前
|
PHP 开发者
PHP 7新特性深度解析及其最佳实践
【10月更文挑战第31天】本文将深入探讨PHP 7带来的革新,从性能提升到语法改进,再到错误处理机制的变革。我们将通过实际代码示例,展示如何高效利用这些新特性来编写更加健壮和高效的PHP应用。无论你是PHP新手还是资深开发者,这篇文章都将为你打开一扇窗,让你看到PHP 7的强大之处。
|
21天前
|
Prometheus 监控 Cloud Native
实战经验:成功的DevOps实施案例解析
实战经验:成功的DevOps实施案例解析
36 6
|
20天前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
50 1
|
24天前
|
安全 Java
Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧
【10月更文挑战第20天】Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧,包括避免在循环外调用wait()、优先使用notifyAll()、确保线程安全及处理InterruptedException等,帮助读者更好地掌握这些方法的应用。
16 1
|
24天前
|
监控 安全 Java
构建高效后端服务:微服务架构深度解析与最佳实践###
【10月更文挑战第19天】 在数字化转型加速的今天,企业对后端服务的响应速度、可扩展性和灵活性提出了更高要求。本文探讨了微服务架构作为解决方案,通过分析传统单体架构面临的挑战,深入剖析微服务的核心优势、关键组件及设计原则。我们将从实际案例入手,揭示成功实施微服务的策略与常见陷阱,为开发者和企业提供可操作的指导建议。本文目的是帮助读者理解如何利用微服务架构提升后端服务的整体效能,实现业务快速迭代与创新。 ###
58 2
|
11天前
|
测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
【10月更文挑战第31天】 在当今快速迭代的软件开发环境中,自动化测试成为确保软件质量和加速产品上市的关键。本文探讨了自动化测试的重要性、实施策略以及一些最佳实践。通过分析不同类型的自动化测试工具和框架,本文旨在为软件开发团队提供一套实用的指导方案,以提高测试效率和质量。

热门文章

最新文章

推荐镜像

更多