测试动态 / 质量专栏 / 测试可观察性对 DevSecOps 的好处
测试可观察性对 DevSecOps 的好处
2023-04-13 浏览次数:1473

  想象一下,您正在开发物联网产品。它可能是连接到安全警报器的门铃,或者可能是从您的手机到您的汽车的连接。无论哪种方式,系统都由一系列复杂的 Web 服务组成。这些产品通常有一个连接到外部服务的本地“集线器”(您的路由器或车辆),以及一个位于数据中心的后端,需要身份验证。现在想象出了什么问题。邻居按了门铃,或者你点击打开车门,然后……没有任何反应。什么地方出了错?

  这可能是手持移动设备、路由器、设备、互联网、与后端的连接、后端服务或什至是我们不知道的其他依赖项的问题。我们大多数寻求测试帮助的人都是在构建复杂的产品。当出现问题时,我们需要了解哪个组件发生故障、它处于什么状态以及它发送了什么输入。

  输入可观察性。可观察性是系统状态的内部元素可以从给定的交互中被理解的程度。高度可观察的系统是“黑匣子”的对立面;你可以看到它的内部。本博客将从调试和测试开始深入探讨可观察性的好处。

  调试

  这是第一步——哪个组件失败了?是门口的硬件、路由器还是互联网?对于简单的程序,程序员有一个“调用堆栈”,可以跟踪错误发生的位置、调用了哪些方法以及传入了哪些调用值。API 调用堆栈没有什么不同——我们可以看到消息来自设备到路由器,然后……什么都没有。

  当然,有时软件会注册一个合法的错误。其他时候,事情只是需要太长时间。在一个汽车项目中,我们会看到一切正常,但门解锁或喇叭鸣笛可能需要两分钟的时间来处理。在没有可观察性的情况下,故障单是“车门解锁速度慢”。通过可观察性,我们可以看到消息在流程的每个步骤中何时离开。为了提高性能,我们需要这些数据,这样我们就可以找到过程中花费时间最长但不应该花费的步骤,并减少它。没有它,团队基本上只能猜测、戳戳和刺激。

  测试设置

  没有可观察性,我们不知道究竟出了什么问题。相反,程序员必须尝试重复场景并重新运行练习,直到出现问题,将软件作为一个系统进行测试。有时,问题可能出在网络、无线连接或路由器上,导致“不稳定的测试”或“无法重现”错误。

  可观察性为我们提供了软件的完整踪迹。在闰年为 GETNEXTDAY 函数调用 API 时,API 本身会锁定。不要笑得太厉害;这导致了顶级公司的失败。

  可重复的错误有助于进行出色的自动化检查。一旦检查到位(并且失败),程序员就可以修复代码——并且“代码在测试运行时完成”。这意味着当生产中出现问题时,程序员可以从编写测试开始,然后编写代码修复它,然后运行回归套件,接近本质上持续交付的修复时间。

  为此,程序员需要知道哪个组件因什么输入而失败。为了快速(有时甚至完全)获取该信息,团队需要可观察性。

  扩展和增长

  任何简单的系统,例如汽车或自行车,其强度取决于最薄弱的部分。首先发生的事情——轮胎破裂或链条断裂——将破坏整个系统。软件系统也是如此,尤其是性能方面。过载的单个组件(如数据库)可能会导致整个网站瘫痪。在该组件损坏之前,它会显示出压力,它会变慢。客户可能不会抱怨;如果他们这样做,客户服务将无能为力。大多数可观察性工具都提供性能仪表板,因此您可以查看哪些子系统正在减慢速度。按响应时间排序(平均值,或者更好的是,中值),查看异常值,甚至计算减速度——模块减慢了多少。

  这为准确的性能测试提供了数据,也为准确的性能改进提供了数据。想象一下,在发生迫使您离开公路的事故之前,加固自行车链条或更换轮胎。就软件而言,我们可以使用延迟成本来计算改进的价值。这意味着我们可以计算可观测性项目的投资回报率!

  流量图的另一个优点是可以防御中间人攻击和其他攻击。该图表可以显示离开网站的流量,并允许您深入了解它。一个配置良好的系统实际上可以在第一个无效数据包开始传输数据时发出警报,例如中间人攻击。

  建立弹性

  “高可用性”正迅速变得不再是一种竞争优势,而是越来越多的业务成本。大多数公司获得高可用性的方法是减少平均无故障时间 (MTTF)。这可能意味着部署之间的延迟以及更严格的测试。该测试非常昂贵。在软件交付之前,公司无法获取软件的价值。持续交付变得不可能。

  实现该结果的另一种方法是专注于减少平均发现时间 (MTTD) 和平均恢复时间 (MTTR)。一个传统的 scrum 团队每两周修复一次错误,并在每个冲刺结束时进行部署,这将比一个可以在一小时内找到并修复缺陷的团队慢三百倍。能够更快响应的团队的缺陷数量可能是传统 Scrum 团队的 30 倍,但负面客户体验却只有传统 Scrum 团队的十分之一。

  一小时的停机时间听起来很雄心勃勃——但想象一下,一个仪表板会报告 500 个错误、登录错误和其他出现的 API 错误。不仅是报告,还有带有文本的警报。毕竟,500 错误意味着某些东西被破坏了。这可能意味着更多的操作时间,但如果消除了调试和指责,实际上可能意味着更少。

  底线

  即使是一个简单的现代 Web 应用程序也由组件组成——网页本身、javascript 胶水、前端 API、后端 API、第三方身份验证等等。那就是分布式系统,分布式系统有多个故障点。如果我们观察到这些故障点,我们可以快速发现并修复问题。另一方面,如果我们把整个系统当作一个黑盒子,那么当有什么东西坏了时,我们所能做的就是戳戳。

  缺乏可观察性是最近失败的一种模式。例如,在 1 月份,空中任务失败通知导致美国所有航空公司的航班停飞 20 小时,但没有人知道究竟出了什么问题。有了可观察性,故障只需几分钟到几分钟就能被隔离和发现。想象一下,如果商业航空停机一个小时或三十分钟。有几个人会迟到,但大部分行程都可以在空中补上。

  您愿意让您的网站停机半小时还是一天?这是你的选择。

        卓码软件测评是一家[ 具备CMA、CNAS双重资质 ]的专业做软件测试的第三方软件测试服务机构, 可根据您的需求提供各类软件测试服务,并出具合格有效的软件测试报告。点击→→可了解测试报价

        部分文字、图片来自网络,如涉及侵权,请及时与我们联系,我们会在第一时间删除或处理侵权内容。负责人:曾菲       电话:4006070568


