工作日常随记-总

软件测试主管工作日常随记-总

前言

接下来,我将开始散文式地记录我作为一位从业3年多的软件测试人员的软测经验。这是我在繁忙的日常工作的中跋涉出来又又投入的另一工作(bushi)另一兴趣中去。
我将简单(偏流水线向)从业务/技术/项管三个方面简单汇总一下我的日常工作。后期可再针对使用到的具体技术的详解再开篇。

1.业务

(1)测试用例

测试用例,好像是每个讲软测经验的文章的基本输出。各种测试用例的设计及白盒黑盒测试方法重复出现在收集者前面。so,不走寻常路的我,决定从另外的角度去分享测试用例。日常工作中,项目上线出现的大大小小的问题都会被我收入囊中,记录在册,可以说我的项目复盘手册都快被我盘包浆了。aha 以我做过的一个电子签约项目平台为例子,这是一个中型项目,前期后期紧赶慢赶,也算把项目成功交付。后我们组织做了一次复盘会,基本复盘总结如下

主要业务流程总结

利用正交法+场景法,列出所有参数(如参与方、签署文档等)及其水平参数(如参与方有单参与方和多参与方),将其有序地组合成一个个场景,这样可以很好地覆盖项目的主要功能流程,以保障主要业务流程尽可能不漏测。

测试主流程

输入框功能测试点

输入框功能测试点

搜索框功能测试点

搜索框功能测试点

导出导入功能测试点

导出导入功能测试点

如此总总,就不一一 枚举。总而言之,业务流程上,正交法+场景法yyds;其他普通功能点,上面的涉及到的,直接cv,复用率极高。

2.技术

(1)接口自动化

jmeter-反电诈项目

这个我做过的一个非常有意义的项目,和腾讯合作的,主要为用户拦截并提示所有可能涉及到的诈骗类型,并以裂变的形式扩展用户,这个项目前期后端先完成,并出了完善的API文档,数据库设计说明,这不则正是为接口自动化提供了良好的前期条件么。于是我组织组内测试人员经过5天时间设计并完成了关于该项目的jmeter接口自动化脚本的编写,并将其简单转化成性能、稳定测试的脚本。

详细脚本截图
用户定义变量

下面截图是对用户变量的描述,放于测试计划下,作用于所有线程组(这些变量一旦定下,无需再修改,最后执行的tearDown线程组会直接从测试数据库删除这些变量以达到无限重复使用,达成自动化的实现)
用户定义变量

线程组例子

一个线程,原则上由一个功能点的1个或多个接口组成,需从正向和反向测试。
 线程组例子

jmeter关于数据库的连接

jmeter关于数据库的连接-1

jmeter关于数据库的连接-2

主要接口的性能脚本编写

这边就浅浅说一下性能测试较值得分享的技能,大数据量级别的接口数据关联如何实现。

xx项目的主要业务接口需要进行性能测试,而该接口实现的前提是登陆接口请求后获得的token作为其请求头。单用户的接口可以直接通过关联的方式实现该功能。而性能接口测试的目的就是获取目标接口的某数量级别请求后的具体数据(tps,qps等),如利用多接口关联则会破坏数据的真实性。

实际工作中,我使用了BeanShell 后置处理程序处理了该问题,使得性能测试数据更独立,更真实、可用度更高。具体实现方式如下:

  • 利用BeanShell把响应结果写入本地
    利用BeanShell把响应结果写入本地

  • 添加配置元件:CSV 数据文件设置,从CSV文件读入,后续直接引用TOKEN
    从本地提取文件变量

(2)UI自动化

这是算我第一次比较全面,系统的建立一个UI自动化的测试框架,真真从0到1的突破。

首先就是从框架的选取,挑选合适做自动化测试的功能,设计对应的测试用例。我选择的pytest框架,详细框架架构如图

UI自动化框架

(3)集成

Jenkins构建-关于接口自动化及测试管理

Jenkins的作用不用我多说大家都知道,部署环境、定时跑任务。那在测试工作的环节上就免不了跟测试自动化挂钩上。

下面我将从两方面介绍Jenkins在我测试工作中的举足轻重的作用。

1、接口自动化

