CN107102909A - 一种面向复杂软件密集型系统的故障分类方法 - Google Patents

一种面向复杂软件密集型系统的故障分类方法 Download PDF

Info

Publication number
CN107102909A
CN107102909A CN201710159690.9A CN201710159690A CN107102909A CN 107102909 A CN107102909 A CN 107102909A CN 201710159690 A CN201710159690 A CN 201710159690A CN 107102909 A CN107102909 A CN 107102909A
Authority
CN
China
Prior art keywords
failure
fault
software
description
equipment system
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
CN201710159690.9A
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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN201710159690.9A priority Critical patent/CN107102909A/zh
Publication of CN107102909A publication Critical patent/CN107102909A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis

Abstract

本发明针对现有的软件故障分类方法没有考虑复杂软件密集型系统新特性的问题,提出了一种面向复杂软件密集型系统的故障分类方法,该方法充分考虑复杂软件密集型系统的新特性如逻辑复杂性、边界腐蚀性等,通过生命周期、故障类别等五个维度对故障进行分类,采用人工判定加机器自动化标识的方式来确定故障分类中各个分类属性值。本方面方法提高了对软件密集型系统故障类别划分和认知的准确程度和精细程度,为针对该类型系统的故障注入研究以及失效机理研究提供基础。

Description

一种面向复杂软件密集型系统的故障分类方法
技术领域
本发明涉及软件系统故障分类技术领域,尤其涉及一种复杂软件密集型系统的故障分类研究的技术。
背景技术
随着计算机软件以及互联网技术飞速发展,软件与其它软件、系统、设备、传感器、人的交互日益密切,因此出现了软件密集型系统的概念。软件密集型系统是指在系统的设计、构建、部署与演化过程中,软件起着核心作用的系统,如而在美国国防部计划中的全球信息网格(GIG)、Boeing777客机飞机信息管理系统(AIMS)等。复杂软件密集型系统尤其是国防军事领域的安全关键软件系统,一旦发生失效,将会造成不可估量的后果影响。
复杂软件密集型系统复杂度相对于传统的软件系统,其面向的任务的多样性系统、外部环境的易变性、设计部署的复杂性都达到了一个前所未有的程度。而且复杂软件密集型系统由于其逻辑复杂性、边界腐蚀性、长寿性与失效常态性导致其出现与传统软件系统不同的故障类型,如由于内部模块间的交互、传播出现的涌现性故障、由于软件与硬件或环境交互异常导致的交互性故障、由于长期运行过程中逐渐积累的因为不同演化策略及动态配置策略偏离软件属性约束而导致的演化性故障等。为认识、管理、预测和消除复杂软件密集型系统中的故障,对其故障进行分类是基础但是重要的一步。
发明人发现现有的软件故障分类技术存在如下问题:现有对软件故障的分类方法是针对传统的软件系统提出的,并没有考虑复杂软件密集型系统的特性。如复杂软件系统密集型系统对硬件或环境的交互越来越频繁,系统中软件与硬件或环境交互而产生的异常行为逐渐成为复杂软件密集型系统失效的重要原因。
到目前为止,还没有一种从复杂软件密集型系统各种新特性角度出发对其故障进行分类的方法。
发明内容
本发明提供一种面向复杂软件密集型系统故障分类研究的技术,考虑复杂软件密集型系统的特征,使得故障描述信息更加精细充分,为后续对软件故障进行分析研究保留足够清晰的信息。
为达到上述目的,本发明的实施例采用如下步骤。
步骤1,获取故障报告或者故障管理中心库中的故障信息,对得到的不同格式故障报告信息进行预处理,从不同形式的原始故障报告中提取出故障分类所需的信息。故障F预处理后具体包括:故障名称Name,故障发生的时间信息Time,故障发生的位置Location,故障描述信息Description等。因此经过预处理的故障F可以表示为 F(Name,Time,Location,Description)。后续步骤,利用故障F中的相关信息从生命周期L、故障影响E、故障强度S、故障类别T、故障表现形式C共5个属性对故障进行描述,这个5 个属性共同构成该故障的分类描述。即可用向量VF=<K,E,S,T,C>描述出故障F的分类。分类过程即为确定向量各个属性值的过程。
步骤2,将得到的故障发生的时间信息Time与软件生命周期划分描述文件进行模糊匹配,标识待分类故障所处的软件生命周期L。
步骤3,根据故障发生的位置Location可以确定故障影响的范围,确定是“内部影响”还是“外部影响”。结合故障描述信息Description,进一步确定故障范围E。
步骤4,将故障按照强度划分为5个级别,即I级、II级、III级、IV级、V级。故障强度越大表示导致软件失效的可能性越大并且失效导致的后果也越严重,其中I级表示故障强度最低。故障强度的划分需要结合软件系统的设计文档、需求描述文档等,甚至需要通过做仿真实验等手段来确定故障强度S。当然,工程上一种简化的做法可以是从历史数据,根据相似故障类型失效可能性来确定当前故障强度。
步骤5,根据故障描述信息Description,根据我们归纳总结的对于复杂软件密集型系统常见的故障类型来对标识故障类别T。
步骤6,根据故障描述信息Description,利用文本数据机器学习算法进行故障表现形式C的确定。
本发明的优点和积极效果在于。
(1)根据复杂软件密集型系统区别于传统的软件系统的新特性如逻辑复杂、边界腐蚀等,本发明采用多维度划分方法,通过生命周期、故障类别等5个维度对故障进行划分,从而使得软件密集型系统故障类别划分更加细致,对于复杂软件密集型系统的研究如复杂软件密集型系统故障注入研究或者是失效机理研究等具有重要意义和帮助。
(2)本发明采用人工判断加机器自动化标识结合的方式来确定故障分类中各个分类属性值,在面对复杂软件密集系统大规模的故障信息分类时在效率方面有一定的优势。随着积累的分类数据的增加,通过机器学习方法逐步提高自动化对故障分类的精确度,人工参与的比例可以越来越低,从而更加提高该方法的自动化程度。
附图说明
为了更加清楚地说明本发明实施例或技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本发明软件故障分类方法的流程图。
图2为故障表现形式数据训练器获取流程。
图3为根据训练器故障表现形式获取流程。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明所提出的方法,下面通过具体实施方式对本发明做进一步的详细和深入描述。
内存泄漏(Memory Leak,以下简写为ML)是常见的一种故障。本方面以一个ML故障为例子进行方法说明。其中该ML故障用自然语言描述如下。
第82号缺陷(编号#82),部署到实际环境,系统持续运行一段时候后,软件高精度计算模块占用CPU资源越来越多。
步骤1:对该用自然语言描述的故障进行预处理分析后,得到F(Name,Time,Location,Description)=F(82,“系统持续运行一段时间后”,“软件高精度计算模块”,“占用CPU资源越来越多”)。
步骤2:利用提现设定好的软件生命周期划分描述文件与故障发生时间进行模糊匹配。软件生命周期划分描述文件如表1所示。
表1软件生命周期划分结果。
为实现该过程的自动化在模糊匹配之前,需要对故障F中的故障发生时间信息Time 的描述语句进行词法分割,该分割过程可以借助词法分析器如Lex或Flex等进行。如本例中 Time的描述语句为“系统持续运行一段时间后”,该字符流进行入词法分析器之后产生一系列Token流“系统”、“持续”,“运行”,“一”,“断”,“时间”、“后”。将这些生成的Token流和表1中关键字/搜索规则(Keyword)进行模糊匹配,其中关机子/搜索规则中“&”表示“与”的关系。匹配过程如下所示:
for(Token流中的字符串Tokenstring)
for(Keyword中的字符串Keystring)
if(模糊匹配(Tokenstring,Keystring)==true)
{记录下Keyword对应的软件生命周期阶段;}
匹配结束之后,对模糊匹配记录的结果对匹配结果排序,匹配命中次数最高的软件生命周期作为该故障对应的软件生命周期。在本例中,“系统持续运行一段时间”对应于运行维护阶段的平稳阶段。
步骤3,根据故障发生位置信息Location可以故障影响范围。影响范围涉及到软件设计、需求确定等内容的理解,因此在该步骤需要和系统设计人员、分析人员、测试人员等进行交流合作才能较为准备地确定故障的影响范围。表2提供了一个划分结果作为内置的参考模板。
表2故障影响划分结果。
对故障影响的划分按照最严重的情况确定。其中内部影响的严重程度排序为。
SE(软件单节点影响)<LE(软件局部影响)<SE(软件系统级影响)
如一个故障导致软件系统级的失效,这个故障当然会影响到局部范围,但是我们按照最严重的情况,即确定软件系统级影响为该故障的影响。外部影响更多是从系统级进行考虑,像对周围环境的影响是通过软件密集型系统整体对外的作用产生。在本例中,经过对软件整体设计的理解,以及与相关人员的交流最终确定为“内部影响”中的“软件系统级影响”。即故障的E值为“IE(内部影响)/SE(软件系统级影响)”。
步骤4,对故障划分强度等级,可以利用专家打分法、仿真实验法等方法来确定该故障导致软件失效的可能性。通常还会参考相似系统的历史数据来得出故障强度结论。故障强度S按照以下公式进行计算。
S=P*E
其中,P表示该故障失效的概率,E表示失效对系统的影响。失效对系统的影响以打分的形式给出,如表3所示。
表3失效对系统影响打分表。
在本例中,我们可以参考以往类似的历史数据发现当软件占用CPU资源越来越多时会逐渐导致整个软件系统运行效率下降,当下降到一定程度时,整个系统会变得不稳定,出现严重的系统级故障。经过计算分析,该故障发生的概率达到0.2以上,计算失效强度之后,结合整个系统故障失效强度分布情况,因此我们将该故障定为V级故障。即本例的故障强度S 值为V。
步骤5,根据故障描述信息对该故障类别进行标识。表4为故障类别的划分结果,该划分既考虑了复杂软件密集型系统中具有和传统软件相同的故障特性,如“逻辑故障”,也考虑了复杂软件密集型系统新的特性,如“涌现型故障”。
表4故障类别划分结果。
编号 类别名称 编号 类别名称
1 功能故障 8 数据使用错误
2 性能故障 9 编程规范问题
3 接口故障 10 可维护性问题
4 控制流故障 11 代码版本问题
5 数据流故障 12 语法缺陷
6 一致性故障 13 涌现型故障
7 逻辑故障 14 随机故障
这14种是归纳的对于复杂软件密集型系统常见的故障类型,对于特定的项目和研究可以结合特定的对象添加扩展自定义的故障类型。在本例中,确定故障为“性能故障”。
步骤6,根据故障描述信息Description确定故障表现形式C,可以利用文本数据机器学习算法。即将故障描述信息文本处理后利用训练得到的分类器将其划分到特定种类中。我们将故障表现形式划分为5类,如表5所示。
表5故障表现形式划分结果。
编号 按照故障表现形式分类 说明
1 数值计算型故障 表现为数值计算方面的问题
2 数值存储型故障 表现为数值存储方面的问题
3 控制型故障 表现为控制指令方面的问题
4 传递调用型错误 表现为参数传递、调用的问题
5 累积型故障 在演化维护阶段,随着系统运行积累导致的问题
分类器的获得是重要的一步。我们选取监督学习方法,先对部分故障描述信息进行人工判断得到对应的故障表现形式。然后将得到的结果作为训练集,训练得到分类器。其流程如图2所示。因为每个系统具有的特性不相同。因此,对于不同系统,需要分别进行分类器训练。得到训练器之后,将每个待分类故障的Description按照图3所示流程得到表现形式分类结果。本例中的故障确定为累积型故障。
从例子中可以看,应用我们的对复杂软件密集型系统的故障分类方法可以快速并且从5个维度细致地对故障的属性进行确定,而分类时利用我们提出的针对各个步骤中分类结果(见表格)可以快速辅助对故障分类。

Claims (6)

1.一种面向复杂软件密集型系统的故障分类方法,其特征在于,对复杂软件密集型型系统中的故障,刻画分类步骤如下:
步骤一:故障信息获取和预处理;
获取故障报告或者故障管理中心库中的故障信息,对信息预处理,得到故障F,将其表示为F(Name,Time,Location,Description),其中Name表示故障名称,Time表示故障发生的时间信息,Location表示故障发生的位置,Description表示故障描述信息。
步骤二:分析提取故障所处的软件生命周期;
将得到的故障发生的时间信息Time与软件生命周期划分描述文件进行模糊匹配,标识待分类故障所处的软件生命周期L。
步骤三:分析确定故障影响范围;
根据故障发生的位置Location可以确定故障影响的范围,确定是“内部影响”还是“外部影响”。结合故障描述信息Description,进一步确定故障范围E。
步骤四:分析确定故障强度;
结合软件系统的设计文档、需求描述文档等,甚至需要通过做仿真实验等手段来将故障按照故障强度分为I级、II级、III级、IV级、V级共5级,分别表示软件失效的可能性越来越高以及失效导致的后果越来越严重。
步骤五:标识故障类别;
根据故障描述信息Description,根据我们归纳总结的对于复杂软件密集型系统常见的故障类型来对标识故障类别T。
步骤六:分析确定故障表现形式;
根据故障描述信息Description,利用文本数据机器学习算法进行故障表现形式C的确定。
2.根据权利要求1所述的一种面向复杂软件密集型系统的故障分类方法,其特征在于,对存在于复杂软件密集型系统中的故障从故障生命周期、故障影响、故障强度、故障类别、故障表现形式共5个角度进行刻画描述。
3.根据权利要求1所述的一种面向复杂软件密集型系统的故障分类方法,其特征在于,所述步骤一中,将待分类故障描述为向量形式,从而将故障分类问题归结为确定向量各个属性值的过程。
4.根据权利要求1所述的一种面向复杂软件密集型系统的故障分类方法,其特征在于,在所述步骤二中,通过对故障发生时间信息与提前预制的软件生命周期划分描述文件进行模糊匹配方面,标识确定出故障所处的生命周期。
5.根据权利要求1所述的一种面向复杂软件密集型系统的故障分类方法,其特征在于,在所述步骤四中,故障强度的划分结合软件系统的设计文档、需求描述文档以及通过仿真实验等。对于工程实践,提出一种简化做法,即从历史数据中根据相似故障类型失效可能性来确定故障强度。
6.根据权利要求1所述的一种面向复杂软件密集型系统的故障分类方法,其特征在于,在所述步骤六中,利用机器学习算法对文本数据进行分析,从而确定故障的表现形式。
CN201710159690.9A 2017-03-17 2017-03-17 一种面向复杂软件密集型系统的故障分类方法 Pending CN107102909A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710159690.9A CN107102909A (zh) 2017-03-17 2017-03-17 一种面向复杂软件密集型系统的故障分类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710159690.9A CN107102909A (zh) 2017-03-17 2017-03-17 一种面向复杂软件密集型系统的故障分类方法

Publications (1)

Publication Number Publication Date
CN107102909A true CN107102909A (zh) 2017-08-29

Family

ID=59675879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710159690.9A Pending CN107102909A (zh) 2017-03-17 2017-03-17 一种面向复杂软件密集型系统的故障分类方法

Country Status (1)

Country Link
CN (1) CN107102909A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153618A (zh) * 2017-12-22 2018-06-12 国网浙江杭州市萧山区供电有限公司 硬盘数据恢复方法、装置及硬盘数据恢复设备
CN108388601A (zh) * 2018-02-02 2018-08-10 腾讯科技(深圳)有限公司 故障的分类方法、存储介质及计算机设备
CN108804332A (zh) * 2018-06-14 2018-11-13 南京大学 一种基于机器学习的c程序内存泄漏智能化检测方法
CN111338942A (zh) * 2020-02-21 2020-06-26 郑州昂视信息科技有限公司 一种软件多样性的评估方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004078626A (ja) * 2002-08-20 2004-03-11 Fuji Xerox Co Ltd 情報処理装置および情報処理方法
CN105653444A (zh) * 2015-12-23 2016-06-08 北京大学 基于互联网日志数据的软件缺陷故障识别方法和系统
CN106293975A (zh) * 2015-05-26 2017-01-04 联想(北京)有限公司 信息处理方法、信息处理装置和信息处理系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004078626A (ja) * 2002-08-20 2004-03-11 Fuji Xerox Co Ltd 情報処理装置および情報処理方法
CN106293975A (zh) * 2015-05-26 2017-01-04 联想(北京)有限公司 信息处理方法、信息处理装置和信息处理系统
CN105653444A (zh) * 2015-12-23 2016-06-08 北京大学 基于互联网日志数据的软件缺陷故障识别方法和系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153618A (zh) * 2017-12-22 2018-06-12 国网浙江杭州市萧山区供电有限公司 硬盘数据恢复方法、装置及硬盘数据恢复设备
CN108153618B (zh) * 2017-12-22 2021-12-03 国网浙江杭州市萧山区供电有限公司 硬盘数据恢复方法、装置及硬盘数据恢复设备
CN108388601A (zh) * 2018-02-02 2018-08-10 腾讯科技(深圳)有限公司 故障的分类方法、存储介质及计算机设备
CN108804332A (zh) * 2018-06-14 2018-11-13 南京大学 一种基于机器学习的c程序内存泄漏智能化检测方法
CN108804332B (zh) * 2018-06-14 2021-12-17 南京大学 一种基于机器学习的c程序内存泄漏智能化检测方法
CN111338942A (zh) * 2020-02-21 2020-06-26 郑州昂视信息科技有限公司 一种软件多样性的评估方法及系统
CN111338942B (zh) * 2020-02-21 2022-09-09 郑州昂视信息科技有限公司 一种软件多样性的评估方法及系统

Similar Documents

Publication Publication Date Title
CN111459799B (zh) 一种基于Github的软件缺陷检测模型建立、检测方法及系统
CN108345544B (zh) 一种基于复杂网络的软件缺陷分布影响因素分析方法
CN107102909A (zh) 一种面向复杂软件密集型系统的故障分类方法
CN109840157A (zh) 故障诊断的方法、装置、电子设备和存储介质
Gupta et al. Novel xgboost tuned machine learning model for software bug prediction
Fioravanti et al. A study on fault-proneness detection of object-oriented systems
CN111427775B (zh) 一种基于Bert模型的方法层次缺陷定位方法
CN109902024A (zh) 一种程序路径敏感的灰盒测试方法及装置
CN108470022A (zh) 一种基于运维管理的智能工单质检方法
CN110543422B (zh) 一种用于fpr的软件包代码缺陷数据处理方法、系统及介质
CN107133176A (zh) 一种基于半监督聚类数据筛选的跨项目缺陷预测方法
CN105159827A (zh) 一种面向gui软件的可靠性加速测试方法
CN117215935A (zh) 一种基于多维度代码联合图表示的软件缺陷预测方法
Xu et al. ACGDP: An augmented code graph-based system for software defect prediction
Saraph et al. Test case generation and reduction by automated input-output analysis
CN105138612A (zh) 数据一致性差异原因的分析和定位的方法及系统
Khoshgoftaar et al. Predicting fault-prone software modules in embedded systems with classification trees
CN117520148A (zh) 基于大型语言模型的测试用例生成系统
Gao et al. Research on software defect classification
Bareja et al. A review of estimation techniques to reduce testing efforts in software development
Valueian et al. Constructing automated test oracle for low observable software
CN112463641B (zh) 一种用于软件缺陷核查的故障模式集构建方法及系统
CN113723637B (zh) 一种面向船舶维修体系的经济性修理级别分析方法及系统
CN115080386A (zh) 基于自动驾驶功能要求的场景有效性分析方法与设备
CN112463642B (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170829

WD01 Invention patent application deemed withdrawn after publication