《 自动化测试最佳实践:来自全球的经典自动化测试案例解析》一一3.3 如何实施TiP

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

3.3 如何实施TiP
第一步是让测试经理也支持这些指导原则,然后再与团队的资深成员紧密合作,并根据所有主要功能区对原则进行评审。这一过程保证了我们之间没有隔阂,并且能够很好地在不同领域利用测试人员的专业技术知识。这个虚拟团队定义了40多个场景,这些场景代表了视为最重要的功能的宽度。
【真知灼见】
避免白费力气做重复的工作;尽可能地复用现有的自动化测试件。
第二步是决定如何将上面的40多个场景在整个产品系统中具体实施。如前所述,我们要尽可能地重用已有的资产,所以我们集中精力尽快定义和开发出所需的测试。最初实施时,我们决定使用现有的测试执行框架来运行测试,那样的话,就可以重用现有的测试报告工具、机器管理等,这也使得我们可以利用现有的自动化测试库。
我们的第一次实施的具体结构见图3-1。每小时执行引擎都会自动部署一台新机器,并安装相应的客户库、工具和测试,也安装一个“云定义”文件,该文件以一种通用方法描述了目标环境。测试本身并不知道目标环境的任何信息,通过这种抽象的方法我们可以指向某个数据中心、某个逻辑单元或者某台特定的机器(实际上现在是在预检入工作流中完成的)。
【小窍门】
另一种级别的抽象:将测试从机器和它们所运行的环境中分离出来。
图3-1是TiP系统拓扑结构的第一个版本,具有如下特点:
1)部署一台自动化测试主机,在特定的数据中心运行测试。
2)将测试结果发送到Focus测试执行(Focus Test Execution, FTE)服务器上,它将对测试结果进行处理(Focus是工具的名称)。
3)结果将保存到一个公用数据库上。
4)在运行过程中,TiP诊断服务周期性地对结果进行收集。
5)收集的结果会返回给数据库。
6)遇到问题时,产品bug会自动显示出来。
7)诊断服务给管理区发送一个请求信息,包含分页调度和报警信号的逻辑信息。
8)请求信息被发送到SCOM根管理系统(Root Management System,RMS)进行处理。SCOM的警报解除了,同时启动相应的响应处理机制。

image

图3-1 Exchange TiP第一个版本的系统拓扑结构
最初,在将服务提供(为用户注册和新建邮箱)给新用户之前,我们通过测试来验证服务的新部署。后来我们发现,尽管如此,与传统的以软件为中心的世界中我们只需保证软件质量不同的是,我们现在所经营的服务是一直变化的。不仅配置(域名系统(Domain Name System, DNS)、补丁、新的租户等)经常发生变化,更新的变化也很多,这意味着随着时间的增长,可能会遇到没有测试过或预料到的更新或者小的配置变动。根据我们的经验,即便是对产品来说安全的改变也可能会使服务中断。这也是为什么我们决定采用连续运行测试的方式,而不仅仅只是在进行部署的时候运行一次。
TiP具有一点类似产品服务监控器的作用;然而,相比于传统的轻量级服务监控,我们所运行的测试集更深入,端到端(end-to-end)场景鲁棒性更强。同样,TiP测试就变成了煤矿中的金丝雀,能对潜在用户面临问题提供更早的警报。过去是使用其他构建在Microsoft System Center顶端的基于代理的监控解决方案,然而,这些代理只是停留在单机器层面。TiP测试作为最终用户来运行,并且当它们使用性能降低的时候,会发出警告。
【真知灼见】
不要仅仅通过一种途径来实施自动化,尽可能使用多种有用的方法。不同方法之间可以互补并且往往比单独使用一个方法更有效。
作为我们整个决策的一部分,我们决定停止使用第三方服务,像Gomez和Keynote。虽然在整个决策中非常重要,这种类型的监控关注的主要是一些比较片面的场景(比如登录)的服务可用性。与此同时,TiP场景的宽度比其他测试要小(高级测试只有40个测试用例,而实验室运行的端到端的场景中有70 000多个测试),所以比一般服务的深度肯定是要大些。
通过使用自己的基础设施,例如,我们可以很容易地给手机的ActiveSync协议添加新的验证信息,这在传统的黑盒监控环境中是很难做到的,因为协议具有复杂性。另一方面是敏捷度,根据产品环境和测试本身,在数据中心我们可以进行更改并对更改作出快速回应。因此,正如只关注单机器的SCOM监控基础设施一样,这些TiP测试对外部黑盒测试是一种补充,而不是取代它。

相关文章
|
8天前
|
开发框架 .NET 中间件
.net8 使用 license 证书授权案例解析
本文介绍了如何使用 `.NET CLI` 创建并改造一个 `ASP.NET Core Web API` 项目,以实现基于许可证的授权机制。具体步骤包括创建项目、添加必要的 NuGet 包(如 `Standard.Licensing` 和 `Swashbuckle.AspNetCore`),以及修改 `Program.cs` 文件以集成自定义的许可证验证中间件。项目结构中新增了 `LicenseController` 接口用于处理授权相关操作,并通过测试流程验证了默认天气接口在未授权和授权状态下的响应情况。整个过程确保了应用程序能够在启动时正确验证许可证,保障系统的安全性与可控性。
45 8
.net8 使用 license 证书授权案例解析
|
2月前
|
存储 人工智能 NoSQL
Tablestore深度解析:面向AI场景的结构化数据存储最佳实践
《Tablestore深度解析:面向AI场景的结构化数据存储最佳实践》由阿里云专家团队分享,涵盖Tablestore十年发展历程、AI时代多模态数据存储需求、VCU模式优化、向量检索发布及客户最佳实践等内容。Tablestore支持大规模在线数据存储,提供高性价比、高性能和高可用性,特别针对AI场景进行优化,满足结构化与非结构化数据的统一存储和高效检索需求。通过多元化索引和Serverless弹性VCU模式,助力企业实现低成本、灵活扩展的数据管理方案。
88 12
|
3月前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
|
3月前
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
303 76
|
3月前
|
存储 监控 调度
云服务器成本优化深度解析与实战案例
本文深入探讨了云服务器成本优化的策略与实践,涵盖基本原则、具体策略及案例分析。基本原则包括以实际需求为导向、动态调整资源、成本控制为核心。具体策略涉及选择合适计费模式、优化资源配置、存储与网络配置、实施资源监控与审计、应用性能优化、利用优惠政策及考虑多云策略。文章还通过电商、制造企业和初创团队的实际案例,展示了云服务器成本优化的有效性,最后展望了未来的发展趋势,包括智能化优化、多云管理和绿色节能。
|
3月前
|
PHP 开发者 容器
PHP命名空间深度解析及其最佳实践####
本文深入探讨了PHP中引入命名空间的重要性与实用性,通过实例讲解了如何定义、使用及别名化命名空间,旨在帮助开发者有效避免代码冲突,提升项目的模块化与可维护性。同时,文章还涉及了PHP-FIG标准,引导读者遵循最佳实践,优化代码结构,促进团队协作效率。 ####
49 1
|
3月前
|
监控 数据管理 测试技术
API接口自动化测试深度解析与最佳实践指南
本文详细介绍了API接口自动化测试的重要性、核心概念及实施步骤,强调了从明确测试目标、选择合适工具、编写高质量测试用例到构建稳定测试环境、执行自动化测试、分析测试结果、回归测试及集成CI/CD流程的全过程,旨在为开发者提供一套全面的技术指南,确保API的高质量与稳定性。
|
3月前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
70 4
|
3月前
|
Java 数据库连接 开发者
Java中的异常处理机制:深入解析与最佳实践####
本文旨在为Java开发者提供一份关于异常处理机制的全面指南,从基础概念到高级技巧,涵盖try-catch结构、自定义异常、异常链分析以及最佳实践策略。不同于传统的摘要概述,本文将以一个实际项目案例为线索,逐步揭示如何高效地管理运行时错误,提升代码的健壮性和可维护性。通过对比常见误区与优化方案,读者将获得编写更加健壮Java应用程序的实用知识。 --- ####
|
4天前
|
存储 JSON API
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。

热门文章

最新文章

推荐镜像

更多