上章节我们介绍到jmeter自动化脚本的编写,写完呢,每次测试的时候都大费周章的打开jmeter,然后一线程一线程的执行,然后再去根据结果树,一个一个的查看结果、分析。如果领导需要一份测试报告,还要费尽脑汁的重立框架、组织语言去总结输出文档。NoNoNo 这绝不是一个成熟的测试工程师的工作样本。以始为终,为降本增效,我们就需要利用到Jenkins了。

  • 源码管理
    源码管理

  • 构建触发器
    构建触发器

  • 构建
    构建

  • 构建后操作
    构建后操作

接口自动化构建后操作-测试数据分析结果告知项目组

邮件通知

测试报告

2、bug管理统计配置

bug统计的Jenkins项目配置截图

构建触发器
源码管理
构建
构建后操作

(4)测试左移、测试右移

左移

测试左移,这个概念在日常测试工作中常有听说,但是左移的实践甚少。这也将是以后高级测试发展的方向,如代码路径测试、针对代码的建议,如正则表达式匹配的建议等

右移-生产问题汇总、跟进

在我后半段的测试工作经验中也涉及较多。如专门设计的生产问题反馈的处理流程、协作安排、处理人员的调度、跟进修复的进度、及时复测以便更版生产。

3.项目管理

(1)集成技术控制

1、bug管理统计

某天老板叫我到办公室,严肃地问了我一个问题:你觉得目前的开发人中,谁的水平最高,工作效率最快。好家伙,这不能妥妥得罪人的问题么,这开发老师我们平时可是放在手心上哄的呀。这锅我不能背,那就让数据说话吧。于是乎,我想到禅道,禅道可是妥妥记录开发在测试员的整个‘成长历史’:模块开发时长、开发产生bug数、bug修复时长、bug激活次数、bug的遗留个数等等。我反手就打开我的pycharm,整了以下关于禅道的sql语句,统计出我要的数据,通过python的整理,以htlml的格式将数据每日定时发送至钉钉群,方便老板以及各部门领导更好的每日观察各位开发的工作情况。

