软件测试是为了发现错误而执行程序的过程。具体来讲,软件测试是一个找错的过程,测试只能找出程序中的错误,而不是证明程序无措。软件测试要求以较少的用例、时间和人力找出软件中潜在的各种错误和缺陷,以确保软件的质量。
软件测试的模型有瀑布过程模型、螺旋过程模型、增量过程模型、快速原型工程模型、敏捷过程模型等,这些软件模型是软件开发的指导思想和全局性框架,他们的提出和发展反映了人们对软件过程的认识观,体现了人们对软件过程认识的提高和飞跃。总的来讲,软降开发所遵循的软件过程是保证高质量软件开发的一个至关重要的因素。
软件产生错误也是无法避免的,其中,软件错误的原因有软件的复杂性,交流不够、交流上有误解或者根本无法交流,程序设计错误,需求变化,时间压力,代码文档匮乏、软件开发工具的错误这几种错误原因,这些错误需要软件测试来发现,软件中的错误密度也需要测试来进行估计。