单元测试涉及对软件应用程序的每个单元或单个组件的测试。这是功能测试的第一级。单元测试的目的是验证单元组件的性能。
单元是软件系统的单个可测试部分,并在应用软件的开发阶段进行测试。
单元测试的目的是测试独立代码的正确性。单元组件是应用程序的单个函数或代码。用于单元测试的白盒测试方法,通常由开发人员完成。
每当应用程序准备就绪并交给测试工程师时,他/她将开始独立或逐个检查模块或应用程序模块的每个组件,此过程称为单元测试或组件测试。
为什么要进行单元测试?
在测试级别层次结构中,单元测试是在集成和其他剩余测试级别之前完成的第一级测试。它使用模块进行测试过程,从而减少等待单元测试框架的依赖性,存根,驱动程序和模拟对象用于单元测试的帮助。
通常,软件会经历四个级别的测试:单元测试、集成测试、系统测试和验收测试,但有时由于时间消耗,软件测试人员会进行最少的单元测试,但跳过单元测试可能会导致在集成测试、系统测试和验收测试期间,甚至在软件应用程序完成后进行的
Beta 测试期间出现更高的缺陷。
下面列出了一些关键原因:
- 单元测试可帮助测试人员和开发人员了解代码的基础,使他们能够快速更改导致缺陷的代码。
-
单元测试有助于文档。
-
单元测试在开发阶段的早期修复缺陷,这就是为什么在即将到来的测试级别中可能会出现较少数量的缺陷。
-
它通过迁移代码和测试用例来帮助提高代码的可重用性。
单元测试示例
让我们看一个示例,以便更好地理解单元测试的概念:
对于金额转账,要求如下:
以下是客户提供的应用程序访问详细信息
- 网址→登录页面
-
用户名/密码/确定 →主页
-
要达到金额转移模块,请按照以下步骤操作
贷款→销售→金额转移
在执行单元测试时,我们应该遵循一些规则,如下所示:
-
要开始单元测试,至少我们应该有一个模块。
-
测试正值
-
测试负值
-
无过度测试
-
无需假设
当我们觉得达到最大的测试覆盖率时,我们将停止测试。
现在,我们将开始对不同的组件执行单元测试,例如
- 从帐号(FAN)
- 收件人账号(TAN)
-
数量
-
转移
-
取消
对于FAN组件
对于 TAN 组件
- 提供值,就像我们在从帐号 (FAN) 组件中所做的那样
对于金额组件
- 提供值,就像我们在FAN和TAN组件中所做的那样。
用于传输组件
- 输入有效的 FAN 值
-
输入有效的 TAN 值
-
输入正确的金额值
-
点击转账按钮→金额转账成功(确认消息)
对于取消组件
- 输入FAN、TAN 和金额的值。
-
单击“取消”按钮→应清除所有数据。
单元测试工具
我们在市场上有各种类型的单元测试工具,如下所示:
- NUnit
-
JUnit
-
PHPunit
-
Parasoft Jtest
-
EMMA
有关单元测试工具的详细信息,请参阅以下链接:
https://www.javatpoint.com/unit-testing-tools
单元测试技术:
单元测试使用所有白盒测试技术,因为它使用软件应用程序的代码:
- 数据流测试
-
控制流量测试
-
分支机构覆盖率测试
-
语句覆盖率测试
-
决策覆盖率测试
如何通过单元测试获得最佳结果?
单元测试可以给出最佳结果,而不会感到困惑,并通过执行下面列出的步骤来增加复杂性:
- 测试用例必须是独立的,因为如果需求有任何更改或增强,测试用例将不受影响。
-
单元测试用例的命名约定必须清晰一致。
-
在单元测试期间,必须在进入 SDLC 的下一阶段之前修复已识别的错误。
-
一次只能测试一个代码。
-
在编写代码时采用测试用例,如果不这样做,执行路径的数量将增加。
-
如果任何模块的代码发生更改,请确保相应的单元测试是否可用于该模块。
单元测试的优缺点
单元测试的优缺点如下:
优势 -
单元测试使用模块方法,因为可以测试任何部分,而无需等待另一个部分测试完成。
-
开发团队专注于单元提供的功能以及功能在单元测试套装中的外观,以了解单元 API。
-
单元测试允许开发人员在几天后重构代码,并确保模块仍然工作而没有任何缺陷。
缺点
- 它无法识别集成或宽泛级别的错误,因为它在代码单元上工作。
-
在单元测试中,不可能评估所有执行路径,因此单元测试无法捕获程序中的每个错误。
-
它最适合与其他测试活动结合使用。
|