具体统计sql语句代码如下
def bug_total(self, cursor, now,begin_day,total_day):"""最近总的BUG情况统计统计:param: day 根据输入天数:return:"""# 新增bug数new_near_bug_sql = """SELECT COUNT(*) as new_near_bug from zt_bug where openedDate between "%s" and "%s" and deleted='0';""" % (begin_day, now)cursor.execute(new_near_bug_sql)new_near_bug = cursor.fetchone()# print("新增bug数")# print(new_near_bug)# 已解决bug数close_bug_sql = """SELECT COUNT(*) as close_bug from zt_bug where status = "closed" and openedDate between "%s" and "%s" and deleted='0';""" % (begin_day, now)#"%s"表示这里将被替换成一个新的字符串,依次为recent_sevenday, nowcursor.execute(close_bug_sql)close_bug = cursor.fetchone()# print("已解决bug数")# print(close_bug)# 未解决bug数open_bug_sql = """SELECT COUNT(*) as open_bug from zt_bug where status = "active" and openedDate between "%s" and "%s" and deleted='0';""" % (begin_day, now)cursor.execute(open_bug_sql)open_bug = cursor.fetchone()# print("没解决bug数",)# print(open_bug)# 已解决待验证bug数close_unbug_sql = """SELECT COUNT(*) as close_unbug from zt_bug where status = "resolved" and openedDate between "%s" and "%s" and deleted='0';""" % (begin_day, now)cursor.execute(close_unbug_sql)close_unbug = cursor.fetchone()# print("已解决待验证bug数", )# print(close_unbug)#研发人员发生bug数排行。dev_bug_sql = """SELECT COUNT(*) num,realname FROM zt_bug b INNER JOIN zt_user u ON u.account = b.resolvedByWHERE DATE_FORMAT(b.openedDate, '%%Y-%%m-%%d') between '%s' and '%s'AND u.deleted='0' AND u.role='dev' GROUP BY b.resolvedBy ORDER BY num DESC;""" % (total_day, now)cursor.execute(dev_bug_sql)dev_bug = cursor.fetchall()print("研发人员发生bug数降序排行", )# print(dev_bug)add_str_dev_bug = ''  # 空字符串#让降序排行一行一人for _tuple in dev_bug:a = ' \n \n {0}'.format(_tuple)add_str_dev_bug += str(a)#研发人员发生bug激活数排行。activation_bug_sql = """SELECT SUM(激活次数) 激活次数,中文姓名 FROM (SELECT b.id,COUNT(*) 激活次数,u.realname 中文姓名 FROMzt_bug b INNER JOIN zt_action a ON a.objectID = b.id INNER JOIN zt_user u ON u.account = b.resolvedByWHERE DATE_FORMAT(b.openedDate, '%%Y-%%m-%%d') between "%s" and "%s" AND a.objectType = 'bug' AND a.action = 'activated'AND u.deleted='0'  and u.role='dev'GROUP BY b.id ORDER BY 激活次数 DESC) tem GROUP BY tem.中文姓名 ORDER BY 激活次数 DESC;""" % (total_day, now)cursor.execute(activation_bug_sql)activation_bug = cursor.fetchall()print("研发人员BUG被激活次数(非一次性修复)", )print(activation_bug)add_str_activation_bug = ''  # 空字符串#让降序排行一行一人for _tuple in activation_bug:a = ' \n \n {0}'.format(_tuple)#(Decimal('19')中的(Decimal('')去掉a = re.sub('[(Decimal('')]', '', a)# print(a)add_str_activation_bug += str(a)# print("拆开元组,研发人员BUG被激活次数(非一次性修复)", )# print(add_str_activation_bug)# 提BUG、指派、转派【已解决待验证】、改BUG,=====================\n\n研发人员BUG被激活次数(非一次性修复):{5}\n\nstatistics_bug = "本年度新增bug总情况({6}~{7}) \n\n 新增BUG数:{0} \n\n 未关闭BUG数:{1} \n\n 已关闭BUG数:{2} \n\n 已解决待验证BUG数:{3}\n\n =====================\n\n研发人员今年(2023)BUG数倒序:\n\n{4}\n\n =====================\n\n研发人员今年BUG被激活次数(非一次性修复):\n\n{5}\n\n".format(new_near_bug[0], open_bug[0], close_bug[0], close_unbug[0], add_str_dev_bug, add_str_activation_bug, total_day, now)# print("bug的统计汇总:"+statistics_bug)return statistics_bug
具体关联钉钉代码
import datetime
from dingtalkchatbot.chatbot import DingtalkChatbot, FeedLinkclass ding_talk():def send_bug(self,url, data_file,sign_mark):#设置发送的信息样式''':param url: 钉钉机器人的webhook:param data_file: 查看详情中的markdown信息:param sign_mark: 用户而可以自定义字段为本周、还是本月的禅道BUG情况统计:return:'''xiaoding = DingtalkChatbot(url)# Markdown消息@所有人now = datetime.datetime.now().strftime("%Y%m%d")# print("当前时间:"+str(now))# 含htmlxiaoding.send_markdown(title='BUG统计%s' % (now),text='**禅道BUG情况统计**\n\n 各位同事,以下是禅道BUG情况统计。统计结果供各组组长参考,烦请做好督促,尽快处理bug!\n\n=====================\n\n {0} \n\n[查看历史遗留bug详情](http://192.168.100.135:9080/test/bugdetail.html) \n'.format(data_file,now), is_at_all=False)data_file, now), is_at_all=False)def bug_html2(self, lis, html_file):"""对查询bug明细转html文件:param lis:param html_file""""""对查询bug明细转html文件:param lis:param html_file"""conten_title = []for key in ( "项目名称","开始", "结束","姓名", "bug标题", "bug_id"):conten_title.append(key)a = "</th><th>".join(conten_title)con_title = "<tr><th>" + a + "</th></tr>"conten_val = ""con = ""# lis_arr = lis.fetchall()for i in range(0, len(lis)):for index, v in enumerate(lis[i]):if index == 0:# 20231114修复字符串拼接conten_val = "<tr><td>" + str(lis[i][index]) + "</td><td>"# conten_val = "<tr><td>" + lis[i][index] + "</td><td>"con = con + conten_valcontinuecon = con + str(lis[i][index]) + "</td><td>"con = con[0:-2] + "r>"con = con + "\n"head = """<meta charset="utf-8"><style type="text/css">table.tftable {font-size:12px;color:#333333;width:100%;border-width: 1px;border-color: #9dcc7a;border-collapse: collapse;}table.tftable th {font-size:12px;background-color:#abd28e;border-width: 1px;padding: 8px;border-style: solid;border-color: #9dcc7a;text-align:left;}table.tftable tr {background-color:#ffffff;}table.tftable td {font-size:12px;border-width: 1px;padding: 8px;border-style: solid;border-color: #9dcc7a;}</style>\n<table id="tfhover" class="tftable" border="1">\n"""last = "</table>"htm = head + con_title + con + lastwith open(html_file, "w+", encoding="utf-8") as f:f.write(htm)
具体实现情况如下

