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

赋能软件测试:Qwen1.5-1.8B GPTQ自动生成测试用例与缺陷报告

赋能软件测试Qwen1.5-1.8B GPTQ自动生成测试用例与缺陷报告如果你是一名软件测试工程师下面这些场景你一定不陌生面对一份几十页的产品需求文档需要手动设计上百个测试用例光是思考边界值就让人头大或者在复现一个复杂缺陷后还要花大量时间填写格式繁琐的缺陷报告。这些重复、繁琐的文档工作占据了测试人员大量宝贵时间而核心的探索性测试和深度质量分析反而被挤压。今天我们就来聊聊如何用AI大模型改变这个现状。具体来说是借助一个经过量化、对硬件友好的轻量级模型——Qwen1.5-1.8B GPTQ让它成为你的测试助手自动完成测试用例设计和缺陷报告编写这两项高频且耗时的任务。这不仅仅是“玩具”而是能直接提升你工作效率的实用工具。1. 为什么选择Qwen1.5-1.8B GPTQ做测试助手在考虑将AI引入测试流程时我们通常会担心几个问题模型是否足够“懂”业务部署起来会不会很复杂运行成本高不高Qwen1.5-1.8B GPTQ版本在这几个方面表现出了不错的平衡性。首先它的“专业性”够用。1.8B的参数规模在理解测试领域的特定术语和逻辑如“边界值分析”、“等价类划分”、“优先级”、“严重程度”方面已经具备了相当不错的能力。它能够根据你提供的需求描述推理出需要测试的点和场景。其次GPTQ量化技术是关键。简单来说GPTQ是一种模型压缩技术能在几乎不损失精度的情况下大幅减少模型对显存的需求。这意味着原本需要高端显卡才能运行的模型现在在消费级显卡甚至某些情况下用CPU上也能流畅运行。对于大多数开发测试团队来说部署门槛和硬件成本大大降低。最后它的“性价比”很高。轻量级模型响应速度快适合集成到CI/CD流水线中进行实时或批量的测试用例生成。你可以把它部署在本地服务器或开发机上数据不必出域安全性也有保障。2. 实战场景一从需求文档到测试用例我们来看第一个核心场景自动生成测试用例。测试用例设计的核心在于对需求的分析和拆解这正是大模型所擅长的。2.1 如何让模型理解你的需求模型不是测试专家你需要给它清晰的“指令”和“背景”。直接扔给它一整份PDF需求文档效果可能不好。最佳实践是你先对需求进行初步提炼然后用结构化的文本描述给模型。举个例子假设我们有一个用户登录的功能需求。你不要只说“测试登录功能”。而是给它一个更详细的上下文【功能模块】用户登录 【需求描述】 1. 用户可通过用户名和密码登录。 2. 用户名要求6-20位字符可包含字母、数字、下划线。 3. 密码要求8-16位字符必须包含大小写字母和数字。 4. 登录成功跳转至首页。 5. 登录失败根据情况提示“用户名不存在”、“密码错误”、“账号已锁定”。 6. 连续5次密码错误后账号锁定30分钟。 【测试类型】功能测试、边界值测试、异常流测试。2.2 设计一个高效的提示词模板有了需求背景接下来需要一个好的“提问方式”也就是提示词Prompt。一个好的提示词应该告诉模型角色、任务、输出格式。# 这是一个生成测试用例的提示词模板 def build_testcase_prompt(requirement): prompt f 你是一个资深的软件测试工程师擅长设计严谨、全面的测试用例。 请根据以下功能需求设计详细的测试用例。要求覆盖正常场景、边界值场景和异常场景。 【需求开始】 {requirement} 【需求结束】 请以Markdown表格形式输出测试用例表格包含以下列 - 用例编号 - 测试场景/描述 - 前置条件 - 测试步骤 - 预期结果 - 优先级 (高/中/低) - 测试类型 (功能/边界值/异常) 请开始设计 return prompt2.3 调用模型并解析结果我们将上述提示词发送给部署好的Qwen1.5-1.8B GPTQ模型。这里假设我们已经有了一个简单的模型调用函数。import requests import json # 假设模型服务部署在本地 8000 端口 def generate_with_qwen(prompt, max_tokens1024): url http://localhost:8000/v1/completions headers {Content-Type: application/json} data { prompt: prompt, max_tokens: max_tokens, temperature: 0.1, # 温度调低让输出更确定、更结构化 stop: [【需求开始】, ###] # 设置停止词避免模型胡言乱语 } response requests.post(url, headersheaders, datajson.dumps(data)) result response.json() return result[choices][0][text] # 组合需求与提示词模板 login_requirement ... # 这里放入2.1节的需求描述 full_prompt build_testcase_prompt(login_requirement) # 调用模型生成 generated_text generate_with_qwen(full_prompt) print(generated_text)2.4 看看模型能生成什么运行上面的代码模型可能会输出类似下面的Markdown表格内容。当然每次生成结果会有细微差异但整体结构和质量令人惊喜。用例编号测试场景/描述前置条件测试步骤预期结果优先级测试类型TC-LOGIN-001正常登录用户已注册账号未锁定1. 输入正确的用户名和密码2. 点击登录登录成功跳转至首页高功能TC-LOGIN-002用户名长度下边界 (6位)用户已注册用户名为6位合法字符1. 输入6位用户名和正确密码2. 点击登录登录成功中边界值TC-LOGIN-003用户名长度上边界 (20位)用户已注册用户名为20位合法字符1. 输入20位用户名和正确密码2. 点击登录登录成功中边界值TC-LOGIN-004用户名过短 (5位)无1. 输入5位用户名和任意密码2. 点击登录提示“用户名格式错误”或登录失败中边界值/异常TC-LOGIN-005用户名过长 (21位)无1. 输入21位用户名和任意密码2. 点击登录提示“用户名格式错误”或登录失败中边界值/异常TC-LOGIN-006密码错误用户已注册1. 输入正确用户名和错误密码2. 点击登录提示“密码错误”高异常TC-LOGIN-007用户名不存在无1. 输入未注册的用户名和任意密码2. 点击登录提示“用户名不存在”高异常TC-LOGIN-008连续5次密码错误后账号锁定用户已注册1. 使用正确用户名连续输入错误密码5次2. 第6次尝试输入正确密码第1-5次提示“密码错误”第6次提示“账号已锁定请30分钟后重试”高异常效果分析可以看到模型不仅生成了基本的正向用例还自动考虑了用户名字符长度的边界值6位和20位的合法测试5位和21位的非法测试并且准确捕捉到了“连续错误锁定账号”的业务规则。这为测试工程师提供了一个高质量的初稿大大减少了从零开始构思的时间。3. 实战场景二从自然语言到结构化缺陷报告第二个痛点是缺陷报告编写。测试人员发现了问题但将其转化为标准、清晰、包含必要信息的缺陷报告又是一个耗时的工作。我们可以让模型来完成这个“翻译”工作。3.1 构建缺陷报告模板首先你需要一个公司或团队内部标准的缺陷报告模板。把这个模板“教”给模型。# 定义缺陷报告的字段模板 defect_template { 标题: 【简要描述缺陷的核心现象】, 缺陷类型: 功能/界面/性能/安全/兼容性, 严重程度: 致命/严重/一般/轻微, 优先级: P0/P1/P2/P3, 测试环境: 例如Chrome 浏览器 120.0 版本Windows 11, 复现步骤: 1. ...\n2. ...\n3. ..., 实际结果: 描述实际发生的错误现象可附截图或日志关键词。, 预期结果: 描述按照需求应该出现的正确结果。, 根因分析可选: 初步判断可能的原因。, 附件: 截图、日志文件等。 }3.2 设计缺陷报告生成的提示词这个提示词需要引导模型从一段自由的、口语化的描述中提取关键信息并填充到模板中。def build_defect_report_prompt(oral_description): prompt f 你是一个专业的测试工程师负责将测试人员发现的缺陷口头描述整理成结构化的缺陷报告。 请根据以下测试人员的描述生成一份完整的缺陷报告。请仔细分析描述推断并补充缺失的字段信息如环境、严重程度等使其符合专业标准。 【测试人员描述】 “{oral_description}” 请严格按照以下JSON格式输出只输出JSON对象不要有任何额外解释 {json.dumps(defect_template, indent2, ensure_asciiFalse)} return prompt3.3 实际应用示例假设测试人员在聊天群里说“我刚才测那个新建订单功能选了个库存为0的商品点提交页面直接卡死了白屏F12看控制台有个JS报错‘Uncaught TypeError’。”我们把这段描述传给模型。oral_desc “我刚才测那个新建订单功能选了个库存为0的商品点提交页面直接卡死了白屏F12看控制台有个JS报错‘Uncaught TypeError’。” defect_prompt build_defect_report_prompt(oral_desc) report_json_str generate_with_qwen(defect_prompt, max_tokens500) # 解析JSON结果 import json defect_report json.loads(report_json_str.strip()) print(json.dumps(defect_report, indent2, ensure_asciiFalse))3.4 模型生成的缺陷报告模型可能会输出如下结构的JSON数据。它从口语化描述中识别出了“功能模块”、“缺陷现象”、“错误日志”并合理推断出了“缺陷类型”、“严重程度”和“复现步骤”。{ 标题: 新建订单页面选择库存为0的商品提交时页面白屏并出现JS错误, 缺陷类型: 功能, 严重程度: 严重, 优先级: P1, 测试环境: Chrome 浏览器具体版本未知需补充, 复现步骤: 1. 进入新建订单页面。\n2. 选择一个库存数量为0的商品。\n3. 点击提交订单按钮。, 实际结果: 页面卡死变为白屏。浏览器开发者工具控制台出现错误Uncaught TypeError: ...。, 预期结果: 应提示用户商品库存不足无法下单或按钮置灰不可点击页面不应崩溃。, 根因分析可选: 前端代码在处理库存为0的商品时未做有效性校验直接进行了可能导致类型错误或空指针异常的操作。, 附件: 建议补充控制台错误截图及网络请求截图。 }效果分析模型成功地将一句口语化的抱怨转化为了包含标题、类型、步骤、结果对比等要素的结构化报告。测试人员只需要核对和补充少量信息如具体浏览器版本、上传截图一份规范的缺陷报告就完成了。这能节省至少70%的缺陷报告编写时间。4. 如何在实际工作中用好它看到这里你可能已经跃跃欲试。但在引入任何新工具时都需要一个合理的策略。这里有一些实践建议。定位是“助手”不是“替代”不要指望AI生成100%完美、可直接使用的测试用例或报告。它的角色是“高级初稿生成器”和“灵感加速器”。测试工程师的核心价值在于对业务深刻的理解、对质量风险的判断以及探索性测试的能力这些是AI目前无法取代的。你应该把节省下来的时间投入到这些更高价值的工作上。建立“人机协同”流程需求输入阶段由测试负责人或资深工程师对原始需求进行梳理和提炼形成结构清晰的描述文本。这是保证生成质量的关键。AI生成阶段使用定制好的提示词模板调用模型批量生成初稿。人工评审与精修阶段测试工程师对AI生成的用例进行评审修正逻辑错误补充AI未考虑到的复杂场景、组合场景或业务规则隐含的场景。反馈与优化将人工修正后的优质用例作为新的样本数据可以用于微调模型如果条件允许或者 simply 用来优化你的提示词让模型下次表现更好。注意数据安全与隐私如果处理的是公司内部敏感业务需求务必确保模型部署在本地或受信任的私有环境中避免将敏感数据发送到不可控的公有云API。5. 总结整体尝试下来Qwen1.5-1.8B GPTQ在软件测试的文档自动化方面展现出了实用的潜力。它特别适合处理那些有明确规则、但极其耗费人力的结构化文档生成任务。对于测试用例设计它能快速覆盖大量的边界和常规场景把测试人员从重复劳动中解放出来对于缺陷报告它能将碎片化的沟通转化为标准化文档提升团队协作效率。当然它也不是万能的。对于业务逻辑极其复杂、依赖领域深度知识的测试场景或者需要创造性探索的测试点它可能力有不逮。这时人的经验和智慧就显得尤为重要。最好的方式就是把AI当作一个不知疲倦、效率极高的初级助手让它帮你完成前期80%的铺垫性工作而你则专注于最后20%的精华与核心判断。技术的价值在于应用。如果你正在为测试效率和文档质量发愁不妨找个简单的功能模块试试这个方法。从一个小点开始体验一下AI辅助带来的变化或许你会打开一扇新的大门。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

