论文摘要
针对软件测试中的白盒测试技术,分析了当前白盒测试的主要方法及存在的测试用例繁多,测试不充分,效率低下等问题。为了解决这些问题,重点介绍了DD图、流程图等概念,并以构造DD图无约束边集合和程序流程树为基础,给出了一个基于程序流程树的测试模型,该模型通过五个步骤来对程序代码进行测试。第一个步骤是提取程序片段,包括重要度评价与程序切分。如果是在集成测试阶段,需要分析模块复杂度,选取当前最重要的模块进行测试。如果是在单元测试阶段,可认为当前的惟一模块就是最重要模块。然后,将复杂程序代码利用程序切片技术,截取为若干有逻辑意义的代码片段。第二个步骤是程序流图构造。按照一定规则将程序流程图转换为程序流图。第三个步骤是DD图生成。在生成的DD图中提取无约束边集合,用于精简测试路径。第四个步骤是流程树获取,按照保持程序流图逻辑意义不变的原则,将程序流图转换为流程树,目的是为了化解程序流图回路,构造清晰的可测试路径。每一条从树根节点出发到叶子节点为止的路径都是一条可测试的独立路径。所有这些路径的集合覆盖了整个程序段。第五个步骤是最佳测试路径筛选。在流程树所有可测试的独立路径中,遵循尽量充分地覆盖DD图无约束边的原则,通过循环计算当前未被选中路径中包含当前未被覆盖的无约束边的个数,选择最佳测试路径,直到无约束边全部被覆盖,精简可测试路径数目,利用最少的测试路径达到最充分的覆盖。此外,分析了基于流程树的白盒测试方法同传统白盒测试方法的区别。最后结合一个实际的软件进行了测试验证。