文章标签: 软件测试
热门标签 换一换
软件崩溃 稳定性测试 API测试 API安全测试 网站测试测评 敏感数据泄露测试 敏感数据泄露 敏感数据泄露测试防护 课题软件交付 科研经费申请 软件网站系统竞赛 竞赛CMA资质补办通道 中学生软件网站系统CMA资质 大学生软件网站系统CMA资质 科研软件课题cma检测报告 科研软件课题cma检测 国家级科研软件CMA检测 科研软件课题 国家级科研软件 web测评 网站测试 网站测评 第三方软件验收公司 第三方软件验收 软件测试选题 软件测试课题是什么 软件测试课题研究报告 软件科研项目测评报告 软件科研项目测评内容 软件科研项目测评 长沙第三方软件测评中心 长沙第三方软件测评公司 长沙第三方软件测评机构 软件科研结项强制清单 软件课题验收 软件申报课题 数据脱敏 数据脱敏传输规范 远程测试实操指南 远程测试 易用性专业测试 软件易用性 政府企业软件采购验收 OA系统CMA软件测评 ERP系统CMA软件测评 CMA检测报告的法律价值 代码原创性 软件著作登记 软件著作权登记 教育APP备案 教育APP 信息化软件项目测评 信息化软件项目 校园软件项目验收标准 智慧软件项目 智慧校园软件项目 CSRF漏洞自动化测试 漏洞自动化测试 CSRF漏洞 反序列化漏洞测试 反序列化漏洞原理 反序列化漏洞 命令执行 命令注入 漏洞检测 文件上传漏洞 身份验证 出具CMA测试报告 cma资质认证 软件验收流程 软件招标文件 软件开发招标 卓码软件测评 WEB安全测试 漏洞挖掘 身份验证漏洞 测评网站并发压力 测评门户网站 Web软件测评 XSS跨站脚本 XSS跨站 C/S软件测评 B/S软件测评 渗透测试 网站安全 网络安全 WEB安全 并发压力测试 常见系统验收单 CRM系统验收 ERP系统验收 OA系统验收 软件项目招投 软件项目 软件投标 软件招标 软件验收 App兼容性测试 CNAS软件检测 CNAS软件检测资质 软件检测 软件检测排名 软件检测机构排名 Web安全测试 Web安全 Web兼容性测试 兼容性测试 web测试 黑盒测试 白盒测试 负载测试 软件易用性测试 软件测试用例 软件性能测试 科技项目验收测试 首版次软件 软件鉴定测试 软件渗透测试 软件安全测试 第三方软件测试报告 软件第三方测试报告 第三方软件测评机构 湖南软件测评公司 软件测评中心 软件第三方测试机构 软件安全测试报告 第三方软件测试公司 第三方软件测试机构 CMA软件测试 CNAS软件测试 第三方软件测试 移动app测试 软件确认测试 软件测评 第三方软件测评 软件测试公司 软件测试报告 跨浏览器测试 软件更新 行业资讯 软件测评机构 大数据测试 测试环境 网站优化 功能测试 APP测试 软件兼容测试 安全测评 第三方测试 测试工具 软件测试 验收测试 系统测试 测试外包 压力测试 测试平台 bug管理 性能测试 测试报告 测试框架 CNAS认可 CMA认证 自动化测试
专业测试,找专业团队,请联系我们!
咨询软件测试 400-607-0568