赋能软件测试:Qwen1.5-1.8B GPTQ自动生成测试用例与缺陷报告

赋能软件测试:Qwen1.5-1.8B GPTQ自动生成测试用例与缺陷报告 如果你是一名软件测试工程师,下面这些场景你一定不陌生:面对一份几十页的产品需求文档,需要手动设计上百个测试用例,光是思考边界值就让人头大&#xff1b…...

Gitee:中国开发者生态的数字底座如何赋能本土创新

在中国数字经济快速发展的背景下,代码托管平台作为软件开发的基础设施,其战略价值日益凸显。Gitee作为国内领先的一站式开发者平台,通过其本土化优势、全流程工具链和安全合规能力,正在重塑国内技术团队的工作方式与创新模式。 深…...

Win10 Hyper-V 虚拟机网络配置避坑指南(实战经验)

1. Hyper-V网络配置的底层逻辑 很多人第一次用Hyper-V创建CentOS7虚拟机时,都会遇到一个魔幻现象:按照教程一步步操作,虚拟机死活上不了网。我当年踩这个坑时,曾连续三天熬夜排查,最后发现根本原因是没搞懂Hyper-V的三…...

华为交换机Telnet与SSH登录配置实战指南

1. 华为交换机远程管理协议选型指南 第一次接触华为交换机时,很多新手都会困惑:到底该用Telnet还是SSH?这两种远程登录方式就像我们日常生活中的普通信件和挂号信的区别。Telnet像是明信片,传输内容一目了然;SSH则像加…...

