现网使用zookeeper进行任务ID的保存,以便失败时进行恢复;zookeeper本身的客户端不支持级联删除节点,必须先逐个删除目录下的节点,再删除目录(简单理解是这样)。为了维护zookeeper的节点,现在开发了一个工具,可以通过调用zookeeper的接口,递归删除目录及下面的节点。
按通常的测试方法,可以进行测试场景分析,测试用例设计。然后搭建zk环境,测试执行。但是对于这样代码量不多的小工具,能否更快速的发现其缺陷呢。
由于工具的使用场景比较简单,可以在大脑中过一下使用场景和工具的使用情况。在大脑中构思一下工具的设计和编码思路。直接走读代码,是否更高效呢?
通过实际的代码走读,发现了4个问题,其中1个严重问题,1个一般问题,2个提示问题。同时对后续的手工测试的针对性和关注点也有所指导。
步骤1 :确定程序的基本结构( DeleteDir.java ):
Main函数调用deleteRecursive逐个删除节点;deleteRecursive通过listSubTreeBFS得到要删除的节点的列表(目录看作是父节点)
public static void main(String[] args) {
… …
DeleteDir.deleteRecursive(zookeeper, pathRoot,number);
… …
}
public static void deleteRecursi