代码的“行车记录仪”,如何借助日志做测试?

news/2024/11/16 22:18:03/

[内部资源] 想拿年薪30W+的软件测试人员,这份资料必须领取~

Python自动化测试全栈+性能测试全栈,挑战年薪40W+

后疫情时代,已经不对感染人群做分析了,那过去我们是如何追踪的?依靠链路追踪,通过数据分析,然后分块治之,精准定位。

测试也是如此,准确识别每一个被测逻辑的执行路径,准确定位过程,才能知己知彼,百战不殆。行业内有许多的测试手段,如静态代码分析、动态代码扫描、功能测试用例穷举、单测用例覆盖等等,本文不做赘述和分析。

本文浅谈一下代码的“行车记录仪”----日志,在测试技术中的应用。

一 、代码和日志相辅相成

码农界有传言“线上问题定位不到的时候,才知道该在哪里打日志”,代码的每一次运行都可能因为不同的干扰因素,使其“脱离正轨”,每一次执行都可能因为某些异常、判断条件而执行不同的代码段。

日志的链路追踪,代码的执行过程记录,在生产中尤为重要。日志不仅能够记录代码执行路径;也可以作为监控分析的数据来源;可以及时提示代码异常;也能够为基础监控建设提供可靠依据;更为测试工作提供更多的执行过程信息。

日志不止是开发者要关心的部分,测试同学对日志的记录情况,日志的书写规范和日志的必要性也要有独特的见解,如此,才能更好的为线上质量保驾护航。

二、日志辅助测试的案例化分析

那什么场景必须用到日志来做辅助测试呢?    

黑盒的玩法设计    

什么是黑盒的玩法设计?我们来举个例子:当开发对一个抽奖的sdk设计了A、B、C、D四种精细化的算法,每一种算法都根据随机概率选择的选中一个奖品,最终输出该奖品结果。

可以看到,概率性这个概念就很模糊了,正如数学概率题一般,我们即使知道概率是多少,也不能完全准确预判出结果。那么这个选择的过程就尤为重要,到底命中了哪种算法?又以多少概率选中了结果? 

类似于这样的,具备以下特征的,我暂且称为较黑盒的玩法:

1.无持久化过程:只有开始和结束,没有持久化的设计,过程迅速且黑盒。

2.无交互:处理的业务场景都几乎没有交互,只有数据被改变,后续逻辑才有交互。

3.速度快:处理速度快,一般在丛开始到结束,在ms级别。

4.风险高:逻辑如果有误,一般会导致数据错误,容易引发较严重的线上故障。数据修复成本高。

5.知依赖:依赖上下游信息,一般不可考证上下游信息准确度,数据和信息准确度及逻辑未知。

下面我们结合案例分析来看一下日志在测试中的重要作用:

以pk玩法,赛道划分及比赛逻辑的技术设计图为例,我们可以看到下图中逻辑的中转和出口相较于整个玩法逻辑的设计是较少的。大部分的中间状态和逻辑很难从功能角度观察到。

(蓝色表示逻辑出口,绿色部分为数据持久化部分)

测试工作最重要的是以事实为依据,所以,我们绝对不能仅通过对结果的预测和比较来判断代码的运行逻辑是否正常。

所以,针对上述案例,对于这种服务端逻辑较重,中间数据流转逻辑复杂,没有过多页面交互和数据落地的玩法,有效的通过日志手段的测试方式如下:

红色箭头为判断逻辑,判断逻辑需要有日志,可以查询到一次脚本中拉取到的数据和实际判断的逻辑信息。黄色部分为调用其他服务获取到的主播或者房间信息,外部调用链需要有接口请求信息和response信息。可以为问题排查和逻辑判断提供数据依据。红色方框部分为很重要的,服务端使用数据结构做数据处理的部分,这部分需要日志信息。防止数据结构使用不当等问题的发生。

日志判断的合理位置:

  • 1.有条件判断的地方 if,else,case,三目运算符等位置。

  • 2.有外部接口调用的位置,需要准确得到被调用方返回的数据信息。

  • 3.数据结构使用的位置,需要明确感知到数据结构处理前后逻辑和数据是否合理。

  • 4.循环调用的过程,需要明确能够看到执行路径和次数,防止循环提前退出或者发生处理异常的情况。 

三、日志可带来的

风险识别和故障预警效用

日志在日常的项目是很有效的一种可以追溯用户行为的方式。不仅可以作为问题响应和发现的指示灯,也可以用作服务健康巡检的指标。除此之外,用来进行数据统计,用户行为分析,进行线上质量运营和后期优化也是一种不错的数据收集的手段。

线上日志多用来进行监控的建设,线上的质量分析,问题的追溯以及服务健康的指标制定。也是线上用户行为分析的一项有利的数据参考依据。甚至日志和监控数据还可用于生成过程中的海量样本仿真建设。在生产的过程中有着非常重要的作用。

四、日志不是万金油,不可滥用

既然日志的用处这么多,那是不是打日志越多越好呢?显然不是!

日志的增加需要考虑服务的压力和服务的框架设计,日志不是越多越好,在同步流程中,过多的日志会使代码执行速度变慢,会给服务带来无形的压力。能够清晰看到某一条执行路径即可,如果业务逻辑过于复杂,可以加一部分测试时使用的日志,或者使用日志等级降级策略即可。

