📜  单元测试

📅  最后修改于: 2021-01-08 09:01:31             🧑  作者: Mango

单元测试

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

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

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

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

为什么要进行单元测试?

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

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

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

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

单元测试示例

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

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

1. Amount transfer
1.1 From account number (FAN)→ Text Box
1.1.1 FAN→ accept only 4 digit
1.2 To account no (TAN)→ Text Box
1.2.1 TAN→ Accept only 4 digit
1.3 Amount→ Text Box
1.3.1 Amount → Accept maximum 4 digit
1.4 Transfer→ Button
1.4.1 Transfer → Enabled
1.5 Cancel→ Button
1.5.1 Cancel→ Enabled

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

  • URL→登录页面
  • 用户名/密码/确定→主页
  • 要达到金额转移模块,请遵循以下步骤

贷款→销售→金额转移

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

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

当我们认为已达到最大测试覆盖率时,我们将停止测试。

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

  • 从帐号(FAN)
  • 到帐号(TAN)
  • 转让
  • 取消

对于风扇组件

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的
  • PHP单元
  • Parasoft Jtest
  • 埃玛

有关单元测试工具的更多信息,请参考以下链接:

https://www.javatpoint.com/unit-testing-tools

单元测试技术:

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

  • 数据流测试
  • 控制流测试
  • 分支机构覆盖率测试
  • 声明覆盖率测试
  • 决策覆盖率测试

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

遵循以下步骤,单元测试可以提供最佳结果而不会引起混淆,并且不会增加复杂性:

  • 测试用例必须独立,因为如果需求有任何更改或增强,测试用例将不会受到影响。
  • 单元测试用例的命名约定必须明确且一致。
  • 在单元测试期间,必须先修复已识别的错误,然后再跳转到SDLC的下一个阶段。
  • 一次只能测试一个代码。
  • 在编写代码时采用测试用例,如果不这样做,则执行路径的数量将增加。
  • 如果任何模块的代码有变化,请确保该模块对应的单元测试可用或不可用。

单元测试的优缺点

单元测试的优缺点如下:

优点

  • 单元测试使用模块方法,因为可以测试任何零件而无需等待其他零件测试的完成。
  • 开发团队专注于提供的单元功能以及如何在单元测试套件中查看功能以理解单元API。
  • 单元测试使开发人员可以在几天后重构代码,并确保模块仍然可以正常工作而没有任何缺陷。

缺点

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