行为驱动开发(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团队将能够比以往任何时候都更快地降低应用程序的质量风险,并提升其质量!

最后作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些软件测试的学习资源,希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