通过生成式AI实现BDD场景的落地

2024-12-13   出处: conference.eurostarsoftwaretesting.com  作/译者:Adam Sandman/Ares

行为驱动开发(BDD)是一种备受推崇的方法,它通过将应用需求编写为描述各种情境下行为的场景,来明确需求。BDD源自敏捷开发运动,并在其强调测试驱动开发(TDD)的基础上更进一步,超越了简单的用户故事,记录了用户在使用系统时的行为。

在BDD中,通常使用Gherkin语法来编写用户场景,具体方式如下:

  • Given(给定):描述场景开始时的初始上下文,包含一个或多个子句;
  • When(当):触发场景的事件;
  • Then(那么):期望的结果,包含一个或多个子句。

Gherkin是一种业务可读语言,它帮助你在不涉及实现细节的情况下描述业务行为。它是一种用于以标准化格式定义测试规范的领域特定语言。Gherkin使用自然语言来描述用例,并允许用户从行为测试中去除逻辑细节。例如:

BDD(行为驱动开发)的主要优势在于,它促进了开发人员与其他利益相关者(如产品负责人和用户)之间的沟通。BDD通过提供一种讨论系统行为的通用语言,有助于弥合技术型利益相关者与非技术型利益相关者之间的鸿沟。使用这种语言,利益相关者能够更好地理解彼此的需求和期望,从而做出更明智的开发决策。

除了作为描述需求规范的有效方式外,Gherkin语言中的文本还充当了自动化测试的文档和框架。例如,自动化测试工程师通常会采用Gherkin场景,并使用如Cypress或Robot Framework等框架,将这些高级用户交互转换为可执行的自动化测试脚本。然而,这个过程是手动的,可能会很耗时,因为自动化工程师需要手动编写大量的Python或JavaScript代码,才能将一个BDD场景转换为一个功能完备的自动化测试。

迎接生成式人工智能的力量

借助生成式人工智能(GenAI),你可以利用大型语言模型(LLM)的强大功能来自动化此过程中的许多环节。目前,我们的SpiraPlan质量和测试管理系统利用GenAI,能够从简单的敏捷用户故事中自动生成BDD场景、测试用例和风险:

图1:由AI生成的BDD Gherkin场景

然而,这只是即将实现的可能性的冰山一角!

通过使用最新的大型语言模型(如GPT4),我们可以将BDD场景文本作为提示传递给LLM,它将生成一组页面对象以及与页面对象模型相关的函数/方法。这意味着,一个简单的人类可读的场景可以自动转换成Selenium风格的页面对象模型函数调用集合。

图2:一个人类可读的场景

图3:使用页面对象由AI自动生成的自动化测试脚本

最后,当你输入一个特别标记的应用程序图像或页面DOM的简化版本(以避免使用过多的生成式AI tokens)时,大型语言模型能够将每个页面对象模型函数实现为适当的代码,以与应用程序交互并测试其用户界面。这些可以是基于图像的点击操作,也可以是WebDriver风格的CSS选择器,具体取决于你用来提示模型的内容。

这意味着我们距离实现将BDD场景自动转换为80%-90%准备就绪的自动化测试脚本这一终极目标已经不远了。

测试人员的角色是什么?

如我们经常所说,生成式人工智能(GenAI)不是为了取代人类,而是为了协助人类。如果我们考虑这个新的人类-AI团队,那么人类测试人员的工作是创建/审查AI生成的场景,审查并优化AI生成的自动化代码草案,并寻找弱点、边缘条件和缺失的用例。通过合作,人类-AI团队将能够比以往任何时候都更快地降低应用程序的质量风险,并提升其质量!


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
22° /220 人阅读/0 条评论 发表评论

登录 后发表评论
最新文章