news 2026/10/19 10:21:25

AI自动生成测试周报:数据采集、统计分析与Prompt设计实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI自动生成测试周报:数据采集、统计分析与Prompt设计实战

每个周五下午,我差不多都要对着屏幕发呆半小时,不是没活干,而是那封测试周报怎么写都觉得不满意。用例数据在这个平台、缺陷列表在那个系统、自动化结果又分布在另一个面板里,每次都要一个一个点开、导出、合并、算了再算,最后憋出来的总结还总被领导问“所以风险到底大不大”。后来我把“AI 生成测试报告”这套流程完整跑通,自动周报、月报基本不用我管,每周五从原来的1到2个小时压缩到十分钟核对,加班写周报这件事基本成为历史。这篇文章就把我的完整方案讲清楚,包括数据怎么收集、统计口径怎么定、Prompt怎么设计、脚本怎么调度、踩过哪些坑,照着搭一套完全没问题。

1. 先认清问题:测试周报月报的三座大山

在动手做自动化之前,我先把“写周报”这件事拆开了看了一遍。发现它之所以痛苦,不是“写”本身,而是写之前那堆杂乱无章的准备工作,以及写完之后那种说不清楚到底汇报了什么的感觉。简单说,有三座山压在头上。

1.1 第一座山:数据散落各处,手工汇总像捡土豆

一个功能不算复杂的测试组,数据来源也往往不止一个:用例执行情况可能在测试用例管理平台里,缺陷记录在缺陷管理系统里,自动化跑批的结果在CI任务面板上,而临时的随机回归记录可能就躺在某个人手里的Excel里。每个系统都能导出表格,可字段名、时间粒度、统计含义全都不一样。缺陷那条记录里“更新时间”和“关闭时间”到底算哪个,不同平台理解也不同。

我试过传统做法,用Excel手工汇总。先把用例执行表导出来,筛选本周执行的用例,算通过率;再把缺陷列表导出来,按创建时间筛本周新增、按解决时间筛本周关闭,再单独弄一份当前还没关闭的缺陷清单用于“遗留风险”。这些操作本身不算难,但每个表打开都要调整格式,坑在于字段对不上,经常要在VLOOKUP、透视表、文本筛选之间来回折腾。一套流程下来,快则40分钟,慢则一两个小时,关键还容易出错。等到月末,要把四周数据拉到一起做趋势对比,那工作量直接翻倍。

1.2 第二、三座山:文字总结挤牙膏,汇报口径各写各的

比汇总数据更痛苦的,是写总结。我一开始写“本周执行了112条用例,通过率94%,新增缺陷6个,其中严重缺陷2个,已修复4个”,觉得自己已经很客观了。但领导看到之后只会追问一句:“所以呢?质量到底行不行?交付风险大不大?”这句话问得我哑口无言,因为我自己也没有真正思考这组数字背后的含义。

同一个组里,每个人写周报的风格完全不一样。有人写三行,有人写一大段,有人喜欢把所有缺陷都列出来,有人只写风险不说成果。团队负责人在汇总组内周报的时候,要花很久去统一这些风格。而且不同人对“严重”的理解不同,经常出现两个人都在说P1缺陷,实际含义却相差甚远。这是汇报口径问题,是数据之外的另一堵墙。

这两座山其实是一个问题:测试人员的时间和精力,浪费在“翻译”上。把数据翻译成结论,把个人工作翻译成团队语言。而AI恰恰擅长这种“翻译”工作,只要给它准确数据、清晰结构和足够约束。

2. 自动报告方案的整体设计:一条四条流水线

想清楚问题之后,我决定不做一个“一键生成周报”的脚本,而是搭一条完整流水线。这样每个环节都可以独立排查、单独替换,后续维护起来省心很多。

2.1 从数据到文字的完整链路是四个环节

完整流程我拆成了四段:

数据采集 -> 统计计算 -> AI文字化 -> 渠道投递

数据采集负责把分散在多个系统的记录拉下来,统一存成结构化表格;统计计算负责按固定口径算出所有需要的指标;AI文字化负责把指标翻译成汇报语言;渠道投递负责把文档发到该去的地方。这四个环节相互独立,比如半路想换一个更好的模型,只需要改AI文字化那一节,数据采集和统计不用动;想增加一个“按测试负责人拆分”的维度,也只在统计环节改代码。

