← 最新论文
💻 computer science

PICKLES: a Natural Language Framework for Requirement Specification and Model-Based Testing

本文介绍了 PICKLES,这是一个自然语言框架,通过将人类可读的场景转换为形式化模型,弥合了行为驱动开发与基于模型的测试之间的鸿沟,从而实现了比标准 BDD 覆盖率高得多的自动化测试生成。

原作者: María Belén Rodríguez, Petra van den Bos

发布于 2026-04-30
📖 1 分钟阅读☕ 轻松阅读

原作者: María Belén Rodríguez, Petra van den Bos

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正在教机器人如何驾驶汽车。你有两种主要方法:

  1. “严谨工程师”方式(基于模型的测试):你编写一份复杂的数学蓝图,涵盖每一条可能的道路、每一种天气状况和每一个交通信号灯。它极其精确,覆盖所有场景,但只有数学家才能读懂。如果你想向老板展示机器人会做什么,你必须将数学内容重新翻译回英语,这既困难又容易出错。
  2. “讲故事者”方式(行为驱动开发):你编写一个故事:“给定汽车在道路上,当信号灯变红时,那么汽车停下。”每个人都懂。它易于编写和阅读,但它就像只为某一天编写的食谱。如果你想测试每一种可能的交通信号灯时序,你就必须编写成千上万个独立的故事,这会变成一堆杂乱无章、难以管理的纸张。

问题:
在现实世界中,公司既想要“严谨工程师”的精确性,又想要“讲故事者”的可读性。通常,他们不得不二者选其一。如果选择故事,就会遗漏隐藏的缺陷;如果选择数学,就无人能理解测试内容。

解决方案:PICKLES
本文作者创建了一个名为PICKLES(用于测试场景的精确输入与控制流关键词语言)的新框架。可以将 PICKLES 想象为一座连接故事与数学的“通用翻译器”。

以下是其工作原理,使用一个简单的类比:

1. “智能食谱”(语言)

与其编写关于一辆特定汽车在一个特定红灯处停车的故事,PICKLES 允许你编写一个“智能食谱”。

  • 旧方式:“汽车在主干道的红灯处停下。”(过于具体)。
  • PICKLES 方式:“汽车在任何红灯处停下,前提是信号灯为红色且汽车正在行驶。”
  • 魔力所在:你可以定义诸如“信号灯可以是红色到绿色之间的任何颜色”或“汽车速度可以是 0 到 100 之间的任何值”这样的规则。这称为参数化。它将单个故事转化为一条规则,一次性覆盖成千上万种可能性。

2. “自动架构师”(翻译)

一旦你用纯英语(使用类似于流行的 Gherkin 语言的格式)编写了这些“智能食谱”,PICKLES 工具就会充当“自动架构师”。

  • 它读取你的英语规则。
  • 它在幕后即时构建一个形式化模型(复杂的数学地图)。
  • 这张地图极其详尽,知晓系统可能采取的所有路径,甚至包括你未明确写出的路径。

3. “主地图”(组合故事)

在传统测试中,你分别测试故事 A,然后故事 B,然后故事 C。

  • 缺陷:故事 A 可能有效,故事 B 也可能有效,但如果你先执行 A 再执行 B,系统可能会崩溃。传统故事往往遗漏这些“握手”错误。
  • PICKLES 的修复:该工具将所有独立的故事缝合成一张巨大的“主地图”。它弄清楚故事 A 如何连接到故事 B,以及故事 B 如何连接到故事 C。它构建了系统随时间行为的完整图景,而不仅仅是孤立时刻的行为。

4. “反向翻译”(可读结果)

这是最巧妙的部分。该工具利用主地图自动生成数百个具体的测试用例。

  • 通常,这些测试会以令人困惑的数学代码形式呈现。
  • PICKLES 将这些数学结果翻译回英语故事
  • 因此,测试人员会得到一份报告,内容是:“这是一个具体的测试:汽车以 50 英里/小时行驶,信号灯在 2.5 秒时变红。汽车正确停下了。”
  • 人类可以阅读、理解并验证它,尽管繁重的计算工作是由数学引擎完成的。

现实世界测试(交通系统)
作者在 Technolution 公司使用的一个真实交通管理系统上测试了该方法。

  • 设置:他们采用了关于交通传感器检测故障探测器的现有故事。
  • 结果
    • 使用旧的“讲故事者”方法(逐个运行故事),他们仅测试了约**30%**的潜在系统行为。
    • 使用 PICKLES(组合故事并利用数学引擎),他们实现了系统逻辑的100% 覆盖
    • 他们无需编写数百个新故事。他们只需通过添加变量(如“任何车道”或“任何位置”)使原始故事变得更“智能”,并让工具完成其余工作。

为何这很重要
PICKLES 允许非技术人员(如项目经理或业务分析师)用无歧义且数学严谨的纯英语编写需求。它确保:

  1. 无人困惑:需求对每个人都很清晰。
  2. 无隐藏缺陷:数学引擎能发现人类可能遗漏的边界情况。
  3. 减少工作量:你只需编写更少的故事即可测试更多场景。

简而言之,PICKLES 就像给机器人一本故事书,这本书足够智能,能理解故事的每一种可能变体,解决其中的数学问题,然后用清晰的纯英语向你写出一份报告。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →