从敏捷到生成式:AIGC如何改变软件测试的全流程

从敏捷到生成式:AIGC如何改变软件测试的全流程
在这里插入图片描述

过去二十年,软件测试经历了两次重要范式变迁。

第一次是 瀑布式测试 → 敏捷测试
第二次是 人工驱动测试 → 自动化测试

而今天,随着生成式人工智能(AIGC)的兴起,软件测试正在经历第三次重大转型:

从“敏捷测试”走向“生成式测试(Generative Testing)”。

这种变化不仅仅是工具升级,而是测试方法论、测试流程和测试角色的全面重构
本文将从工程实践的角度,系统分析 AIGC 如何重塑软件测试全流程,并给出可以落地的技术路径。


一、软件测试范式的三次演进

软件测试的发展基本可以分为三个阶段。

阶段核心特点主要问题
瀑布测试测试在开发后期进行反馈周期长
敏捷测试测试融入开发迭代人工成本高
生成式测试AI参与测试设计与执行方法论正在形成

敏捷测试思想来自
Agile Testing: A Practical Guide for Testers and Agile Teams
以及
Continuous Delivery
提出的持续交付理念。

其核心思想包括:

  • 测试左移(Shift Left)
  • 持续测试(Continuous Testing)
  • 自动化优先

但随着系统复杂度上升,敏捷测试仍然面临三大挑战:

1 测试设计效率低

需求越来越多,但测试人员有限。

2 自动化脚本维护成本高

测试脚本经常随 UI 或接口变化而失效。

3 测试分析能力不足

大量测试数据难以转化为质量洞察。

生成式 AI 的出现,为这些问题提供了新的解决路径。


二、什么是“生成式测试”

所谓 生成式测试(Generative Testing),本质是利用大模型的生成能力,自动完成测试活动中的关键任务:

  • 需求理解
  • 测试设计
  • 测试脚本生成
  • 测试数据生成
  • 测试结果分析

技术基础来自 生成式人工智能(Generative AI)。

生成式 AI 的概念在
Generative AI
中被系统化总结,其核心能力包括:

  • 文本生成
  • 代码生成
  • 结构化信息提取
  • 知识推理

在软件测试领域,这些能力可以直接应用于多个环节。


三、AIGC如何重塑软件测试全流程

我们可以按照软件测试生命周期(STLC)来分析。

传统测试生命周期包括:

1 需求分析
2 测试设计
3 测试实现
4 测试执行
5 测试报告

AIGC几乎可以介入每一个环节。


四、需求分析阶段:AI理解需求

需求分析一直是测试设计的基础。

但现实中需求文档往往存在:

  • 表述模糊
  • 业务规则复杂
  • 隐含逻辑较多

生成式 AI 可以帮助进行 需求语义分析

典型能力包括:

1 提取功能点

例如需求:

用户可以通过手机号注册账户, 并通过短信验证码进行验证。 

AI可以提取:

  • 注册功能
  • 手机号校验
  • 验证码验证
  • 账户创建

2 识别测试场景

AI可生成测试场景:

  • 正常注册
  • 错误验证码
  • 手机号格式错误
  • 验证码过期

3 识别需求风险

例如:

  • 是否限制验证码发送频率
  • 是否存在暴力注册风险

这类需求分析任务非常适合大模型。


五、测试设计阶段:AI生成测试用例

测试设计是测试工作中最耗时的环节之一。

AIGC可以自动完成以下工作:

1 等价类划分

例如输入:

年龄:0-120 

AI可以自动生成:

类型测试值
有效值18
边界值0,120
无效值-1,121

2 边界值测试

AI可以识别:

  • 最小值
  • 最大值
  • 边界附近值

3 组合测试设计

在复杂系统中,参数组合会指数级增长。

传统方法通常使用
PICT
进行组合测试生成。

AI可以结合业务语义自动生成组合测试场景,例如:

支付系统组合测试:

支付方式设备网络
微信iOS4G
支付宝AndroidWiFi
银行卡Web5G

六、测试实现阶段:AI生成自动化脚本

自动化脚本开发通常需要较强编程能力。

生成式 AI 在代码生成方面已经取得显著进展,例如:

GitHub Copilot

Codeium。

在测试领域,可以自动生成:

1 API测试脚本

示例:

import requests deftest_create_user(): url="https://api.test.com/user" data={"name":"test","age":18} r=requests.post(url,json=data)assert r.status_code==200

2 UI自动化脚本

示例(Selenium):

from selenium import webdriver driver = webdriver.Chrome() driver.get("https://test.com/login") driver.find_element("id","username").send_keys("test") driver.find_element("id","password").send_keys("123456") driver.find_element("id","login").click()

七、测试执行阶段:AI生成测试数据

测试数据生成是自动化测试的重要环节。

AI可以生成:

  • 随机测试数据
  • 边界测试数据
  • 异常测试数据
  • 脱敏数据

例如金融系统测试:

生成1000条模拟交易数据: 金额范围:1-10000 币种:USD / CNY 

AI可以快速生成符合业务规则的数据集。


八、测试分析阶段:AI分析测试结果

测试执行后通常会产生大量数据:

  • 自动化测试日志
  • 错误日志
  • 缺陷报告

AI可以自动完成:

1 测试日志聚类

识别相同类型错误。

2 Bug分类

自动判断:

  • UI问题
  • API问题
  • 性能问题

3 生成测试报告

例如自动生成:

  • 测试执行统计
  • 缺陷趋势分析
  • 发布风险评估

#九、未来的软件测试形态

随着 AIGC 技术成熟,软件测试将出现几个明显趋势。


1 测试工程师角色升级