Windows下Labelme安装避坑指南:解决Qt插件加载失败和PyQt5版本冲突

Windows下Labelme安装全攻略:从环境配置到疑难解析 在计算机视觉和图像标注领域,Labelme以其简洁直观的界面和强大的功能成为众多开发者的首选工具。然而,对于Windows用户来说,安装过程往往伴随着各种环境配置问题,尤其…...

别只当投屏工具!5KPlayer的AirPlay接收器,还能这样玩出生产力

5KPlayer AirPlay接收器的生产力革命:解锁跨设备工作流新范式 在数字办公时代,设备间的壁垒往往成为效率的最大障碍。当MacBook的精致便携遇上Windows台式机的大屏性能,如何让两者协同工作而非各自为战?5KPlayer的AirPlay接收器功…...

2025年终极网盘直链提取神器:LinkSwift完整使用指南

2025年终极网盘直链提取神器:LinkSwift完整使用指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...

逆向微信视频下载:从手动点击到自动化HOOK的完整实现

1. 为什么需要逆向微信视频下载功能 微信作为国民级社交应用,每天有海量视频通过聊天窗口传输。但官方客户端的设计逻辑决定了视频下载必须手动点击,这在自动化处理场景中成为明显瓶颈。我去年接手过一个智能客服系统项目,需要自动归档客户发…...

