我们来谈谈软件测试
软件测试似乎是软件生态系统中最具争议性的话题之一。
有些人对它深信不疑,只采用测试驱动开发(TDD),而另一些人则随性而为,看看会发生什么。
我不是来告诉你该选哪个的,因为这很个人化,取决于你的时间/项目/以及许多其他因素。
但让我们来看看测试能为你带来什么好处。
我们将探讨的测试类型
在深入探讨之前,让我们先来看看我们将要研究哪些类型的测试。
- 手动与自动
- 单元测试
- 集成测试
- 功能测试
- 从头到尾
我们大多数人至少都做过手动测试,这通常意味着创建一个系统/功能,然后手动测试不同的选项,看看它是否有效。
无论你进行了哪些其他测试,这都是常见的,而且通常是验证初始产品所必需的。
自动化测试
但是,我们可以通过引入自动化测试来增强这些手动测试。自动化测试的关键在于,它们只需创建一次即可永久运行。
这意味着我们最初需要一些设置时间,但之后我们可以持续运行它们,确保没有引入任何回归问题或错误。
在自动化测试部分,我们有很多不同的测试方法。
我不会一一介绍,所以这里只列举一些常用的。
单元
测试是自动化测试中最简单的形式。它们非常底层,只测试一个“单元”,这个单元可以是一个函数、一个组件,甚至是一个交互。
其理念是尽可能地小而快,这样我们就可以相对快速且低成本地测试许多小型测试用例。
集成测试
用于测试与外部因素(例如数据库、用户系统或外部 API)的集成。
它们通常需要模拟这些外部系统,并且运行起来也比较耗费资源。
功能测试
是对集成测试的一种增强。集成测试只关注连接中获取的数据,而
功能测试更进一步,要求数据能够正确显示。
例如:
- API 返回用户(集成测试)
- API返回用户并将其呈现在表格中(功能测试)
端到端测试:
这类测试旨在验证用户流程。我们需要验证用户在程序中的操作流程是否正确。
这甚至包括加载状态、禁用按钮以及显示表单结果等。
这类测试非常重要,但成本也相当高,因为它们需要大量资源,而且设置起来也比较耗时。
还有更多
还有许多其他类型的测试,根据您的需求,它们可能更加重要。
不过,作为基础介绍,我就先说到这里。
请告诉我你最喜欢的测试组合是什么,以及你是如何实现自动化测试的。
感谢阅读,让我们保持联系!
感谢您阅读我的博客。欢迎订阅我的电子邮件简讯,也可以在Facebook或Twitter上关注我。
文章来源:https://dev.to/dailydevtips1/lets-talk-about-software-testing-117