我们有一个提供功能的.Net组件。我们有一个Restful Web API服务,全世界将用它来调用该功能。我们编写了使用OWIN调用我们的Web API控制器的测试。
过去,我一直称这些“集成测试”,因为服务是一个单独的组件。但是,我尊重的另一位开发人员告诉我,这不是集成测试,而是“功能测试”。
我查看了Defintion of Functional Testing和Definition of Integration Test的定义,对于我应该调用RESTful服务测试的测试,我都不是一个明显的赢家。
是集成还是功能?是否有任何权威来源可以用来明确回答这个问题(因为我不希望我的问题因“征求辩论”而被关闭)?
答案 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