WeChatMsg终极指南:如何永久免费保存微信聊天记录并生成年度报告

WeChatMsg终极指南:如何永久免费保存微信聊天记录并生成年度报告 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trendin…...

DDrawCompat:3分钟解决Windows老游戏兼容性问题的终极方案

DDrawCompat:3分钟解决Windows老游戏兼容性问题的终极方案 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd/DD…...

QMCDecode:解锁QQ音乐加密格式的终极指南 [特殊字符]

QMCDecode:解锁QQ音乐加密格式的终极指南 🎵 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认…...

Horos:专业医疗影像查看器的完整入门指南

Horos:专业医疗影像查看器的完整入门指南 【免费下载链接】horos Horos™ is a free, open source medical image viewer. The goal of the Horos Project is to develop a fully functional, 64-bit medical image viewer for OS X. Horos is based upon OsiriX an…...

JPL 公式由来

目录 一、JPL 公式的历史背景 二、数学基础 三、单系数:C^≈Mm/4(JPL 原始版) 1. 数学最优与工程折衷 2. 误差分析(JPL 当年的验证) 四、两段式(JPL 改进版):Mm/8 与 Mm/2 五…...

OpenWrt访问控制插件:7步实现家庭网络智能管理终极指南

OpenWrt访问控制插件:7步实现家庭网络智能管理终极指南 【免费下载链接】luci-access-control OpenWrt internet access scheduler 项目地址: https://gitcode.com/gh_mirrors/lu/luci-access-control 你是否曾为家庭网络管理而烦恼?孩子沉迷网络…...

