【问题标题】:end to end or integration or system testing端到端或集成或系统测试
【发布时间】:2019-10-30 09:13:09
【问题描述】:

这是什么测试?以下被认为是端到端测试还是集成测试或系统测试?如果不是,您可以在代码示例的上下文中详细说明测试的类型。

我基本上是在本地主机上调用端点并断言状态/输出。

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();
        });
    }
}

【问题讨论】:

    标签: node.js testing integration-testing end-to-end system-testing


    【解决方案1】:

    有趣的问题,不幸的是,答案可能取决于很多事情。

    让我们从几个定义开始:

    1. End to End testing 正在从头到尾测试应用程序。 IE。期望用户执行的完整流程。
    2. Integration testing 正在将一组组件作为一个项目一起测试。
    3. System testing 正在根据要求对整个系统进行测试。

    所以要考虑的第一个问题是,该测试是否检查了用户期望达到的完整流程?

    这确实意味着您需要定义用户是谁。例如,如果您正在构建一个 API,然后由其他开发人员重复使用,那么您作为该 api 的作者的用户将不同于集成您的 api 的解决方案的最终用户。

    我最好的猜测是,这不是端到端测试。查看测试它是获取用户列表的网络请求。如果您正在构建一个可以列出机密信息的 Web UI,我希望这需要访问该列表的人登录。因此,端到端测试将包括登录系统。

    那么,下一个问题,正在测试哪些组件?很难从测试代码中分辨出来,但我猜数据存储在数据库中的某个地方。所以是的,这是一个集成测试,因为它检查 Web 组件和数据库之间的交互。

    最后,这是系统测试吗?可能是的,因为我看不到任何证据表明这不是针对整个系统运行的。此外,假设您的解决方案的要求是能够列出用户,那么它正在测试所需的功能。

    因此,在这种情况下,我认为它可能是系统测试或集成测试。不幸的是,根据这些测试类型的定义,通常可以将测试归类为两者之一。因此,最终取决于您将其称为系统还是集成测试。

    【讨论】:

    • 谢谢詹姆斯。因此,端到端测试需要像 Selenium 这样的工具来加载检索用户列表的页面,然后断言用户列表已返回并显示在页面上。
    • 和系统测试就像,如果我有 10 个端点,我按顺序测试所有端点。
    • 是的,这是 E2E 测试和系统测试之间非常合理的区分。
    猜你喜欢
    • 2013-10-23
    • 2015-11-05
    • 2016-06-07
    • 1970-01-01
    • 2018-06-26
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多