CN109144845A - 一种基于缺陷收敛性的自动化测试方法 - Google Patents

一种基于缺陷收敛性的自动化测试方法 Download PDF

Info

Publication number
CN109144845A
CN109144845A CN201710508375.2A CN201710508375A CN109144845A CN 109144845 A CN109144845 A CN 109144845A CN 201710508375 A CN201710508375 A CN 201710508375A CN 109144845 A CN109144845 A CN 109144845A
Authority
CN
China
Prior art keywords
test
defect
convergence
script
constringent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710508375.2A
Other languages
English (en)
Inventor
汪彩云
朱凌燕
陈浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Petroleum and Chemical Corp
Sinopec Geophysical Research Institute
Original Assignee
China Petroleum and Chemical Corp
Sinopec Geophysical Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Petroleum and Chemical Corp, Sinopec Geophysical Research Institute filed Critical China Petroleum and Chemical Corp
Priority to CN201710508375.2A priority Critical patent/CN109144845A/zh
Publication of CN109144845A publication Critical patent/CN109144845A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Abstract

公开了一种基于缺陷收敛性的自动化测试方法。该方法包括以下步骤:1)确定测试范围,在所述测试范围内基于测试单元生成脚本;2)确定各个脚本之间的依赖关系;3)执行主脚本以对各个脚本进行调用,生成运行结果;4)判断运行结果中的缺陷收敛性;5)基于步骤4)所确定的缺陷收敛性确定下一轮回归测试范围。本发明通过编写和录制自动化测试脚本,在对测试出来的缺陷进行修改后进行脚本的自动执行回放,实现回归测试的自动化;通过分析缺陷的影响范围和收敛性,确定回归测试范围和用例的执行范围,减少回归测试规模,从而提高测试效率并缩短测试周期。

Description