告别充电焦虑:深度解析IP2326如何实现2S锂电池的智能平衡充电与安全保护

告别充电焦虑:深度解析IP2326如何实现2S锂电池的智能平衡充电与安全保护 在便携式设备和小型机器人设计中,锂电池管理系统(BMS)的性能直接决定了产品的可靠性和用户体验。传统分立式平衡充电方案往往面临电路复杂、体积庞大和调试…...

别再只盯着IC驱动了!手把手教你用三极管和二极管优化MOS管关断速度(附电路图)

低成本优化MOS管关断速度的实战技巧:三极管与二极管组合方案详解 在开关电源和电机驱动设计中,MOSFET的开关速度直接影响系统效率和可靠性。许多工程师习惯依赖专用驱动IC,却忽视了简单外围电路能带来的显著性能提升。本文将揭示IC直接驱动方…...

Blender化学品插件:3步搞定专业分子可视化

Blender化学品插件:3步搞定专业分子可视化 【免费下载链接】blender-chemicals Draws chemicals in Blender using common input formats (smiles, molfiles, cif files, etc.) 项目地址: https://gitcode.com/gh_mirrors/bl/blender-chemicals 还在为科研论…...

1988-2020年中国城乡收入差距演变:基于基尼系数与泰尔指数的多维分析

1. 城乡收入差距的测量工具:基尼系数与泰尔指数 要分析城乡收入差距,首先得了解两个关键指标:基尼系数和泰尔指数。这两个指标就像经济领域的"温度计",能准确测量收入分配的不平等程度。 基尼系数是意大利经济学家基尼在…...

PCB设计避坑指南:POC电感寄生电容的7种优化方法(附Coilcraft实测数据)