当时有朋友建议我直接让AI根据接口数据一口气生成报告,省掉中间统计环节。我没有选这条路,原因很现实:大模型在数值计算上不可靠,你让它“顺便算一下通过率”风险很高,它可能一本正经地给你算错。让AI只做文字转换,所有数字都在采集和统计环节用确定性的代码算好,准确率才有保障。

2.2 为什么选择“模板+AI生成”而不是“AI纯自由发挥”

另一个关键设计决策,是每一份报告都基于固定模板生成,而不是让AI自由发挥。模板规定好报告必须包含哪些章节、大概什么顺序、哪些字段必须出现,AI只负责在每个章节里写通顺、写清楚。

这样做的原因很简单:收报告的人需要稳定的格式。领导打开周报,第一眼习惯找“风险”,第二眼找“结论”。如果这周是表格、下周变成了大段纯文本,阅读成本就上去了。团队负责人做汇总时,也依赖每个成员输出固定结构的报告,否则汇总本身又变成新的体力活。

“模板+AI”模式中,AI的价值被限定在“润色”和“补全表达”上。它不需要构思整篇报告的结构,只需要把已算好的数据点连接成有逻辑的句子,基于统计值做出合理推断。这样既降低了AI“胡编”的概率,也保证了报告质量的下限。哪怕某天模型接口挂了,人工拿着统计数据也能按几分钟补写出来。

3. 从零开始搭建:数据、统计、生成与投递的实操细节

这一部分是整个方案的工程核心。我按四个环节逐步讲,每一步都给出实际可执行的思路和关键代码骨架。具体的系统接口和字段名,要按你团队的实际情况替换。

3.1 数据采集:把散落的测试数据收敛到一张表

采集环节的第一步,是把“本周发生的测试行为”从各个源头拉下来。大部分测试管理工具和缺陷管理系统都支持按时间范围筛选记录导出,如果运气好,它们还提供接口,可以直接用脚本拉取。我建议优先走接口,因为接口返回的是结构化数据,便于后续处理。

以缺陷数据为例,我一般会写一个这样的采集脚本骨架:

import requests import pandas as pd def fetch_defects(start_date, end_date, token): url = "https://your-project-system.example.com/api/v1/defects" params = { "created_from": start_date, "created_to": end_date, "limit": 200, "page": 1 } headers = {"Authorization": f"Bearer {token}"} rows = [] while True: resp = requests.get(url, params=params, headers=headers, timeout=30) resp.raise_for_status() data = resp.json() rows.extend(data["items"]) if not data.get("has_more"): break params["page"] += 1 return pd.DataFrame(rows)

这里有两个细节很容易踩坑。第一个是分页参数,有些接口的页数从0开始,有些从1开始,按死逻辑写会漏掉第一页或重复最后一页。第二个是时间字段的时区,如果服务器部署在境外,导出的时间可能是UTC,你在国内看周五晚上10点创建的缺陷,按UTC已经算第二天了。这两个问题我第一次跑通时就遇到过,后面在踩坑章节会展开说。

用例执行数据的采集逻辑类似。将本周执行过的用例记录拉下来,字段一般包括用例编号、执行结果(通过/失败/阻塞)、执行人、所属模块。采集完所有数据后,统一存到一份CSV或者本地数据库里,作为统计环节的输入。这一步做完,你就拥有了一张干净的“本周测试行为表”。

3.2 数据统计:核心指标与统一口径

数据到手之后,不要急着扔给AI,先按固定口径把所有指标算好。我每次周报固定输出这样一组指标:

指标计算口径
本周执行用例数执行时间在本周内的用例记录数
通过率通过用例数 / 本周执行用例数 * 100%
新增缺陷数创建时间在本周内的缺陷数
关闭缺陷数解决时间为本周内且状态为已关闭的缺陷数
遗留未关闭缺陷当前状态未关闭的缺陷总数,不分周期
遗留高危缺陷上述遗留缺陷中优先级为高或危重的数量
自动化用例通过率本周最后一次自动化执行中通过的用例 / 执行用例数

这套口径看起来简单,但最难的不是公式,而是让团队整体达成一致。比如“本周新增缺陷”如果是看缺陷的创建时间,那某个缺陷虽然上周就发现但昨天才补录进系统,它应该算上周的还是本周的?我采用的办法是:统一看创建时间字段,并且要求测试同学当天创建的缺陷当天录入系统,减少跨周补录带来的口径漂移。