日常生产的过程中,要着重关注以下几点:

1.唯一的id(uid、traceid等):日志也需要唯一的身份id,以一个唯一id,贯穿整个路径最好。查找日志的过程中,执行路径便会像一个叙事有条理的故事般,逻辑脉络清晰,过程娓娓道来。
2.数据信息简单:不可要求日志中加入统计类运算类日志,日志需要能够直白明确表达出代码执行状态即可。当下有什么数据,便打印什么数据。切忌对日志做逻辑处理。统计和逻辑类的数据操作要使用异步方式去完成。
3.日志等级划分意识:日志在日常的使用和规范中,需要明确划分等级,方便对问题日志进行监控和线上服务故障体系划分(以下做参考)。

日志等级划分:

  • 1.ERROR

    影响程序正常运行、程序出现请求中发生的异常情况。

    如:接口请求失败;第三方对接的异常;程序功能异常,抛出错误堆栈信息;p0级别业务功能异常等

  • 2.WARN

    有告警,但是不影响正常使用,但是出现频率需要严格关注。

    如:找不到对应逻辑配置,走兜底逻辑;容错情况发生;px级别业务逻辑异常返回发生;系统资源告急。 

  • 3.INFO

    记录过程信息,对接第三方的源数据信息等,一般无需关注,可用作追踪问题,建设用户数据画像使用。

    如:调用第三方时的调用参数和调用结果;数据源获取到的信息;逻辑处理结果和过程信息;定时任务的开始执行与结束执行。

  • 4.DEBUG

    记录调试信息,可以对系统每个关键性的过程进行更精确地记录。

  • 5.TRACE

    更加详细的服务调用流信息,一般使用(一般请使用DEBUG级别替代)

经常有人说;“好的日志可以一定程度上反映线上服务的质量和问题处理效果”。上述说了很多和日志相关的细节,我们在测试的过程中也要结合过程和结果来衡量一个服务的质量,缺一不可。


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述


http://www.ppmy.cn/news/181842.html

相关文章

SW三维图

DK系列线切割机吹瓶机PCB计量测试机自动卸料移动排焊机半自动化压力机-分离机S切纸机磁环管成型机自动装箱封箱包装机装箱机点热容胶机双工位阳扣装配机电容全自动剪脚弯脚成型一体机CCD自动检测包装机铜片端子全自动锁螺丝机E型卡簧装配机拉锡膏机圆柱电芯自动贴机FPC预压机凉…

ubuntu 删除软件 无法删除 软件 删除 transmission

ubuntu 删除软件 无法删除 软件 删除 transmission 情况说明 现在要删除 transmission sudo apt–get remove transmission 然后提示没有安装这个软件 于是我看了下软件中心发现可以打开 难道ubuntu 骗了我 查找软件 dpkg -l 找到最后发现了两个 transmission-common 和 trans…

Sony索尼HLG灰片电影调色LUT预设合集 HLG CINEMATIC LUTPACK BUNDLE

Sony索尼HLG灰片电影调色LUT预设合集 HLG CINEMATIC LUTPACK BUNDLE 原文地址:https://www.aeziyuan.com/t-20546.html 包括用于Sony索尼LOG相机的39组LUT预设。是目前为止Sony索尼相机最好的预设之一。 它适用于支持LUT预设效果的大多数软件。例如Premiere Pro&…

图像传感器c语言,『评测』DxOMark公布索尼A7C相机图像传感器评测结果

近日,DxOMark公布索尼A7C相机图像传感器评测结果。尽管已经非常小巧便携,索尼全画幅A7系列相机至今也还是沿用了数码单反相机的设计和布局。索尼A7C打破传统,将大的35毫米传感器塞进紧凑的机身中。这更与索尼A6xxx系列类似。因此,…

索尼:CMOS图像传感器3D堆叠架构的演进及未来趋势

免责声明: 该内容由专栏作者授权发布或转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点,本站亦不保证或承诺内容真实性等。如若文章内容侵犯您的权益,请及时联系本站删除。 原文链接:https 文…

全景丨VR全景制作全流程系列教程,第二节拍摄的设备推荐

本篇教程,小编为大家推荐720VR全景拍摄所需要的设备器材。上节我们提到,理论上任意相机和镜头都能够拍摄全景,但为了标准化制作流程,给大家推荐的设备遵循两点原则:高效率和高质量。 720VR全景拍摄主要针对两种用途&am…

c语言怎么读取12bit的raw,佳能都全画幅内录12bit raw了,索尼怎么接? - α|Sony/KM/M SLR/DSLM论坛...

坛友一:RAW 超采 无裁切 直接吃肉,一脚踹飞外录器。 松下不要命逼退索尼,索尼心想回炉回炉,今天当头一棒,我擦,万年牙膏厂怎么那么拼命。 我擦 擦擦 12位大肉,啥!~还加超采&…

佳能R3和索尼A1哪个好

佳能R3 主要规格: 选佳能R3还是索尼A1这些点很重要 http://www.adiannao.cn/dn 24MP - 全画幅堆叠式 CMOS 传感器ISO 100 - 1024005 轴传感器位移图像稳定3.2″ 全铰接式屏幕5760k点电子取景器12.0fps(30.0fps电子)连拍6K - 6000x3164 视频…