一种基于缺陷收敛性的自动化测试方法
技术领域
本发明涉及软件测试领域,具体而言,涉及一种基于缺陷收敛性的自动化测试方法。
背景技术
随着软件质量的要求提高,软件研发周期对研发费用的影响,软件测试的工作越来越重要。如何提升软件测试效率和质量,是测试人员一直在研究的问题。
自动化测试是通过测试工具和其他手段,按照测试工程师的预定计划对软件产品进行自动的测试,它能够完成人工无法完成或者难以实现的测试工作,更好地利用资源,将繁琐的任务赋予自动化方式,提高准确性和测试人员的积极性,从而提高软件质量、节省经费,缩短产品发布周期。
传统的软件项目测试还是以人工为主,大量的人工操作增加了项目人力成本和沟通成本,效率低且差错率高。随着软件业的不断发展及软件规模的扩大,客户对软件的质量要求越来越高,针对企业的网络应用环境需要支持大量用户和复杂的软硬件应用环境,测试的工作量也越来越大,因此,有必要对自动化测试进行研究和开发。
公开于本发明背景技术部分的信息仅仅旨在加深对本发明的一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
发明内容
本发明的目的在于解决上述现有技术中存在的难题,提出了一种基于缺陷(BUG)收敛性的自动化测试方法,能够克服人工测试方法的缺点和不足。
本发明通过编写和录制自动化测试脚本,在对测试出来的缺陷进行修改后进行脚本的自动执行回放,实现回归测试的自动化;通过分析缺陷的影响范围和收敛性,确定回归测试范围和用例的执行范围,减少回归测试规模,从而提高测试效率并缩短测试周期。
本发明的基于缺陷收敛性的自动化测试方法包括以下步骤:
1)确定测试范围,在所述测试范围内基于测试单元生成脚本;
2)确定各个脚本之间的依赖关系;
3)执行主脚本以对各个脚本进行调用,生成运行结果;
4)判断运行结果中的缺陷收敛性;
5)基于步骤4)所确定的缺陷收敛性确定下一轮回归测试范围。
优选地,所述测试单元为测试范围内的业务功能或者业务流程。
优选地,基于生成脚本的测试单元的业务功能之间的关系或者基于业务流程本身以及业务流程之间的关系来确定各个脚本之间的依赖关系。
优选地,步骤4)中分析运行结果中的缺陷收敛性包括:
确定在一个测试周期内累计发现的缺陷数量曲线和累计解决的缺陷数量曲线,累计解决的缺陷数量曲线与累计发现的缺陷数量曲线的接近程度表明缺陷收敛性。
优选地,在步骤5)中,当存在收敛性低于收敛性要求的缺陷时,执行以下子步骤:
5.1)确定与缺陷相关联的测试单元;
5.2)确定与步骤5.1)中所确定的测试单元相关联的其他测试单元;
5.3)剔除其余无关的测试单元,将所有相关的测试单元作为下一轮回归测试范围。
优选地,子步骤5.1)确定与缺陷相关联的测试单元包括:
定义关键字段,将运行结果中的缺陷与所述关键字段相关联,基于所述关键字检索出与测试单元相关的所有缺陷,或者与缺陷相关的所有测试单元。
步骤5)基于缺陷收敛性确定回归测试范围还包括:
当所有缺陷的收敛性都满足收敛性要求,则结束测试。
本发明的基于缺陷收敛性的自动化测试方法的有益效果在于:
(1)能够减少人工干预,实现回归测试自动化,减少软件测试的的人力与费用开销;
(2)通过分析缺陷所属的测试单元及缺陷收敛性确定下一轮回归的范围和执行用例范围,可以减少不必要的回归,缩短测试周期,节约测试成本。
本发明的方法和装置具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施例中将是显而易见的,或者将在并入本文中的附图和随后的具体实施例中进行详细陈述,这些附图和具体实施例共同用于解释本发明的特定原理。
附图说明
通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施例中,相同的参考标号通常代表相同部件。
图1为根据本发明的示例性实施方案的基于缺陷收敛性的自动化测试方法的流程图;
图2为测试主脚本的示例图;
图3为测试单元1的脚本示例图;
图4a为业务流程1的示例图,图4b为业务流程2的示例图;
图5为脚本运行结果纪录;
图6为一个测试周期内的部分缺陷记录;
图7为示例性缺陷收敛图;
图8为示例性回归测试范围;
图9为示例性回归测试结果。
具体实施方式
下面将参照附图更详细地描述本发明。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
以下参考图1详细描述根据本发明示例性实施例的基于缺陷收敛性的自动化测试方法的流程图。
该方法可以包括以下:
步骤1:确定测试范围,在所述测试范围内基于测试单元生成脚本。
首先确定测试范围,在这个范围内可以将一个业务功能定义为一个测试单元,也可以将一个业务流程定义为一个测试单元。
如果功能和流程比较复杂,也可以进行进一步的划分。
步骤2:确定各个脚本之间的依赖关系。
一个测试单元生成一个测试脚本,而测试单元由业务功能或者业务流程定义,因而基于各个测试单元的业务功能之间的关系或者基于业务流程本身以及业务流程之间的关系则可以确定各个脚本之间的依赖关系。
步骤3:执行主脚本以对各个脚本进行调用,生成运行结果。
主脚本负责对各个测试单元的脚本进行调用执行,执行主脚本来实现对各个脚本的调用,并生成运行结果。
步骤4:分析运行结果中的缺陷收敛性。
确定在一个测试周期内累计发现的缺陷数量曲线和累计解决的缺陷数量曲线,当累计解决的缺陷数量曲线越来越接近于累计发现的缺陷数量曲线,说明缺陷收敛情况比较好。
步骤5:基于缺陷收敛性确定下一轮回归测试范围。
回归测试的目的是验证问题是否解决,以及该问题的解决是否导致其他代码出现问题。
当存在收敛性低于收敛性要求的缺陷时,可以通过以下子步骤确定下一轮回归测试范围:
子步骤5.1:确定与缺陷相关联的测试单元;
子步骤5.2:确定与步骤5.1中所确定的测试单元相关联的其他测试单元;
子步骤5.2:剔除其余无关的测试单元,将所有相关的测试单元作为下一轮回归测试范围。
根据运行结果来定位缺陷,可以确定缺陷存在于哪个脚本。通过定义关键字段,将运行结果中的缺陷与所述关键字段相关联,即可以检索出与测试单元相关的所有缺陷,或者与缺陷相关的所有测试单元。
同时,可以将缺陷与需求、缺陷与测试用例互相关联,以更好地分析缺陷与测试单元之间的关系。
当所有缺陷的收敛性都满足收敛性要求,则结束测试。
由于每个测试单元都对应一个或多个测试用例,因此在确定了下一轮回归测试范围后,则明确了测试用例的范围。
应用示例
以下为本发明的基于缺陷收敛性评价的自动化测试方法的应用示例。
图2为测试主脚的示例图,其示出由多个测试单元组成了测试的主脚本。图3为测试单元1的脚本示例图。
在本示例中,依据业务流程来定义脚本的依赖关系,如图4a和4b所示,其中图4a表示业务流程1,图4b表示业务流程2。业务流程反应的是执行顺序和依赖关系。比如在图4a中,Sphm()的执行必须以LoadSPS()和LoadSpot()的执行为前提;LoadSPS()和LoadSpot()是并列关系,执行不分先后。在此示例中测试单元之间的关系是依据业务流程来确定的,一个测试单元对应一个脚本;图4a和图4b是测试单元之间的依赖关系,也是测试脚本之间的依赖关系。
在其他应用中,脚本的依赖关系还可以根据功能与功能之间的依赖关系来确定。
执行主脚本所生成的运行记录如图5所示,其中灰色文字代表运行出错的文字信息,双击它们即可定位到相应的脚本,从而能确定是哪个测试单元出现了问题。
利用软件缺陷管理软件记录所确定的缺陷,图6展示了一个测试周期内的部分缺陷记录,不同的灰度代表不同的缺陷状态,每个缺陷对应相关的分类,分类业务功能来划分,一个业务功能对应一个或多个测试单元。在本示例中,虽然是按流程划分的测试单元,但流程也是由多个业务功能所组成,所以此处缺陷的分类按业务功能来划分。
图7显示了基于一个测试周期内发现的缺陷数量和已解决的缺陷数量绘制的缺陷收敛图,其中黑色线图表示累计发现的缺陷数量,灰色线图表示累计解决的缺陷数量。
在本示例中,缺陷主要出现在业务流程1里面,首先根据流程1中脚本之间的关系,确认回归测试范围;再查看流程1和流程2而之间的关系,在本示例中,流程1和流程2之间没有依赖关系,所以我们可以将流程2中的脚本排除在回归测试范围之外。测试脚本如图8所示,最终的回归测试结果如图9所示,表明利用本实施例的基于缺陷收敛性的自动化测试方法,成功减少了回归测试规模,提高了测试效率并缩短了测试周期。
本领域技术人员应理解,上面对本发明的实施例的描述的目的仅为了示例性地说明本发明的实施例的有益效果,并不意在将本发明的实施例限制于所给出的任何示例。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (7)

