CN108763063B - 一种无需缺陷标注数据的软件缺陷检测方法 - Google Patents
一种无需缺陷标注数据的软件缺陷检测方法 Download PDFInfo
- Publication number
- CN108763063B CN108763063B CN201810436555.9A CN201810436555A CN108763063B CN 108763063 B CN108763063 B CN 108763063B CN 201810436555 A CN201810436555 A CN 201810436555A CN 108763063 B CN108763063 B CN 108763063B
- Authority
- CN
- China
- Prior art keywords
- software
- defect
- module
- detection
- testing
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种无需缺陷标注数据的软件缺陷检测方法,首先获取所有已完成编码的等待测试的软件模块,构造无缺陷标注的数据集合;利用无缺陷标注的数据集合通过异常检测算法建立软件缺陷检测模型;通过建立好的模型输出每个未检测的软件模块的检测分数,表示模块中有缺陷的可能性大小,分数越高说明模块存在缺陷的可能性越大;将所有等待测试的模块按照检测分数由高到低排序,并将等待测试的模块按此顺序依次送交测试人员进行测试,直到所有模块都进行过测试或没有可用的测试资源时结束。本发明能够在没有缺陷标注数据的情况下检测软件缺陷,解决了当前的软件缺陷检测方法需要大量测试资源以获取缺陷标注数据的问题。
Description
技术领域
本发明涉及一种无需缺陷标注数据的软件缺陷检测方法,属于自动化软件质量辅助控制技术领域。
背景技术
随着计算机和互联网的普及,软件已经深入渗透到各行各业和我们的日常生活中。如今,软件的规模越来越大,复杂性越来越高,软件质量保证也引起了软件开发团队越来越多的重视。然而软件不是完美的,在软件开发过程中不可避免地会出现软件缺陷。如果不能尽早地发现并修复缺陷,可能会导致灾难性的后果。软件测试是软件开发过程中不可或缺的步骤。软件测试的目标是尽可能早地找出软件缺陷,并确保其得以修复。然而在实际的软件开发过程中,由于测试资源有限,时间紧迫等原因,软件测试往往是不够充分的,这可能导致许多潜在的软件缺陷未被发现。如何在有限的时间和资源下,尽可能地找出更多的潜在软件缺陷成为一个重要的问题。
研究人员发现通过软件缺陷检测可以在一定程度上缓解这一问题。软件缺陷检测即在进行软件测试前利用现有的数据和领域知识对软件的各个模块出现缺陷的可能性做出合理的预测,测试人员根据预测结果合理安排测试资源,先测试最可能出现缺陷的模块,后测试出现缺陷可能性小的模块,从而保证尽可能多地找出软件缺陷。
然而目前的软件缺陷检测方法的一大缺点是需要大量的缺陷标注数据的支持,为了获取缺陷标注数据就需要在软件缺陷检测之前投入许多测试资源和时间。然而这一条件在许多实际的软件开发过程中无法满足。在测试资源有限或时间紧迫时,无法获取缺陷标注数据的情况下,如何有效地进行软件缺陷检测成为急需解决的问题。
发明内容
发明目的:现有技术中软件缺陷检测方法需要通过人工测试来获取软件模块是否有缺陷的标注数据,在获得缺陷标注数据之后才能建立软件缺陷检测模型。但在测试资源有限或时间紧迫时无法获取缺陷标注数据,目前的软件缺陷检测方法无法在这种情况下有效地检测软件缺陷。针对这一问题,本发明提出了一种无需缺陷标注数据的软件缺陷检测方法,在没有足够的测试资源和时间的情况下也能有效地检测软件缺陷。
技术方案:一种无需缺陷标注数据的软件缺陷检测方法,通过以下步骤实现对已完成编码的等待测试的软件模块进行缺陷检测:
步骤(1)获取所有已完成编码的等待测试的软件模块;
步骤(2)选择度量元集合,利用软件度量技术计算模块在度量元集合中所有度量元上的值,这些值组成的实值向量就是模块的特征向量,所有模块的特征向量构成了无缺陷标注的数据集合;
步骤(3)利用无缺陷标注的数据集合,通过异常检测算法建立软件缺陷检测模型;
步骤(4)将未检测的软件模块的特征向量输入到建立好的软件缺陷检测模型,得到该模块的检测分数。检测分数的取值范围在0到1之间,表示模块中有缺陷的可能性大小,分数越高说明模块存在缺陷的可能性越大;
步骤(5)若还有未检测的软件模块,转至步骤(4),否则转至步骤(6);
步骤(6)将所有等待测试的软件模块按照检测分数由高到低排序;
步骤(7)将所有等待测试的软件模块按照所述分数顺序依次送交测试人员进行详细测试。
有益效果:与现有技术相比,本发明提出的软件缺陷检测方法能够解决在没有缺陷标注数据的情况下如何进行软件缺陷检测的问题。在软件开发过程中,当测试资源有限或时间紧迫时无法获取缺陷标注数据,利用本发明提出的软件缺陷检测方法可以有效地在没有缺陷标注数据的情况下进行软件缺陷检测。
附图说明
图1是本发明方法的流程图;
图2是本发明的软件缺陷检测与建模流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
现有的软件缺陷检测装置在进行缺陷检测之前,需要有缺陷标注的数据集合进行训练,以建立缺陷检测模型。为了获取有缺陷标注的数据集合,需要通过代码审查或详细测试以获知模块是否有缺陷,此过程通常需要花费大量的测试资源和时间。如果测试资源有限或时间紧迫,无法获取有缺陷标注的数据集合,则无法建立缺陷检测模型进行缺陷检测。
如图1所示,本发明实施例的软件缺陷检测方法能够在测试资源有限或时间紧迫的情况下,利用无缺陷标记的数据集合建立缺陷检测模型,用该模型进行缺陷检测并输出每个等待测试的模块的检测分数。本实施例的软件缺陷检测方法的建模过程和缺陷检测过程如图2所示。
如图2所示,无需缺陷标注数据的软件缺陷检测与建模流程如下:
步骤0是起始动作。
步骤1获取所有已完成编码的等待测试的软件模块,记模块的数量为N,所有模块组成的集合记为M={mi|i=1,2,...,N},其中mi表示第i个模块。
步骤2选择度量元集合P={pj|j=1,2,...,d},d为度量元的个数。利用软件度量技术计算模块在度量元集合中所有度量元上的值,这些值组成的实值向量就是模块的特征向量。记模块mi的特征向量为xi=(xi,1,xi,2,…,xi,d),所有模块的特征向量构成了无缺陷标注的数据集合X={xi|i=1,2,...,N}。
步骤3利用无缺陷标注的数据集合X,使用异常检测算法隔离森林IsolationForest建立缺陷检测模型F。
步骤4如果有未检测的模块mi,转至步骤5,否则转至步骤6。
步骤5用缺陷检测模型F检测模块mi,获取此模块的检测分数si。检测分数取值范围在0到1之间,表示模块有缺陷的可能性,检测分数越高,表明模块有缺陷的可能性越大。
步骤7初始化计数器t=1。
步骤8如果有可用的测试资源且t<N,转至步骤9,否则转至步骤11。
步骤9测试模块mt,获取其缺陷情况。
步骤10计数器t加1。
步骤11软件缺陷检测过程结束。
Claims (3)
1.一种无需缺陷标注数据的软件缺陷检测方法,其特征在于,通过以下步骤实现对已完成编码的等待测试的软件模块进行缺陷检测:
步骤(1):获取所有已完成编码的等待测试的软件模块;
步骤(2):提取每个模块的特征向量,构建无缺陷标注的数据集合;
步骤(3):利用无缺陷标注的数据集合,通过异常检测算法建立软件缺陷检测模型;所述异常检测算法为隔离森林Isolation Forest;
步骤(4):将未检测的软件模块的特征向量输入到建立好的软件缺陷检测模型,得到该模块的检测分数;所述检测分数取值范围在0到1之间,所述检测分数的高低表示模块中有缺陷的可能性大小,分数越高说明模块存在缺陷的可能性越大;
步骤(5):若还有未检测的软件模块,转至步骤(4),否则转至步骤(6);
步骤(6):将所有等待测试的软件模块按照检测分数由高到低排序;
步骤(7):将所有等待测试的软件模块按照所述分数顺序依次送交测试人员进行测试。
2.如权利要求1所述的无需缺陷标注数据的软件缺陷检测方法,其特征在于,测试软件模块的方法为:
(71)初始化计数器t=1;
(72)如果有可用的测试资源且t<N,转至步骤(73),否则转至步骤(75);所述的N表示软件模块的个数;
(73)测试模块mt,获取其缺陷情况;
(74)计数器t加1,转至步骤(72);
(75)软件缺陷检测过程结束。
3.如权利要求1所述的无需缺陷标注数据的软件缺陷检测方法,其特征在于,所述特征向量的提取方法为:选择度量元集合,利用软件度量技术计算模块在度量元集合中所有度量元上的值,这些值组成的实值向量就是所述特征向量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810436555.9A CN108763063B (zh) | 2018-05-09 | 2018-05-09 | 一种无需缺陷标注数据的软件缺陷检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810436555.9A CN108763063B (zh) | 2018-05-09 | 2018-05-09 | 一种无需缺陷标注数据的软件缺陷检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108763063A CN108763063A (zh) | 2018-11-06 |
CN108763063B true CN108763063B (zh) | 2022-07-12 |
Family
ID=64009377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810436555.9A Active CN108763063B (zh) | 2018-05-09 | 2018-05-09 | 一种无需缺陷标注数据的软件缺陷检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763063B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131108B (zh) * | 2020-09-18 | 2024-04-02 | 电信科学技术第十研究所有限公司 | 一种基于特征属性的测试策略调整方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302724A (zh) * | 2015-11-05 | 2016-02-03 | 南京大学 | 一种基于混和效应移除的即时缺陷预测方法 |
CN105930277A (zh) * | 2016-07-11 | 2016-09-07 | 南京大学 | 一种基于缺陷报告分析的缺陷源代码定位方法 |
CN106021115A (zh) * | 2016-06-06 | 2016-10-12 | 重庆大学 | 基于概率的无监督缺陷预测方法 |
CN106502909A (zh) * | 2016-11-07 | 2017-03-15 | 南京大学 | 一种智能手机应用开发中的代码缺陷预测方法 |
-
2018
- 2018-05-09 CN CN201810436555.9A patent/CN108763063B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302724A (zh) * | 2015-11-05 | 2016-02-03 | 南京大学 | 一种基于混和效应移除的即时缺陷预测方法 |
CN106021115A (zh) * | 2016-06-06 | 2016-10-12 | 重庆大学 | 基于概率的无监督缺陷预测方法 |
CN105930277A (zh) * | 2016-07-11 | 2016-09-07 | 南京大学 | 一种基于缺陷报告分析的缺陷源代码定位方法 |
CN106502909A (zh) * | 2016-11-07 | 2017-03-15 | 南京大学 | 一种智能手机应用开发中的代码缺陷预测方法 |
Non-Patent Citations (1)
Title |
---|
基于机器学习的软件缺陷预测技术研究;韦良芬;《长春大学学报》;20171031;第7-9,13页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108763063A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110648305A (zh) | 工业图像检测方法、系统与计算机可读记录介质 | |
CN117421217B (zh) | 一种软件功能自动测试方法、系统、终端及介质 | |
CN114494780A (zh) | 基于特征对比的半监督工业缺陷检测方法及系统 | |
CN111400505A (zh) | 一种用电信息采集系统匹配故障消缺方案的方法及系统 | |
CN111311546A (zh) | 集装箱检测方法、装置及计算机可读存储介质 | |
CN111311545A (zh) | 集装箱检测方法、装置及计算机可读存储介质 | |
CN112529109A (zh) | 一种基于无监督多模型的异常检测方法及系统 | |
CN113778875B (zh) | 一种系统测试缺陷分类方法、装置、设备及存储介质 | |
CN116542984A (zh) | 五金件缺陷检测方法、装置、计算机设备及存储介质 | |
CN111768380A (zh) | 一种工业零配件表面缺陷检测方法 | |
CN108763063B (zh) | 一种无需缺陷标注数据的软件缺陷检测方法 | |
WO2023113773A1 (en) | Manufacturing defect detection augmented training sets | |
CN111275682A (zh) | 集装箱检测方法、装置及计算机可读存储介质 | |
CN108415886A (zh) | 一种基于生产工序的数据标签纠错方法及装置 | |
CN112749079A (zh) | 软件测试的缺陷分类方法、装置及计算设备 | |
CN114417941B (zh) | 一种曲轴故障检测方法及系统 | |
US11971802B2 (en) | Method, electronic device, and computer program product for code defect detection | |
CN113284141A (zh) | 用于缺陷检测的模型确定方法、装置和设备 | |
CN111858341A (zh) | 一种基于神经元覆盖的测试数据度量方法 | |
Pawlowski et al. | Simulation and Fault Diagnosis in Post-Manufacturing Mixed Signal Circuits | |
CN114818929B (zh) | 一种基于自学习标注的标注模型训练方法及标注方法 | |
CN113220570B (zh) | 一种基于缺陷库实现线上环境测试的方法及装置 | |
CN115035101B (zh) | 半导体芯片载板的缺陷验证方法、检测方法及aoi设备 | |
CN113220488B (zh) | 基于移动终端的记录单粘贴方法及装置 | |
CN117688441A (zh) | 代码缺陷分类方法、装置、电子设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |