论文部分内容阅读
随着软件规模变得越来越大,自动化测试的效率也越来越重要。在软件测试领域,有大量的测试用例需要执行,每条用例对应的执行代码的逻辑结构可能不尽相同,如果每条用例的代码都手动编写,将浪费很多的人力资源。应用流程图代码生成技术可以提升软件测试的执行效率。在流程图代码自动生成技术中,其难点在于流程图结构的线性化过程。本文考虑到流程图元之间的组合或者嵌套关系,提出了用二叉树来保存流程图的技术。二叉树的一个节点保存顺序关系,而用另一个节点保存嵌套关系,这使得二叉树可以很好地保存流程图中的信息,最重要的是流程图的线性化工作变的简单,对二叉树执行一次扫描就可以生成代码,提高了流程图的解析效率。本文提出自底向上的解析过程,每次添加、删除图元后都要更新二叉树以保证二叉树与流程图的对应关系。这种保存结构可以很好的支持多层if分支结构和switch结构。可以绘制包含continue、break和return语句的半结构化流程图。可以识别流程图中非法的流程线。使用循环不变式可以非形式化地证明算法的正确性,算法分析表明对流程图进行修改后重新生成代码的时间复杂度减少。