端到端或集成或系统测试
end to end or integration or system testing
这是什么测试?以下是端到端测试还是集成测试或系统测试?如果不是,您可以在代码示例的上下文中详细说明测试类型。
我基本上是在本地主机上调用端点并在 status/output 上断言。
let assert = require("assert");
let http = require("http");
describe("EndToEndTesting", function() {
describe("GET /users", function() {
it("should return list of users", function(done) {
http.request({
method: "GET",
hostname: "localhost",
port: 3000,
path: "/users"
}, function(response){
let buffers = [];
response.on("data", buffers.push.bind(buffers));
response.on("end", function(){
let body = JSON.parse(Buffer.concat(buffers).toString());
assert(response.statusCode == 200);
});
}).on("error", console.error).end();
});
}
}
有趣的问题,不幸的是答案可能取决于很多因素。
让我们从几个定义开始:
- End to End testing 正在从头到尾测试应用程序。 IE。期望用户执行的完整流程。
- Integration testing 正在将一组组件作为一个项目进行测试。
- System testing 正在根据要求测试整个系统。
因此,第一个要考虑的问题是,此测试是否检查了用户期望实现的完整流程?
这确实意味着您需要定义用户是谁。例如,如果您正在构建一个 API 然后由其他开发人员重新使用,您的用户作为 api 的作者将不同于集成您的 api 的解决方案的最终用户.
我最好的猜测是这不是端到端测试。查看测试,这是一个获取用户列表的网络请求。如果您正在构建一个可以列出机密信息的 Web UI,我希望这要求访问该列表的人登录。因此,端到端测试将包括登录系统。
那么,下一个问题,正在测试哪些组件?很难从测试代码中分辨出来,但我猜数据存储在数据库中的某个地方。所以是的,这是一个集成测试,因为它检查 Web 组件和数据库之间的交互。
最后,这是不是系统测试。可能是的,因为我看不到任何证据表明这不是 运行 反对整个系统。此外,假设您的解决方案要求能够列出用户,那么它正在测试所需的功能。
因此,在这种情况下,我认为它可能是系统测试或集成测试。不幸的是,根据这些测试类型的定义,通常存在重叠,测试可以归类为其中任何一种。因此,最终取决于您将其称为系统测试还是集成测试。
这是什么测试?以下是端到端测试还是集成测试或系统测试?如果不是,您可以在代码示例的上下文中详细说明测试类型。
我基本上是在本地主机上调用端点并在 status/output 上断言。
let assert = require("assert");
let http = require("http");
describe("EndToEndTesting", function() {
describe("GET /users", function() {
it("should return list of users", function(done) {
http.request({
method: "GET",
hostname: "localhost",
port: 3000,
path: "/users"
}, function(response){
let buffers = [];
response.on("data", buffers.push.bind(buffers));
response.on("end", function(){
let body = JSON.parse(Buffer.concat(buffers).toString());
assert(response.statusCode == 200);
});
}).on("error", console.error).end();
});
}
}
有趣的问题,不幸的是答案可能取决于很多因素。
让我们从几个定义开始:
- End to End testing 正在从头到尾测试应用程序。 IE。期望用户执行的完整流程。
- Integration testing 正在将一组组件作为一个项目进行测试。
- System testing 正在根据要求测试整个系统。
因此,第一个要考虑的问题是,此测试是否检查了用户期望实现的完整流程?
这确实意味着您需要定义用户是谁。例如,如果您正在构建一个 API 然后由其他开发人员重新使用,您的用户作为 api 的作者将不同于集成您的 api 的解决方案的最终用户.
我最好的猜测是这不是端到端测试。查看测试,这是一个获取用户列表的网络请求。如果您正在构建一个可以列出机密信息的 Web UI,我希望这要求访问该列表的人登录。因此,端到端测试将包括登录系统。
那么,下一个问题,正在测试哪些组件?很难从测试代码中分辨出来,但我猜数据存储在数据库中的某个地方。所以是的,这是一个集成测试,因为它检查 Web 组件和数据库之间的交互。
最后,这是不是系统测试。可能是的,因为我看不到任何证据表明这不是 运行 反对整个系统。此外,假设您的解决方案要求能够列出用户,那么它正在测试所需的功能。
因此,在这种情况下,我认为它可能是系统测试或集成测试。不幸的是,根据这些测试类型的定义,通常存在重叠,测试可以归类为其中任何一种。因此,最终取决于您将其称为系统测试还是集成测试。