巴拉巴

 找回密码
 立即注册

站内搜索

搜索
热搜: 活动 交友 discuz
查看: 21|回复: 0

3.2 单元测试是才是建设高楼的脚手架

[复制链接]

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2023-6-12 17:16:01 | 显示全部楼层 |阅读模式
问题思考
我们先思考一个问题,如果要制造一架火箭,那么你应该先制造什么?
常见的测试很多分类有如下:

  • 单元测试(Unit Testing)
    这是对软件中的最小可测试单元进行检查的测试。通常这意味着在源代码级别测试单个函数、方法或类。
  • 集成测试(Integration Testing)
    集成测试是在单元测试之后进行的,旨在测试系统中的各个模块是否能正常协同工作。
  • 功能测试(Functional Testing)
    这种测试主要关注的是软件的各项功能是否能够正常工作,即按照预期的功能规格来进行的测试。
  • 系统测试(System Testing)
    这是基于整个系统进行的测试,它验证的是整个系统是否能满足预先定义的需求。
  • 安全测试(Security Testing)
    这种测试的目的是找出可能会被恶意用户利用的系统漏洞。
  • 性能测试(Performance Testing)
    这种测试主要评估系统在高负载或大规模用户访问情况下的性能表现。
  • 兼容性测试(Compatibility Testing)
    这种测试是为了确保软件在不同的环境下(例如不同的操作系统、网络环境、硬件配置、浏览器版本等)都能正常工作。
这些测试在大部分的软件场景中都是可以实现自动化测试的。
白盒测试与黑盒测试
测试有分为白盒测试与黑盒测试,所谓白盒测试是说测试人员会检查软件的内部结构、设计和实现。白盒测试通常由软件开发者进行,并且可以测试代码的各个部分,包括分支、循环和语句等。
黑盒测试也被称为功能测试或基于需求的测试,是一种不考虑系统内部结构和实现的测试方法。在黑盒测试中,测试人员只关注软件的输入和输出,而不关注软件是如何处理输入并产生输出的。黑盒测试可以由没有编程知识的测试人员进行,并且主要关注软件是否能满足用户的需求。
单元测试是一种自动化的白盒测试。
我们用一个例子,来描述什么是单元测试
如果想要建造一座大楼,那么你需要先搭建一个用于施工的防护架。
自动化测试
自动化测试的重要性:

  • 提高测试的效率
    自动化测试可以大大提高测试的速度和效率,尤其是对于需要频繁测试的场景,例如回归测试。自动化测试可以在短时间内完成大量的测试任务,这是人工测试无法做到的。
  • 提高测试可靠性
    自动化测试可以消除由于人为错误造成的问题。自动化测试工具可以精确地重复相同的测试步骤,确保测试的一致性和准确性。
  • 提高测试覆盖率
    自动化测试可以帮助我们更全面地覆盖软件的各种功能和使用场景,尤其是一些边缘案例,这有助于提高软件的质量。
单元测试的作用

  • 对业务质量做验证与检测
    通过单元测试可以很好的对代码的执行业务逻辑做检查确认,同时也可以对代码的覆盖情况做检查,可以呈现当前代码是否存在未知的情况。
  • 辅助 Code Review
    代码审查时更应该关注的是代码规范、设计规范、性能缺陷等方面的问题,code review不将业务的准确性作为审查的核心,因此需要通过单元测试与断言来确保代码的逻辑检查。
  • 为系统的重构提供防护保障
    在修改或重构代码时,单元测试可以充当安全网,确保修改后的代码仍然正确。如果你的重构引入了新的错误,你的单元测试应该能够立即发现这些问题。
  • 辅助 CI/CD
    持续集成/持续部署(CI/CD)环境中的代码需要经过单元测试才能进一步部署。在代码合并到主分支之前,自动运行的单元测试可以确保新代码的质量,防止错误代码被部署到生产环境。
单元测试的关键技术


  • 代码覆盖率


  • 代码断言


  • 自定义数据


  • mock模拟
    依赖mock
mvc mock
完整代码

来源:http://www.yidianzixun.com/article/0ozsZROO
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 返回顶部