执行测试

转变为

设计测试策略


2 自动化测试比例提升

未来很多测试脚本将由 AI 自动生成。


3 测试系统智能化

未来测试平台将具备:

  • 自动生成测试
  • 自动执行测试
  • 自动分析质量

结语

软件测试的核心使命从未改变:

降低软件质量风险。

但实现这一目标的方法正在发生巨大变化。

敏捷测试解决了 开发与测试协作问题
自动化测试解决了 效率问题

而 AIGC 正在解决第三个关键问题:

测试智能化。

当 AI 可以理解需求、设计测试、生成脚本、分析结果时,软件测试将从一种“人工密集型工作”转变为一种智能化工程活动

这不仅会改变测试流程,也会重新定义测试工程师的价值。

未来的软件测试团队,将不再只是“写用例的人”,而是管理软件质量智能系统的人

Read more

前端CI/CD流程:自动化部署的正确打开方式

前端CI/CD流程:自动化部署的正确打开方式 毒舌时刻 CI/CD?听起来就像是前端工程师为了显得自己很专业而特意搞的一套复杂流程。你以为配置了CI/CD就能解决所有部署问题?别做梦了!到时候你会发现,CI/CD配置出错的概率比手动部署还高。 你以为随便找个CI/CD工具就能用?别天真了!不同的工具配置方式不同,坑也不同。比如Jenkins的配置文件就像是天书,GitLab CI的YAML语法也能让你崩溃。 为什么你需要这个 1. 自动化部署:CI/CD可以自动完成代码测试、构建和部署,减少手动操作,提高部署效率。 2. 减少人为错误:自动化部署可以避免手动部署时的人为错误,提高部署的可靠性。 3. 快速反馈:CI/CD可以在代码提交后立即进行测试和构建,及时发现问题,提供快速反馈。 4. 持续集成:CI/CD可以确保代码的持续集成,避免代码冲突和集成问题。 5. 环境一致性:CI/CD可以确保不同环境的配置一致,避免环境差异导致的问题。 反面教材

他到底喜欢我吗?赛博塔罗Java+前端实现,一键解答!

他到底喜欢我吗?赛博塔罗Java+前端实现,一键解答!

个人主页-爱因斯晨 文章专栏-赛博算命 原来我们在已往的赛博算命系列文章中的源码已经传到我的Github仓库中,有兴趣的家人们可以自己运行查看。 Github 源码中的一些不足,还恳请业界大佬们批评指正! 本文章的源码已经打包至资源绑定,仓库中也同步更新。 一、引言 在数字化浪潮席卷全球的当下,传统塔罗牌占卜这一古老智慧也迎来了新的表达形式 ——“赛博塔罗”。本文档旨在深入剖析塔罗牌的核心原理,并详细介绍如何利用 Java 语言实现一个简易的塔罗牌预测程序,展现传统神秘学与现代编程技术的融合。 二、塔罗牌原理 (一)集体潜意识与原型理论 瑞士心理学家卡尔・荣格提出的 “集体潜意识” 理论,为塔罗牌的运作提供了重要的心理学支撑。该理论认为,人类拥有超越个体经验的共同心理结构,其中蕴含着 “原型”—— 即普遍存在的、象征性的模式或形象。 塔罗牌的 22 张大阿尔卡那牌恰好与这些基本原型相对应。例如,“愚人” 代表着天真与新开始的原型,“魔术师” 象征着创造力与潜能的原型,“女祭司” 则体现了智慧与直觉的原型。这些原型是全人类共通的心理元素,这也正是不同文化背景的人都能

Web 可访问性最佳实践:构建人人可用的前端界面

Web 可访问性最佳实践:构建人人可用的前端界面 代码如诗,包容如画。让我们用可访问性的理念,构建出人人都能使用的前端界面。 什么是 Web 可访问性? Web 可访问性(Web Accessibility)是指网站、工具和技术能够被所有人使用,包括那些有 disabilities 的人。这意味着无论用户的能力如何,他们都应该能够感知、理解、导航和与 Web 内容交互。 为什么 Web 可访问性很重要? 1. 法律要求:许多国家和地区都有法律法规要求网站必须具有可访问性。 2. 扩大用户群体:约 15% 的世界人口生活有某种形式的 disability,可访问性可以让更多人使用你的网站。 3. SEO 优化:搜索引擎爬虫依赖于可访问性良好的网站结构。 4. 更好的用户体验:可访问性改进通常会使所有用户受益,而不仅仅是那些有 disabilities 的用户。 5. 社会责任:

AI 的提示词专栏:LLM(大语言模型)到底是怎么工作的?

AI 的提示词专栏:LLM(大语言模型)到底是怎么工作的?

AI 的提示词专栏:LLM(大语言模型)到底是怎么工作的? 本文以通俗语言拆解大语言模型(LLM)工作机制,先阐明其核心是基于概率预测下一个 token,依赖 Transformer 架构的注意力机制理解上下文,通过海量数据训练形成隐性语言知识图谱。接着解析其 “输入处理 — 编码 — 特征提取 — 解码 — 输出” 五大技术模块,详解 “预训练 — 微调 — 对齐” 三阶段训练流程,以 “写智能台灯产品需求文档” 为例拆解完整推理链路。还指出 LLM 存在事实性错误、逻辑推理薄弱等能力边界,对比其与人类智能在学习方式、推理逻辑等方面的本质区别,最后说明理解 LLM 工作原理对优化 Prompt、预判输出、高效用模的价值,助力读者理性认识和使用 LLM。 人工智能专栏介绍     人工智能学习合集专栏是 AI 学习者的实用工具。它像一个全面的 AI 知识库,