1.一种基于缺陷收敛性的自动化测试方法,其特征在于,所述自动化测试方法包括以下步骤:
1)确定测试范围,在所述测试范围内基于测试单元生成脚本;
2)确定各个脚本之间的依赖关系;
3)执行主脚本以对各个脚本进行调用,生成运行结果;
4)判断运行结果中的缺陷收敛性;
5)基于步骤4)所确定的缺陷收敛性确定下一轮回归测试范围。
2.根据权利要求1所述的基于缺陷收敛性的自动化测试方法,其特征在于,所述测试单元为测试范围内的业务功能或者业务流程。
3.根据权利要求2所述的基于缺陷收敛性的自动化测试方法,其特征在于,基于生成脚本的测试单元的业务功能之间的关系或者基于业务流程本身以及业务流程之间的关系来确定各个脚本之间的依赖关系。
4.根据权利要求1所述的基于缺陷收敛性的自动化测试方法,其特征在于,步骤4)中分析运行结果中的缺陷收敛性包括:
确定在一个测试周期内累计发现的缺陷数量曲线和累计解决的缺陷数量曲线,累计解决的缺陷数量曲线与累计发现的缺陷数量曲线的接近程度表明缺陷收敛性。
5.根据权利要求1所述的基于缺陷收敛性的自动化测试方法,其特征在于,在步骤5)中,当存在收敛性低于收敛性要求的缺陷时,执行以下子步骤:
5.1)确定与缺陷相关联的测试单元;
5.2)确定与步骤5.1)中所确定的测试单元相关联的其他测试单元;
5.3)剔除其余无关的测试单元,将所有相关的测试单元作为下一轮回归测试范围。
6.根据权利要求5所述的基于缺陷收敛性的自动化测试方法,其特征在于,子步骤5.1)确定与缺陷相关联的测试单元包括:
定义关键字段,将运行结果中的缺陷与所述关键字段相关联,基于所述关键字检索出与测试单元相关的所有缺陷,或者与缺陷相关的所有测试单元。
7.根据权利要求1所述的基于缺陷收敛性的自动化测试方法,其特征在于,步骤5)基于缺陷收敛性确定回归测试范围还包括:
当所有缺陷的收敛性都满足收敛性要求,则结束测试。
CN201710508375.2A 2017-06-28 2017-06-28 一种基于缺陷收敛性的自动化测试方法 Pending CN109144845A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710508375.2A CN109144845A (zh) 2017-06-28 2017-06-28 一种基于缺陷收敛性的自动化测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710508375.2A CN109144845A (zh) 2017-06-28 2017-06-28 一种基于缺陷收敛性的自动化测试方法

