一种单元测试自动执行方法及工具技术

技术编号:36772979 阅读:13 留言:0更新日期:2023-03-08 21:51
本发明专利技术属于软件测试领域,涉及一种单元测试自动执行方法及工具。该方法包括:依据测试人员输入的地址,寻找单元测试用例集Excel表格;输入被测函数的标识;在单元测试用例集Excel表格中读取被测函数的标识和相应测试用例的输入;根据被测函数名下各测试用例的输入,控制TestBed软件依次执行被测函数名下的单元测试用例;执行完毕后获取覆盖率分析报告。告。告。

【技术实现步骤摘要】
一种单元测试自动执行方法及工具


[0001]本专利技术属于软件测试领域,涉及一种单元测试自动执行方法及工具。

技术介绍

[0002]软件研制过程中,软件测试是不可或缺的重要环节,是软件质量保证的关键步骤。美国质量保证研究所对软件测试的研究结果表明:越早发现软件中存在的问题,开发费用就越低;在编码后修改软件缺陷的成本是编码前的10倍,在产品交付后修改软件缺陷的成本是交付前的10倍;软件质量越高,软件发布后的维护费用越低。测试过程中,越早发现问题,修正问题需要投入的人力物力越少。软件测试V模型中,单元测试在软件编码阶段就可以尽早介入,并随着开发过程持续迭代。
[0003]单元测试作为软件测试中不可或缺的一环,一段时间以来都耗费了测试人员较大的精力。针对军民机软件的测试需要满足结构覆盖率要求,即语句覆盖、分支覆盖和MC/DC覆盖率均为100%。
[0004]按照行业内基于单元测试的共识,大约每260行代码就需要1人/日的时间。如果按软件规模大约在5万行计算,仅单元测试的时间就需要192人/日的时间。对于研制流程较为固定的军民机而言,这几乎是不可能完成的工作,因此在工程实践中,测试人员一般会选取关键、重要函数作为单元测试的对象。
[0005]测试人员在执行单元测试时不仅需要阅读代码设计测试用例,还需要使用TestBed来执行测试用例,以拿到覆盖率报告。按照目前工程经验的估算,测试人员设计50个用例用时大约在1.5个小时左右,而使用TestBed执行50个用例的时间大约需要4.5个小时~6个小时(依据函数的复杂程度)。因此人工设计用例的时间大约占25%,而TestBed执行时间要占75%之多。

技术实现思路

