当前位置: 首页 > 知识库问答 >
问题:

基于JBehave的负面场景是否呈指数增长?

彭骏
2023-03-14

在基于行为的测试中,错误场景的数量似乎呈指数增长。

根据Aslak Hellesøy,BDD的创建是为了结合自动化验收测试、功能需求和软件文档。

PUT /order
{ 
    // JSON body with 3 mandatory parameters and 2 optional parameters
}
  1. 使用所有3个强制参数的正确值调用RESTendpoint
  2. 使用所有5个参数的正确值调用RESTendpoint

我们可以想出很多负面的情况。

  1. 强制参数1设置为null,其他两个强制参数的值正确(每个强制参数有3种可能的情况)
  2. 强制参数1设置为空,其他两个强制参数的值正确(每个强制参数有3种可能的情况)
  3. 强制参数1设置为无效格式的值,其他两个强制参数的值正确(每个强制参数有3种可能的情况)
  4. 强制参数1和2设置为null,其他强制参数的值正确(2种可能的情况)

我想了解更多关于所有这些负面场景(+更多)是否应该成为基于JBehave的测试套件的一部分?如果是这样的话,关于如何使其更具可维护性,有什么建议/想法吗?

共有1个答案

秦俊友
2023-03-14

了解被测试的应用程序在其自身的验证过程中在内部做了什么,特别是验证的顺序,会有很大的帮助。

在一个包含三个必需参数的简化示例中,您实际上只需要三个场景:每个参数一个。如果您知道,如果参数1无效,应用程序将失败,那么在另一个场景中测试参数2时,您不需要再次检查,因为在第一个参数失败时,第二个参数将永远不会被验证,所以不是三乘以三,您只需要三个:

1)无效,有效,有效。2)有效,无效,有效。3)有效,有效,无效。

我希望我正确地理解了你的问题,并提供了一些有用的信息。

 类似资料:
  • 之前/之后的场景不工作在j在平静的BDDserenity.version1.2.3-rc.5serenity.jbehave.version1.21.0 例如 当我尝试运行此代码时,输出是

  • 两个辅助指针变量挖字符串 //分清楚赋值指针变量和操作逻辑之间的关系 int splitString(const char *buf1, char c, char buf2[10][30], int *count) { //strcpy(buf2[0], "aaaaa"); //strcpy(buf2[1], "bbbbbb"); char *p=NULL, *pTmp =

  • 我正在用简单的JUnit测试和javax在Java中摆弄依赖注入。注入注释。 我有以下场景:有一个“顶级”类(SomeObject),它有两个依赖项(SomeObjDepA和SomeObjDepB)。SomeObjDepB也依赖于SomeObjDepA。这应该是SomeObjDepA的实例,与SomeObject实例中的实例相同。但是SomeObjDepA不能是单例,因为不同的SomeObj实例应

  • 接口说明 新增场景分享配置 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /wish3dearth/api/scene/share/v1.0.0/addShareConfig 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN sceneId

  • 接口说明 新增场景分享配置 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 POST /wish3dearth/api/scene/share/v1

  • 1. 自我介绍 2.简单问了一下项目,两端项目你觉得有什么不同 3.操作系统,介绍一下操作系统,你怎么看 写hello world从运行到展示操作系统都怎么处理的 4.计算机网络 ping网站发现延时过高你会在哪些方向上看待问题,怎么解决 5.数据结构 6.日常开发中java写一个递归打印hello world 然后操作系统报错,你怎么定位和排查问题(语言层面和语言底层和操作系统) 7.sql优化