软件测试 software testing
定义:对软件进行检测和评估,以确定其是否满足所需结果的过程和方法。
学科:计算机科学技术_计算机硬件_计算机维护
相关名词:黑盒测试 白盒测试
图片来源:视觉中国
【延伸阅读】
软件测试是随软件的产生而产生的。在早期的软件开发过程中,软件规模小,架构简单,软件开发的过程不规范,对测试的投入少,所以软件的测试工作常常是等到产品已经基本完成时才进行。到了20世纪80年代初期,软件行业蓬勃发展,软件趋向大型化、高复杂度,所以软件的质量越来越重要。面向结构复杂、功能多样的大体量软件,软件测试的方法也越来越规范。从单一的正确性判断到软件的正确性、健壮性、容错性等全方位把控;从只测试成品功能到监控产品开发的各个阶段;从整体功能测试到单元与整体联合测试,软件测试方法逐步趋于成熟并形成它独有的一套体系。软件测试按照测试技术通常分为黑盒测试和白盒测试。
黑盒测试是把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和具体代码,只按照软件需求说明书,检查这个“黑盒子”是否可以完成预期的功能。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试方法包括等价类划分、边界值分析、因果图分析、错误推测法、功能图分析等。
白盒测试是对软件的过程性细节做细致的检查。它把测试对象看作一个打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试方法包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等。
此外,软件测试按开发阶段可分为单元测试、集成测试、系统测试、验收测试;按测试的实施单位可分为开发方测试、用户测试、第三方测试;按测试内容还可分为负载测试、压力测试、可用性测试、兼容性测试、安全性测试等。
(延伸阅读作者:大连理工大学计算机科学与技术学院教授 杨鑫)
责任编辑:张鹏辉