CN108763063A - 一种无需缺陷标注数据的软件缺陷检测方法 - Google Patents
一种无需缺陷标注数据的软件缺陷检测方法 Download PDFInfo
- Publication number
- CN108763063A CN108763063A CN201810436555.9A CN201810436555A CN108763063A CN 108763063 A CN108763063 A CN 108763063A CN 201810436555 A CN201810436555 A CN 201810436555A CN 108763063 A CN108763063 A CN 108763063A
- Authority
- CN
- China
- Prior art keywords
- software
- defect
- module
- detection
- labeled data
- 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.)
- Granted
Links
- 230000007547 defect Effects 0.000 title claims abstract description 93
- 238000001514 detection method Methods 0.000 title claims abstract description 59
- 238000012360 testing method Methods 0.000 claims abstract description 22
- 230000002950 deficient Effects 0.000 claims abstract description 10
- 238000013450 outlier detection Methods 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 15
- 239000013598 vector Substances 0.000 claims description 12
- 238000005259 measurement Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 claims description 5
- 238000002955 isolation Methods 0.000 claims description 4
- 239000000203 mixture Substances 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims 1
- 238000010276 construction Methods 0.000 abstract 1
- 230000000694 effects Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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)
- Tests Of Electronic Circuits (AREA)
- Debugging And Monitoring (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之间,表示模块有缺陷的可能性,检测分数越高,表明模块有缺陷的可能性越大。
步骤6将所有模块按照检测分数由高到低排序,排序后的模块为排在第i位的模块记为
步骤7初始化计数器t=1。
步骤8如果有可用的测试资源且t<N,转至步骤9,否则转至步骤11。
步骤9测试模块mt,获取其缺陷情况。
步骤10计数器t加1。
步骤11软件缺陷检测过程结束。
Claims (5)
1.一种无需缺陷标注数据的软件缺陷检测方法,其特征在于,通过以下步骤实现对已完成编码的等待测试的软件模块进行缺陷检测:
步骤(1)获取所有已完成编码的等待测试的软件模块;
步骤(2)提取每个模块的特征向量,构建无缺陷标注的数据集合;
步骤(3)利用无缺陷标注的数据集合,通过异常检测算法建立软件缺陷检测模型;
步骤(4)将未检测的软件模块的特征向量输入到建立好的软件缺陷检测模型,得到该模块的检测分数;
步骤(5)若还有未检测的软件模块,转至步骤(4),否则转至步骤(6);
步骤(6)将所有等待测试的软件模块按照检测分数由高到低排序;
步骤(7)将所有等待测试的软件模块按照所述分数顺序依次送交测试人员进行测试。
2.如权利要求1所述的无需缺陷标注数据的软件缺陷检测方法,其特征在于,所述异常检测算法为隔离森林Isolation Forest。
3.如权利要求1所述的无需缺陷标注数据的软件缺陷检测方法,其特征在于,测试软件模块的方法为:
步骤71初始化计数器t=1;
步骤72如果有可用的测试资源且t<N,转至步骤73,否则转至步骤75;
步骤73测试模块mt,获取其缺陷情况;
步骤74计数器t加1;
步骤75软件缺陷检测过程结束。
4.如权利要求1所述的无需缺陷标注数据的软件缺陷检测方法,其特征在于,所述检测分数取值范围在0到1之间,所述检测分数的高低表示模块中有缺陷的可能性大小,分数越高说明模块存在缺陷的可能性越大。
5.如权利要求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 true CN108763063A (zh) | 2018-11-06 |
CN108763063B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131108A (zh) * | 2020-09-18 | 2020-12-25 | 电信科学技术第十研究所有限公司 | 一种基于特征属性的测试策略调整方法及装置 |
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 |
---|
韦良芬: "基于机器学习的软件缺陷预测技术研究", 《长春大学学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131108A (zh) * | 2020-09-18 | 2020-12-25 | 电信科学技术第十研究所有限公司 | 一种基于特征属性的测试策略调整方法及装置 |
CN112131108B (zh) * | 2020-09-18 | 2024-04-02 | 电信科学技术第十研究所有限公司 | 一种基于特征属性的测试策略调整方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108763063B (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10866281B2 (en) | System and method to diagnose integrated circuit | |
CN102683165A (zh) | 智能缺陷筛选及取样方法 | |
CN111400505A (zh) | 一种用电信息采集系统匹配故障消缺方案的方法及系统 | |
CN116128839A (zh) | 晶圆缺陷识别方法、装置、电子设备以及存储介质 | |
CN117571742B (zh) | 基于人工智能实现芯片质检的方法及装置 | |
CN110186962B (zh) | 一种用于电容层析成像的不完整测量数据成像方法 | |
CN110850358A (zh) | 基于逐步回归算法的电能表综合检定方法及系统 | |
US20140282327A1 (en) | Cutter in diagnosis (cid) a method to improve the throughput of the yield ramp up process | |
CN108763063A (zh) | 一种无需缺陷标注数据的软件缺陷检测方法 | |
CN110888809B (zh) | 一种测试任务的风险预测方法及装置 | |
CN117372801A (zh) | 变电站缺陷异常检测方法、装置和计算机设备 | |
US8397113B2 (en) | Method and system for identifying power defects using test pattern switching activity | |
CN111898314B (zh) | 湖泊水体参数检验方法、装置、电子设备及存储介质 | |
CN116151163A (zh) | Dft诊断质量分析方法及装置、存储介质、终端设备 | |
CN113128881B (zh) | 测量仪表的操作考评方法、设备及存储介质 | |
CN114020645A (zh) | 测试方法、装置、设备、可读存储介质及计算机程序产品 | |
CN112037191B (zh) | 一种局域漏电流密度阈值的确定方法、装置和计算机设备 | |
CN114155412A (zh) | 深度学习模型迭代方法、装置、设备及存储介质 | |
Bashkirov et al. | Comparative analysis of software products for virtual simulation of electrical circuits | |
Pawlowski et al. | Simulation and Fault Diagnosis in Post-Manufacturing Mixed Signal Circuits | |
CN116630306B (zh) | 一种飞机半圆头铆钉的缺陷检测方法和装置 | |
CN118095148B (zh) | 一种芯片内部逻辑验证方法和系统 | |
CN113434408B (zh) | 一种基于测试预言的单元测试用例排序方法 | |
CN117077016B (zh) | 基于航空磁放数据的支持向量机超基性岩识别方法 | |
Smirnov et al. | Methods of automatic testing the very large integrated circuit of memory |
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 |