生成最小测试范围的方法及装置与流程

文档序号:18703992发布日期:2019-09-17 23:22阅读:180来源:国知局
生成最小测试范围的方法及装置与流程
本发明涉及软件自动化测试领域,尤其是一种生成最小测试范围的方法、装置、测试系统、设备和存储介质。
背景技术
:软件开发过程中会出现多个软件版本进行迭代,当对旧代码进行修改后,就需要重新进行代码测试以确认修改没有引入新的错误或导致其他代码产生错误,回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试,在渐进开发和快速迭代开发过程中,新版本的连续发布使回归测试需求更加频繁。但是在软件产品迭代过程中,如果进行全量回归测试,则会花费大量的无效测试时间,而让开发人员根据对旧代码的修改来确定测试范围,其确定的测试范围通常不准确,容易造成漏测或多测,漏测导致线上阶段出现bug,多测则浪费人力和时间资源,因此需要提出一种根据代码修改范围确定最小测试范围的方法。技术实现要素:本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的目的是提供一种根据代码修改范围确定最小测试范围的方法和相关装置。本发明实施例所采用的技术方案是:第一方面,本发明提供一种生成最小测试范围的方法,包括步骤:对比待测代码文件与代码库中代码文件的差异,生成新旧代码差异文件,所述代码库包括代码文件和对应的不同测试层次的测试用例;根据所述新旧代码差异文件的内容确定最小测试范围,所述最小测试范围指对待测代码文件进行测试所需的最少测试用例集。进一步地,所述新旧代码差异文件的内容包括:被修改的代码文件名和/或被修改的代码内容。进一步地,所述根据所述新旧代码差异文件的内容确定最小测试范围,具体为:根据所述新旧代码差异文件的内容,得到被修改的代码文件子集,其中,代码文件子集为代码文件不同测试层次对应的代码部分;根据所述代码文件子集得到对应的测试用例代码文件子集,构成所述最小测试范围。进一步地,还包括对所述最少测试用例集中测试用例进行预编译。进一步地,当所述待测代码文件在代码库中没有对应的测试用例时,对所述待测代码文件进行手动测试,并将用到的测试用例更新至所述代码库中。第二方面,本发明还提供一种生成最小测试范围的装置,包括:代码差异比对模块,用于对比待测代码文件与代码库中代码文件的差异,生成新旧代码差异文件,所述代码库包括代码文件和对应的测试用例;生成测试范围模块,用于根据所述新旧代码差异文件的内容确定最小测试范围,所述最小测试范围指对待测代码文件进行测试所需的最少测试用例集。第三方面,一种生成最小测试范围的测试系统,适用于如第一方面任一项所述的一种生成最小测试范围的方法,包括:监控中心、测试调度中心和执行中心;所述监控中心:用于监控代码库中代码状态,当代码状态发生变化,则生成新旧代码差异文件;所述测试调度中心:用于根据所述新旧代码差异文件生成测试所需的最小测试范围,并对所述测试用例进行预编译;所述执行中心:用于根据预编译后的代码和所述最小测试用例集完成测试。进一步地,所述测试调度中心包括:代码库,用于存储代码文件和对应的不同测试层次的测试用例文件;计算中心,用于根据所述新旧代码差异文件计算最小测试用例集并对所述最小测试用例集进行分配。第四方面,本发明还提供一种生成最小测试范围的设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述处理器通过调用所述存储器中存储的计算机程序,用于执行如第一方面任一项所述的方法。第五方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面任一项所述的方法。本发明的有益效果是:本发明实施例通过对比待测代码文件与代码库中代码文件的差异,生成新旧代码差异文件,然后根据新旧代码差异文件的内容确定最小测试范围,其中最小测试范围指对待测代码文件进行测试所需的最小测试用例集,根据生成的最小测试用例集进行回归测试,能够精确地划分测试范围,避免多测的情况,减少人力资源浪费,缩短测试时间,提升测试效率,显著提高了软件迭代速度,更快发布新功能,另外对开发人员来说,通过监控代码的修改范围,可以判断是否减少不必要的代码修改,对测试人员来说,量化了测试工作内容,工作成效更清晰明了,便于进行测试工组管理。附图说明图1是本发明中生成最小测试范围的方法的一具体实施例的实现流程图;图2是本发明中生成最小测试范围的装置的一具体实施例的结构框图;图3是本发明中生成最小测试范围的系统的一具体实施例的示意图。具体实施方式为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的
技术领域
的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。实施例一。本发明通过对比待测代码文件与代码库中代码文件的差异,生成新旧代码差异文件,然后根据新旧代码差异文件的内容确定最小测试范围,实施例一提供一种生成最小测试范围的方法。图1为本发明实施例提供的一种生成最小测试范围的方法的实现流程图,如图1所示,该方法可以包括以下步骤:s1:生成新旧代码差异文件,具体是对比待测代码文件与代码库中代码文件的差异,生成新旧代码差异文件,其中代码库包括代码文件和对应的不同测试层次的测试用例,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果的测试代码,用于判断代码文件是否实现了特定的需求。s2:根据新旧代码差异文件的内容确定最小测试范围,本实施例中最小测试范围指对待测代码文件进行测试所需的最少测试用例集。根据修改后的代码差异生成的新旧代码差异文件的内容包括:被修改的代码文件名、被修改的代码内容等。如下表1所示,为本实施例中代码文件属性表的一个具体示例,可见代码库中代码文件的属性包括:代码文件名、代码所属目录、代码文件大小、代码修改时间、自定义信息等,以m1,m2...mn来表示。代码文件名代码所属目录代码文件大小代码修改时间自定义信息mainactivity.java目录指针5kb2018.12.31………………表1代码文件属性表的具体示例如下表2所示,为本实施例中将代码文件按照测试层次划分的一个具体示例表,划分测试层次包括界面显示、ui逻辑和顶层代码插桩等,以t1,t2...tn来表示,选取代码文件m1,m2...mm,其中m1为百宝箱实现代码,m2为app认证实现代码,m3皮肤切换实现代码等,例如将代码文件中m1的t1部分记为m1-1,将代码文件中m1的t2部分记为m1-2等,以此类推,得到每个代码文件不同测试层次的代码标识,其中,n为划分的测试层次数量,m为代码文件数量。代码文件t1(界面显示)t2(ui逻辑)t3(顶层代码插桩)…m1(百宝箱)m1-1m1-2m1-3…m2(app认证)m2-1m2-2m2-3m3(皮肤切换)m3-1m3-2m3-3……………表2代码文件按照测试层次划分的具体示例表如表3所示,为本实施例中代码文件对应测试用例的具体示例表,可见每个代码文件的每个测试层次都有对应的测试用例代码,如果测试用例代码不存在,则内容为空,对应表2,将代码文件中m1的t1部分的测试用例代码记为tc1-1,将代码文件中m1的t2部分的测试用例代码记为tc1-2等,以此类推,得到每个代码文件不同测试层次的测试用例代码对应的测试用例代码标识。代码文件t1(界面显示)t2(ui逻辑)t3(顶层代码插桩)…m1(百宝箱)tc1-1tc1-2tc1-3…m2(app认证)tc2-1tc2-2tc2-3m3(皮肤切换)tc3-1tc3-2tc3-3……………表3代码文件对应测试用例的具体示例表下面以上述表2和表3为例说明本实施例的一种生成最小测试范围的方法的具体实现过程,包括步骤如下:1)通过代码比对工具获得新旧代码差异文件,记为diff文件,在包括所有代码文件的代码库中查找被修改的代码文件,根据diff文件,从被修改的代码文件m1,m2...mm中查找其被修改的代码文件子集(每个代码文件不同测试层次部分),记为m1-x,m2-x...mm-x等,其中,代码文件子集为代码文件不同测试层次对应的代码部分。2)根据得到的代码文件子集m1-x,m2-x...mm-x,查找对应的测试用例代码文件,即从测试用例代码文件中:tc1-1,tc1-2,…,tc1-n,tc2-1,tc2-2…tc2-n,tcn-1,tcn-2…tcm-n,查找其有修改的代码文件对应的测试用例集。3)根据得到的测试用例代码文件子集,选择最底层代码进行测试,得出测试用例代码文件子集表示为:tc1-xutc2-xu……utcm-x等。另外,当待测代码文件在代码库中没有对应的测试用例时,对待测代码文件进行手动测试,并将设计的测试用例代码更新至代码库中,例如更新表3的内容。4)获得测试范围,即最小测试用例集后,对用到的测试用例进行预编译。本实施例详细描述了一种生成最小测试范围的方法,下面通过实施例二描述本发明的一种生成最小测试范围的装置。实施例二:如图2所示,为本实施例的一种生成最小测试范围的装置结构框图,图中可见包括两个模块,分别是:代码差异比对模块10,用于对比待测代码文件与代码库中代码文件的差异,生成新旧代码差异文件,其中,代码库包括代码文件和对应的测试用例。生成测试范围模块20,用于根据新旧代码差异文件的内容确定最小测试范围,本实施例中,最小测试范围指对待测代码文件进行测试所需的最少测试用例集。通过本实施例的一种生成最小测试范围的装置能够实现根据代码修改范围,来确定最小测试范围的过程。下面通过实施例三描述本发明的一种生成最小测试范围的测试系统。实施例三:如图3所示,为本实施例的一种生成最小测试范围的测试系统示意图,本实施例适用于如实施例一的一种生成最小测试范围的方法,从图中可以得出,包括以下几个部分:监控中心30:用于随时监控代码库中代码状态,当代码状态发生变化,即代码文件有修改,则生成新旧代码差异文件(diff文件),并将新旧代码差异文件发送至测试调度中心31,具体的监控过程如下:监控中心30本地存储一份代码文件,每天将本地存储的代码文件与代码库中的最新代码文件进行比对,一旦发现本地代码文件与代码库中代码存在差异,则生成新旧代码差异文件(diff文件),并将其发往测试调度中心31。测试调度中心31:用于根据新旧代码差异文件提示的代码改动范围,生成测试所需的最小测试范围,并完成测试用例预编码,将预编译后的代码和最小测试范围对应的最小测试用例集送至执行中心。测试调度中心包括代码库311和计算中心312,具体的:代码库311用于存储代码文件和对应的不同测试层次的测试用例文件。计算中心312,用于根据新旧代码差异文件计算最小测试用例集并对最小测试用例集进行分配。执行中心32:用于根据预编译后的代码和最小测试用例集完成测试。另外,本发明还提供一种生成最小测试范围的设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述处理器通过调用所述存储器中存储的计算机程序,用于执行如实施例一所述的方法。另外,本发明还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,其中计算机可执行指令用于使计算机执行如实施例一所述的方法。本发明通过对比待测代码文件与代码库中代码文件的差异,生成新旧代码差异文件,然后根据新旧代码差异文件的内容确定最小测试范围,其中最小测试范围指对待测代码文件进行测试所需的最小测试用例集,根据生成的最小测试用例集进行回归测试,能够精确地划分测试范围,避免多测的情况,减少人力资源浪费,缩短测试时间,提升测试效率,显著提高了软件迭代速度,更快发布新功能,另外对开发人员来说,通过监控代码的修改范围,可以判断是否减少不必要的代码修改,对测试人员来说,量化了测试工作内容,工作成效更清晰明了,便于进行测试工组管理。以上各实施例仅用以说明本发明的技术方案,而非对其限制,尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1