Publications (1)

Publication Number Publication Date
CN109144845A true CN109144845A (zh) 2019-01-04

Family

ID=64803625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710508375.2A Pending CN109144845A (zh) 2017-06-28 2017-06-28 一种基于缺陷收敛性的自动化测试方法

Country Status (1)

Country Link
CN (1) CN109144845A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908017A (zh) * 2010-06-01 2010-12-08 南京大学 一种基于部分多重覆盖的回归测试用例筛选方法
CN102521700A (zh) * 2011-12-13 2012-06-27 广东电网公司信息中心 电网信息化评测快速测试系统
CN103092748A (zh) * 2011-11-07 2013-05-08 阿里巴巴集团控股有限公司 一种确定需要进行回归测试的测试用例的方法及系统
CN103176895A (zh) * 2011-12-22 2013-06-26 阿里巴巴集团控股有限公司 一种回归测试方法和系统
CN103309801A (zh) * 2012-03-15 2013-09-18 百度在线网络技术(北京)有限公司 一种确定回归测试范围的方法和装置
CN104281525A (zh) * 2014-10-28 2015-01-14 中国人民解放军装甲兵工程学院 一种缺陷数据分析方法及利用其缩减软件测试项目的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908017A (zh) * 2010-06-01 2010-12-08 南京大学 一种基于部分多重覆盖的回归测试用例筛选方法
CN103092748A (zh) * 2011-11-07 2013-05-08 阿里巴巴集团控股有限公司 一种确定需要进行回归测试的测试用例的方法及系统
CN102521700A (zh) * 2011-12-13 2012-06-27 广东电网公司信息中心 电网信息化评测快速测试系统
CN103176895A (zh) * 2011-12-22 2013-06-26 阿里巴巴集团控股有限公司 一种回归测试方法和系统
CN103309801A (zh) * 2012-03-15 2013-09-18 百度在线网络技术(北京)有限公司 一种确定回归测试范围的方法和装置
CN104281525A (zh) * 2014-10-28 2015-01-14 中国人民解放军装甲兵工程学院 一种缺陷数据分析方法及利用其缩减软件测试项目的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵静: "无人侦察机情报处理及分发软件系统的第三方测试实施", 《中国优秀硕士学位论文全文数据库 信息科技辑 》 *

Similar Documents

Publication Publication Date Title
Herzig et al. Empirically detecting false test alarms using association rules
Bianchi et al. Evaluating software degradation through entropy
CN105022691B (zh) 一种基于uml图的高度自动化软件测试方法
CN109784758B (zh) 基于bim模型的工程质量监管预警系统和方法
Jungmayr Testability measurement and software dependencies
Jungmayr Identifying test-critical dependencies
CN109753286A (zh) 一种基于功能标签的代码方法统计其调用次数的方法
CN111678992A (zh) 一种用于识别混凝土结构损伤类型的无损检测方法
Lu et al. Does the role matter? an investigation of the code quality of casual contributors in github
CN109656615A (zh) 一种基于代码方法重要程度进行权限预警的方法
CN110309055A (zh) 基于Java虚拟机的黑盒测试方法、装置、终端及存储介质
CN113064835A (zh) 一种计算机软件测试系统
CN106933572B (zh) 一种基于llvm中间表示程序切片的度量模型
Zhao et al. Research on international standardization of software quality and software testing
CN110287114B (zh) 一种数据库脚本性能测试的方法及装置
CN109144845A (zh) 一种基于缺陷收敛性的自动化测试方法
CN116860314A (zh) 代码管理方法、装置、电子设备及存储介质
CN106201888A (zh) 智能视频叠加处理器自动测试方法及装置
Quah et al. Prediction of software readiness using neural network
Ramler et al. Noise in bug report data and the impact on defect prediction results
Chen et al. A review of component coupling metrics for component-based development
CN111221719B (zh) 一种自动化测试系统及测试方法
CN111143221B (zh) 一种测试方法及装置
WO2017041530A1 (zh) 一种软件度量检测方法和系统
Illes-Seifert et al. Exploring the relationship of a file's history and its fault-proneness: An empirical study

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190104