排错(即调试)与成功的测试形影相随。测试成功的标志是发现了错误。根据错误迹象确定错误的原因和准确位置,并加以改正的主要依靠排错技术。
1、排错过程
如下图所示,排错过程开始于一个测试用例的执行,若测试结果与期望结果有出入,即出现了错误征兆,排错过程首先要找出错误原因,然后对错误进行修正。因此排错过程有两种可能,一是找到了错误原因并纠正了错误,另一种可能是错误原因不明,排错人员只得做某种推测,然后再设计测试用例证实这种推测,若一次推测失败,再做第二次推测,直到发现并纠正了错误。
排错是一个相当艰苦的过程,究其原因除了开发人员心理方面的障碍外,还因为隐藏在程序中的错误具有下列特殊的性质:
(1)错误的外部征兆远离引起错误的内部原因,对于高度耦合的程序结构此类现象更为严重;
(2)纠正一个错误造成了另一错误现象(暂时)的消失;
(3)某些错误征兆只是假象;
(4)因操作人员一时疏忽造成的某些错误征兆不易追踪;
(5)错误是由于风时而不是程序引起的;
(6)输入条件难以精确地再构造(例如,某些实时应用的输入次序不确定);
(7)错误征兆时有时无,此现象对嵌入式系统尤其普遍;
(8)错误是由于把任务分布在若干台不同处理机上运行而造成的。