技术摘要:
本发明涉及自动化测试的技术领域,具体公开了一种基于NLP和RF框架的自动化测试用例生成方法,包括:通过RF框架调用实现指定功能的脚本文件,并将调用的脚本文件封装形成以用户关键字表示的功能库;描述信息和验证信息通过NLP技术进行分词处理和语义分析分别得到用户关 全部
背景技术:
测试用例是指一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技 术和策略,其内容由测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等形成 的文档。 自动化测试用例的编写主要有两种方法,一种是手工对脚本文件运行一次测试, 同时使用自动化测试工具的录制功能,记录运行过程中的操作,形成测试脚本。这种方法生 成的脚本回放成功率比较低,且后期维护困难。另一种方法是编写测试框架,对测试需要的 基础操作提供可调用的接口,用例编写人员根据用例操作需求,手工编写调用接口的自动 化测试脚本,这种方法对用例编写人员的代码水平的要求比较高,不仅需要有一定的脚本 编写基础,而且用例编写人员还需要熟悉相关的自动化框架和业务知识。 综上,当前的自动化测试用例的编写方法存在测试脚本再重新运行测试时成功率 低、后期维护困难,对用例编写人员代码水平要求高的问题,不利于自动化测试的推广和自 动化用例覆盖的提升。
技术实现要素:
为解决自动化脚本文件的编写对用例编写人员编写能力要求高的技术问题,本发 明提供一种基于NLP和RF框架的自动化测试用例生成方法及系统。 本发明基础方案如下: 一种基于NLP和RF框架的自动化测试用例生成方法,包括初始化步骤和测试用例 编写步骤: 初始化步骤、通过RF框架调用实现指定功能的一系列脚本文件,然后为调用的脚 本文件设置用户关键字,并将调用的脚本文件封装形成以用户关键字表示的功能库;根据 设置的用户关键字创建匹配列表; 测试用例编写步骤依次包括以下步骤: 信息获取步骤、获取描述信息和验证信息,描述信息为描述待测业务流程的信息, 验证信息为预期测试输出结果的信息; 信息处理步骤、将描述信息通过NLP技术进行分词处理和语义分析得到词汇逻辑 序列,然后根据匹配列表抽取若干用户关键字,形成用户关键字序列;验证信息通过NLP技 术进行分词处理和语义分析得到测试点序列; 功能库调用步骤、通过RF框架逐个读取用户关键字序列中的用户关键字,调用用 户关键字表示的若干组功能库; 结果执行步骤、根据预设测试用例执行被调用功能库中封装的脚本文件,得到测 4 CN 111581090 A 说 明 书 2/8 页 试结果;将得到的测试结果与测试点序列进行对比分析,当对比分析不成功时,执行下一组 被调用功能库,直到所有被调用功能库中封装的脚本文件执行后的测试结果均对比分析不 成功时,转到信息获取步骤,当任一被调用功能库中封装的脚本文件被执行后的测试结果 对比分析成功时,执行结果保存步骤; 结果保存步骤、将测试结果和测试用例形成执行结果报告,然后进行保存。 本方案的原理及优点在于:NLP技术是指自然语言处理技术。指定功能是指一系列 脚本文件所能实现的基础功能。初始化:通过RF框架调用实现指定功能的一系列脚本文件, 然后为调用的脚本文件设置用户关键字,并将调用的脚本文件封装形成以用户关键字表示 的功能库;将设置的用户关键字创建匹配列表,从而方便后续调用功能库。测试用例编写: 获取描述待测业务流程的描述信息和预期测试输出结果的验证信息;通过NLP技术对描述 信息进行分词处理和语义分析得到词汇逻辑序列,然后根据匹配列表抽取词汇逻辑序列中 的用户关键字,形成用户关键字序列;验证信息通过NLP技术进行分词处理和语义分析得到 测试点序列;之后通过RF框架逐个读取用户关键字序列中的用户关键字,并调用用户关键 字关联的功能库;根据预设测试用例执行被调用功能库中封装的脚本文件,得到测试结果; 将得到的测试结果与测试点序列进行对比分析,当对比分析不成功时,即该功能库的测试 结果不符合预测的测试结果,执行下一组被调用功能库,直到所有被调用功能库中封装的 脚本文件执行后的测试结果均对比分析不成功时,重新获取描述信息和验证信息,当任一 被调用功能库中封装的脚本文件被执行后的测试结果对比分析成功时,即认为该功能库的 测试结果符合预测的测试结果,最后将测试结果和测试用例形成执行结果报告并保存。 本方案,通过RF框架调用实现指定功能的一系列脚本文件,将然后为调用的脚本 文件设置用户关键字,并将调用的脚本文件封装形成以用户关键字表示的功能库,从而通 过RF框架可以读取用户关键字,调用用户关键字表示的若干组功能库,功能库的调用更加 便捷;通过NLP技术对描述待测业务流程的描述信息和预期测试输出结果的验证信息进行 分词处理和语义分析,NLP技术能够有效地自然语言的识别准确率;根据用户关键字创建的 对比列表抽取描述信息中的用户关键字,方便用户关键字的抽取。通过RF框架读取用户关 键字序列中的用户关键字,从而调用用户关键字关联的若干组功能库,即不需要用例编写 人员人工编写脚本文件,从而降低对用例编写人员的编写能力的要求。然后根据预设的测 试用例执行调用的功能库中的脚本文件,得到测试结果,将测试结果与测试点序列(用例编 写人员预测的测试输出结果)进行对比分析,对比分析成功时,即认为该功能库的测试结果 符合预测的测试结果,最后将测试结果和测试用例形成执行结果报告并保存;当对比分析 不成功时,即认为该功能库的测试结果不符合预测的测试结果,执行下一组被调用功能库, 直到所有被调用功能库中封装的脚本文件执行后的测试结果均对比分析不成功时,重新获 取描述信息和验证信息。 综上,本方案中,用例编写人员当需要编写实现某个功能的测试用例时,只需提供 较为准确的提供描述待测业务流程的描述信息和预期测试输出结果的验证信息,即可得到 实现该待测业务路程功能的功能库,即一系列脚本文件,相对于现有的自动化测试用例需 要根据业务功能人工编写的方式,本方案极大地降低了对用例编写人员自动化脚本编写能 力的要求,有利于自动化用例的快速推广。 进一步,信息处理步骤中分词处理和语义分析包括: 5 CN 111581090 A 说 明 书 3/8 页 步骤S1、对描述信息进行预处理得到文本信息; 步骤S2、按照文本信息中的标点符号分出单句,并按照词性和语义对单句进行分 词,得到词汇逻辑序列。 有益效果:通过NLP技术对用例编写人员输入的描述信息和验证信息进行分词和 语义分析,能够较为准确的提取出描述信息和验证信息所包含的词汇逻辑序列。 进一步,结果执行步骤中,预设具有若干测试用例的测试集,结果执行步骤依次包 括以下子步骤: 步骤S3、根据测试集中未使用的测试用例执行被调用功能库中封装的脚本文件, 得到测试结果,当测试集中的测试用例均被使用,执行结果保存步骤; 步骤S4、将得到的测试结果与测试点序列进行对比分析,当对比分析不成功时,跳 转到信息获取步骤,当对比分析成功时,执行S3。 有益效果:通过多个测试用例,能更加全面的对调用的功能库的进行功能测试,从 而更加准确的调用到用例编写人员所需要功能的功能库。 进一步,初始步骤中的用户关键字根据其关联功能库的功能设置。 有益效果:从而使RF框架根据采用NLP技术对描述信息处理得到的用户关键字能 够更加准确的调用到相应功能的功能库。 进一步,信息处理步骤中还包括将通过NLP技术处理分析得到用户关键字形成用 户行为列表,将测试点序列形成用户断言列表。 有益效果:通过列表的方式,数据体现更加直观,便于用例编写人员查看。 一种基于NLP和RF框架的自动化测试用例生成系统,包括服务器和用户端,服务器 包括RF封装模块、数据库、信息处理模块、RF调用模块和执行模块,其中: RF封装模块用于通过RF框架调用实现指定功能的一系列脚本文件,然后为调用的 脚本文件设置用户关键字,并将调用的脚本文件封装形成以用户关键字表示的功能库,还 用于根据设置的用户关键字创建匹配列表,并将封装形成的功能库和匹配列表存储至数据 库; 数据库用于存储功能库和匹配列表; 用户端用于获取描述信息和验证信息,描述信息为描述待测业务流程的信息,验 证信息为预期测试输出结果的信息,还用于获取到执行模块发送的重新获取信息时,重新 获取描述信息和验证信息; 信息处理模块用于通过NLP技术对描述信息进行分词处理和语义分析得到词汇逻 辑序列,然后根据匹配列表抽取若干用户关键字,形成用户关键字序列;还用于通过NLP技 术对验证信息进行分词处理和语义分析得到测试点序列; RF调用模块用于通过RF框逐个读取用户关键字序列中的用户关键字,调用用户关 键字表示的若干组功能库; 执行模块用于根据预设测试用例执行被调用功能库中封装的脚本文件,得到测试 结果,将得到的测试结果与测试点序列进行对比分析,当对比分析不成功时,执行下一组被 调用功能库,直到所有被调用功能库中封装的脚本文件执行后的测试结果均对比分析不成 功时,转到信息获取步骤,当任一被调用功能库中封装的脚本文件被执行后的测试结果对 比分析成功时,将测试结果和测试用例形成执行结果报告,然后进行保存。 6 CN 111581090 A 说 明 书 4/8 页 有益效果:信息处理模块通过NLP技术对获取到的描述信息和验证信息进行处理, 能够得到准确率比较高的用户关键词序列和测试点序列,从而提高RF调用模块通过RF框架 调用得到的功能库的准确率。执行模块根据预设测试用例执行被调用功能库中封装的脚本 文件,再通过利用将执行得到的测试结果与测试点序列进行对比分析,将对比分析成功的 测试结果和对应的测试用例形成执行结果报告。 因此,本方案能根据描述待测业务流程的描述信息和预期测试输出结果的验证信 息较为准确的得到实现该功能(业务流程)的功能库,自动形成执行测试用例的执行结果报 告,即只需要能清晰的描述业务路程和测试结果验证点即可完成自动化用例(测试结果、测 试用例和脚本文件)的编写,从而降低对用例编写人员编写的要求。 进一步,信息处理模块包括描述信息处理单元和验证信息处理单元, 描述信息处理单元用于通过NLP技术对描述信息进行预处理得到文本信息,然后 按照文本信息中的标点符号分出单句,再按照词性和语义对单句进行分词,得到词汇逻辑 序列,然后根据匹配列表抽取若干用户关键字,形成用户关键字序列; 验证信息处理单元用于通过NLP技术对验证信息进行预处理得到文本信息,然后 按照文本信息中的标点符号分出单句,再按照词性和语义对单句进行分词,得到词汇逻辑 序列,该词汇逻辑序列为测试点序列。 有益效果:采用NLP技术对验证信息和描述信息按照词性和语义进行分词处理和 语义分析,从而更为准确地从自然语言(验证信息和描述信息)中提取到的词汇。 进一步,执行模块预设具有若干测试用例的测试集,执行模块根据测试集中未使 用的测试用例执行被调用功能库中封装的脚本文件,得到测试结果,将得到的测试结果与 测试点序列进行对比分析,当对比分析不成功时,向用户端发送重新获取信息;当对比分析 成功时,继续根据测试集中未使用的测试用例执行被调用功能库中封装的脚本文件,直到 测试集中的测试用例均被使用,将得到的测试结果与测试用例形成执行结果报告,然后进 行保存。 有益效果:采用多个测试用例测试被调用功能库,使得功能测试更全面,从而进一 步提高被调用功能库的准确性。另外,通过依次使用测试集中的测试用例对功能库进行测 试,从而在任一方面的功能测试不符合要求时,中断测试过程,提高系统效率。 进一步,RF封装模块中的用户关键字根据其表示的功能库的功能设置。 有益效果:采用NLP技术对描述信息处理得到的用户关键字通常表示所需功能库 的功能,因此,将RF封装模块中的用户关键字根据其表示的功能库的功能设置时,RF调用模 块通过RF框架读取采用NLP技术对描述信息处理得到的用户关键字时,能够更加准确地调 用出符合有描述信息处理得到的用户关键字所描述的功能库。 进一步,信息处理模块还用于将通过NLP技术处理分析得到用户关键字形成用户 行为列表,将测试点序列形成用户断言列表。 有益效果:通过列表的方式,数据更加直观,便于用例编写人员查看。 附图说明 图1为一种基于NLP和RF框架的自动化测试用例生成方法实施例一的流程图; 图2为一种基于NLP和RF框架的自动化测试用例生成系统实施例一的结构框图; 7 CN 111581090 A 说 明 书 5/8 页 图3为一种基于NLP和RF框架的自动化测试用例生成方法实施例二的流程图。