论文部分内容阅读
测试用例自动生成问题作为软件测试中的一个基本问题,解决测试用例自动生成问题对软件测试中的覆盖率测试尤为重要。另外,人工智能技术作为最前沿的技术之一,可以被应用到各种领域中。应用人工智能技术到代码测试中的测试用例生成问题,用于改善测试效率极具可行性和重要性。针对上述问题,本文应用人工智能中机器学习和启发式搜索的技术到测试用例生成问题中。本文的研究内容主要分为三部分:第一部分基于机器学习中人工神经网络的技术实现了预测测试用例时间的功能。该研究首先确定影响测试用例生成的因素是与代码度量相关的指标,接着通过自动化测试工具统计该指标,生成数据集。最后通过实验对模型中的参数进行修正和确认,实验证明模型对测试用例生成时间的预测准确度超过80%。该策略可以帮助测试人员在代码覆盖率测试时提前获得测试的进度,了解每个函数、文件和工程进行测试所需要的时间,从而确定测试过程的工作量。第二部分应用强化学习的技术,利用其模拟人类利用经验进行决策的能力指导测试用例的自动生成。该方法对约束求解中变量运算的过程进行抽象建模,模型实现了对约束集合的智能求解。即选择合适的变量并选择合适的动作进行运算。通过实验证明了该策略的可行性,并确认该方法可以生成正确的测试用例。另外,实验对比不加入强化学习策略的测试用例生成方法中变量的运算次数,证明了该策略在减少变量计算次数的可行性。第三部分是对基于分支限界的测试用例生成框架进行完善,分支限界测试用例生成框架是人工智能搜索算法的应用,该部分研究提出了一种针对测试用例生成中的等式约束条件的处理策略。通过对包含等式和不等式约束的被测程序进行测试,证明该策略可以提高测试用例生成的效率并检测出由等式无解所造成的不可达路径。作者基于代码测试系统(CodeTest System,CTS)对上述三种策略进行开发和测试。应用研究的目的在于改善CTS的测试效率。通过设计的实验可以验证这三种策略在改善测试用例生成上的可行性。