当前位置: 首页 > news >正文

可观察性在软件测试中的重要性

当今应用生态系统的需求和加速的数字化转型使可观察性成为人们关注的焦点。可观察性提供了对应用程序行为和技术生态系统的深入可见性,并支持更快、更明智的决策。由于缺乏可观察性,软件开发团队倾向于对生产系统行为、潜在性能瓶颈或未来故障场景做出假设。这种猜测会导致浪费时间来确定故障的原因和影响及其潜在的修复方法。

可观察性过程对软件团队来说非常有用,因为它提供了整个技术堆栈的完整可见性。它允许团队识别并隔离整个软件中的问题(通常来自单个应用程序)。

什么是可观察性?

软件可观察性使软件团队和测试人员能够关注事件、日志、跟踪和指标的关键遥测数据。可观察性为软件测试团队打开了大门。它允许查看每个组件的上下文,从而实现性能调整。

随着技术堆栈的不断发展以及应用程序组合中新时代云原生应用程序的增加,传统的监控系统在当今的软件环境中失败了。

借助可观察性,软件团队可以根据日志、指标和跟踪来衡量系统的当前状态。这使他们能够确定应用程序发生故障的方式、原因和位置。此外,它还提供了对应用程序和系统深层内部部分的深刻见解。因此,测试人员可以提出复杂的、以改进为重点的问题,例如系统哪里脆弱或者常见的故障点是什么。

监控和可观察性之间有区别吗?

从表面上看,可观察性和监控似乎非常相似。虽然它们是相关且相互补充的,但是不同的概念。

大多数监控工具可以识别或解决IT问题。然而,这些只能揭示测试团队可以预见的性能问题或异常情况。随着应用程序成为云原生且云环境变得更加普遍,安全和性能问题变得更加多方面且往往难以预测。

监控使团队能够利用一组预定义的指标和日志来测量系统的状态,并允许他们检测一组已知的故障模式。简而言之,监控使团队能够了解应用程序如何运行、增长和使用。然而,监控复杂的分布式应用程序可能具有挑战性,因为生产故障不是线性的,因此更难以预测。

相比之下,可观察性使用在整个IT基础设施中收集的日志、跟踪和指标。它允许团队主动识别潜在问题并调试系统。允许IT团队衡量应用程序、微服务、服务器、数据库等的所有输入和输出。可观察性本身提供了更多实时和可操作的见解,并帮助团队从被动转变为主动。

为什么软件测试中的可观察性很重要?

报告显示,“2023 年第一季度,全球网络攻击已增加 7%。估计每天都会检测到 560,000 个新恶意软件,目前有超过10亿个恶意软件程序在传播”

随着应用程序生态系统变得越来越庞大和分散,可观察性在当今的软件测试中至关重要。安全威胁和漏洞的复杂性也在不断增加,建立零信任安全模型的需求也在不断增加。

可观察性利用以下内容来获得分析结果:

  • 日志记录:提供事件记录,帮助开发人员和测试人员跟踪问题的根本原因并识别系统行为;
  • 指标:提供系统性能的定量测量,帮助开发人员实时识别系统性能并在问题变得严重之前识别问题;
  • 跟踪:包括系统中请求和事务的端到端流的关键信息。跟踪提供了对系统行为的详细了解,有助于识别和解决问题。

可观察性对于软件测试变得至关重要的一些关键原因

更好地应对事件和问题

可观察性提供了对用户行为和使用情况的洞察,以保护系统免受未经授权的访问。一致的日志记录可以洞察系统内的任何异常情况,并且不限于性能相关问题。

消除流程中的猜测

可观察性提供了对系统、变量和所有影响因素之间关系的理解。因此,它提供了应用程序运行状况和潜在故障点的连贯完整的画面。可观察性可以识别异常表现的最初迹象。然后,团队可以准确定位错误或易受攻击的攻击媒介,而无需任何猜测,并具有清晰、可操作的见解。

节省开发人员时间

可观察性为开发人员节省了大量时间,因为它将来自日志、指标和跟踪的数据与丰富的上下文相结合。这提供了性能调整或错误修复所需的内容。开发人员可以了解在他们的环境中发生什么事情,而无需花费时间探索、过滤和分组数据和信息。因此,开发人员和测试人员可以更快地找到应用程序性能问题的根源。