PCB设计避坑指南:POC电感寄生电容的7种优化方法(附Coilcraft实测数据) 在高速PCB设计中,POC(Power Over Coax)电路的性能优化一直是工程师面临的挑战。特别是GMSL(Gigabit Multimedia Serial Li…...

跨平台开源音乐播放器LX Music:解锁免费音乐世界的完整使用手册

跨平台开源音乐播放器LX Music:解锁免费音乐世界的完整使用手册 【免费下载链接】lx-music-desktop 一个基于 Electron 的音乐软件 项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop 你是否厌倦了各大音乐平台的会员限制和广告轰炸&#…...

OpenDroneMap技术架构深度解析:开源无人机测绘处理实战方案

OpenDroneMap技术架构深度解析:开源无人机测绘处理实战方案 【免费下载链接】ODM A command line toolkit to generate maps, point clouds, 3D models and DEMs from drone, balloon or kite images. 📷 项目地址: https://gitcode.com/gh_mirrors/od…...

Python自动化仿真实战:基于MPh的Comsol有限元分析高效工程实践

Python自动化仿真实战:基于MPh的Comsol有限元分析高效工程实践 【免费下载链接】MPh Pythonic scripting interface for Comsol Multiphysics 项目地址: https://gitcode.com/gh_mirrors/mp/MPh 在现代工程仿真和科学研究中,自动化工作流已成为提…...

智算中心建设新范式:GPT-6/Rubin架构+1.6T光模块+量子安全网关+AI安全沙箱,算力·效率·安全·成本的最优平衡

当AI训练进入十万卡集群时代,智算中心不再只是GPU的堆叠,而是一场从芯片、互连、安全到运行底座的系统性工程。引言2026年3月的GTC大会上,黄仁勋一句“AI竞赛已进入白热化,算力效率决定胜负”,将全球AI基础设施建设的战…...

日本,急了 ,AI成立国家队,想要追赶世界一流 -周红伟

进入AI第一梯队,几乎没有可能。文 | 华商韬略 杨彼得日本,终于急了。4月12日,日本科技圈传来重磅消息,软银、NEC、本田、索尼集团宣布联合成立“日本AI基础模型开发公司”。这四家企业,分别是日本通信、IT、汽车与电子…...

iOS 汇编进阶 - arm64 寄存器与栈帧实战解析

1. arm64寄存器全解析与实战应用 在iOS逆向工程和性能优化领域,理解arm64寄存器就像掌握了一把打开底层世界的钥匙。我第一次用Xcode调试汇编代码时,面对满屏的x0-x30完全摸不着头脑,直到搞明白这些寄存器的分工逻辑才豁然开朗。 arm64架构提…...

黑苹果休眠唤醒难题终极解决方案:HibernationFixup驱动深度解析

黑苹果休眠唤醒难题终极解决方案:HibernationFixup驱动深度解析 【免费下载链接】Hackintosh Hackintosh long-term maintenance model EFI and installation tutorial 项目地址: https://gitcode.com/gh_mirrors/ha/Hackintosh 你是否在黑苹果系统上遇到过休…...

复现NeRCo时遇到CUDA显存爆炸?别急着改batchsize,试试这个隐藏的`--preprocess`参数

复现NeRCo时遇到CUDA显存爆炸?别急着改batchsize,试试这个隐藏的--preprocess参数 当你兴奋地准备复现CVPR 2023的NeRCo论文代码时,突然遭遇torch.cuda.OutOfMemoryError这个红色警告,就像一盆冷水浇在头上。你检查了GPU配置——T…...

周红为:让电脑自己打工!微信发句话,自动做PPT、发邮件、爬数据… QClaw彻底解放打工人

还在手动开文件、做表格、发邮件?试试QClaw,一个能用微信远程控制电脑的AI智能体。只需在聊天框发句话,它就能自动打开PPT、编辑图表、运行脚本、收发文件…5000技能全免费,本地运行保护隐私。本文手把手教你5分钟装好&#xff0c…...

打卡信奥刷题(3116)用C++实现信奥题 P7365 [CTSC2002] 颁奖典礼

P7365 [CTSC2002] 颁奖典礼 题目背景 IOI2002 的颁奖典礼将在 YONG-IN Hall 隆重举行。人们在经历了充满梦幻的世界杯之后变得更加富于情趣。为了使颁奖典礼更具魅力,有人建议在 YONG-IN Hall 中搭建一个 I\text{I}I 字型的颁奖台,以此代表信息学 Inform…...

BilibiliDown:B站视频下载与批量管理完整方案

BilibiliDown:B站视频下载与批量管理完整方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibi…...