一种用于软件单元的自动化验证及回归测试方法转让专利

申请号 : CN201510530834.8

文献号 : CN105117335B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 顾文华宋赢硕张立鹏王晓琼王卉

申请人 : 卡斯柯信号有限公司

摘要 :

本发明涉及一种用于软件单元的自动化验证及回归测试方法,包括以下步骤:1)用例设计过程,用于构建测试用例集;2)用例执行过程,利用构建的测试用例集,自动对软件单元进行测试。与现有技术相比,本发明具有充分利用软硬件资源、提高工作效率等优点。

权利要求 :

1.一种用于软件单元的自动化验证及回归测试方法,其特征在于,包括以下步骤:

1)用例设计过程,用于构建测试用例集;

2)用例执行过程,利用构建的测试用例集,自动对软件单元进行测试;

所述的用例设计过程具体为:

以详细设计文档,测试源代码以及上一轮的测试用例集为输入,通过关键字检索比较来验证详细设计文档和测试用例,并利用自动化回归的工具确认测试用例是否符合源代码设计,以此检查测试用例设计是否合理以及源代码设计是否与详细设计文档一致。

2.根据权利要求1所述的一种用于软件单元的自动化验证及回归测试方法,其特征在于,所述的检查测试用例设计是否合理以及源代码设计是否与详细设计文档一致具体为:形参边界测试是否完整;

全局变量输出是否检查;

源代码形参有效范围是否与详细设计文档一致。

3.根据权利要求1或2所述的一种用于软件单元的自动化验证及回归测试方法,其特征在于,若测试用例不满足设计时,进行重新设计测试用例,直至测试一致性验证通过后,构成最终的测试用例集。

4.根据权利要求1所述的一种用于软件单元的自动化验证及回归测试方法,其特征在于,所述的用例执行过程具体为:首先,通过Python脚本,遍历进行单元测试的测试用例文件所在的各目录,根据测试用例文件名,生成与测试用例一一对应的映射信息文件;

然后,根据生成的测试用例的映射信息及待测源文件目录,通过Python脚本输出测试文件;

最后,执行测试文件,对被测试对象进行单元测试,输出测试结果。

5.根据权利要求1所述的一种用于软件单元的自动化验证及回归测试方法,其特征在于,若用例执行失败或者覆盖率未达到规定的要求,分析测试结果,反馈给测试人员或开发人员进行修改。

说明书 :

一种用于软件单元的自动化验证及回归测试方法

技术领域

[0001] 本发明涉及一种软件单元测试技术,尤其是涉及一种用于软件单元的自动化验证及回归测试方法。

背景技术

[0002] 软件单元测试是对最小可测试的单元进行检查和验证的过程,在整个软件测试过程中占有很大的工作量比重,并且单元回归测试活动充盈着每轮软件迭代开发过程,是软件开发生命周期中的一个重要组成部分。目前,市场上已有很多单元测试工具,例如,支持C/C++语言的C++Test,Visual Unit,TestBed等等;支持Java语言的JUnit等。借助这些工具,虽然不再需要编写大量的桩函数和驱动函数,使得单元测试的过程得到了较大程度的简化,但这也只是一个个测试用例的单独执行,仅能被称为半自动化测试,仍会极大地影响回归测试的效率,甚至不能满足夜间自动执行的特殊要求。此外,不同测试人员所使用环境的差异,也会降低脚本的可维护性。

发明内容

