逻辑程序开发过程中需要花费大量的时间用以程序调试,原因之一是调试通常包含大量的用户交互。减少对调试过程不必要的调用能够提高软件开发的效率。程序测试中得到的由同一个错误引发的多个症状是引发对调试过程不必要调用的因素之一。给出了一种逻辑程序测试和调试框架,其中测试用例的生成、症状的发现和调试(包括诊断和改错)交叉进行,由同一个错误引发的症状只有一个可引发调试过程执行,并以此方式避免了对调试过程不必要的调用。然后,利用一种基于约束的Prolog计算解语义,该框架被实例化为一种Prolog程序的测试和调