关联钉钉自动推送

(2)每日晨会汇总表-产品沟通群

这个其实也涉及到我们上面提到的测试右移
组织每日站立会议,主要内容就是:跟进1.0项目的总体进度,及时反馈项目的各种可能发生的风险:如延迟,功能点偏移;汇总2.0+的项目生产问题、新需求、优化等。关于晨会每日的汇总表格,简单而优雅,不失重点,涉及有具体问题、具体人员、具体处理点、具体完成时间都要详细绘出。及时做好与需求提出者(产品or运营)的沟通,反馈研发的整个流程的问题处理情况。
汇总、跟进项目(新旧项目,需求、优化、bug)

(3)QC→QA

质量检查-质量保证
这一点其实主要是本人对测试行业的。。算是浅薄认知吧。以前讲测试,我们都理所当然地想到这是讲质量检查。基操就是:发现问题,、反馈问题、待处理问题后复测问题。这个流程都是相对被动的。被产品告知需求,被开发告知提测,待开发修复问题,待运维上线不同环境,再次冒烟。
是否,我们能从被动,慢慢转向主动,从质检,慢慢转向真正意义上的质保。毕竟,成熟的测试是要能提得了需求,开发得了代码(bushi)成熟的测试应能对产品的质量做出保证,竭尽全力在测试的过程中尽多地找出bug,尽全力提高DDP(缺陷探测率),在需求提出,力驳需求的可实现性,在需求阶段将不合理逻辑修正;在需求分析和开发代码的阶段,利用时间差系统梳理项目,临摹执行测试的步骤,编写详细的测试用例。协助将整体测试左移,把控项目进度,前紧后松,减少后期项目执行的各类风险的产生,提高系统测试阶段的效率。

后序

浅谈管理

这个管理包含自己、项目、团队

自我管理

做乙方,multi-task是常态,我经常手上同时3、4个项目一起提测,一起运行的,不可能优哉游哉地让我做好一件事情再进入下一项,所以我必须要学会左右腾挪,尽最大可能提高自己的时间密度。那么有什么是可以跟大家分享的实操技巧呢。
首先,制定日计划,开启一天工作前,把自己今天需要做的大小事项,每项大概需要花费多少时间一一记录在我们的to do list中, 一目了然。(实际工作中我们会有一个dingding在线文档可以生效该功能)
有些工作可能我花费个半小时、一小时可以完成的,比如有些简单的遗留bug的复测,这样的工作我会优先做完,然后在我的to do list中划掉;那有些工作需要我重点攻坚的,那我就会拿出3、4个小时的完整时间来沉浸式完成,如整体的项目需求分析。我在单位时间的效率是较高的,因为我能很快地专注到我所做的工作当中,进入到一个心流模式。

项目管理

敏捷工作方法,确认最小可交付物能到什么程度。先完成,再完美。以我在编写测试用例的为例子,我是不奢求一开始就尽全力覆盖所有的功能点的测试。我会现在xmind中罗列、拼凑出bullet point(要点),System functions(具体功能)。以实名认证为例,我会先罗列出项目所需支持的实名认证的各种方式;再深入一层,这几项在测试环境的业务流程要涉及哪些测试数据;再进一步拆解,从反向的测试数据、流程去验证整个实名认证代码的系统逻辑性是否都有覆盖到。简单说就是我会把框架完成之后再去缝制外衣,再去丰富内层,注入血肉,这是一个井然有序的过程

团队管理

