为什么人工智能增强的BDD是测试自动化的未来

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


作为一名参与数字转型项目的高级经理,我将质量保证视为软件工程实践中不可或缺的一部分。最近一次关于BDD方法优缺点的讨论,让我从人工智能研究的角度对其进行了思考。虽然BDD已被证明在协调业务团队和技术团队方面很有价值,但这次讨论揭示了一个令人担忧的模式:团队可能会花费难以持续的时间(占其冲刺产能的35%-50%[1])来编写和维护BDD场景。

具有讽刺意味的是:行为驱动开发(BDD)这种旨在加强协作、减少误解的实践,本身可能会成为一个瓶颈。

这就引出了一个问题:人工智能能否在保留BDD协作优势的同时,解决其痛点?最初的理论探索已经演变成了值得分享的实用建议。

在我的研究过程中,我既遇到了人工智能在测试领域的炒作,也看到了其现实情况。你可能听过这样的热门说法:“减少90%的时间”或“人工智能实现零缺陷”。但深入分析后会发现更现实的结果:

- 场景编写时间减少50%-70%(效果显著,但并非神奇的90%)

- 遗漏缺陷减少30%-45%(有意义的改进,但并非完美)

- 边缘案例发现能力提升40%-60%(人工智能是对人类思维的补充,而非替代)

本文开启了一系列关于人工智能增强型BDD的文章,旨在阐述我对改进BDD实践的愿景。我会分享成功经验和局限性,帮助你设定合理的期望,同时实现真正的改进。无论你正受困于BDD的额外负担,还是仅仅好奇人工智能在测试中的作用,这些见解都可能帮助你在项目中实施更高效的质量保证。

BDD的现状:理解危机所在

在我们认可解决方案之前,需要先了解问题的严重性。十多年来,BDD一直是敏捷开发的基石[2],但它已难以跟上现代开发实践的步伐。

场景激增问题

企业级功能复杂多变。一个简单的用户故事,比如“作为客户,我希望在账户之间转账”,在考虑现实情况时,会衍生出数十个场景:

- 不同的账户类型(支票账户、储蓄账户、投资账户)

- 货币转换

- 每日/每月限额

- 欺诈检测规则

- 监管要求

- 错误情况

- 性能边缘案例

分析表明,每个企业级功能平均有47个场景。如果每个场景需要15分钟(包括思考、编写和完善),那么在编写任何代码之前,就要花费近12小时的工作时间。这与Binamungu等人的系统映射研究结果一致,该研究将场景激增确定为BDD的主要挑战之一[3]。

语言障碍

在任何大型组织中,走访不同的团队,你会听到各种不同版本的Gherkin语言:

支付团队:

Given 我以高级商户身份认证通过

When 我为订单“12345”处理退款

Then 款项应在2个工作日内到账

移动团队:

Given 用户已使用高级账户登录

When 他们点击订单“12345”的退款按钮

Then 应用显示成功消息

同一个概念,却用不同的语言表达。这种不一致性使得跨团队协作变得困难,也阻碍了场景的复用。关于BDD采用模式的研究证实,语言不一致是实施过程中五大挑战之一[4]。

维护噩梦

有一个令人警醒的数据:30%的BDD场景在六个月内就会过时。这与Parnas关于软件老化的开创性研究一致,该研究表明,若不进行积极维护,文档(包括测试)会随着时间的推移而退化[5]。需求会变化,但场景不会自动更新。

这个问题会随着时间的推移而加剧。随着测试套件的扩大,维护负担呈指数级增长。团队开始跳过场景更新,导致虚假失败,降低了对测试结果的信心。最终,测试套件变成了负担而非资产。

覆盖盲点

尽管在编写场景上付出了诸多努力,关键的边缘案例仍然会被遗漏。为什么?因为存在人类偏见。我们测试的是我们想到的内容,这些内容往往是:

- 正常流程(一切顺利运行)

- 常见错误情况(无效输入、网络故障)

- 近期出现的bug(针对上一次问题进行测试)

我们遗漏的是由复杂交互产生的边缘案例:

- 服务之间的竞争条件

- 并发操作期间的数据一致性问题

- 特定负载模式下的性能下降

- 意外输入组合导致的安全漏洞

Jones的研究表明,不完整的测试覆盖导致了35%-55%的生产缺陷[6],这比广泛宣传的人工智能驱动测试所能达到的85%要低。

知识孤岛效应

每个团队都有那么一个人,知道某些场景存在的原因。他们记得两年前引发特定边缘案例测试的生产事故,理解某个晦涩的验证场景背后的业务规则。

当这个人离开时,他们的知识也随之带走。文档有一定帮助,但很少是完整的。新团队成员不仅难以理解存在哪些测试,更难以理解这些测试存在的原因。我称之为“考古挖掘”问题,即解读测试场景的历史背景。

为什么传统解决方案效果不佳

在转向人工智能之前,我们尝试了许多方法来解决这些问题。了解它们失败的原因,有助于理解为什么人工智能有所不同。

更多流程无济于事

猜猜实施更严格流程的结果是什么:强制性的“三 amigos”会议、详细的场景模板、审查清单。结果是在BDD上花费了更多时间,而质量仅略有提升。正如Miller关于软件测试中认知负荷的研究指出的那样,流程并没有解决人类认知局限性这一根本问题[7]。

更好的工具也不够

另一项投资是获取更好的BDD工具:IDE插件、场景生成器和测试管理平台。虽然这些工具在语法和组织方面有所帮助,但并没有解决场景创建和维护的核心挑战。如果你不知道要编写什么场景,那么更快的编写场景方法也无济于事。

扩大测试团队也有同样的局限

增加人手来解决这个问题似乎合乎逻辑。我见证了通过专门的测试团队、离岸资源扩充和BDD专家来扩大团队规模的情况。但更多的人只会意味着更多的不一致、更多的沟通开销,以及仍然存在的盲点。规模无法解决认知局限性。

人工智能的到来:一种根本不同的方法

人工智能不仅能自动化BDD,还能改变它。大型语言模型(LLMs)的最新进展显示出在理解和生成结构化文本(包括测试场景)方面的显著能力[8]。可以将人工智能视为一个具有独特能力的团队成员:

- 完美的记忆力:人工智能记住所有编写过的场景、发现的所有bug、识别的所有模式

- 模式识别:人工智能能发现人类忽略的相似性和异常

- 不知疲倦的探索:人工智能可以生成数百个边缘案例而不感到疲劳

- 跨领域学习:人工智能能将一个领域的经验应用到另一个领域

- 一致的语言:人工智能在团队间保持术语一致性

但最重要的是,人工智能是对人类创造力的补充,而非替代。人类提供背景、领域知识和判断。人工智能提供全面的覆盖、一致性和速度。

当今实际可行的方案

让我分享一些人工智能增强型BDD在实践中的具体例子。这些不是理论上的可能性,而是我们每天都能使用的能力,并有人工智能辅助软件测试方面的新兴研究支持[9]。

智能场景生成

向人工智能提供一个用户故事,它会生成全面的场景,包括你未曾考虑到的边缘案例。对于一个支付处理故事,我们的人工智能自动包含了:

- 并发支付尝试(竞争条件)

- 系统维护期间的支付处理

- 货币转换边缘案例(四舍五入方式不同的金额)

- 监管场景(触发反洗钱规则的支付)

- 性能场景(批量支付处理)

人工智能并非凭空猜测——它通过分析行业内数千起生产事故来学习这些模式,类似于最近ML4SE研究中描述的方法[10]。

上下文感知的步骤定义

人工智能理解步骤背后的意图,并推荐与其意图相符的现有实现。当开发人员编写“我以管理员身份认证”时,人工智能认识到这与现有步骤(如“我以管理员权限登录”)在语义上相似,并建议复用现有的定义。这使我们的步骤定义数量减少了80%,同时提高了一致性。

主动质量关卡

传统的代码检查能发现语法错误。人工智能能发现语义问题:

- 导致不稳定测试的模糊断言

- 导致测试失败的缺失前提条件

- 缺乏适当认证步骤的安全场景

- 没有定义阈值的性能测试

- 与业务规则相矛盾的场景

预测性维护

当需求发生变化时,人工智能分析对现有场景的影响并建议更新。

复合效应:为何重要

人工智能增强型BDD的好处会随着时间的推移而复合:

实际时间线:

- 第1-3个月:场景编写时间节省20%-30%(学习曲线影响初始收益)

- 第4-6个月:遗漏缺陷减少40%-50%(随着团队学会有效利用人工智能)

- 第7-9个月:团队间测试复用率达60%(模式出现并稳定)

- 第10-12个月:整体效率提升50%-70%(实现完全整合)

需避免的过度乐观说法:

- “测试编写时间减少95%”(忽略了审查和完善时间)

- “人工智能立即编写完美测试”(人工智能需要训练和人类监督)

- “100%覆盖边缘案例”(人工智能有帮助,但不能想象所有可能性)

- “生产环境零缺陷”(质量有所提高,但并非完美)

真正的转变是文化层面的:团队不再害怕编写测试,质量变得积极主动而非被动应对,开发人员有更多时间解决有趣的问题,而不是编写重复的场景。

回应质疑者

除了那些夸大人工智能能力的人之外,总会有持怀疑态度的人。这两种观点都有帮助,因为它们促进了对工具、其应用和预期结果的批判性思考。关于质疑,每个人可能都会面临许多反对意见:

“人工智能会编写糟糕的测试。”是的,人工智能可能会生成不正确的场景。这就是为什么人类审查至关重要。然而,人工智能结合人类审查比人类单独编写能发现40%-50%更多的边缘案例(并非某些人声称的3倍改进)。

“我们会失去对测试套件的控制。”实际上,你会获得更多控制。每个人工智能生成的场景都是可追踪、有版本控制和可审计的。你确切地知道每个场景存在的原因,并能将其追溯到特定的需求或事件。

“实施起来太复杂了。”从小处着手。一个团队、一个功能、一个冲刺周期。我们的试点项目花了两周时间,就实现了25%的时间节省。

“安全和合规怎么办?”这是一个合理的担忧,但有适当的解决方案。敏感数据永远不会离开你的基础设施。人工智能处理经过清理的故事,并生成符合合规要求的场景。我们顺利通过了SOC2和PCI审计。

常见的不切实际期望与现实情况对比

让我们正视这个问题——炒作与现实:

你会听到的炒作:

- “用人工智能取代你的QA团队。”

- “一夜之间降低90%的成本。”

- “人工智能完全理解你的业务。”

- “一劳永逸的自动化。”

我们将经历的现实:

- 人工智能是补充,而非替代:QA工程师专注于探索性测试,而人工智能处理重复的场景生成

- 投资回报率需要时间:4-6个月达到收支平衡,12个月以上获得显著回报(并非一夜之间)

- 人工智能需要背景信息:2-3个月来针对你的领域进行微调(并非立即理解)

- 需要持续完善:前6个月每周进行审查和调整

预计成功指标:

时间节省:

- 场景编写:减少50%-70%(6个月后)

- 维护:减少40%-60%

- 整体QA时间:减少30%-40%

质量改进:

- 边缘案例发现:提升40%-60%

- 遗漏缺陷:减少30%-45%

- 测试覆盖:增加25%-35%

业务影响:

- 冲刺速度:提高15%-25%

- 上市时间:加快20%-30%

- 投资回报率:第一年150%以上(并非宣传的300%以上)

前进道路

人工智能增强型BDD并非未来的可能性——而是当下的现实。采用它的组织将获得显著的竞争优势:

- 更快的功能交付(冲刺速度提高15%-25%,而非40%)

- 更高的质量(生产缺陷减少30%-45%,而非85%)

- 更好的团队士气(开发人员专注于创造性工作)

- 更好的合规性(全面的审计跟踪)

问题不在于是否采用人工智能增强型BDD,而在于你能以多快的速度开始从中受益,同时保持合理的期望。

结论

BDD彻底改变了我们连接业务和技术领域的方式。人工智能增强型BDD将这场革命推向更远,使全面测试从愿望变为现实。工具已经存在,模式已被证明有效,好处是可衡量的,只是不像某些人声称的那样神奇。

测试的未来不在于在人类和人工智能之间做出选择,而在于将人类创造力与人工智能能力相结合,更高效地构建更好的软件。这个未来就在当下,其切实的改进会随着时间的推移而不断累积。

你准备好将场景编写时间减少50%-70%,同时将质量提高30%-45%了吗?通过适当的实施和耐心,这些切实的目标是可以实现的。今天就开始你的人工智能增强型BDD之旅,但要从清晰的期望开始。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值