统计代码用pandas处理起来很顺手:

import pandas as pd from datetime import datetime start_of_week = datetime(2025, 5, 12, 0, 0) end_of_week = datetime(2025, 5, 18, 23, 59, 59) defects = pd.read_csv("defects.csv", parse_dates=["created_at", "resolved_at"]) opened = defects[ (defects["created_at"] >= start_of_week) & (defects["created_at"] <= end_of_week) ] closed = defects[ (defects["resolved_at"] >= start_of_week) & (defects["resolved_at"] <= end_of_week) & (defects["status"] == "closed") ] remaining = defects[defects["status"] != "closed"]

统计结果算完之后,我会把它们组装成一张Markdown表格,作为后面Prompt的输入。记住一个原则:数据全部在代码里算完,AI不做任何算术,只做表达层面的加工。

3.3 AI生成内容:调用大模型接口的正确姿势

统计指标就绪后,就轮到AI出场了。调用大模型接口不是直接甩一句“帮我写个周报”,而是要把统计数据原原本本塞进去,同时用强约束限制它的发挥空间。我常用的调用方式是这样:

import requests def generate_report(prompt_text, api_key, endpoint): headers = {"Authorization": f"Bearer {api_key}"} payload = { "model": "your-model-name", "messages": [ {"role": "system", "content": "你是一名严谨的软件测试负责人,擅长从数据中提炼结论。"}, {"role": "user", "content": prompt_text} ], "temperature": 0.2 } resp = requests.post(endpoint, headers=headers, json=payload, timeout=60) resp.raise_for_status() return resp.json()["choices"][0]["message"]["content"]

temperature设成0.2甚至更低,是为了让输出尽量稳定、少一些“创造性发挥”。写测试周报不是写诗,不需要天马行空。Prompt里的数据部分,我会把上一节算好的指标按Markdown表格形式嵌入,同时在Prompt末尾强调一条铁律:“严禁编造任何不在数据中出现的事实;数据缺失请写‘暂无’。”具体Prompt模板,下一章单独展开。

3.4 投递与发布:自动发送到群或邮箱

报告生成之后,最后一步是投递。我在团队用的方案,是把Markdown报告发送到团队IM群机器人,同时在需要留档时生成一份Word文档邮件发出。群机器人接口的调用非常标准,核心代码很短:

import requests def send_to_im(text, webhook_url): payload = {"msg_type": "text", "content": {"text": text}} resp = requests.post(webhook_url, json=payload, timeout=15) return resp.status_code

定时调度我用Linux的crontab,每周五下午6点跑周报脚本,每月最后一个工作日跑月报脚本:

0 18 * * 5 python3 /opt/report/weekly_report.py

这里有个我特别想提醒的经验:不要一上来就全自动发送。第一个月我建议跑“半自动”,即脚本自动生成报告和预览文件,然后通过人工确认一键发送。等连续跑了几周、确认输出稳定之后,再打开全自动投递开关。否则某个周五数据源字段变动,脚本生成了一份乱七八糟的报告直接发到工作群,比不加班的损失大得多。

4. Prompt 设计:AI报告好不好用,全看这一环节

很多人做AI报告翻车,归根结底不是模型不够强,而是Prompt写得不够具体。我踩了大约两周的坑,才把Prompt稳定成现在这套相对可靠的形态。

4.1 周报Prompt模板:结构固定、数据注入

我用的周报Prompt模板长这样,核心组成部分包括角色设定、数据输入、输出结构、禁用规则。你可以把它套到任何支持长上下文的大模型接口上:

你是一名资深测试负责人,请根据我提供的测试统计数据和缺陷明细,撰写一份本周测试周报。 【本周时间范围】 2025-05-12 至 2025-05-18 【统计数据】 | 指标 | 数值 | | --- | --- | | 本周执行用例数 | 128 | | 通过率 | 93.8% | | 新增缺陷 | 9 | | 其中高危缺陷 | 2 | | 本周关闭缺陷 | 6 | | 遗留未关闭缺陷 | 15 | | 遗留高危缺陷 | 3 | 【输出要求】 1. 报告使用Markdown格式。 2. 必须包含四个章节:本周核心结论、质量指标、风险与问题、下周计划。 3. 结论先行,每段控制在三到五行。 4. 所有数字以我提供的数据为准,严禁编造或推测任何未提供的数据。 5. 如果某些信息没有数据支撑,统一写“暂无数据”。 6. 不要使用“团队非常努力”“整体表现良好”这类空话,用数据说话。

