论文部分内容阅读
测试人员按照自然语言描述的软件需求设计并编写测试脚本,需要提前经过结构化编程培训或者自动化测试工具编程培训,人工成本较高,而且编写脚本比自然语言描述的测试用例文本要需要耗费更多的时间,测试效率会在编写脚本阶段被降低。通过脚本编写的测试用例会失去自然语言描述的灵活性,对测试人员的专业表述也造成了压力。基于自然语言处理的软件需求分析可以有效地提高自动化测试的自动化程度,但大部分已有的自然语言处理在解决中文自然语言文本时表现不佳,部分效果尚可的方法只是产生中间的软件产品或者因需要较多交互而仍需进一步改善。为改善上述问题,本文提出一种基于深度学习的自动化功能测试算法。首先基于深度学习对中文自然语言描述的测试用例进行自然语言处理提取出关键字序列,关键字序列对操作步骤有着特殊的意义,我们定义为可以高度抽象测试操作的三元组,包括动作,目标页面元素,数据参数。接着我们对测试系统的页面进行爬取,获得整个页面的HTML DOM树,根据三元组中的目标页面元素定位测试操作的页面元素,并结合基于selenium的自动化测试框架编写关键字接口,通过关键字调用接口,自动生成自动化测试脚本,驱动被测程序进行自动化测试,最后生成测试报告。基于本文上述方法测试人员可以通过测试报告确定测试结果,减少了测试人员人工编写测试脚本,整理测试结果的成本,提高了测试效率。本实验从自然语言文本提取关键字序列的准确率达到89.7%,比ATA基于分段回溯方法提高了7%左右。本文提出的基于深度学习的自动化功能测试算法在整体自动化程度上优于录制回放自动化测试方法,且需要更少的人工交互;在将自然语言操作描述转化成自动执行测试操作的成功率上,比ATA高了4%;除此之外,该技术所需的执行时间也在可接受的范围之内。