15 数据驱动、关键字驱动、行为驱动有什么区别?
2026/9/8...大约 2 分钟
15|数据驱动、关键字驱动、行为驱动有什么区别?
开场一句话各定位,再逐个展开。
回答思路
第一步:一句话各定位
| 驱动方式 | 一句话 |
|---|---|
| 数据驱动 | 一套逻辑跑多组数据——变的是数据 |
| 关键字驱动 | 把操作抽象成关键字(点击、输入),用例变成关键字的编排——变的是动作组合 |
| 行为驱动 BDD | 用自然语言(Given When Then)描述业务行为——让非技术人员能读懂用例 |
第二步:数据驱动展开多一点(日常主力)
pytest 的 parametrize、外部数据文件(yaml、excel、json)、数据文件和用例的映射规则。重点讲测试数据的分层:输入数据、预期数据、环境数据分开管理,数据文件按模块组织。
第三步:关键字驱动给公道评价
它把用例变成表格,非编程人员也能编排用例,但牺牲了表达能力(复杂逻辑写不动)——适合封装给业务测试同学用的平台型产品。很多商业测试平台底层就是关键字引擎,这个关联能讲出来,视野就宽了。
第四步:BDD 讲落地真相
cucumber、behave 这类工具的核心价值是业务和测试的共同语言——前提是有业务方真的参与写场景。多数团队业务方不参与,BDD 就退化成换了个语法的自动化,维护成本还更高。这个清醒认知很加分。
收尾:给选型结论
测试团队自用首选代码加数据驱动;做给非技术同学用的平台再考虑关键字驱动;BDD 看协作生态决定,不是技术先进性决定。
考察重点
| 维度 | 说明 |
|---|---|
| 企业动机 | 考技术视野和对测试工程体系的理解广度。做平台型团队的面试官尤其爱问关键字驱动(他们平台就是这个原理) |
| 过线标准 | 三种定义准确 + 至少一种有落地细节 |
| 区分度 | 能讲「BDD 没有业务参与就退化」这种清醒判断的是思考过的;三种定义背完就停的是背题 |
| 加分项 | 关键字驱动和商业测试平台的底层关联 |
| 减分项 | 三种混为一谈或认为 BDD 就是写注释,概念混乱 |
来源
整理自知识星球帖《面试情报 03|自动化测试 20 题》,返回题库。