这个Prompt最关键的是第2条和第4条。固定章节保证了每周格式稳定,严禁编造数据则堵住了AI“自行补充细节”的口子。我实测发现,如果不加第4条,模型有概率会在风险分析里自己编一个“某接口超时导致用例失败”的具体原因,而它根本不知道真实原因是什么。这种编造在测试报告里是灾难。

4.2 月报Prompt模板:趋势与风险是重点

月报和周报的侧重点不一样。周报更关注本周发生了什么,月报则要回答“这个月总体趋势如何、风险是变好还是变坏、下个月要重点做什么”。所以月报的Prompt要额外注入上月基线数据,并要求模型做横向对比。

你是一名资深测试负责人,请根据本月与上月的测试统计数据,撰写一份月度测试质量报告。 【本月时间范围】 2025-05-01 至 2025-05-31 【本月统计数据】 | 指标 | 数值 | | --- | --- | | 执行用例数 | 521 | | 通过率 | 94.2% | | 新增缺陷 | 36 | | 关闭缺陷 | 29 | | 遗留未关闭缺陷 | 20 | | 遗留高危缺陷 | 4 | 【上月统计数据】 | 指标 | 数值 | | --- | --- | | 执行用例数 | 468 | | 通过率 | 91.6% | | 新增缺陷 | 41 | | 关闭缺陷 | 33 | | 遗留未关闭缺陷 | 22 | | 遗留高危缺陷 | 5 | 【输出要求】 1. 报告使用Markdown格式。 2. 必须包含:本月核心结论、关键指标环比分析、风险趋势评估、下月测试关注重点。 3. 环比变化须用“上升/下降+百分比”说明,数字基于给定的上月数据计算。 4. 严格禁止编造缺陷原因、用户反馈或具体事故。无法推断的地方写“需结合具体原因进一步确认”。 5. 风险评估要给出明确结论,例如“可控”“需关注”“高风险”之一。

月报Prompt里给AI两张表非常关键。只有一张本月数据的话,它写出来的“环比变化”只能是胡猜。有些模型硬着头皮也会输出“本月通过率上升”,但到底升了多少,它就算不准了,所以你应该在数据准备阶段就把环比百分比算好再放进去。要把AI当成一个擅长表达的助手,而不是计算器。

4.3 让AI帮你写“人话”的三条校验规则

Prompt写得再好,也不能完全信任输出。我总结了一套三层校验方法,每一份报告在发送前都要过一遍。

第一层是数值校验。脚本会把AI输出里的关键数字全部抽取出来,与统计数据源做自动化比对。如果AI输出的“94.2%”和统计数据不一致,就说明它要么算错了要么偷偷改了数,需要终止发送并重新生成。第二层是章节校验。检查AI输出是否包含Prompt要求的全部章节,有没有缺失;缺失的话进行二次修复或打回重新生成。第三层是人工抽查。每个月至少随机抽一份报告,人工阅读一遍,确认表达没有AI味、结论没有跑偏。

我最推荐的一个技巧,是不要直接让AI输出自然语言长文,而是让它输出固定结构的JSON,再由脚本渲染成Markdown或Word。比如让AI返回“核心结论”“风险点列表”“下周计划”几个字段,脚本渲染时套用统一的视觉格式。这样就算模型抽风调整了措辞,最终文档的排版也不会乱。代价是Prompt要写得更细,但稳定性提升非常明显。

5. 落地一个月之后的避坑实录

从脚本跑通到真正稳定用了大概一个月。这一个月里踩过的坑,比写代码本身更能说明问题。我把最有代表性的几个问题原原本本写出来,希望你不用再走一遍。

5.1 数据口径不一致:我就吃过“本周时间范围”的亏

最开始我的采集脚本用了一个很天真的逻辑:取当前自然周的周一和周日。结果某个月的最后一周,团队报告的“本周新增缺陷”和缺陷系统里的页面数字对不上。查了半天发现,项目的统计维度用的是“上一个迭代周期”而非自然周,迭代从周三开始到周二结束,和自然周始终错开。页面显示的是迭代周期,我的脚本算的是自然周,两边当然对不上。

后来统一了规则:所有周报口径默认采用自然周,周一零点到周日24点;所有月报采用自然月。这个口径和绝大多数团队的例会节奏是匹配的。如果你所在团队习惯用迭代周期,那就要在采集脚本里把迭代日历表维护进去,并确保所有人知道这一点。口径不同导致的“假环比”,比没有周报还糟糕。

另一个相关的坑是时间字段混淆。缺陷记录里有“创建时间”“更新时间”“解决时间”三个字段,曾经有个成员在导出时用了“更新时间”作为“本周新增”的判断依据,导致历史缺陷一旦被打回重开,就算进了本周新增。修复方法也很简单:采集脚本里显式规定,新增缺陷只能看创建时间。“创建”的含义比“更新”稳定得多。

5.2 AI的自由发挥与格式漂移:它老喜欢自己加戏

AI在生成周报时最容易出现的问题,就是给自己“加戏”。比如它会基于“存在2个高危缺陷”自动编写“建议加班修复”。这种建议听起来没问题,但实际业务上未必需要加班,AI并不知道团队的人力安排。所以我在Prompt里加了另一条约束:“所有建议和计划必须基于数据合理推断,不得假设具体的人力安排、上线日期等未提供信息。”

格式漂移是另一个高频问题。同一套Prompt,这周模型多输出一个“团队协作专项”,下周少输出“风险与问题”段落。人类看内容可能觉得还行,但一旦进入自动化发送流程,接收方就会觉得格式不稳定。我的最终解法是让AI输出JSON字段,再做模板渲染,从根本上杜绝了格式漂移。这个改动的效果立竿见影,之后的报告排版完全统一。

5.3 工具与权限的现实问题:密钥、内网、敏感数据

跑自动化报告,绕不开API密钥和访问权限的问题。有一条原则必须遵守:API密钥绝对不要硬编码在脚本里,至少用环境变量管理。我在团队里是放在部署机的环境变量文件里,权限设为只有运维账号可读,这样就算脚本源码被克隆到别的机器上,也不会把密钥带过去。

还要考虑大模型接口的访问环境。有的公司测试数据不允许出内网,这时候你有两个选择:一是选择可以内网部署的模型服务,二是对数据进行脱敏后再调用外部模型。脱敏包括把测试人员姓名替换为“成员A”“成员B”,把具体项目名替换为“项目X”,缺陷描述不完全去除的话也至少要剔除内部代号。我强烈建议在跑通流程的第一天就向你的合规同事确认清楚,别等出了事再改。

5.4 从“写了报告”到“看懂报告”:汇报结构的优化

自动化之后,我才有闲工夫去琢磨报告本身写得好不好。一个明显的问题是,第一版周报虽然数字都齐,但阅读体验是“结论藏在表格后面”,领导要自己从数据里得出结论。这不合格。

我把报告结构改成了“结论先行”:

## 本周核心结论 本周质量整体可控,通过率从上周的91.6%提升至94.2%,但遗留高危缺陷仍有3个未关闭,其中1个阻塞下周发版计划,建议开发团队优先处理。 ## 质量指标 (表格) ## 风险与问题 (风险列表) ## 下周计划 (计划列表)

改完之后,领导只看前三行就能抓住重点。原来周会要花十分钟逐条过数据,现在开会直接讨论风险对策。这个过程让我意识到,AI生成报告最大的影响不只是省了写报告的时间,而是把测试团队的精力从“整理数据和写总结”挪到了“分析和决策”上。这个价值,远大于每周省下的一两个小时。

6. 常见问题速查表:照着排查就行

最后把我在落地过程中遇到的典型问题整理成一张速查表,遇到报错或报告异常,优先对着这张表排查。

6.1 高频问题与排查方向

问题现象常见原因解决思路
报告里数字与源系统不一致统计口径或时区设置不同统一自然周/月口径,检查UTC时区转换
AI输出凭空增加缺陷原因Prompt未禁止编造添加“严禁编造数据”约束,数据缺失写“暂无数据”
每周报告格式不统一直接让AI自由排版改为AI输出JSON字段,脚本统一渲染
脚本周五没跑出来定时任务未挂载或密钥失效检查crontab状态和环境变量是否过期
统计脚本突然报错数据源接口字段变更把接口返回字段做配置映射,定期巡检
上月数据对不上导致环比错误没有保存上月基线数据每次生成后自动存一份历史快照
群里发出来的报告缺章少节模型返回异常但脚本未察觉增加章节完整性校验,失败重试或告警
域名或接口被防火墙拦截内网限制外部API访问确认部署环境网络策略,或选择内网模型服务