[0006]本专利技术的目的:需要研发出能够打通单元测试用例集和TestBed的单元测试自动执行方法及工具,以达到能够自动完成测试用例的识别、执行工作,来解放测试人员的重复劳动的目的。最终能够产生这样的效果:即软件测试人员专注于测试用例的设计,而其余75%时间测试用例的执行工作由工具来完成。
[0007]本专利技术的技术方案:
[0008]一种单元测试自动执行方法,依托于单元测试自动执行工具,包括:
[0009]依据测试人员输入的地址,寻找单元测试用例集Excel表格;
[0010]输入被测函数的标识;
[0011]在单元测试用例集Excel表格中读取被测函数的标识和相应测试用例的输入;
[0012]根据被测函数名下各测试用例的输入,控制TestBed软件依次执行被测函数名下的单元测试用例;
[0013]执行完毕后获取覆盖率分析报告。
[0014]对于任一测试用例,根据被测函数名下各测试用例的输入,控制TestBed软件依次执行被测函数名下的单元测试用例,包括:
[0015]步骤1、提取该测试用例在表格中输入项的关键词,并进行词法分析和语法分析,获取测试用例所需变量名和变量值;
[0016]步骤2、在TestBed软件界面中通过图像识别技术识别出test case1位置,控制TestBed在test case1的基础上,创建新的test case;
[0017]步骤3、在新的test case中通过图像识别技术在右下角的变量窗口中创建新的变量,并依次输入变量名和变量值;
[0018]步骤4、待所有变量均输入完成,触发由生成点击F2键对应的用例执行指令,控制TestBed开始执行用例;
[0019]步骤5、在执行用例中通过图像识别技术识别弹窗,当识别出弹窗时,触发由生成点击Enter键对应的关闭窗口,使TestBed自动执行下一步操作,直到完成单个用例的执行;
[0020]步骤6、通过图像识别技术识别测试用例执行的最后阶段的鼠标状态,待鼠标状态从忙到其他状态,则自动执行下一测试用例,执行步骤1。
[0021]在被测函数被测试之前,所述方法还包括:
[0022]对单元测试用例集Excel表格中该被测函数名下所有测试用例进行格式检查;
[0023]检查结束后,若有问题,输出存在问题的测试用例,以及问题说明,以便于测试人员进行修改。
[0024]对于第i个测试用例,所述方法还包括:
[0025]若第i个测试用例的测试过程无法进行,接收用户输入的测试用例编号和断点续测标识的勾选操作;
[0026]根据被测函数名下第i个测试用例的输入,控制TestBed软件依次执行从第i个测试用例到最后一个测试用例的测试。
[0027]一种单元测试自动执行工具,其特征在于,包括:
[0028]查询模块,用于依据测试人员输入的地址,寻找单元测试用例集Excel表格;
[0029]输入模块,用于输入被测函数的标识;
[0030]读取模块,用于在单元测试用例集Excel表格中读取被测函数的标识和相应测试用例的输入;
[0031]控制模块,用于根据被测函数名下各测试用例的输入,控制TestBed软件依次执行被测函数名下的单元测试用例;
[0032]获取模块,用于执行完毕后获取覆盖率分析报告。
[0033]控制模块具体用于:
[0034]提取单元,用于提取该测试用例在表格中输入项的关键词,并进行词法分析和语法分析,获取测试用例所需变量名和变量值;
[0035]创建单元,用于在TestBed软件界面中通过图像识别技术识别出test case1位置,控制TestBed在test case1的基础上,创建新的test case;还用于在新的test case中通过图像识别技术在右下角的变量窗口中创建新的变量,并依次输入变量名和变量值;
[0036]控制单元,用于待所有变量均输入完成,触发由生成点击F2键对应的用例执行指令,控制TestBed开始执行用例;
[0037]关闭单元,用于在执行用例中通过图像识别技术识别弹窗,当识别出弹窗时,触发由生成点击Enter键对应的关闭窗口,使TestBed自动执行下一步操作,直到完成单个用例的执行;
[0038]跳转单元,还用于通过图像识别技术识别测试用例执行的最后阶段的鼠标状态,待鼠标状态从忙到其他状态,则自动执行下一测试用例。
[0039]本专利技术的有益效果:推进型号研制进度,实现测试人员只需关注单元测试用例的设计,而无需关心测试工具的使用,由于测试用例的执行无需人工介入,因此可以测试用例之间无缝衔接,提升测试执行效率。
[0040]在某多功能显示器显示软件的单元测试活动中,平均每个函数的代码行数为255行,平均用例个数为37个。使用本工具完成单元测试的执行工作,每完成一个函数的测试工作,约节省0.74人
·
日。
[0041]熟练使用之后,能够实现测试人员将全部测试用例设计完成后,用例的执行全部由工具完成,测试人员仅需偶尔对测试计算机进行维护即可。能够将人员从重复的执行工作中解脱出来,继续完成智力活动。
附图说明
[0042本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种单元测试自动执行方法,依托于单元测试自动执行工具,其特征在于,包括:依据测试人员输入的地址,寻找单元测试用例集Excel表格;输入被测函数的标识;在单元测试用例集Excel表格中读取被测函数的标识和相应测试用例的输入;根据被测函数名下各测试用例的输入,控制TestBed软件依次执行被测函数名下的单元测试用例;执行完毕后获取覆盖率分析报告。2.根据权利要求1所述的方法,其特征在于,对于任一测试用例,根据被测函数名下各测试用例的输入,控制TestBed软件依次执行被测函数名下的单元测试用例,包括:步骤1、提取该测试用例在表格中输入项的关键词,并进行词法分析和语法分析,获取测试用例所需变量名和变量值;步骤2、在TestBed软件界面中通过图像识别技术识别出test case1位置,控制TestBed在test case1的基础上,创建新的test case;步骤3、在新的test case中通过图像识别技术在右下角的变量窗口中创建新的变量,并依次输入变量名和变量值;步骤4、待所有变量均输入完成,触发由生成点击F2键对应的用例执行指令,控制TestBed开始执行用例;步骤5、在执行用例中通过图像识别技术识别弹窗,当识别出弹窗时,触发由生成点击Enter键对应的关闭窗口,使TestBed自动执行下一步操作,直到完成单个用例的执行;步骤6、通过图像识别技术识别测试用例执行的最后阶段的鼠标状态,待鼠标状态从忙到其他状态,则自动执行下一测试用例,执行步骤1。3.根据权利要求1所述的方法,其特征在于,测试用例的格式为:测试类型、测试用例标识、测试用例输入变量类型、测试用例输入变量值。4.根据权利要求1所述的方法,其特征在于,在被测函数被测试之前,所述方法还包括:对单元测试用例集Excel表格中该被测函数名下所有测试用例进行格式检查;检查结束后,若有问题,输出存在问题的测试用例,以及问题说明,以便于测试人员进行修改。5.根据权利要求2所述的方法,其特征...

【专利技术属性】
技术研发人员:朱文钊
申请(专利权)人:中国直升机设计研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1