加速创新

由于可观察性可以更深入地了解可能和潜在的挑战,因此它使测试和开发团队能够自动化更多流程。可观察性还可以帮助开发团队在软件交付生命周期中利用和解释可观察的数据。这加速了创新,并使团队能够构建更安全、更有弹性和性能驱动的应用程序。通过提供深入而清晰的见解,可观察性有助于提高运营、应用程序开发和测试团队的效率和创新。

如何将可观察性纳入测试过程?

测试中的可观察性使测试人员能够发现有关系统问题的详细细节,提出深入的问题并探索系统。它有助于生产中的测试,并提供有关生产环境和基础设施的全面信息。

通过使用日志记录来跟踪代码中任何操作之前和之后的事件,可以将可观察性添加到测试过程中。调试工具还提高了测试的可观察性,因为它们允许测试人员添加断点并逐步执行代码以识别测试期间的问题。这使得更容易重现困难问题以进行进一步的测试和性能工程。

引入监控工具来实时了解应用程序性能报告的使用情况、错误率等,还可以提高可观察性和测试结果。智能测试自动化平台在提高可观察性方面的作用也至关重要,因为它允许测试人员快速进行测试并经常进行测试。提高测试速度和占用空间,并用丰富的测试数据和见解对其进行补充,也可以提高可观察性,从而提高应用程序性能。

相关文章:

可观察性在软件测试中的重要性

当今应用生态系统的需求和加速的数字化转型使可观察性成为人们关注的焦点。可观察性提供了对应用程序行为和技术生态系统的深入可见性,并支持更快、更明智的决策。由于缺乏可观察性,软件开发团队倾向于对生产系统行为、潜在性能瓶颈或未来故障场景做出假…...

Delphi TCP服务端监听端口获取客户端RFID网络读卡器上传的刷卡数据

本示例使用设备介绍:液显WIFI无线网络HTTP协议RFID云读卡器可编程实时可控开关TTS语-淘宝网 (taobao.com) unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ComCtrls, ScktComp, StdCtrls, ScktCom…...

javaSE学习笔记(一)概述、语法

目录 前言 一、概述 1.java语言发展史 2.Java语言版本 3.Java语言平台 4.Java语言特点 5.Java语言跨平台原理-可移植性 6.JRE和JDK的概述 7.JDK的下载和安装 7.1安装的细节 7.2可能出现的问题 7.3验证安装是否成功 8.JDK安装路径下的目录解释 9.path环境变量的作…...

接口开发之使用C#插件Quartz.Net定时执行CMD任务工具

C#制作定时任务工具执行CMD命令 概要准备知识点实现原理thinkphp配置winform执行CMD命令读取ini配置文件定时任务Quartz.Net 完整代码Job.csIniFunc.csForm1.csconfig.ini简易定时任务工具雏形 概要 很多时候写接口上线后还会遇到很多修改,类似JAVA,C#,delphi制作的…...

XSS脚本(存储型xss获取肉鸡的cookies)

XSS脚本(存储型xss获取肉鸡的cookies) 存储型XSS就是在能够提交上传的文本框中提交一些标签代码,这段代码被插入到页面中,肉鸡每次点击这个页面时都会有弹框弹出。(只要点击就会弹框) 反射性XSS顾名思义插入…...

【React】04.MVC模式和MVVM模式

