D算法是用D立方运算实现的敏化路径法。
  首先,根据故障原始D立方确定一个初始测试D立方。初始测试D立方中包含故障点的D或
D
  从初始测试D立方出发,将故障D或
D向输出端传播,称为D驱赶(D-Drive)。传播时根据测试D立方中的D或D查找相应信号节点的负载元件,对这些元件进行计算。计算的方法是用测试D立方与元件的传播D立方作D交,从而得到新的测试D立方。对每个测试D立方需要作D驱赶的负载元件的集合称为D前沿(D-frontier)。
  在D驱赶过程中,对某些已经能够确定的值要及早确定,称为求蕴函(Implication)。同时要对没有赋值的信号节点确定它们的值。称为线确认(Wire Justification)。在求蕴函和线确认的过程中都要检查所求的值是否有矛盾,统称为一致性操作(Consistency Operation),或称相容性检查,也叫做C驱赶。在每次求得新的测试D立方时都要做一致性操作。需要做一致性操作的元件集合称为C前沿(C-Frontier) 。所谓C前沿是指这样的元件集合:当做了一次D驱赶或做了一次一致性操作之后,某些信号取值由'X'变为确定值'0', '1', D或
D,这时,满足下列条件之一的元件属于D前沿:
  (1)该信号节点为此元件的输出;
  (2)该信号节点为此元件输入,求此元件其它输入信号已确定。
  做相容性计算是用测试D立方与C前沿中元件的质立方(有时是传播D立方)作D交,并得到新的测试D立方。
  在D驱赶和一致性操作过程中都会出现测试D立方为空。这时要回溯,返回最近的选择点重新进行D驱赶和一致性操作。
  如果D或
D出现在输出端,输入端的值也已经确定,同时一致性操作也已成功,则D算法成功,找到了测试向量。如果在回溯过程中已无任何选择可能,则算法失败,未找到测试。