什么是功能测试?
功能测试验证软件应用程序的每个功能是否按照需求规范运行。这项测试主要涉及黑盒测试,并不关心应用程序的源代码。
通过提供适当的输入、验证输出并将实际结果与预期结果进行比较来测试系统的每项功能。测试可以手动完成,也可以使用自动化完成。
什么是非功能测试?
非功能测试是一种检查非功能方面(性能、可用性、可靠性等)的测试。非功能测试的一个很好的例子是检查有多少人可以同时登录到一个软件。
非功能测试与功能测试同等重要,影响用户满意度。
关键差异
- 功能测试验证软件的每个功能/特性,而非功能测试验证非功能方面,如性能、可用性、可靠性等。
- 功能测试可以手动完成,而非功能测试很难手动执行。
- 功能测试基于用户的需求,而非功能测试基于用户的期望。
- 功能测试的目标是验证软件操作,而非功能测试的目标是验证软件的性能。
- 功能测试示例是检查登录功能,而非功能测试示例是检查网页是否应该在2秒内加载。
- 功能性描述产品的功能,而非功能性描述产品的工作方式。
- 功能测试在非功能测试之前执行。
功能性VS非功能测试
参数 | 功能性 | 非功能测试 |
---|---|---|
执行 | 在非功能测试之前执行 | 在功能测试之后执行的。 |
焦点区域 | 以用户的要求为基础的 | 着眼于用户的期望 |
要求 | 很容易定义功能需求 | 很难定义非功能测试的需求 |
用法 | 验证应用程序的行为 | 验证应用程序的性能 |
目标 | 验证软件操作 | 对软件的性能进行验证 |
要求 | 使用功能规范执行功能测试 | 根据性能规范进行的 |
手动测试 | 很容易通过手动测试来执行 | 手动执行非功能测试非常困难 |
功能 | 描述了产品的用途 | 描述了产品的工作原理 |
示例测试用例 | 检查登录功能 | 页面应该在2秒内加载 |
测试类型 | 功能测试类型的示例 单元测试冒烟测试 用户接受度 集成测试 回归测试 本地化 国际化 互操作性 | 非功能测试类型的示例 性能测试 容量测试 可扩展性 可用性测试 负载测试 压力测试 符合性测试 可移植性测试 容灾测试 |