利索能及
我要发布
收藏
专利号: 2019108459653
申请人: 武汉安辰鑫信息科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-05-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种测试中的断言处理方法,其特征在于,所述方法包括:

获取测试框架,在所述测试框架中设置至少两个断言,所述至少两个断言包括至少一个静态断言和至少一个动态断言,所述测试框架为基于类的单元测试;

将至少一个静态断言和至少一个动态断言划分到一个测试类,在每个测试类中,存在至少一条静态断言成功的描述信息;

所述测试类包括:所有测试框架测试类的超类、对要运行的测试进行分组的类、制定单个测试方法、用于在测试框架中运行测试的类以及运行测试套件的结果;

将每个测试类中的断言的使用方式设置为一致,并将多个测试类封装至待测试的应用中,所述使用方式包括:被调用次数、断言某方法被调用过、测试通过用例和测试失败用例;

在编译所述应用或运行所述应用时,执行所述测试框架;

在执行所述测试框架过程中,分别调用所述测试类中的静态断言或动态断言对所述应用进行验证,并监听各测试类中的断言的验证状态信息;

当监听到验证状态信息为非退出断言状态时,不中断测试脚本的运行,直到生成所有验证结果;其中,所述非退出断言是指对测试用例中的测试参数使用断言时,退出程序不是因所述测试参数异常而退出程序;

当监听到所述测试类中的静态断言失败时,生成第一断言信息;当监听到所述测试类中的动态断言失败时,生成第二断言信息;

执行完所述测试框架后,生成测试报告,并将所述第一断言信息和所述第二断言信息统计到所述测试报告中,所述第一断言信息是指每条断言成功的静态断言的描述信息;所述第一断言信息包括出错信息,所述出错信息包括错误类型和错误位置,所述第二断言信息包括诊断信息和运行逻辑的异常断言点,所述测试报告包括测试类中每条断言成功的静态断言的断言信息、以及每条断言成功的动态断言的断言信息。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

生成多个测试用例,所述测试用例是指将软件测试的行为转化成可管理的模式的一组条件或变量,所述测试用例用于确定应用软件或软件系统是否正确工作;

分别将每个测试用例覆盖部分或全部未被覆盖过的测试类,直至所有测试类均被测试用例覆盖。

3.根据权利要求1或2所述的方法,其特征在于,所述监听各测试类中的断言的验证状态信息,包括:在断言的各测试类中分别引入hook程序;

通过所述hook程序监听各测试类中变量或条件,以监听测试流程中的断言状态;

当所述hook程序监听到测试类中的变量或条件变化时,获取变量或条件发生变化的所述验证状态信息。

4.根据权利要求3所述的方法,其特征在于,所述执行所述测试框架之前,所述方法还包括:生成配置文件,所述配置文件指示自动化测试运行的测试环境以及需要进行的测试场景映射关系;所述配置文件包括断言的起始位置、执行的断言操作和执行断言操作得到的期望值,所述断言的起始位置用于判定断言操作在所述应用的文件的起始执行位置,所述期望值用于判定测试执行结果是否符合测试的要求;

解析所述配置文件中的测试场景,获取各测试场景中各测试案例的测试规则、规则参数、测试数据、数据嵌入点、规则校验点及预期结果;其中,所述测试规则是根据参数化规则编制以用于多个测试场景或多个测试案例;

以测试数据为驱动,判断数据嵌入点是否符合测试数据所定义的注入时点,若符合,则将测试数据注入测试对象;

判断规则校验点是否符合测试案例所定义的测试结果校验时点,若符合,则将测试案例的规则参数与测试规则拼装,并获取测试案例的具体规则内容,在已注入测试数据的测试对象中执行具体规则内容,得到实际运行结果;

分别针对各测试案例的实际运行结果和预期结果进行比较,生成校验结果。

5.根据权利要求4所述的方法,其特征在于,所述执行所述测试框架之后,所述生成第一断言信息之前,所述方法还包括:运行目标单元测试,并得到与所述目标单元测试分别对应的测试结果,所述测试 结果中包含测试成功结果以及测试失败结果;

在所有测试结果中,统计为所述测试失败结果的目标单元测试的失败总数量;

在所述目标单元测试中查找与目标源代码语句相关联的多个目标单元测试,作为多个关联目标单元测试;

在所有关联目标单元测试分别对应的测试结果中,统计为所述测试失败结果的关联目标单元测试的失败测试数目,并统计为所述测试成功结果的关联目标单元测试的成功测试数目;

根据预设的可疑度函数、所述失败总数量、所述失败测试数目以及所述成功测试数目,计算与所述目标单元测试相关联的所述目标源代码语句的出错率。

6.一种用于处理测试中断言的装置,其特征在于,所述装置包括:

输入输出模块,用于获取测试框架,在所述测试框架中设置至少两个断言,所述至少两个断言包括至少一个静态断言和至少一个动态断言,所述测试框架为基于类的单元测试;

处理模块,用于将至少一个静态断言和至少一个动态断言划分到一个测试类,在每个测试类中,存在至少一条静态断言成功的描述信息;

所述测试类包括:所有测试框架测试类的超类、对要运行的测试进行分组的类、制定单个测试方法、用于在测试框架中运行测试的类以及运行测试套件的结果;

所述处理模块还用于将每个测试类中的断言的使用方式设置为一致,并将多个测试类封装至待测试的应用中,所述使用方式包括:被调用次数、断言某方法被调用过、测试通过用例和测试失败用例;在编译所述应用或运行所述应用时,执行所述测试框架,在执行所述测试框架过程中,分别调用所述测试类中的静态断言或动态断言对所述应用进行验证;

监听模块,用于监听各测试类中的断言的验证状态信息;

所述处理模块还用于当监听到验证状态信息为非退出断言状态时,不中断测试脚本的运行,直到生成所有验证结果;其中,所述非退出断言是指对测试用例中的测试参数使用断言时,退出程序不是因所述测试参数异常而退出程序;当所述监听模块监听到所述测试类中的静态断言失败时,生成第一断言信息;当所述监听模块监听到所述测试类中的动态断言失败时,生成第二断言信息;执行完所述测试框架后,生成测试报告,并将所述第一断言信息和所述第二断言信息统计到所述测试报告中,所述第一断言信息是指每条断言成功的静态断言的描述信息;所述第一断言信息包括出错信息,所述出错信息包括错误类型和错误位置,所述第二断言信息包括诊断信息和运行逻辑的异常断言点,所述测试报告包括测试类中每条断言成功的静态断言的断言信息、以及每条断言成功的动态断言的断言信息。

7.一种计算机设备,其特征在于,所述计算机设备包括:

至少一个处理器、存储器、监控器和输入输出单元;

其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中存储的程序代码来执行如权利要求1‑5中任一项所述的方法。

8.一种计算机存储介质,其特征在于,其包括指令,当其在计算机上运行时,使得计算机执行如权利要求1‑5中任一项所述的方法。