zoukankan      html  css  js  c++  java
  • 如何用ABP框架快速完成项目(8)

    做为一个程序员, 深深知道计算机自动化的速度是比人手动的速度快的, 所以”快速”完成项目的一个重要武器就是: 能自动化就不要手动.
     
    BDD/TDD有很多优势, 其中之一就是自动化, 我们这节文章先讲自动化, 在后面的文章里面会讲到BDD/TDD的其他优势.
     
    在ABP .NET Core + SPA版本和52ABP里面, 可以在以下层面做自动化测试:
    1. 前端Angular项目的e2e自动化测试
    2. 前端Angular项目的unit test
    3. 后端.NET Core项目的unit test
    4. 后端.NET Core项目的集成自动化测试
     
    首先, 所有层面都写自动化测试代码, 是不符合康威定律第二定律的. 嗯, 康威定律是微服务的理论基石, 很显然我们不能违背它.
    如果你之前没有接触和运用过BDD/TDD, 那么我推荐只写前端Angular项目的e2e自动化测试就好了. 具体怎么写在这系列课程的序里面有详细描述<如何用ABP框架快速完成项目 - 自动化测试 - 前端angular e2e protractor>
     
    然后根据康威定律第二定律, 我们很显然不能像十年前2008年时候那样追求代码覆盖率80%以上.
    我个人认为能把人工手动要跑的Postivie所有测试用例和主要的negative测试用例全部转为自动化, 这已经足够了.
    然而有同学反映, 我这个说法太抽象了, 很难执行. 我想了想, 的确是, 没有基础的同学可能并不能掌握哪些是Positivie Test和Negative test.
    这样吧, 你写完成程序后, 手动测试一遍, 然后把你刚才做的手动测试自动化就好了. 这么一说, 应该是比较直观和可执行的吧.
     
    有同学说, angular官网是不推荐写e2e测试, 而是推荐写unit test的. 是的, 没错. 但是这是针对团队的项目和有BDD/TDD基础的同学来说的, 对于没有BDD/TDD基础而又一个人做一个项目的同学, 我认为还是写e2e测试比较好, 因为直观啊! e2e测试会弹出chrome浏览器UI, 这样如果测试跑不通过, 很直接的就知道原因在哪里了, 修复的时间和精力会大大减少.
     
    不过, e2e测试会对电脑硬盘和内存要求比较高, 起码要是SSD硬盘和16G内存才会跑得流畅, 不然会经常性报错. 
     
    做为一个程序员, 深深知道计算机自动化的速度是比人手动的速度快的, 所以”快速”完成项目的一个重要武器就是: 能自动化就不要手动.
     
    BDD/TDD有很多优势, 其中之一就是自动化, 我们这节文章先讲自动化, 在后面的文章里面会讲到BDD/TDD的其他优势.
     
    在ABP .NET Core + SPA版本和52ABP里面, 可以在以下层面做自动化测试:
    1. 前端Angular项目的e2e自动化测试
    2. 前端Angular项目的unit test
    3. 后端.NET Core项目的unit test
    4. 后端.NET Core项目的集成自动化测试
     
    首先, 所有层面都写自动化测试代码, 是不符合康威定律第二定律的. 嗯, 康威定律是微服务的理论基石, 很显然我们不能违背它.
    如果你之前真正运用过BDD/TDD, 那么我推荐只写前端Angular项目的e2e自动化测试就好了. 具体怎么写在这系列课程的序里面有详细描述<如何用ABP框架快速完成项目 - 自动化测试 - 前端angular e2e protractor>
     
    然后根据康威定律第二定律, 我们很显然不能像十年前2008年时候那样追求代码覆盖率80%以上. 我个人认为能把人工手动要跑的Postivie所有测试用例和主要的negative测试用例全部转为自动化, 这已经足够了.
     
    有同学说, angular官网是不推荐写e2e测试, 而是推荐写unit test的. 是的, 没错. 但是这是针对团队的项目和有BDD/TDD基础的同学来说的, 对于没有BDD/TDD基础而又一个人做一个项目的同学, 我认为还是写e2e测试比较好, 因为直观啊! e2e测试会弹出chrome浏览器UI, 这样如果测试跑不通过, 很直接的就知道原因在哪里了, 修复的时间和精力会大大减少.
     
    不过, e2e测试会对电脑硬盘和内存要求比较高, 起码要是SSD硬盘和16G内存才会跑得流畅, 不然会经常性报错.
     
    有同学问, 对于ui自动化测试这方面,是不是ui变化了,无论使用何种测试框架,都避免不了重新编写测试用例的代码?
    这是必然的, 在这点上, 不会会计的程序员不是个好的项目经理,是要根据自身实际计算成本收益并进行取舍。
    为什么会扯到项目经理这个角色呢? 首先一个项目UI短期经常变化, 项目经理是有责任的, 因为即使不写自动化测试代码, 纯手动测试, 你也要花时间去修改UI的代码啊. 这个锅无论如何都轮不到自动化测试去背, 应该有项目经理或产品经理去背.
     
    自动化的另一个利器就是DevOps了, 在这方面, 徐磊有十分丰富的课程文档, 我想我是不可能做得比他更好的啦, 所以推荐大家阅读. 
  • 相关阅读:
    [bzoj1280]卖猪
    [51nod1237]最大公约数之和V3
    [cf741C]Arpa’s overnight party and Mehrdad’s silent entering
    [bzoj1576]安全路径
    [bzoj1143]祭祀
    db_writer_processes默认大小
    oracle审计功能启动关闭
    db_writer_processes默认大小
    手机发博客
    第27课 .net程序破解
  • 原文地址:https://www.cnblogs.com/adalovelacer/p/abp-quickly-delivery-8-one-person-project-4-use-bdd-or-tdd.html
Copyright © 2011-2022 走看看