我负责的是一个测试小团队,团队只有三人,但我们的工作一向都是有序进行,我们之间的关系相辅相成。展开说,团队管理要点如下

  • 成员们先要有一个共同的目标,在工期结束前,完成项目的测试工作,保证产品更高的测试覆盖率,更低的缺陷探测率。
  • 其次,利用好辅助工具。在测试项目管理中,禅道可以实现全面,可视化管理。我们团队利用禅道制定测试用例,从而与开发团队共享测试用例,在开发团队执行我们生成的冒烟用例后,我们开始利用禅道执行系统测试,并利用禅道系统有序地记录此过程产生的bug,指派给对应开发。当然,实际测试工作中会使用到的辅助工具远不止这一个,在此就不细细一一展开。
  • 我们小组成员按分配模块,各自执行自己负责的模块,统一分配任务,不仅能够提高效率,还能够实现更好的管理。我也能很好的掌握组员的负责模块完成进度、质量
  • 团队也需要提升,为此,我会在忙碌的测试工作中安插测试技术的分享会,自己遇到难题后寻找到的解决办法也会实时共享出来,我很乐于分享我实时获得的最新测试相关技术,因为测试团队就是一个整体,成员的优秀是完善团队至关重要的一步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/810699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

50. QT/QML中创建多线程的方式汇总

1. 说明 在QT / QML中创建线程主要有三种方式。第一种:在定义类时继承 QThread 这个类,然后重写父类的虚函数 run(),将子线程需要执行的业务代码放到 run() 函数当中即可。**注意:**这种方式官方已经摒弃了。第二种:使用moveToThread()函数将需要在子线程中执行的函数类移…

【每日练习】二叉树

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;二叉树 &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 文章目录 一、100. 相同的树1. 题目简介2.…

问题汇总

一、TCP的粘包和拆包问题&#xff1f; TCP在发送和接受数据的时候&#xff0c;有一个滑动窗口来控制接受数据的大小&#xff0c;这个滑动窗口你就可以理解为一个缓冲区的大小。缓冲区满了就会把数据发送&#xff0c;数据包的大小是不固定的&#xff0c;有时候比缓冲区大有时候…

NIST再次强调:2024-2030年,必须升级至抗量子算法

4月10日至12日&#xff0c;美国国家标准与技术研究院&#xff08;NIST&#xff09;在马里兰州罗克维尔举办第五届NIST PQC&#xff08;后量子密码学&#xff09;标准化会议&#xff0c;该会议的目的是对PQC算法进行全面讨论&#xff08;包括已选定和正在评估的算法&#xff09;…

如何处理ubuntu22.04LTS安装过程中出现“Daemons using outdated libraries”提示

Ubuntu 22.04 LTS 中使用命令行升级软件或安装任何新软件时&#xff0c;您可能收到“Daemons using outdated libraries”&#xff0c;“Which services should be restarted?”的提示&#xff0c;提示下面列出备选的重启服务&#xff0c;如下。 使用以下命令&#xff0c;能够…

LangChain - 文档加载

文章目录 一、关于 检索二、文档加载器入门指南 三、CSV1、使用每个文档一行的 CSV 数据加载 CSVLoader2、自定义 csv 解析和加载 &#xff08;csv_args3、指定用于 标识文档来源的 列&#xff08;source_column 四、文件目录 file_directory1、加载文件目录数据&#xff08;Di…

day05-java面向对象(上)

5.1 面向对象编程 5.1.1 类和对象 1、什么是类 类是一类具有相同特性的事物的抽象描述&#xff0c;是一组相关属性和行为的集合。 属性&#xff1a;就是该事物的状态信息。 行为&#xff1a;就是在你这个程序中&#xff0c;该状态信息要做什么操作&#xff0c;或者基于事物…

Go操作Kafka之kafka-go

Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;本文介绍了如何使用kafka-go这个库实现Go语言与kafka的交互。 Go社区中目前有三个比较常用的kafka客户端库 , 它们各有特点。 首先是IBM/sarama&#xff08;这个库已经由Shopify转给了IBM&#xff09;&#xff0c;之…

Triton Server Python 后端优化

接上文 不使用 Docker 构建 Triton 服务器并在 Google Colab 平台上部署 HuggingFace 模型 MultiGPU && Multi Instance Config 追加 instance_group [{count: 4kind: KIND_GPUgpus: [ 0, 1 ]} ]Python Backend Triton 会根据配置信息启动四个实例&#xff0c;…

物联网数据服务平台

随着物联网技术的迅猛发展&#xff0c;海量数据的产生和应用成为推动工业数字化转型的核心动力。在这个数据为王的时代&#xff0c;如何高效地收集、处理、分析并应用这些数据&#xff0c;成为了企业关注的焦点。物联网数据服务平台应运而生&#xff0c;为企业提供了全面、高效…

CLR学习