React是Web前端框架 1、目前市面上比较主流的前端框架 ReactAngular(NG框架)Vue 主流的思想: 不在直接去操作DOM,而是改为“数据驱动思想” 操作DOM思想: 操作DOM比较消耗性能[主要原因就是,可能会导…...

调试代码0

dev_update_off () * read_image (Image, C:/Users/Public/Documents/MVTec/HALCON-12.0/examples/images/smd/smd_on_chip_01.png) read_image (Image, D:/图像文件/图片/图片/基板/20230609-103004-0.bmp) get_image_size (Image, Width, Height) * dev_close_window () * de…...

【C++心愿便利店】No.12---C++之探索string底层实现

文章目录 前言一、写实拷贝(了解)二、string类常用接口实现2.1 成员变量2.2 默认构造函数2.3 拷贝构造函数2.4 operator2.5 operator[]2.6 c_str2.7 size()2.8 capacity() 三、迭代器的实现3.1 begin()和end()3.2 范围for 四、string类增删查改4.1 reser…...

Android Studio(列表视图ListView)

前言 前面在适配器章节&#xff0c;已经介绍了ListView的作用(干什么的)&#xff0c;这节将主要介绍如何去设计ListView页面视图。 思考 列表视图需要些什么&#xff1f; 1. 列表项容器&#xff08;装载各列表项的容器&#xff09;&#xff1a;<ListView/> 2. 列表项布局…...

让深度神经网络绘画以了解它们是如何工作的

一、说明 深度学习如此有效&#xff0c;这真是一个谜。尽管有一些关于深度神经网络为何如此有效的线索&#xff0c;但事实是没有人完全确定&#xff0c;并且深度学习的理论理解是一个非常活跃的研究领域。 在本教程中&#xff0c;我们将以一种不寻常的方式触及问题的一个小方面…...

https://www.jianshu.com/p/34bf240b85a9

https://www.jianshu.com/p/34bf240b85a9 https://www.eccee.com/soft-platform/991.html...

如何导出PPT画的图为高清图片?插入到world后不压缩图像的设置方法?

期刊投稿的时候&#xff0c;需要图片保持一定的清晰度数&#xff0c;那么我们怎么才能从PPT中导出符合要求的图片呢&#xff1f; 对于矢量图绘图软件所画的图&#xff0c;直接导出即可。 而PPT导出的图片清晰度在60pi&#xff0c;就很模糊。 整体思路&#xff1a; PPT绘图——…...

【Spring】Spring IOC DI

Spring IOC & DI IOC DI入门什么是Spring什么是容器什么是IOC IOC介绍传统程序开发解决方案 DI IOC详解Bean的存储Controller(控制器存储)Service(服务存储)Repository(仓库存储)Component(组件存储)Configuration(配置存储) 为什么需要这么多类注解类注解之间的关系方法注…...

一招解密网络流量瓶颈!

前言 我们曾介绍过观测云提供全面的基础设施监测方案&#xff08;参见《全方位监控基础设施&#xff0c;坚实守护您的业务稳定&#xff01;》&#xff09;&#xff0c;能够高效全面地帮助您实时观测所有的基础设施对象及云产品等&#xff0c;赋能您的业务稳定发展。今天我们将…...

某校帮签到小程序m 加密参数解析

小程序解密清参考我以前的文章 VX小程序逆向 js版本 function n(e, a) {var t (65535 & e) (65535 & a);return (e >> 16) (a >> 16) (t >> 16) << 16 | 65535 & t };function i(e, a, t, n, r, i, s) {return o(a & n | t &…...

Node.js |(六)express框架 | 尚硅谷2023版Node.js零基础视频教程

学习视频&#xff1a;尚硅谷2023版Node.js零基础视频教程&#xff0c;nodejs新手到高手 文章目录 &#x1f4da;express使用&#x1f407;初体验&#x1f407;express路由⭐️路由的使用⭐️获取请求参数⭐️获取路由参数&#x1f525;练习&#xff1a;根据路由参数响应歌手信息…...

包教包会:Mysql主从复制搭建

笑小枫的专属目录 一、无聊的理论知识1. 主从复制原理2. 主从复制的工作过程3. MySQL四种同步方式 二、docker下安装、启动mysql1. 安装主库2. 安装从库 三、配置Master(主)四、配置Slave(从)五、链接Master(主)和Slave(从)六、主从复制排错1. 错误&#xff1a;error connectin…...

Subset Selection

白话解释&#xff1a;https://www.geeksforgeeks.org/feature-subset-selection-process/ 貌似有一种比较常见的方法&#xff0c;称为多元逐步回归有3种筛选自变量的方法 &#xff08;1&#xff09;向前法&#xff1a;n个因变量情况&#xff0c;慢慢增加因变量到方程中&#x…...

【测开求职】面试题:计算机网络 精简版整理

本篇文章整理的是在秋招过程中遇到的计算机网络高频面试题,应付部分中小厂的测试开发工程师面试完全没有问题,如果时间充足的话,建议再看一下笔者的另外一篇文章:【测开求职】面试题:计算机网络 详细版整理,会让你对整个计算机网络有足够全面深刻的理解,亲测应付各个大厂…...

设计模式-代理模式(delegate)

什么是代理&#xff1f; 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...