6.2 上线前自检清单

按我的经验,新接入一套报告自动生成流程,在上线前逐项打勾比较稳妥:

  • 采集脚本能从所有数据源拉到周三天的完整数据,字段映射已核对
  • 统计指标在两个不同日期范围下与人工抽查结果一致
  • Prompt模板包含固定章节、数据注入、禁用规则三要素
  • 生成结果通过数值校验、章节校验、人工抽查三层检查
  • 发送目标的webhook或邮件通道测试成功,失败时有告警通知
  • 密钥使用环境变量管理,脱敏规则已经过合规确认
  • 脚本以半自动方式运行至少两周,随后再开启全自动发送
  • 每次生成的报告自动归档,便于追溯和复盘

这套流程跑通之后,我最大的体会是:AI生成测试报告这件事,真正难的根本不在AI,而在于把报告要用的数据整理到足够干净、口径足够一致。模型本身只是最后那个“翻译官”,前面所有脏活累活,都是要靠工程手段解决的。如果你正准备动手做,我的建议是先别急着接模型,先花一周时间把你自己手工写周报时用到的数据表整理出来,跑顺数据流转,后面的路自然就通了。另外一个小技巧,周报脚本先别追求全自动,用“自动生成+人工确认发送”的模式跑两周,等所有环节稳定了再放手,你会少踩很多周五晚上的坑。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 10:20:21

具身智能十年演进:从割裂模块到VLA模型与数据闭环实践

做机器人控制出身的人&#xff0c;早几年最怕被问一个问题&#xff1a;“你这机械臂&#xff0c;到底有没有脑子&#xff1f;”当时我只能解释说&#xff0c;它有一套很稳定的视觉算法&#xff0c;配上示教轨迹或者运动规划&#xff0c;在固定场景里能干得挺漂亮。但问的人多了…

作者头像 李华
网站建设 2026/10/19 10:19:02

点云融合实战:三帧RGB-D数据拼接与ICP精配准完整流程

简介&#xff1a;面向三维重建与计算机视觉学习者的点云融合实验包&#xff0c;基于RGB-D相机获取的不连续三帧图像&#xff0c;展示从深度图与彩色图生成点云、经坐标变换与配准后融合成一幅完整点云的完整流程&#xff0c;帮助理解齐次变换矩阵、ICP配准等核心概念。压缩包共…

作者头像 李华
网站建设 2026/10/19 10:18:59

用代码生成动效视频:Opus 5.5 声明式视频编程实践

1. 项目概述&#xff1a;当视频创作变成“写代码”的事你有没有试过&#xff0c;打开一个网页&#xff0c;输入几行类似video.addScene({ duration: 3, bg: "#2563eb", text: "欢迎来到 Opus" })的代码&#xff0c;回车一按&#xff0c;一段带转场、配乐、…

作者头像 李华
网站建设 2026/10/19 10:17:47

Pi Agent 极简编程代理:终端安装配置与参数调优实战

1. 为什么我要在终端里养一个编程代理 第一次看到 Pi Agent 这个名字&#xff0c;我脑子里蹦出来的画面是一个住在终端里的小助手&#xff0c;你敲一行命令&#xff0c;它帮你读代码、改文件、跑测试&#xff0c;全程不离开键盘。用了一段时间之后&#xff0c;我发现这个定位其…

作者头像 李华
网站建设 2026/10/19 10:17:11

从0到2万Star:AI编程实战教程的构建与增长复盘

最开始做这个 AI 编程教程的时候&#xff0c;我完全没想到它能走到 2 万 Star&#xff0c;更没想到会被头部 AI 助手主动收录进推荐位。仓库里堆了一百多个 issue、两百多次 commit&#xff0c;从一套零散的 Prompt 实验记录&#xff0c;慢慢长成一个结构完整的开源教程&#x…

作者头像 李华
网站建设 2026/10/19 10:16:57

基于OWASP MASTG的移动应用安全测试自动化框架设计指南

做移动应用安全测试的同学&#xff0c;应该都经历过那种“从入门到放弃”的阶段。拿到一个APP&#xff0c;人人都会装个扫描器跑一遍&#xff0c;跑出来的几十页PDF报告&#xff0c;真问起来哪里有问题、严重到什么程度、怎么修复&#xff0c;反而说不出话。我自己前几年一直在…

作者头像 李华