CN117112448B - 基于森林算法的软件测试故障定位方法、系统及介质 - Google Patents
基于森林算法的软件测试故障定位方法、系统及介质 Download PDFInfo
- Publication number
- CN117112448B CN117112448B CN202311350372.2A CN202311350372A CN117112448B CN 117112448 B CN117112448 B CN 117112448B CN 202311350372 A CN202311350372 A CN 202311350372A CN 117112448 B CN117112448 B CN 117112448B
- Authority
- CN
- China
- Prior art keywords
- fault
- data
- test
- software
- data set
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 48
- 238000007637 random forest analysis Methods 0.000 claims abstract description 46
- 238000004458 analytical method Methods 0.000 claims abstract description 38
- 238000012360 testing method Methods 0.000 claims description 142
- 238000003066 decision tree Methods 0.000 claims description 80
- 230000001419 dependent effect Effects 0.000 claims description 22
- 238000013522 software testing Methods 0.000 claims description 21
- 238000013500 data storage Methods 0.000 claims description 9
- 238000011156 evaluation Methods 0.000 claims description 9
- 238000012549 training Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 claims description 4
- 230000007613 environmental effect Effects 0.000 claims description 2
- 239000012535 impurity Substances 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 11
- 230000015556 catabolic process Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013209 evaluation strategy Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
- Y04S10/52—Outage or fault management, e.g. fault detection or location
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Quality & Reliability (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提供基于森林算法的软件测试故障定位方法、系统及介质,涉及软件故障定位技术领域,包括如下步骤:记录软件测试的执行轨迹数据和故障信息;提取故障轨迹数据;建立随机森林故障定位模型;通过随机森林故障定位模型对故障轨迹数据进行分析;根据分析故障定位查找实际故障定位,对随机森林故障定位模型进行评估;本发明用于解决现有的软件故障定位技术还存在对软件的故障分析项不够多样以及缺少对分析结果的分析,导致只能对软件的部分故障类型进行故障定位以及难以对故障定位技术是否精准进行评估的问题。
Description
技术领域
本发明涉及软件故障定位技术领域,尤其涉及基于森林算法的软件测试故障定位方法、系统及介质。
背景技术
软件故障定位技术,是指通过分析和排查软件系统中出现的故障,确定故障的具体原因和位置的一系列技术方法和手段,软件故障定位技术旨在帮助开发人员和维护人员快速定位并解决软件系统中的故障问题,提高软件系统的可靠性和稳定性。
现有的软件故障定位技术通常都是单一的对软件进行测试,并根据测试结果进行分析,缺少分析的多样性,对分析模型采用不同的数据集进行训练,往往会产生不同的分析结果,且现有的软件故障定位技术在故障定位结束后缺少对分析结果的分析,导致难以对故障定位技术是否精准进行评估,同时现有的软件故障定位技术对软件的故障分析项不够多样,导致只能对软件的部分故障类型进行故障定位,比如在申请公开号为CN110888753A的中国专利中,公开了“软件故障定位方法及系统”,该方案在对软件进行故障定位分析时就缺少分析项目的多样性,导致只能对软件的部分故障类型进行故障定位,现有的软件故障定位技术还存在对软件的故障分析项不够多样以及缺少对分析结果的分析,导致只能对软件的部分故障类型进行故障定位以及难以对故障定位技术是否精准进行评估的问题。
发明内容
针对现有技术存在的不足,本发明提供了基于森林算法的软件测试故障定位方法,能够在软件测试中针对软件的代码层面、测试用例层面以及运行环境层面全方位的进行故障定位,且基于随机森林算法建立了多个决策树,每个决策树采用不同的数据集进行训练,以解决现有的软件故障定位技术还存在对软件的故障分析项不够多样以及缺少对分析结果的分析,导致只能对软件的部分故障类型进行故障定位以及难以对故障定位技术是否精准进行评估的问题。
为了实现上述目的,第一方面,本发明提供基于森林算法的软件测试故障定位方法,包括如下步骤:
进行软件测试,记录软件测试的执行轨迹数据和故障信息;
对执行轨迹数据以及故障信息进行分析,提取故障轨迹数据;
建立随机森林故障定位模型;
通过随机森林故障定位模型对故障轨迹数据进行分析,得到分析故障定位;
根据分析故障定位查找实际故障定位,对随机森林故障定位模型进行评估。
进一步地,所述执行轨迹数据包括测试用例、测试结果以及测试时长;所述故障信息包括输出错误、运行崩溃以及环境信息。
进一步地,对执行轨迹数据以及故障信息进行分析,提取故障轨迹数据包括如下子步骤:
读取故障信息,以及执行轨迹数据;
查找故障信息对应的执行轨迹数据,标记为故障轨迹数据。
进一步地,建立随机森林故障定位模型包括如下子步骤:
设置第一决策树、第二决策树以及第三决策树;
第一决策树、第二决策树以及第三决策树组成随机森林故障定位模型;
读取故障数据库,获取历史故障数据集,历史故障数据集中包括历史故障数据以及历史故障定位,历史故障数据与历史故障定位相对应;
在历史故障数据集中遍历选取两个分类点并将历史故障数据集划分为第一数据集、第二数据集以及第三数据集,将分类点标记为数据集分类点;
分别获取第一数据集、第二数据集以及第三数据集中历史故障数据的数量,分别标记为第一数量、第二数量以及第三数量,将历史故障数据集内数据的数量标记为历史故障数据数;
通过分类概率公式分别计算第一数据集、第二数据集以及第三数据集的分类选取概率;若分类选取概率小于零,则将其设置为0;
所述分类概率公式配置为:;其中,/>为第i数据集的分类选取概率,为第i数量,i为常数且为正整数,Ng为历史故障数据数;
通过基尼不纯度公式计算第一数据集、第二数据集以及第三数据集的基尼不纯度,得到分类基尼不纯度;
所述基尼不纯度公式配置为:;其中,Gn为分类基尼不纯度,C为数据集的数量;
遍历计算不同的数据集分类点的分类基尼不纯度,选取分类基尼不纯度最小的数据集分类点为最终分类点,将最终分类点对应的第一数据集、第二数据集以及第三数据集分别录入第一决策树、第二决策树以及第三决策树进行数据训练。
进一步地,通过随机森林故障定位模型对故障轨迹数据进行分析包括如下子步骤:
通过第一决策树分析故障轨迹数据,得到第一故障定位;
基于第一决策树的分析过程,通过第二决策树分析故障轨迹数据,得到第二故障定位;通过第三决策树分析故障轨迹数据,得到第三故障定位;对第一故障定位、第二故障定位以及第三故障定位进行分析,得到最终的软件故障定位。
进一步地,通过第一决策树分析故障轨迹数据包括如下子步骤:
读取数据格式标准,所述数据格式标准包括数据标准类型、字符标准长度以及空值标准;
获取测试用例的数据类型、字符长度以及空值设定;将数据类型与数据标准类型进行比对,若数据类型与数据标准类型相同,则输出类型合规信号;若数据类型与数据标准类型不同,则输出类型不合规信号;判断字符长度是否超过字符标准长度,若否,则输出长度合规信号;若是,则输出长度不合规信号;判断空值设定是否与控制标准相同,若相同,则输出空值合规信号;若不相同,则输出空值不合规信号;
向软件内输入测试用例,得到测试结果,重复测试第一测试次数,得到第一测试次数数量的测试结果,读取测试数据库,获取测试用例对应的标准结果,检验是否所有的测试结果均与标准结果相同,若是,则输出返回数据正确信号;若否,则输出返回数据错误信号;
若输出返回数据错误信号,则检测所有的测试结果是否均相同,若是,则输出算法错误信号;若否,则输出代码错误信号;
读取第一数据集内历史故障定位为运行超时的历史故障数据,标记为超时故障数据,并将剩余的历史故障数据标记为其他故障数据,读取超时故障数据内的测试时长,标记为历史测试超时时长;读取其他故障数据内的测试时长,标记为历史测试正常时长;通过正常运行时长公式对历史测试超时时长以及历史测试正常时长进行计算,得到正常运行时长;
所述正常运行时长公式配置为:;其中,T为正常运行时长,Tc为历史测试超时时长,Tz为历史测试正常时长;
将测试时长与正常运行时长进行比对,若测试时长小于等于正常运行时长,则输出运行未超时信号;若测试时长大于正常运行时长,则输出运行超时信号;
若软件测试存在运行崩溃,则获取环境信息,所述环境信息包括操作系统环境、运行库环境以及依赖项环境;读取环境数据库,获取软件运行所需的标准环境,所述标准环境包括标准操作系统、标准运行库以及标准依赖项;
将标准操作系统、标准运行库以及标准依赖项分别与操作系统环境、运行库环境以及依赖项环境进行分析,判断操作系统环境与标准操作系统是否一致,若是,则输出操作系统正常信号;若否,则输出操作系统错误信号;判断运行库环境是否包括标准运行库,若是,则输出运行库正常信号;若否,则输出运行库错误信号;判断依赖项环境是否包括标准依赖项,若是,则输出依赖项正常信号;若否,则输出依赖项错误信号;
获取输出的信号,对软件测试进行故障定位。
进一步地,获取输出的信号,对软件测试进行故障定位包括如下子步骤:
获取输出的信号,若输出类型不合规信号,则故障定位为测试用例数据类型不合规;
若输出长度不合规信号,则故障定位为测试用例数据长度不合规;
若输出空值不合规信号,则故障定位为测试用例数据是否能为空值设置不合规;
若输出算法错误信号,则故障定位为算法错误;
若输出代码错误信号,则故障定位为代码错误;
若输出运行超时信号,则故障定位为运行超时;
若输出操作系统错误信号,则故障定位为操作系统错误;
若输出运行库错误信号,则故障定位为运行库不完整;
若输出依赖项错误信号,则故障定位为依赖项不完整。
进一步地,对第一故障定位、第二故障定位以及第三故障定位进行分析包括如下子步骤:
通过第二决策树分析故障轨迹数据,得到第二故障定位;
通过第三决策树分析故障轨迹数据,得到第三故障定位;
将第一故障定位、第二故障定位以及第三故障定位标记为决策结果,获取决策结果,将相同的决策结果分别划分为第一决策结果以及第二决策结果;
分别统计第一决策结果以及第二决策结果在决策结果中的占比,标记为决策占比,获取决策占比的最大值并将对应的决策结果标记为软件故障定位。
进一步地,对随机森林故障定位模型进行评估包括如下子步骤:
获取软件故障定位;
根据软件故障定位查找实际故障定位,若软件故障定位与实际故障定位相同,则输出定位准确信号;若软件故障定位与实际故障定位不同,则输出定位不准确信号;
若输出定位不准确信号,则通过随机森林故障定位模型重新分析软件故障定位,若再次输出定位不准确信号,则标记模型故障,发送模型检测信号至维护端。
第二方面,本发明提供基于森林算法的软件测试故障定位系统,包括软件测试模块、数据存储模块、故障定位模块以及定位评估模块;所述软件测试模块、数据存储模块以及定位评估模块分别与故障定位模块数据连接;
所述软件测试模块包括软件测试单元以及执行轨迹记录单元,所述软件测试单元用于对软件进行测试;所述执行轨迹记录单元用于记录软件测试的执行轨迹数据以及故障信息;
所述数据存储模块用于对执行轨迹数据以及故障信息进行存储;
所述故障定位模块包括故障轨迹提取单元、模型建立单元以及故障定位单元,所述故障轨迹提取单元用于提取故障轨迹数据,所述模型建立单元用于建立随机森林故障定位模型;所述故障定位单元用于对执行轨迹数据以及故障信息进行分析,得到软件故障定位;
所述定位评估模块用于根据软件故障定位以及实际故障定位对随机森林故障定位模型进行评估。
第三方面,本申请提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上所述方法中的步骤。
第四方面,本申请提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,运行如上所述方法中的步骤。
本发明的有益效果:本发明通过随机森林算法建立多个决策树,针对不同的决策树采用不同的历史故障数据集进行训练,优势在于,不同的历史故障数据集训练得到的决策树在实际进行故障定位时会产生不同的分析结果,最终通过投票的方式决定软件的故障定位,能够提高软件故障定位结果的准确性并避免了使用单一故障定位模型时,故障定位模型故障后就无法对软件进行故障定位,提高了软件故障定位结果的准确性以及实用性;
本发明通过对历史故障数据集进行划分,得到第一数据集、第二数据集以及第三数据集,并分别训练第一决策树、第二决策树以及第三决策树,同时计算不同数据集的基尼不纯度,选取基尼不纯度最低的划分方案,优势在于,可以确保每个数据集内的数据都是随机且均匀分配的,提高了训练决策树的随机性以及数据集的平均性;
本发明通过对软件测试的测试用例、测试结果、测试时长、运行崩溃以及运行环境进行分析,故障定位结果囊括了测试用例层面、代码层面以及运行环境层面,优势在于,对软件测试进行了全方位的故障定位,而非专项故障定位,提高了软件故障定位结果的准确性以及全面性;
本发明通过对软件故障定位以及实际故障定位进行分析,对随机森林故障定位模型进行评估,确保随机森林故障定位模型的准确性,优势在于,可以及时发现随机森林故障定位模型是否故障,同时多次分析可以避免随机森林故障定位模型偶然性的分析错误影响其正常的使用,提高了随机森林故障定位模型的准确性以及实用性。
本发明附加方面的优点将在下面的具体实施方式的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其他特征、目的和优点将会变得更明显:
图1为本发明的基于森林算法的软件测试故障定位方法的步骤流程图;
图2为本发明的建立随机森林故障定位模型的步骤流程图;
图3为本发明的软件故障定位的步骤流程图;
图4为本发明的基于森林算法的软件测试故障定位系统的原理框图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
实施例1
请参阅图1所示,本发明提供了基于森林算法的软件测试故障定位方法,能够在软件测试中针对软件的代码层面、测试用例层面以及运行环境层面全方位的进行故障定位,且基于随机森林算法建立了多个决策树,每个决策树采用不同的数据集进行训练,以解决现有的软件故障定位技术还存在对软件的故障分析项不够多样以及缺少对分析结果的分析,导致只能对软件的部分故障类型进行故障定位以及难以对故障定位技术是否精准进行评估的问题。
具体地,基于森林算法的软件测试故障定位方法包括步骤S1、步骤S2、步骤S3、步骤S4以及步骤S5,具体地:
步骤S1,进行软件测试,记录软件测试的执行轨迹数据和故障信息;执行轨迹数据包括测试用例、测试结果以及测试时长;故障信息包括输出错误、运行崩溃以及环境信息;
具体实施中,对软件的数据加密功能进行测试,记录得到测试用例为“123213”,运行加密代码得到测试结果为“6”,记录到测试时长为1.05s,获取到故障信息为输出错误,软件成功运行,未获取到运行崩溃,则不需要获取环境信息;具体加密代码如下:
#!/usr/bin/python
# Write Python 3 code in this online editor and run it.
#!/usr/bin/python
# Write Python 3 code in this online editor and run it.
def encrypt(text, key):
encrypted_text = ""
for int in text:
encrypted_char = chr(ord(int) + key)
encrypted_text += encrypted_char
return encrypted_char
plaintext = "123213"
encryption_key = 3
encrypted_text = encrypt(plaintext, encryption_key)
print("加密后的文本:", encrypted_text);
步骤S2,对执行轨迹数据以及故障信息进行分析,提取故障轨迹数据;步骤S2包括如下子步骤:
步骤S201,读取故障信息,以及执行轨迹数据;
步骤S202,查找故障信息对应的执行轨迹数据,标记为故障轨迹数据;
具体实施中,故障信息为输出错误,将测试用例“123213”,测试结果“6”,测试时长1.05s整合标记为故障轨迹数据。
请参阅图2所示,步骤S3,建立随机森林故障定位模型;步骤S3包括如下子步骤:
步骤S301,设置第一决策树、第二决策树以及第三决策树;
步骤S302,第一决策树、第二决策树以及第三决策树组成随机森林故障定位模型;
具体实施中,决策树的数量并非固定数量,可由实际应用场景进行增加或减少,随机森林算法采用现有的随机森林算法;
步骤S303,读取故障数据库,获取历史故障数据集,历史故障数据集中包括历史故障数据以及历史故障定位,历史故障数据与历史故障定位相对应;
具体实施中,故障数据库由软件后台数据库内存储,获取历史故障数据集,历史故障数据集为表格形式,部分数据如下表1所示:
表1历史故障数据集的部分数据
步骤S304,在历史故障数据集中遍历选取两个分类点并将历史故障数据集划分为第一数据集、第二数据集以及第三数据集,将分类点标记为数据集分类点;
具体实施中,遍历选取规则为先选取编号为10000001以及10000002的历史故障数据为第一数据集分类点以及第二数据集分类点,再依次增大第二数据集分类点,直至第二数据集分类点完成所有编号的选取后,增大第一数据集分类点,并将第二数据集分类点设置为第一数据集分类点编号+1的编号处,再依次增加第二数据集分类点,重复分析,直至第一数据集分类点完成所有编号的选取后停止;此次分析仅选取一次数据集分类点,旨在解释说明分析过程,实际应用中将全部分析;选取到数据集分类点为10004233以及10008563,划分得到第一数据集、第二数据集以及第三数据集,其中,第一数据集包括编号为10000001到10004233的全部历史故障数据,第二数据集包括编号为10004234到10008563的全部历史故障数据,第三数据集包括编号为10008564到10012384的全部历史故障数据,其中,历史故障数据集内最大编号为10012384;
步骤S305,分别获取第一数据集、第二数据集以及第三数据集中历史故障数据的数量,分别标记为第一数量、第二数量以及第三数量,将历史故障数据集内数据的数量标记为历史故障数据数;
具体实施中,历史故障数据集内编号最大为10012384,包括历史故障数据数12384条,第一数量为4233条,第二数量为4330条,第三数量为3822条;
步骤S306,通过分类概率公式分别计算第一数据集、第二数据集以及第三数据集的分类选取概率;
分类概率公式配置为:;其中,/>为第i数据集的分类选取概率,/>为第i数量,i为常数且为正整数,Ng为历史故障数据数;
具体实施中,计算得到第一数据集的分类选取概率P1为0.025,第二数据集的分类选取概率P2为0.047,第三数据集的分类选取概率P3为-0.080,计算结果保留两位小数,由于第三数据集的分类选取概率P3小于零,因此将P3设置为0;
步骤S307,通过基尼不纯度公式计算第一数据集、第二数据集以及第三数据集的基尼不纯度,得到分类基尼不纯度;
基尼不纯度公式配置为:;其中,Gn为基尼不纯度,C为数据集的数量;
步骤S308,遍历计算不同的数据集分类点的分类基尼不纯度,选取分类基尼不纯度最小的数据集分类点为最终分类点,将最终分类点对应的第一数据集、第二数据集以及第三数据集分别录入第一决策树、第二决策树以及第三决策树进行数据训练;
具体实施中,计算得到分类基尼不纯度为0.0692,计算结果保留四位小数,通过比对得到最小的分类基尼不纯度为0,其对应的最终分类点为10004128以及10008256,则对应的第一数据集为编号为10000001至10004128的历史故障数据,第二数据集为编号为10004129至10008256的历史故障数据,第三数据集为编号为10008257至10012384的历史故障数据,将第一数据集、第二数据集以及第三数据集分别录入第一决策树、第二决策树以及第三决策树进行数据训练。
请参阅图3所示,步骤S4,通过随机森林故障定位模型对故障轨迹数据进行分析,得到分析故障定位;步骤S4包括如下子步骤:
步骤S401,通过第一决策树分析故障轨迹数据,得到第一故障定位;步骤S401包括如下子步骤:
步骤S4011,读取数据格式标准,数据格式标准包括数据标准类型、字符标准长度以及空值标准;
具体实施中,读取到数据标准类型为int,字符标准长度为256,空值标准为否,此标准为软件预设标准;
步骤S4012,获取测试用例的数据类型、字符长度以及空值设定;将数据类型与数据标准类型进行比对,若数据类型与数据标准类型相同,则输出类型合规信号;若数据类型与数据标准类型不同,则输出类型不合规信号;判断字符长度是否超过字符标准长度,若否,则输出长度合规信号;若是,则输出长度不合规信号;判断空值设定是否与空值标准相同,若相同,则输出空值合规信号;若不相同,则输出空值不合规信号;
具体实施中,获取到数据类型为int,字符长度为6,空值设定为否,通过比对分析得到数据类型与数据标准类型相同,输出类型合规信号;字符长度未超过字符标注长度,输出长度合规信号;空值设定与空值标准相同,输出空值合规信号;
步骤S4013,向软件内输入测试用例,得到测试结果,重复测试第一测试次数,得到第一测试次数数量的测试结果,读取测试数据库,获取测试用例对应的标准结果,检验是否所有的测试结果均与标准结果相同,若是,则输出返回数据正确信号;若否,则输出返回数据错误信号;
步骤S4014,若输出返回数据错误信号,则检测所有的测试结果是否均相同,若是,则输出算法错误信号;若否,则输出代码错误信号;
具体实施中,第一测试次数设置为10,向软件内输入测试用例“123213”,得到测试结果分别为“6”、“6”、“6”、“6”、“6”、“6”、“6”、“6”、“6”以及“6”,读取测试数据库,获取到测试用例“123213”的标准结果为“456546”,通过比对得到测试结果与标准结果不同,则输出返回数据错误信号;检测得到所有测试结果均相同,则输出算法错误信号;
步骤S4015,读取第一数据集内历史故障定位为运行超时的历史故障数据,标记为超时故障数据,并将剩余的历史故障数据标记为其他故障数据,读取超时故障数据内的测试时长,标记为历史测试超时时长;读取其他故障数据内的测试时长,标记为历史测试正常时长;通过正常运行时长公式对历史测试超时时长以及历史测试正常时长进行计算,得到正常运行时长;
正常运行时长公式配置为:;其中,T为正常运行时长,Tc为历史测试超时时长,Tz为历史测试正常时长,min()为最小值运算符,max()为最大值运算符;
步骤S4016,将测试时长与正常运行时长进行比对,若测试时长小于等于正常运行时长,则输出运行未超时信号;若测试时长大于正常运行时长,则输出运行超时信号;针对不同的决策树采用不同的数据集进行训练,其中的正常运行时长不同,在进行故障分析时具有多样性,同时通过历史数据计算其正常运行时长,能够更加贴合实际应用场景,提高定位的准确性;
具体实施中,第一决策树读取第一数据集内的运行超时的历史故障数据,第二决策树读取第二数据集内的运行超时的历史故障数据,第三决策树读取第三数据集内的运行超时的历史故障数据;读取第一数据集,整合历史测试超时时长以及历史测试正常时长,其中,min(Tc)为5.78s,max(Tz)为3.24s,通过计算得到正常运行时长T为4.51s;测试时长为1.05s,通过比对得到测试时长小于正常运行时长,则输出运行未超时信号;
步骤S4017,若软件测试存在运行崩溃,则获取环境信息,环境信息包括操作系统环境、运行库环境以及依赖项环境;读取环境数据库,获取软件运行所需的标准环境,标准环境包括标准操作系统、标准运行库以及标准依赖项;
步骤S4018,将标准操作系统、标准运行库以及标准依赖项分别与操作系统环境、运行库环境以及依赖项环境进行分析,判断操作系统环境与标准操作系统是否一致,若是,则输出操作系统正常信号;若否,则输出操作系统错误信号;判断运行库环境是否包括标准运行库,若是,则输出运行库正常信号;若否,则输出运行库错误信号;判断依赖项环境是否包括标准依赖项,若是,则输出依赖项正常信号;若否,则输出依赖项错误信号;
具体实施中,此次运行测试未出现运行崩溃的故障信息,则无需进行步骤S4017以及步骤S4018;
步骤S4019,获取输出的信号,对软件测试进行故障定位;
步骤S4019包括如下子步骤:
步骤S401901,获取输出的信号,若输出类型不合规信号,则故障定位为测试用例数据类型不合规;
步骤S401902,若输出长度不合规信号,则故障定位为测试用例数据长度不合规;
步骤S401903,若输出空值不合规信号,则故障定位为测试用例数据是否能为空值设置不合规;
步骤S401904,若输出算法错误信号,则故障定位为算法错误;
步骤S401905,若输出代码错误信号,则故障定位为代码错误;
步骤S401906,若输出运行超时信号,则故障定位为运行超时;
步骤S401907,若输出操作系统错误信号,则故障定位为操作系统错误;
步骤S401908,若输出运行库错误信号,则故障定位为运行库不完整;
步骤S401909,若输出依赖项错误信号,则故障定位为依赖项不完整;
具体实施中,若获取到输出信号为步骤S401901至步骤S401909的情况,则执行对应步骤,获取到输出了算法错误信号,则执行步骤S401904,故障定位为算法错误;
步骤S402,基于第一决策树的分析过程,通过第二决策树分析故障轨迹数据,得到第二故障定位;通过第三决策树分析故障轨迹数据,得到第三故障定位;对第一故障定位、第二故障定位以及第三故障定位进行分析,得到最终的软件故障定位;实际应用中,通过不同的决策树对软件进行故障定位,能够避免故障定位模型过于单一导致单一故障定位模型出现故障后无法再对软件进行故障定位的问题;
步骤S402包括如下子步骤:
步骤S4021,通过第二决策树分析故障轨迹数据,得到第二故障定位;
步骤S4022,通过第三决策树分析故障轨迹数据,得到第三故障定位;
步骤S4023,将第一故障定位、第二故障定位以及第三故障定位标记为决策结果,获取决策结果,将相同的决策结果分别划分为第一决策结果以及第二决策结果;
步骤S4024,分别统计第一决策结果以及第二决策结果在决策结果中的占比,标记为决策占比,获取决策占比的最大值并将对应的决策结果标记为软件故障定位;
具体实施中,第二故障定位为算法错误,第三故障定位为算法错误,决策结果中,第一故障定位、第二故障定位以及第三故障定位均相同,则均划分为第一决策结果,无第二决策结果,此时第一决策结果的决策占比为100%,则软件故障定位为算法错误。
步骤S5,根据分析故障定位查找实际故障定位,对随机森林故障定位模型进行评估;步骤S5包括如下子步骤:
步骤S501,获取软件故障定位;
步骤S502,根据软件故障定位查找实际故障定位,若软件故障定位与实际故障定位相同,则输出定位准确信号;若软件故障定位与实际故障定位不同,则输出定位不准确信号;
步骤S503,若输出定位不准确信号,则通过随机森林故障定位模型重新分析软件故障定位,若再次输出定位不准确信号,则标记模型故障,发送模型检测信号至维护端;
具体实施中,获取软件故障定位为算法错误,查找实际故障定位,得到实际故障定位为算法错误,实际故障定位由人工根据软件故障定位进行查找,算法错误,人工排查并更改后,得到修正加密代码为:
#!/usr/bin/python
# Write Python 3 code in this online editor and run it.
#!/usr/bin/python
# Write Python 3 code in this online editor and run it.
def encrypt(text, key):
encrypted_text = ""
for int in text:
encrypted_char = chr(ord(int) + key)
encrypted_text += encrypted_char
return encrypted_text
#此处的return encrypted_text修改前为return encrypted_char
# 测试加密算法
plaintext = "123213"
encryption_key = 3
encrypted_text = encrypt(plaintext, encryption_key)
print("加密后的文本:", encrypted_text);
通过分析得到软件故障定位与实际故障定位相同,则输出定位准确信号。
实施例2
本实施例旨在说明故障信息为运行崩溃时的分析方法,具体应用中,若未出现运行崩溃则无需进行此分析;
若软件测试存在运行崩溃,则获取环境信息,环境信息包括操作系统环境、运行库环境以及依赖项环境;读取环境数据库,获取软件运行所需的标准环境,标准环境包括标准操作系统、标准运行库以及标准依赖项;
将标准操作系统、标准运行库以及标准依赖项分别与操作系统环境、运行库环境以及依赖项环境进行分析,判断操作系统环境与标准操作系统是否一致,若是,则输出操作系统正常信号;若否,则输出操作系统错误信号;判断运行库环境是否包括标准运行库,若是,则输出运行库正常信号;若否,则输出运行库错误信号;判断依赖项环境是否包括标准依赖项,若是,则输出依赖项正常信号;若否,则输出依赖项错误信号;
具体实施中,获取到操作系统环境为win11,运行库环境为DotNet,依赖项环境无;标准操作系统为win10,标准运行库为DotNet,标准依赖项为无,通过分析得到操作系统环境与标准操作系统不一致,则输出操作系统错误信号;运行库环境包括标准运行库,则输出运行库正常信号;依赖项环境包括标准依赖项,则输出依赖项正常信号。
实施例3
请参阅图4,本发明提供基于森林算法的软件测试故障定位系统,包括软件测试模块、数据存储模块、故障定位模块以及定位评估模块;软件测试模块、数据存储模块以及定位评估模块分别与故障定位模块数据连接;
软件测试模块包括软件测试单元以及执行轨迹记录单元,软件测试单元用于对软件进行测试;执行轨迹记录单元用于记录软件测试的执行轨迹数据以及故障信息,执行轨迹数据包括测试用例、测试结果以及测试时长,故障信息包括运行崩溃以及环境信息;
数据存储模块用于对执行轨迹数据以及故障信息进行存储;
故障定位模块包括故障轨迹提取单元、模型建立单元以及故障定位单元,故障轨迹提取单元用于提取故障轨迹数据;故障轨迹提取单元配置有故障轨迹提取策略,故障轨迹提取策略包括:
读取故障信息,以及执行轨迹数据;
查找故障信息对应的执行轨迹数据,标记为故障轨迹数据;
模型建立单元用于建立随机森林故障定位模型;模型建立单元配置有模型建立策略,模型建立策略包括:
设置第一决策树、第二决策树以及第三决策树;
第一决策树、第二决策树以及第三决策树组成随机森林故障定位模型;
读取故障数据库,获取历史故障数据集,历史故障数据集中包括历史故障数据以及历史故障定位,历史故障数据与历史故障定位相对应;
在历史故障数据集中遍历选取两个分类点并将历史故障数据集划分为第一数据集、第二数据集以及第三数据集,将分类点标记为数据集分类点;
分别获取第一数据集、第二数据集以及第三数据集中历史故障数据的数量在历史故障数据集中的占比,分别标记为第一占比、第二占比以及第三占比,将历史故障数据集内数据的数量标记为历史故障数据数;
通过分类概率公式分别计算第一数据集、第二数据集以及第三数据集的分类选取概率;
分类概率公式配置为:;其中,/>为第i数据集的分类选取概率,/>为第i占比,i为常数且为正整数,Ng为历史故障数据数;
通过基尼不纯度公式分别计算第一数据集、第二数据集以及第三数据集的基尼不纯度,分别标记为第一基尼不纯度、第二基尼不纯度以及第三基尼不纯度;
基尼不纯度公式配置为:;其中,Gn为基尼不纯度,C为数据集的数量;
将第一基尼不纯度、第二基尼不纯度以及第三基尼不纯度相加,得到分类基尼不纯度,遍历计算不同的数据集分类点的分类基尼不纯度,选取分类基尼不纯度最小的数据集分类点为最终分类点,将最终分类点对应的第一数据集、第二数据集以及第三数据集分别录入第一决策树、第二决策树以及第三决策树进行数据训练;
故障定位单元用于对执行轨迹数据以及故障信息进行分析,得到软件故障定位;故障定位单元配置有故障定位策略,故障定位策略包括:
通过第一决策树分析故障轨迹数据,得到第一故障定位;
读取数据格式标准,数据格式标准包括数据标准类型、字符标准长度以及空值标准;
获取测试用例的数据类型、字符长度以及空值设定;将数据类型与数据标准类型进行比对,若数据类型与数据标准类型相同,则输出类型合规信号;若数据类型与数据标准类型不同,则输出类型不合规信号;判断字符长度是否超过字符标准长度,若否,则输出长度合规信号;若是,则输出长度不合规信号;判断空值设定是否与控制标准相同,若相同,则输出空值合规信号;若不相同,则输出空值不合规信号;
向软件内输入测试用例,得到测试结果,重复测试第一测试次数,得到第一测试次数数量的测试结果,读取测试数据库,获取测试用例对应的标准结果,检验是否所有的测试结果均与标准结果相同,若是,则输出返回数据正确信号;若否,则输出返回数据错误信号;
若输出返回数据错误信号,则检测所有的测试结果是否均相同,若是,则输出算法错误信号;若否,则输出代码错误信号;
读取历史故障数据集内历史故障定位为运行超时的历史故障数据,标记为超时故障数据,并将剩余的历史故障数据标记为其他故障数据,读取超时故障数据内的测试时长,标记为历史测试超时时长;读取其他故障数据内的测试时长,标记为历史测试正常时长;通过正常运行时长公式对历史测试超时时长以及历史测试正常时长进行计算,得到正常运行时长;
正常运行时长公式配置为:;其中,T为正常运行时长,Tc为历史测试超时时长,Tz为历史测试正常时长,min()为最小值运算符,max()为最大值运算符;
将测试时长与正常运行时长进行比对,若测试时长小于等于正常运行时长,则输出运行未超时信号;若测试时长大于正常运行时长,则输出运行超时信号;
若软件测试存在运行崩溃,则获取环境信息,环境信息包括操作系统环境、运行库环境以及依赖项环境;读取环境数据库,获取软件运行所需的标准环境,标准环境包括标准操作系统、标准运行库以及标准依赖项;
将标准操作系统、标准运行库以及标准依赖项分别与操作系统环境、运行库环境以及依赖项环境进行分析,判断操作系统环境与标准操作系统是否一致,若是,则输出操作系统正常信号;若否,则输出操作系统错误信号;判断运行库环境是否包括标准运行库,若是,则输出运行库正常信号;若否,则输出运行库错误信号;判断依赖项环境是否包括标准依赖项,若是,则输出依赖项正常信号;若否,则输出依赖项错误信号;
获取输出的信号,对软件测试进行故障定位;
获取输出的信号,若输出类型不合规信号,则故障定位为测试用例数据类型不合规;
若输出长度不合规信号,则故障定位为测试用例数据长度不合规;
若输出空值不合规信号,则故障定位为测试用例数据是否能为空值设置不合规;
若输出算法错误信号,则故障定位为算法错误;
若输出代码错误信号,则故障定位为代码错误;
若输出运行超时信号,则故障定位为运行超时;
若输出操作系统错误信号,则故障定位为操作系统错误;
若输出运行库错误信号,则故障定位为运行库不完整;
若输出依赖项错误信号,则故障定位为依赖项不完整;
基于第一决策树的分析过程,通过第二决策树分析故障轨迹数据,得到第二故障定位;通过第三决策树分析故障轨迹数据,得到第三故障定位;对第一故障定位、第二故障定位以及第三故障定位进行分析,得到最终的软件故障定位;
通过第二决策树分析故障轨迹数据,得到第二故障定位;
通过第三决策树分析故障轨迹数据,得到第三故障定位;
将第一故障定位、第二故障定位以及第三故障定位标记为决策结果,获取决策结果,将相同的决策结果分别划分为第一决策结果以及第二决策结果;
分别统计第一决策结果以及第二决策结果在决策结果中的占比,标记为决策占比,获取决策占比的最大值并将对应的决策结果标记为软件故障定位;
定位评估模块用于根据软件故障定位以及实际故障定位对随机森林故障定位模型进行评估;定位评估模块配置有定位评估策略,定位评估策略包括:
获取软件故障定位;
根据软件故障定位查找实际故障定位,若软件故障定位与实际故障定位相同,则输出定位准确信号;若软件故障定位与实际故障定位不同,则输出定位不准确信号;
若输出定位不准确信号,则通过随机森林故障定位模型重新分析软件故障定位,若再次输出定位不准确信号,则标记模型故障,发送模型检测信号至维护端。
实施例4
本申请提供一种电子设备,包括处理器以及存储器,存储器存储有计算机可读取指令,当计算机可读取指令由处理器执行时,运行如上述方法中的步骤。通过上述技术方案,处理器和存储器通过通信总线和/或其他形式的连接机构互连并相互通讯,存储器存储有处理器可执行的计算机程序,当电子设备运行时,处理器执行该计算机程序,以执行上述实施例的任一可选的实现方式中的方法,以实现以下功能:记录软件测试的执行轨迹数据和故障信息;提取故障轨迹数据;建立随机森林故障定位模型;通过随机森林故障定位模型对故障轨迹数据进行分析;根据分析故障定位查找实际故障定位,对随机森林故障定位模型进行评估。
实施例5
本申请提供一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时,运行如上述方法中的步骤。通过上述技术方案,计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的方法,以实现以下功能:记录软件测试的执行轨迹数据和故障信息;提取故障轨迹数据;建立随机森林故障定位模型;通过随机森林故障定位模型对故障轨迹数据进行分析;根据分析故障定位查找实际故障定位,对随机森林故障定位模型进行评估。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例,或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static RandomAccess Memory,简称SRAM),电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(ErasableProgrammable Red Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-OnlyMemory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.基于森林算法的软件测试故障定位方法,其特征在于,包括如下步骤:
进行软件测试,记录软件测试的执行轨迹数据和故障信息;
对执行轨迹数据以及故障信息进行分析,提取故障轨迹数据;
建立随机森林故障定位模型;
通过随机森林故障定位模型对故障轨迹数据进行分析,得到分析故障定位;
根据分析故障定位查找实际故障定位,对随机森林故障定位模型进行评估;
建立随机森林故障定位模型包括如下子步骤:
设置第一决策树、第二决策树以及第三决策树;
第一决策树、第二决策树以及第三决策树组成随机森林故障定位模型;
读取故障数据库,获取历史故障数据集,历史故障数据集中包括历史故障数据以及历史故障定位,历史故障数据与历史故障定位相对应;
在历史故障数据集中遍历选取两个分类点并将历史故障数据集划分为第一数据集、第二数据集以及第三数据集,将分类点标记为数据集分类点;
分别获取第一数据集、第二数据集以及第三数据集中历史故障数据的数量,分别标记为第一数量、第二数量以及第三数量,将历史故障数据集内数据的数量标记为历史故障数据数;
通过分类概率公式分别计算第一数据集、第二数据集以及第三数据集的分类选取概率;若分类选取概率小于零,则将其设置为0;
所述分类概率公式配置为:;其中,/>为第i数据集的分类选取概率,/>为第i数量,第i数据集为第一数据集、第二数据集或第三数据集,第i数量第一数量、第二数量或第三数量,i为常数且为正整数,Ng为历史故障数据数;
通过基尼不纯度公式计算第一数据集、第二数据集以及第三数据集的基尼不纯度,得到分类基尼不纯度;
所述基尼不纯度公式配置为:;其中,Gn为分类基尼不纯度,C为数据集的数量;
遍历计算不同的数据集分类点的分类基尼不纯度,选取分类基尼不纯度最小的数据集分类点为最终分类点,将最终分类点对应的第一数据集、第二数据集以及第三数据集分别录入第一决策树、第二决策树以及第三决策树进行数据训练。
2.根据权利要求1所述的基于森林算法的软件测试故障定位方法,其特征在于,所述执行轨迹数据包括测试用例、测试结果以及测试时长;所述故障信息包括输出错误、运行崩溃以及环境信息。
3.根据权利要求2所述的基于森林算法的软件测试故障定位方法,其特征在于,对执行轨迹数据以及故障信息进行分析,提取故障轨迹数据包括如下子步骤:
读取故障信息,以及执行轨迹数据;
查找故障信息对应的执行轨迹数据,标记为故障轨迹数据。
4.根据权利要求3所述的基于森林算法的软件测试故障定位方法,其特征在于,通过随机森林故障定位模型对故障轨迹数据进行分析包括如下子步骤:
通过第一决策树分析故障轨迹数据,得到第一故障定位;
基于第一决策树的分析过程,通过第二决策树分析故障轨迹数据,得到第二故障定位;通过第三决策树分析故障轨迹数据,得到第三故障定位;对第一故障定位、第二故障定位以及第三故障定位进行分析,得到最终的软件故障定位。
5.根据权利要求4所述的基于森林算法的软件测试故障定位方法,其特征在于,通过第一决策树分析故障轨迹数据包括如下子步骤:
读取数据格式标准,所述数据格式标准包括数据标准类型、字符标准长度以及空值标准;
获取测试用例的数据类型、字符长度以及空值设定;将数据类型与数据标准类型进行比对,若数据类型与数据标准类型相同,则输出类型合规信号;若数据类型与数据标准类型不同,则输出类型不合规信号;判断字符长度是否超过字符标准长度,若否,则输出长度合规信号;若是,则输出长度不合规信号;判断空值设定是否与控制标准相同,若相同,则输出空值合规信号;若不相同,则输出空值不合规信号;
向软件内输入测试用例,得到测试结果,重复测试第一测试次数,得到第一测试次数数量的测试结果,读取测试数据库,获取测试用例对应的标准结果,检验是否所有的测试结果均与标准结果相同,若是,则输出返回数据正确信号;若否,则输出返回数据错误信号;
若输出返回数据错误信号,则检测所有的测试结果是否均相同,若是,则输出算法错误信号;若否,则输出代码错误信号;
读取第一数据集内历史故障定位为运行超时的历史故障数据,标记为超时故障数据,并将剩余的历史故障数据标记为其他故障数据,读取超时故障数据内的测试时长,标记为历史测试超时时长;读取其他故障数据内的测试时长,标记为历史测试正常时长;通过正常运行时长公式对历史测试超时时长以及历史测试正常时长进行计算,得到正常运行时长;
所述正常运行时长公式配置为:;其中,T为正常运行时长,Tc为历史测试超时时长,Tz为历史测试正常时长;
将测试时长与正常运行时长进行比对,若测试时长小于等于正常运行时长,则输出运行未超时信号;若测试时长大于正常运行时长,则输出运行超时信号;
若软件测试存在运行崩溃,则获取环境信息,所述环境信息包括操作系统环境、运行库环境以及依赖项环境;读取环境数据库,获取软件运行所需的标准环境,所述标准环境包括标准操作系统、标准运行库以及标准依赖项;
将标准操作系统、标准运行库以及标准依赖项分别与操作系统环境、运行库环境以及依赖项环境进行分析,判断操作系统环境与标准操作系统是否一致,若是,则输出操作系统正常信号;若否,则输出操作系统错误信号;判断运行库环境是否包括标准运行库,若是,则输出运行库正常信号;若否,则输出运行库错误信号;判断依赖项环境是否包括标准依赖项,若是,则输出依赖项正常信号;若否,则输出依赖项错误信号;
获取输出的信号,对软件测试进行故障定位。
6.根据权利要求5所述的基于森林算法的软件测试故障定位方法,其特征在于,获取输出的信号,对软件测试进行故障定位包括如下子步骤:
获取输出的信号,若输出类型不合规信号,则故障定位为测试用例数据类型不合规;
若输出长度不合规信号,则故障定位为测试用例数据长度不合规;
若输出空值不合规信号,则故障定位为测试用例数据是否能为空值设置不合规;
若输出算法错误信号,则故障定位为算法错误;
若输出代码错误信号,则故障定位为代码错误;
若输出运行超时信号,则故障定位为运行超时;
若输出操作系统错误信号,则故障定位为操作系统错误;
若输出运行库错误信号,则故障定位为运行库不完整;
若输出依赖项错误信号,则故障定位为依赖项不完整。
7.根据权利要求6所述的基于森林算法的软件测试故障定位方法,其特征在于,对第一故障定位、第二故障定位以及第三故障定位进行分析包括如下子步骤:
通过第二决策树分析故障轨迹数据,得到第二故障定位;
通过第三决策树分析故障轨迹数据,得到第三故障定位;
将第一故障定位、第二故障定位以及第三故障定位标记为决策结果,获取决策结果,将相同的决策结果分别划分为第一决策结果以及第二决策结果;
分别统计第一决策结果以及第二决策结果在决策结果中的占比,标记为决策占比,获取决策占比的最大值并将对应的决策结果标记为软件故障定位。
8.根据权利要求7所述的基于森林算法的软件测试故障定位方法,其特征在于,对随机森林故障定位模型进行评估包括如下子步骤:
获取软件故障定位;
根据软件故障定位查找实际故障定位,若软件故障定位与实际故障定位相同,则输出定位准确信号;若软件故障定位与实际故障定位不同,则输出定位不准确信号;
若输出定位不准确信号,则通过随机森林故障定位模型重新分析软件故障定位,若再次输出定位不准确信号,则标记模型故障,发送模型检测信号至维护端。
9.适用于权利要求1-8中任意一项所述的基于森林算法的软件测试故障定位方法的系统,其特征在于,包括软件测试模块、数据存储模块、故障定位模块以及定位评估模块;所述软件测试模块、数据存储模块以及定位评估模块分别与故障定位模块数据连接;
所述软件测试模块包括软件测试单元以及执行轨迹记录单元,所述软件测试单元用于对软件进行测试;所述执行轨迹记录单元用于记录软件测试的执行轨迹数据以及故障信息;
所述数据存储模块用于对执行轨迹数据以及故障信息进行存储;
所述故障定位模块包括故障轨迹提取单元、模型建立单元以及故障定位单元,所述故障轨迹提取单元用于提取故障轨迹数据,所述模型建立单元用于建立随机森林故障定位模型;所述故障定位单元用于对执行轨迹数据以及故障信息进行分析,得到软件故障定位;
所述定位评估模块用于根据软件故障定位以及实际故障定位对随机森林故障定位模型进行评估。
10.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-8中任意一项所述方法中的步骤。
11.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,运行如权利要求1-8中任意一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311350372.2A CN117112448B (zh) | 2023-10-18 | 2023-10-18 | 基于森林算法的软件测试故障定位方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311350372.2A CN117112448B (zh) | 2023-10-18 | 2023-10-18 | 基于森林算法的软件测试故障定位方法、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117112448A CN117112448A (zh) | 2023-11-24 |
CN117112448B true CN117112448B (zh) | 2024-01-30 |
Family
ID=88800460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311350372.2A Active CN117112448B (zh) | 2023-10-18 | 2023-10-18 | 基于森林算法的软件测试故障定位方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117112448B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103257921A (zh) * | 2013-04-16 | 2013-08-21 | 西安电子科技大学 | 一种基于改进随机森林算法的软件故障预测系统及其方法 |
CN107943830A (zh) * | 2017-10-20 | 2018-04-20 | 西安电子科技大学 | 一种适用于高维大数据集的数据分类方法 |
CN109142946A (zh) * | 2018-06-29 | 2019-01-04 | 东华大学 | 基于蚁群算法优化随机森林的变压器故障检测方法 |
CN111258901A (zh) * | 2020-01-17 | 2020-06-09 | 北京科技大学 | 一种微服务组合程序的故障定位方法及系统 |
CN113282495A (zh) * | 2021-05-27 | 2021-08-20 | 东南大学 | 一种基于轨迹监控的Java软件故障定位方法 |
CN113611412A (zh) * | 2020-09-03 | 2021-11-05 | 北京大学 | 一种t2dm引起冠心病风险的预测方法、装置及系统 |
CN114492588A (zh) * | 2021-12-29 | 2022-05-13 | 中国大唐集团科学技术研究总院有限公司华东电力试验研究院 | 一种火电厂辅机设备故障识别方法、系统、设备和存储介质 |
CN116881029A (zh) * | 2023-06-30 | 2023-10-13 | 赛力斯汽车有限公司 | 一种故障原因诊断方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651931B (zh) * | 2020-05-19 | 2022-05-17 | 浙江大学 | 基于深度神经网络的高炉故障诊断规则导出方法 |
-
2023
- 2023-10-18 CN CN202311350372.2A patent/CN117112448B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103257921A (zh) * | 2013-04-16 | 2013-08-21 | 西安电子科技大学 | 一种基于改进随机森林算法的软件故障预测系统及其方法 |
CN107943830A (zh) * | 2017-10-20 | 2018-04-20 | 西安电子科技大学 | 一种适用于高维大数据集的数据分类方法 |
CN109142946A (zh) * | 2018-06-29 | 2019-01-04 | 东华大学 | 基于蚁群算法优化随机森林的变压器故障检测方法 |
CN111258901A (zh) * | 2020-01-17 | 2020-06-09 | 北京科技大学 | 一种微服务组合程序的故障定位方法及系统 |
CN113611412A (zh) * | 2020-09-03 | 2021-11-05 | 北京大学 | 一种t2dm引起冠心病风险的预测方法、装置及系统 |
CN113282495A (zh) * | 2021-05-27 | 2021-08-20 | 东南大学 | 一种基于轨迹监控的Java软件故障定位方法 |
CN114492588A (zh) * | 2021-12-29 | 2022-05-13 | 中国大唐集团科学技术研究总院有限公司华东电力试验研究院 | 一种火电厂辅机设备故障识别方法、系统、设备和存储介质 |
CN116881029A (zh) * | 2023-06-30 | 2023-10-13 | 赛力斯汽车有限公司 | 一种故障原因诊断方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117112448A (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120159250A1 (en) | Compatibility testing using traces, linear temporal rules, and behavioral models | |
CN111290950B (zh) | 程序测试中测试点获取方法、装置、存储介质和设备 | |
CN112579437B (zh) | 一种程序运行过程符合性验证方法 | |
CN115168868B (zh) | 一种应用于人工智能的业务漏洞分析方法及服务器 | |
CN113761444A (zh) | 基于代码评分的教程推荐方法、教程推荐装置及终端设备 | |
CN110414806B (zh) | 员工风险预警方法及相关装置 | |
CN117112448B (zh) | 基于森林算法的软件测试故障定位方法、系统及介质 | |
CN113312258A (zh) | 一种接口测试方法、装置、设备及存储介质 | |
Huang et al. | Dissimilarity‐based test case prioritization through data fusion | |
CN111444093B (zh) | 项目开发过程质量的确定方法、装置、计算机设备 | |
CN113609216A (zh) | 基于区块链的产品质量诊断方法、装置、设备及存储介质 | |
KR102117905B1 (ko) | 신뢰성 테스트 결과 관리 데이터 자동 생성 방법 및 신뢰성 테스트 결과 관리 데이터 자동 생성 장치 | |
JP7190246B2 (ja) | ソフトウェア不具合予測装置 | |
CN116450137A (zh) | 一种系统异常的检测方法、装置、存储介质及电子设备 | |
CN113723071B (zh) | 电子档案校验方法、系统、存储介质及设备 | |
Walkinshaw | Assessing test adequacy for black-box systems without specifications | |
CN115391230A (zh) | 一种测试脚本生成、渗透测试方法、装置、设备及介质 | |
CN112732588A (zh) | 一种基于云计算的人工智能代码验证系统、方法和装置 | |
Tribus et al. | Using data mining for static code analysis of C | |
Kim et al. | An automatic approach to validating log levels in Java | |
CN117558307B (zh) | 存储芯片的门限电压调节方法、装置、设备及存储介质 | |
CN115795076B (zh) | 图像数据的交叉标注方法、装置、设备及存储介质 | |
CN112612882B (zh) | 检阅报告生成方法、装置、设备和存储介质 | |
CN117592061B (zh) | 融合代码漏洞特征及属性图的源代码安全检测方法与装置 | |
CN116067618B (zh) | 一种800g高速光模块的自动化生产及调测方法 |
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 |