测试一个服务是功能测试还是集成测试?

5
我们有一个 .Net 组件提供功能。我们有一个 Restful Web API 服务,全世界都会使用它来调用该功能。我们编写了测试,使用 OWIN 调用我们的 Web API 控制器。
以前,我一直称这些测试为“集成测试”,因为该服务是一个独立组件。然而,另一位我尊重的开发人员告诉我,这不是一个集成测试,而是一个“功能测试”。
我查看了功能测试定义集成测试定义,但对于 RESTful 服务测试应该被称为什么样的测试,两者都没有明确的胜出者。
这是集成还是功能测试?是否有权威的来源可以被用来明确回答这个问题(因为我不想因“征求辩论”而关闭我的问题)?
2个回答

4
当您调用 REST 服务以验证其返回的内容是否符合设计要求时,这是一项功能测试。您正在测试服务的功能性。
如果您有第二个依赖于此服务的服务或用户界面,并且您的测试与此第二个服务或用户界面交互以验证它可以正确地调用 REST API 并消耗其数据,那么这将是一个集成测试。

这是令人满意的答案,谢谢。 - Khalid

4
功能测试是一个黑盒测试过程,正如您发布的功能测试定义链接中所述。这意味着测试在不了解系统内部工作原理(例如代码)的情况下进行。你会对API是否按预期端到端工作感兴趣;当用户使用API时,他们是否收到正确的响应?如果REST API在系统外部进行测试,则它是一个功能测试。
如果API是从您的代码库进行测试的,则这是测试两个或多个模块之间的集成,因此归类为集成测试。这可能涉及测试依赖模块是否发送正确的数据、接收预期的数据以及以正确的格式。
有关更多信息,请查看ISTQB的任何内容,这是软件测试认可机构。以下是ISTQB词汇表的链接: http://www.software-tester.ch/PDF-Files/ISTQB%20Glossary%20of%20Testing%20Terms%202.4.pdf

那么,这可以被认为是集成测试和功能测试吗?从我们团队的角度来看,我们正在测试多个对象如何相互集成(我们的服务和内部组件)。然而,对于另一个团队来说,他们正在测试我们的 API 的功能,这是功能测试。我描述得正确吗? - John
这是正确的 - 它取决于测试的上下文。 - hazra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接