将服务测试为功能测试或集成测试

时间:2016-02-09 20:15:25

标签: testing integration-testing functional-testing

我们有一个提供功能的.Net组件。我们有一个Restful Web API服务,全世界将用它来调用该功能。我们编写了使用OWIN调用我们的Web API控制器的测试。

过去,我一直称这些“集成测试”,因为服务是一个单独的组件。但是,我尊重的另一位开发人员告诉我,这不是集成测试,而是“功能测试”。

我查看了Defintion of Functional TestingDefinition of Integration Test的定义,对于我应该调用RESTful服务测试的测试,我都不是一个明显的赢家。

是集成还是功能?是否有任何权威来源可以用来明确回答这个问题(因为我不希望我的问题因“征求辩论”而被关闭)?

2 个答案:

答案 0 :(得分:3)

当您调用休息服务以验证服务返回其返回的内容时,这是一个功能测试。您正在测试该服务的功能。

如果您有第二个服务或UI依赖于此服务,并且您的测试与第二个服务或UI交互以验证它是否可以正确调用REST API并使用它的数据,那将是一个整合测试。

答案 1 :(得分:3)

功能测试是一个黑盒练习,如您发布的功能测试定义链接中所述。这意味着在不了解系统内部工作原理(例如代码)的情况下进行测试。您会对API是否按预期端到端工作感兴趣;用户在使用API​​时是否收到正确的响应?如果REST API正在您的系统之外进行测试,那么它就是一个功能测试。

如果正在从您的代码库中测试API,那么这将测试两个或更多模块之间的集成,从而归类为集成测试。这可能涉及测试从属模块是否正在发送正确的数据,接收预期的数据以及格式是否正确。

有关更多信息,请查看ISTQB的任何内容,ISTQB是公认的软件测试机构。以下是ISTQB词汇表的链接:http://www.software-tester.ch/PDF-Files/ISTQB%20Glossary%20of%20Testing%20Terms%202.4.pdf