简述软件测试和软件调试之间的区别。
软件测试和软件调试相比,在目的、技术和方法等方面都存在着很大区别,主要表现在:(1) 测试从一个侧面证明程序员的“失败”。调试是为了证明程序员的正确。(2) 测试以已知条件开始,使用预先定义的程序且有预知的结果,不可预见的仅是程序是否通过测试。调试一般是以不可知的内部条件开始,结果是不可预见的。(3) 测试是有计划的,并要进行测试设计,调试是不受时间约束的。(4) 测试是一个发现错误、改正错误、重新测试的过程,调试是一个推理过程。(5) 测试的执行是有规程的。调试的执行往往要求程序员进行必要推理。(6) 测试经常由独立的测试组在不了解软件设计的条件下完成的。调试必须由了解详细设计的程序员完成。(7) 大多数测试的执行和设计可由工具支持。调试时,程序员能利用的工具主要是调试器。