| 软件测试的定义:远比“找bug”复杂 | 当前位置: 首页> 学习中心> 小白入门> 详情 |
国际标准ISO/IEC/IEEE 29119-1:2022(其前身可追溯到IEEE Std 829)对软件测试的定义是:
软件测试是使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求,或是弄清预期结果与实际结果之间的差别。
该定义虽源自早期标准,但核心思想在现行的ISO/IEC/IEEE 29119系列标准中得以延续和扩展。
这里面藏了三个关键信息。
第一,满足规定的需求。 测试首先要回答的问题是:软件做到了它承诺要做的事吗?登录功能能不能正常登录?支付接口能不能成功扣款?商品列表能不能按价格排序?这些都是规定的需求,白纸黑字写在需求文档里。一个登录按钮点下去10秒才有反应,可能没有错,但用户一定会骂娘——这就是测试的第二个层面。
第二,预期结果与实际结果的差别。 需求文档不会写“登录按钮点击后必须在500毫秒内响应”,但用户有这个预期。测试需要发现的不只是功能缺失和逻辑错误,还有体验缺陷、性能瓶颈、安全隐患、兼容问题——这些往往不会明确写在需求里,但它们同样会让产品失败。
第三,人工或自动手段。 很多人以为测试就是手工点点点,那只是测试的一小部分。现代测试已经高度依赖自动化工具、脚本、框架和平台,自动化测试已经在很多团队中占据了一半以上的测试工作量。
所以一个更贴近现实的定义是:软件测试是贯穿整个软件生命周期的一系列质量保障活动,包括验证(检查是否做对了产品)和确认(检查是否做了正确的产品),目的是以最小的成本提供足够的信息,让决策者能够判断软件的质量水平,并做出是否发布的决定。
这个定义很长,但请记住最核心的三个字:提供信息。测试的本质不是修bug,不是找bug,而是为决策提供信息。项目能不能上线?还有哪些风险?质量趋势是在变好还是变差?这些问题的答案,都来自测试。
更多软件测试相关推荐:
文章来源:网络 版权归原作者所有
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理