计算机科学技术的飞速发展,促进了软件产品的广泛应用。不论是软件的生产者还是软件的使用者,都在激烈的竞争中求生存、求发展,软件产品的质量至关重要,并已经成为关注的焦点。软件开发者为了占有市场,必须把产品质量作为企业的重要目标之一,进而才可以确保在激烈的竞争中获得胜利。而为了保证软件产品的质量,软件测试成为必不可少的重要过程与手段。
在开发大型软件系统的过程中,面对着极其错综复杂的问题,软件开发者的主观认识不可能完全符合客观事实,而且与工程密切相关的各类人员之间的沟通和配合也不可能完美无缺,因此,在软件生命周期的每个阶段不可避免地会产生错误。尽管力求在每个阶段结束之前通过严格的技术审查,尽可能极早地发现并纠正差错,但是,审查并不能发现所有错误,而且,在纠正这些错误的过程中还可能引人新的错误。如果在软件投人实际运行之前没有发现并纠正它存在的错误,那么这些错误将在运行过程中暴露出来,到时候不仅要为改正这些错误而付出高昂的代价,而且系统很可能产生严重后果。
软件测试在软件生命周期中分为两个阶段。在编写出每个模块的代码之后就对它做测试,称为单元测试,模块的编写者和测试者是同一个人,编码和单元测试在软件生命周期中属于同一个阶段。在这个阶段结束之后,对软件系统还应该进行集成测试、确认测试和系统测试等,这是软件生命周期中的另一个独立的阶段,由专门的测试人员承担这项工作。