- 📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢交流讨论:欢迎加入我们一起学习!
- 📢资源分享:耗时200+小时精选的「软件测试」资料包
- 📢 最困难的时候,也就是我们离成功不远的时候!
功能测试根据需求进行功能上的测试,而非功能测试则针对更广泛的质量问题进行测试。在本文中,Dayana Stockdale将帮助读者弄清这两种测试的差异,并给出一些举例和策略。
功能测试与非功能测试的主要区别
在理解功能测试和非功能测试的区别之前,先需要知道功能性和非功能性需求之间的区别:
·功能要求:描述软件系统的行为或执行。
· 非功能性要求:描述软件系统的性能或可用性。
功能需求将指定某一功能必须执行某个操作,而非功能需求则是可能会指定某一功能执行该操作。功能要求是WHAT;而非功能性要求是HOW。
因此,功能需求测试就是验证软件是否正在执行操作,而非功能测试则有助于验证客户的期望是否得到满足。
功能测试与非功能测试实例
为了使读者能更加清晰的了解两者之间的差异,Dayana将详细介绍一些并行的实例:
功能测试策略
功能测试策略多种多样,手动和自动测试混合使用是确保功能测试覆盖率的最佳方法。
最常见的功能测试策略是黑盒测试方法,测试者不需要审查内部源代码,而是通过测试各种输入组合来验证功能。
以下是一些常用的功能测试技术:
1. 安装测试 — 用于测试桌面或移动应用程序是否正确安装。
2. 边界值分析 — 数值输入边界测试。
3. 等价划分 — 分组测试,以减少类似功能测试的重叠。
4. 错误猜测 — 评估功能问题最有可能被发现,并比其他领域更广泛地进行测试。
5. 单元测试 — 在软件的最小级别上执行测试。不是将系统作为一个整体运行,而是在单元上测试。
6. API测试 — 检查内部和外部API是否正常运行,包括数据传输和授权。
7. 回归测试 — 用于验证新软件更改没有对现有功能(最常见的自动化技术)产生不利影响的测试。
所有的功能测试都有一个特定的输出。所有的功能测试都可以用非常明确的通过或者失败标准来编写。
非功能性测试策略
非功能性测试有时可能会比功能性测试要麻烦很多,因为您正在测试客户对整体质量体验的期望,而不是指定输入数据输出确定的结果。
以下是主要的非功能性测试技术:
1. 负载测试 — 在模拟环境中执行的测试,以测试系统在预期条件(不同数量的用户)期间的行为。
2.压力测试 — 在资源不足时测试性能,例如服务器问题或设备上硬盘空间不足。
3. 扩展性测试 — 检查系统的规模,以便随着使用率的增加和性能受到何种程度的影响而进行扩展。
4. 容量测试 — 用大量的数据测试性能,不一定是数量庞大的用户,但可以是一个用户执行高容量的任务,例如多文件上传。
5. 安全性测试 — 进行测试以发现系统受到攻击的脆弱程度,以及数据的保护程度。
6. 灾难恢复测试 — 检查系统在崩溃或重大问题后能在多久时间内的恢复速度。
7. 一致性测试 — 根据某一套标准(无论是行业法规还是公司的标准)来测试软件系统。
8. 可用性测试 — 测试GUI是否一致,以及整个应用程序是否直观且易于使用。
虽然一些非功能性测试技术可以具有通过/失败的标准(如批量测试),但相比之下,其他测试技术能够基于测试人员的意见(如可用性测试)因此更加客观。
倾听客户反馈对于更新非功能性需求至关重要。虽然在收集意见过程中,可能会识别到某些扩展性和安全因素,但客户反馈可以扩展这些检查集合,包括更好地测试应用程序在崩溃后应该如何恢复,或应用程序如何在设备上占用最小的存储空间。
客户反馈有助于进行功能测试的风险评估。但对于非功能性测试来说,用户反馈更有价值,因为反馈有助于设定栅,而功能测试已经设定好了栅。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群,里面有各种测试开发资料和技术可以一起交流哦。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。