视频链接&#xff1a;《CLR十分钟》系列之CLR运行模型_哔哩哔哩_bilibili 什么是 CLR 公共语言运行时&#xff08;Common Language Runtime CLR&#xff09; 是一个可有多种编程语言使用的 运行时&#xff0c;CLR 的核心功能&#xff08;比如 内存管理&#xff0c;程序集加载…

耐受强酸碱PFA试剂瓶高纯实验级进口聚四氟乙烯材质取样瓶

PFA取样瓶作为实验室中常备器皿耗材之一&#xff0c;主要用来盛放、储存和运输样品&#xff0c;根据使用条件不同&#xff0c;也可叫特氟龙试剂瓶、样品瓶、储样瓶、广口瓶、进样瓶等。广泛应用于半导体、新材料、多晶硅、硅材、微电子等行业。近年来随着新兴行业的快速发展&am…

【ARM 裸机】开发环境搭建

1、Ubuntu 和 Windows 文件互传 使用过程中&#xff0c;要频繁进行 Ubuntu 和 Windows 的文件互传&#xff0c;需要使用 FTP 服务&#xff1b; 1.1、开启 Ubuntu 下的 FTP 服务 //安装 FTP 服务 sudo apt-get install vsftpd //修改配置文件 sudo vi /etc/vsftpd.conf//重启…

某想主站的短信轰炸漏洞

很难想象主站居然还有这漏洞 某天的一个晚上&#xff0c;默默的打开了电脑&#xff0c;娴熟的打开了Burp suite, 看到一个很熟悉的注册登录页面&#xff0c;开始测试。 很难想象&#xff0c;还有验证码时效性&#xff0c;于是怼了半刻钟&#xff0c;终于让我逮到了他的数据包…

TechTool Pro for Mac v19.0.3中文激活版 硬件监测和系统维护工具

TechTool Pro for Mac是一款专为Mac用户设计的强大系统维护和故障排除工具。它凭借全面的功能、高效的性能以及友好的操作界面&#xff0c;赢得了广大用户的信赖和好评。 软件下载&#xff1a;TechTool Pro for Mac v19.0.3中文激活版 作为一款专业的磁盘和系统维护工具&#x…

IDEA 设置类注释模板作者、日期、描述等信息(推荐标准!)

idea注释模版配置 idea作为越来越多程序员使用的开发工具&#xff0c;平时的代码注释也非常的关键&#xff0c;类上注释和方法上注释每次换电脑或者新同事入职都要统一修改&#xff0c;找了网上好多教程都写的乱七八糟的啥都有&#xff0c;为方便统一就自己写一个操作方法&…

制氧机生产厂家如何确保氧气管道安全高效

制氧机作为生产氧气的关键设备&#xff0c;其安全性与高效性受到了广泛关注。作为制氧机生产厂家&#xff0c;确保氧气管道的安全高效运行&#xff0c;不仅是责任所在&#xff0c;更是对用户生命财产安全的有力保障。那么&#xff0c;制氧机生产厂家如何确保氧气管道安全高效生…

期货量化交易软件:MQL5 中的范畴论 (第 15 部分)函子与图论

概述 在上一篇文章中&#xff0c;我们目睹了前期文章中涵盖的概念&#xff08;如线性序&#xff09;如何视作范畴&#xff0c;以及为什么它们的“态射”在与其它范畴相关时即构成函子。在本文中&#xff0c;我们赫兹量化软件将阐述来自前期文章中的概括&#xff0c;即通过查看…

浙大恩特客户资源管理系统 i0004_openFileByStream.jsp 任意文件读取漏洞复现

0x01 产品简介 浙大恩特客户资源管理系统是一款针对企业客户资源管理的软件产品。该系统旨在帮助企业高效地管理和利用客户资源,提升销售和市场营销的效果。 0x02 漏洞概述 浙大恩特客户资源管理系统 i0004_openFileByStream.jsp接口处存在任意文件读取漏洞,未经身份验证攻…

数字证书在网络安全中的关键作用与日常应用

在当今数字化的时代&#xff0c;网络安全问题日益凸显&#xff0c;保护数据安全和用户隐私成为了人们关注的焦点。数字证书作为一种重要的网络安全技术&#xff0c;其在网络安全中扮演着关键的角色&#xff0c;并且在我们的日常生活中有着广泛的应用。现在给大家介绍简单介绍下…