��(1) 收集有关的数据:列出所有已知的测试用例和程序执行结果。看哪些输入数据的运行结果是正确的,哪些输入数据的运行结果有错误存在。
��(2) 组织数据:由于归纳法是从特殊到一般的推断过程,所以需要组织整理数据,以便发现规律。常用的构造线索的技术是"分类法"。用图5.26中所示的3W1H形式来组织可用的数据:
���"What" 列出一般现象;
���"Where" 说明发现现象的地点;
���"When" 列出现象发生时所有已知情况;
���"How" 说明现象的范围和量级;
���在"Yes"和"No"这两列中,"Yes"描述了出现错误的现象的3W1H,"No"作为比较,描述了没有错误的现象的3W1H。通过分析,找出矛盾来。
��(3) 提出假设:分析线索之间的关系,利用在线索结构中观察到的矛盾现象,设计一个或多个关于出错原因的假设。如果一个假设也提不出来,归纳过程就需要收集更多的数据。此时,应当再设计与执行一些测试用例,以获得更多的数据。
如果提出了许多假设,则首先选用最有可能成为出错原因的假设。
��(4) 证明假设:把假设与原始线索或数据进行比较,若它能完全解释一切现象,则假设得到证明;否则,就认为假设不合理,或不完全,或是存在多个错误,以致只能消除部分错误。
��有人想越过这一步,立刻就去改正错误。这样,假设是否合理,是否完全,是否同时存在多个错误都不甚清楚,因此就不能有效地消除多个错误。
��