单元测试


单元测试

单元测试涉及对软件应用程序的每个单元或单个组件的测试。它是功能测试的第一级。单元测试的目的是验证单元组件的性能。

单元是软件系统的单个可测试部分,并在应用软件的开发阶段进行测试。

单元测试的目的是测试隔离代码的正确性。单元组件是应用程序的单个功能或代码。用于单元测试的白盒测试方法,通常由开发人员完成。

每当应用程序准备好并交给测试工程师时,他/她将开始独立或逐个检查应用程序的模块或模块的每个组件,这个过程称为单元测试组件测试

为什么要进行单元测试?

在测试级别层次结构中,单元测试是在集成和其他其余测试级别之前完成的第一级测试。它在测试过程中使用模块,减少了等待单元测试框架、存根、驱动程序和模拟对象的依赖性,用于辅助单元测试。

单元测试

一般情况下,软件进入下四级测试:单元测试,集成测试,系统测试和验收测试,但有时由于时间的消费软件测试人员也最小单元测试,但单元测试的跳跃可以集成测试,系统在带来更高的缺陷测试和验收测试,甚至在软件应用程序完成后进行的 Beta 测试期间。

下面列出了一些关键原因:

  • 单元测试帮助测试人员和开发人员了解代码的基础,使他们能够快速更改导致缺陷的代码。
  • 单元测试有助于文档。
  • 单元测试在开发阶段的早期修复缺陷,这就是为什么在即将到来的测试级别中可能会出现较少数量的缺陷。
  • 它通过迁移代码和测试用例来帮助提高代码的可重用性。

单元测试示例

让我们看一个示例示例,以便更好地理解单元测试的概念:

单元测试

对于金额转账,要求如下:

1. 转账金额
1.1 从帐号 (FAN)→ 文本框
1.1.1 风扇→ 只接受 4 位数字
1.2 对帐无 (TAN)→ 文本框
1.2.1 TAN→ 只接受 4 位数字
1.3 金额→ 文本框
1.3.1 金额 → 接受最多 4 位数字
1.4 转移→ 按钮
1.4.1 传输 → 启用
1.5 取消→ 按钮
1.5.1 取消→ 启用

以下是应用程序访问详细信息,由客户提供

  • 网址→登录页面
  • 用户名/密码/确定 → 主页
  • 要达到金额转移模块,请按照以下步骤操作

贷款→销售→金额转移

在进行单元测试时,我们应该遵循一些规则,如下:

  • 要开始单元测试,至少我们应该有一个模块。
  • 测试正值
  • 测试负值
  • 没有过度测试
  • 无需假设

当我们觉得达到了最大的测试覆盖率时,我们就会停止测试。

现在,我们将开始对不同的组件执行单元测试,例如

  • From account number(FAN)
  • To account number(TAN)
  • Amount
  • Transfer
  • Cancel

单元测试

对于FAN组件

Values Description
1234 accept
4311 Error message→ account valid or not
blank Error message→ enter some values
5 digit/ 3 digit Error message→ accept only 4 digit
Alphanumeric Error message → accept only digit
Blocked account no Error message
Copy and paste the value Error message→ type the value
Same as FAN and TAN Error message

对于 TAN 分量

  • 像我们在从帐号(FAN) 组件中所做的那样提供值

对于金额组件

  • 像我们在 FAN 和 TAN 组件中所做的那样提供值。

对于传输组件

  • 输入有效的风扇值
  • 输入有效的 TAN 值
  • 输入正确的金额值
  • 点击转账按钮→转账成功(确认信息)

对于取消组件

  • 输入 FAN、TAN 和数量的值。
  • 单击取消按钮 → 应清除所有数据。

单元测试工具

我们在市场上有各种类型的单元测试工具,具体如下:

  • NUnit
  • JUnit
  • PHPunit
  • Parasoft Jtest
  • EMMA

单元测试技术:

单元测试使用所有白盒测试技术,因为它使用软件应用程序的代码:

  • 数据流测试
  • 控制流测试
  • 分支覆盖测试
  • 语句覆盖测试
  • 决策覆盖测试

如何通过单元测试获得最佳结果?

按照下面列出的步骤,单元测试可以提供最佳结果而不会混淆并增加复杂性:

  • 测试用例必须是独立的,因为如果需求有任何变化或增强,测试用例不会受到影响。
  • 单元测试用例的命名约定必须清晰一致。
  • 在单元测试期间,必须在跳转到 SDLC 的下一阶段之前修复已识别的错误。
  • 一次只应测试一个代码。
  • 在编写代码时采用测试用例,否则会增加执行路径的数量。
  • 如果任何模块的代码发生变化,请确保该模块的相应单元测试可用或不可用。

单元测试的优缺点

单元测试的优缺点如下:

优点

  • 单元测试使用模块方法,因为任何部分都可以在不等待另一个部分测试完成的情况下进行测试。
  • 开发团队专注于单元提供的功能以及单元测试套件中的功能应该如何理解单元 API。
  • 单元测试允许开发人员在几天后重构代码,并确保模块仍然可以正常工作而没有任何缺陷。

缺点

  • 它无法识别集成或广泛级别的错误,因为它适用于代码单元。
  • 在单元测试中,不可能评估所有执行路径,因此单元测试无法捕获程序中的每一个错误。
  • 它最适合与其他测试活动结合使用。