[0003] 本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种用于软件单元的自动化验证及回归测试方法,旨在克服现有技术自动化程度低,回归测试效率低的问题和缺陷,实现方便地支持自动化回归测试。
[0004] 本发明的目的可以通过以下技术方案来实现:
[0005] 一种用于软件单元的自动化验证及回归测试方法,其特征在于,包括以下步骤:
[0006] 1)用例设计过程,用于构建测试用例集;
[0007] 2)用例执行过程,利用构建的测试用例集,自动对软件单元进行测试。
[0008] 所述的步骤1)用例设计过程具体为:
[0009] 以详细设计文档,测试源代码以及上一轮的测试用例集为输入,通过关键字检索比较来验证详细设计文档和测试用例,并利用自动化回归的工具确认测试用例是否符合源代码设计,以此检查测试用例设计是否合理以及源代码设计是否与详细设计文档一致。
[0010] 所述的检查测试用例设计是否合理以及源代码设计是否与详细设计文档一致具体为:
[0011] 形参边界测试是否完整;
[0012] 全局变量输出是否检查;
[0013] 源代码形参有效范围是否与详细设计文档一致。
[0014] 若测试用例不满足设计时,进行重新设计测试用例,直至测试一致性验证通过后,构成最终的测试用例集。
[0015] 所述的用例执行过程具体为:
[0016] 首先,通过Python脚本,遍历进行单元测试的测试用例文件所在的各目录,根据测试用例文件名,生成与测试用例一一对用的映射信息文件;
[0017] 然后,根据生成的测试用例的映射信息及待测源文件目录,通过Python脚本输出测试文件;
[0018] 最后,执行测试文件,对被测试对象进行单元测试,输出测试结果。
[0019] 若用例执行失败或者覆盖率未达到规定的要求,分析测试结果,反馈给测试人员或开发人员进行修改。
[0020] 与现有技术相比,本发明具有以下优点:
[0021] 1)充分利用软硬件资源,提高工作效率;
[0022] 用自动化测试工具取代机械性的人工回归测试工作,不仅可充分利用硬件资源,满足单元回归测试工作可在夜间自动执行的要求,还使得员工可高效利用工作时间,提高软件产品质量。
[0023] 此外,无论产品迭代开发中,代码更改率多少,自动化回归测试均可一键式完成,确认产品代码的正确性之余,还大大提高了工作效率。
[0024] 2)保证测试环境的稳定性,增强测试脚本的可维护性;
[0025] 在同一机器上自动测试,保证各测试用例使用相同的测试环境,从而提高了脚本的可维护性,使其不依赖测试环境。
[0026] 3)保证测试用例的完善性,以及详细设计与代码的一致性;
[0027] 详细设计文档,测试源代码以及测试用例集一致性验证方法在单元回归测试中可一键式发现修改的代码和测试用例,详细设计之间的不一致,还可以省去比对代码的工作。
[0028] 4)降低产品测试、维护成本;
[0029] 在渐进或者快速迭代开发中,新版本的连续发布使得回归测试进行的异常频繁,自动化测试可更加有效且有力的完成单元回归测试,降低产品的测试和维护成本附图说明
[0030] 图1为本发明的具体流程图;
[0031] 图2为本发明用例执行过程的流程图;
[0032] 图3为本发明实现自动化回归测试的装置的结构示意图。

具体实施方式

[0033] 下面结合附图和具体实施例对本发明进行详细说明。
[0034] 实施例
[0035] 如图1为本方法的流程图,由用例设计和用例执行两个阶段组成,具体说明如下:
[0036] 一、用例设计阶段:
[0037] 以详细设计文档,测试源代码以及上一轮的测试用例集为输入,通过关键字检索比较来验证详细设计文档和测试用例,并利用自动化回归的工具确认测试用例是否符合源代码设计,以此可检查测试用例设计是否合理以及源代码设计是否与详细设计文档一致,如:形参边界测试是否完整,全局变量输出是否检查,源代码形参有效范围是否与详细设计文档一致等等。以上如有发现缺陷,根据需要分别反馈给测试人员或开发人员,而后测试人员根据开发人员修改后的详细设计文档和测试源代码,重新设计测试用例,修改直至测试一致性验证通过后,构成最终的测试用例集。
[0038] 二、用例执行阶段:
[0039] 利用上述测试用例集,自动执行测试脚本,输出测试结果。如有用例执行失败或者覆盖率未达到规定的要求,分析测试结果,反馈给测试人员或开发人员进行修改。其中,自动化回归的方法如图2中所示:
[0040] 首先,通过Python脚本,遍历进行单元测试的测试用例文件所在的各目录,根据测试用例文件名,生成与测试用例一一对用的映射信息文件;然后,根据生成的测试用例的映射信息及待测源文件目录,通过Python脚本输出测试文件;最后,执行测试文件,对被测试对象进行单元测试,输出测试结果。
[0041] 图3为本方法实现自动化回归测试的装置的结构图,包括:
[0042] 遍历单元:用于遍历进行单元测试的测试用例文件的各目录,根据测试用例文件名,生成与测试用例一一对应的映射信息文件。
[0043] 生成测试文件单元:根据生成的测试用例的映射信息,输出测试文件[0044] 测试执行单元:根据测试文件,对被测对象进行单元测试,输出测试结果。
[0045] 该方法已经被应用于卡斯柯信号有限公司TSP轨旁安全平台产品,ECID计算机联锁驱动子系统,iTS智能列车监控系统等项目软件迭代开发过程的单元回归测试中。
[0046] 从软件迭代开发过程看,使用该发明后,单元回归测试的效率得到了很大的提高,节约了迭代开发的时间。从测试使用的角度看,不再需要机械的人工回归测试,测试人员正真将精力花在提高软件产品质量本身。