CN101777022A - 一种软件可靠性的分析方法及*** - Google Patents
一种软件可靠性的分析方法及*** Download PDFInfo
- Publication number
- CN101777022A CN101777022A CN 201010117982 CN201010117982A CN101777022A CN 101777022 A CN101777022 A CN 101777022A CN 201010117982 CN201010117982 CN 201010117982 CN 201010117982 A CN201010117982 A CN 201010117982A CN 101777022 A CN101777022 A CN 101777022A
- Authority
- CN
- China
- Prior art keywords
- software
- test
- time
- module
- defects count
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种软件可靠性的分析方法及***,可有效对软件的可靠性进行分析。其中,所述方法包括:获取并筛选软件测试阶段的缺陷数量;对筛选出的缺陷按时间进行拟合,得到拟合结果;根据得出的拟合结果进行趋势分析,得到软件在测试条件下发生失效的频率。
Description
技术领域
本发明涉及电子领域,尤其涉及一种软件可靠性的分析方法及***。
背景技术
通常,软件的生命周期可分为软件设计、软件测试以及软件运行三个阶段,其中,软件的设计阶段是指开发软件代码的阶段,通常在软件的设计阶段会出现各种各样的缺陷,软件的缺陷是固有的,是软件编制的失误、或代码错误。软件的测试阶段,可分为两类测试:功能测试和性能测试,其中,功能测试是指对软件是否可以实现其功能进行测试;性能测试包括负载测试和压力测试,是指验证软件的性能在正常环境和复杂***条件下重复使用是否还能满足性能指标。软件的性能测试阶段是软件缺陷大量、集中暴露的主要阶段。软件的运行阶段,是软件的实际使用阶段,是软件的缺陷发展为软件失效的阶段。
由上面的描述可知,软件缺陷到达运行阶段,将会存在导致软件失效的风险,因此,现实中出现软件可靠性的概念,软件的可靠性是指在规定的条件下和规定的时间内,软件不引起***失效的能力,可靠性的产生,势必需要对可靠性进行分析,但是目前还没有出现较好的可靠性分析的相关方法。
发明内容
本发明实施例所要解决的技术问题在于,提供一种软件可靠性的分析方法及***,可有效对软件的可靠性进行分析。
鉴于此,本发明实施例提供了一种软件可靠性的分析方法,包括:
获取并筛选软件测试阶段的缺陷数量;
对筛选出的缺陷按时间进行拟合,得到拟合结果;
根据得出的拟合结果进行趋势分析,得到软件在测试条件下发生失效的频率。
进一步,该方法还包括:
当测试条件下的环境与运行环境不相同时,对筛选出的缺陷按时间进行拟合时,需将测试阶段的时间,折算为运行阶段的时间。
进一步,该方法还包括:
根据测试阶段筛选出的缺陷数量,计算出软件的千行代码缺陷率,并通过所述千行代码率以及软件的总的代码行数,得到软件总的缺陷数量;
对于超出测试条件的运行环境,计算该运行环境在每年中所占时间比例,通过软件总的缺陷数量乘以所述时间比例得到该运行环境下的软件失效频率。
进一步,该方法还包括:
将软件在测试条件下发生失效的频率与超出测试条件的运行环境下的软件失效频率相加,得到软件在运行阶段的总的失效频率。
进一步,所述获取并筛选软件测试阶段的缺陷数量进一步包括:
识别软件测试过程中,属于性能测试的环节;
采集所述性能测试过程的测试记录,统计各环节发现的缺陷数量;
对统计的缺陷数量进行筛选,将重复记录和可靠性无关的缺陷去除。
相应的,本发明实施例还提供了一种软件可靠性的分析***,包括:
获取模块,用于获取并筛选软件测试阶段的缺陷数量;
拟合模块,用于对筛选出的缺陷按时间进行拟合,得到拟合结果;
测试分析模块,用于根据得出的拟合结果进行趋势分析,得到软件在测试条件下发生失效的频率。
进一步,该***还包括:
时间折算模块,与所述拟合模块相连,用于当测试条件下的环境与运行环境不相同时,将测试阶段的时间,折算为运行阶段的时间,并将折算后的时间输出给拟合模块。
进一步,该***还包括:
缺陷换算模块,用于根据测试阶段筛选出的缺陷数量,计算出软件的千行代码缺陷率,并通过所述千行代码率以及软件的总的代码行数,得到软件总的缺陷数量;
运行分析模块,用于对于超出测试条件的运行环境,计算该运行环境在每年中所占时间比例,通过软件总的缺陷数量乘以所述时间比例得到该运行环境下的软件失效频率。
进一步,该***还包括:
统计模块,分别与所述运行分析模块和所述测试分析模块相连,用于将软件在测试条件下发生失效的频率与超出测试条件的运行环境下的软件失效频率相加,得到软件在运行阶段的总的失效频率。
所述获取模块进一步包括:
识别模块,用于识别软件测试过程中,属于性能测试的环节;
采集模块,用于采集所述性能测试过程的测试记录,统计各环节发现的缺陷数量;
筛选模块,用于对统计的缺陷数量进行筛选,将重复记录和可靠性无关的缺陷去除。
本发明实施例通过统计引起软件失效的缺陷,并通过统计的缺陷得到软件失效的频率来反映软件运行阶段的可靠性,可有效对软件的可靠性进行分析。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的第一实施例的软件可靠性的分析方法的流程示意图;
图2是本发明第一实施例中的拟合状态示意图;
图3是本发明的第二实施例的软件可靠性的分析方法的流程示意图;
图4是本发明的第三实施例的软件可靠性的分析***的结构组成示意图;
图5是本发明的第三实施例中获取模块的一实施例的结构组成示意图;
图6是本发明的第四实施例的软件可靠性的分析***的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1是本发明的第一实施例的软件可靠性的分析方法的流程示意图,具体实现中,本发明实施例的软件可为核电厂数字化***软件。
如图1所示,本实施例的方法包括:
步骤S13,获取并筛选软件测试阶段的缺陷数量;步骤S14,对筛选出的缺陷按时间进行拟合,得到拟合结果;
步骤S15,根据得出的拟合结果进行趋势分析,得到软件在测试条件下发生失效的频率。
其中,在步骤S13,获取并筛选软件测试阶段的缺陷数据进一步包括:
识别软件测试过程中,属于性能测试的环节。
采集所述性能测试过程的测试记录,统计各环节发现的缺陷数量。
对统计的缺陷数量进行筛选,将重复记录和可靠性无关的缺陷去除。例如,如果发现的缺陷为功能缺陷,则去除,再如,如果同一缺陷被多次发现和记录,则仅保留一次记录即可。
在步骤S14,按照时间进行拟合时,可采用坐标图示的方式(如图2所示),也可采用公式直接进行拟合,即通过时间点及时间点所对应的缺陷数量得出直线或曲线函数。同时,由于缺陷的发现时间、数量是根据性能测试环节,具有阶段性的,因此,需要将软件缺陷数量,按时间段进行累计之后再进行拟合,例如参考图2,采用第一周缺陷数量54个,第二周缺陷数量18个等这一类的表达形式;时间段不宜过少,否则拟合的结果不足以反应可靠性随时间变化的趋势。
另外,在步骤S14,当测试条件下的环境与运行环境相同时,就可以直接通过测试数据反映出运行环境下软件的缺陷数量与时间的拟合关系。而当测试条件下的环境与运行环境不相同时,对筛选出的缺陷按时间进行拟合时,需将测试阶段的时间,折算为运行阶段的时间。比如,某一指标在运行时需要300,而在测试时将其扩大到30,这样如果在测试阶段第一个星期的缺陷数量为54,则对应于运行阶段,其时间也应延长,将一个星期的时间延长为十个星期。
在步骤S15,当完成步骤S14可得出一个缺陷数量随时间变化的趋势,在步骤S15通过该趋势统计出软件在测试条件下发生失效的频率,该失效频率可为次/年;次/月等。
本实施例通过在测试阶段统计引起软件失效的缺陷,并通过统计的缺陷得到软件失效的频率来反映软件运行阶段的可靠性,可有效对软件的可靠性进行分析。
图3是本发明基于第一实施例的第二实施例的软件可靠性的分析方法的流程示意图;如图3所示,本实施例的方法包括:
步骤S13,获取并筛选软件测试阶段的缺陷数量;
步骤S14,对筛选出的缺陷按时间进行拟合,得到拟合结果;
步骤S15,根据得出的拟合结果进行趋势分析,得到软件在测试条件下发生失效的频率;
步骤S16,根据测试阶段筛选出的缺陷数量,计算出软件的千行代码缺陷率,并通过所述千行代码率以及软件的总的代码行数,得到软件总的缺陷数量;
步骤S17,对于超出测试条件的运行环境,计算该运行环境在每年中所占时间比例,通过软件总的缺陷数量乘以所述时间比例得到该运行环境下的软件失效频率;
步骤S18,将软件在测试条件下发生失效的频率与超出测试条件的运行环境下的软件失效频率相加,得到软件在运行阶段的总的失效频率。
其中,本实施例的步骤S13-S15与第一实施例相同,在此不赘述。
在步骤S16,所述千行代码缺陷率是指软件每一千行代码中包含的缺陷数量,然后根据所述千行代码率以及软件的总的代码行数,得到软件总的缺陷数量。
在步骤S17,所述年份可为自然年,也可为特殊环境下的特殊时间限制,比如,当软件运行在核电站***中,所述每年即指核反应的堆年。
本实施例通过在测试阶段统计引起软件失效的缺陷,并通过统计的缺陷得到软件失效的频率来反映软件运行阶段的可靠性,同时,通过千行代码率来反映超出测试条件下的软件的失效频率,并与测试环境下的失效频率相结合,共同反映整个软件运行阶段的失效频率,可有效对软件的可靠性进行分析。
图4是本发明的第三实施例的软件可靠性的分析***的结构组成示意图;如图4所示,本***包括获取模块42、拟合模块43、测试分析模块44、时间折算模块45(可选),其中:
所述获取模块42,用于获取并筛选软件测试阶段的缺陷数量。进一步,如图5所示,获取模块42包括:
识别模块421,用于识别软件测试过程中,属于性能测试的环节;
采集模块422,用于采集所述性能测试过程的测试记录,统计各环节发现的缺陷数量;
筛选模块423,用于对统计的缺陷数量进行筛选,将重复记录和可靠性无关的缺陷去除。例如,如果发现的缺陷为功能缺陷,则去除,再如,如果同一缺陷被多次发现和记录,则仅保留一次记录即可。
所述拟合模块43,用于对筛选出的缺陷按时间进行拟合,得到拟合结果。具体的,拟合模块43可可采用坐标图示的方式(如图2所示),也可采用公式直接进行拟合,即通过时间点及时间点所对应的缺陷数量得出直线或曲线函数。同时,由于缺陷的发现时间、数量是根据性能测试环节,具有阶段性的,因此,需要将软件缺陷数量,按时间段进行累计之后再进行拟合,例如参考图2,采用第一周缺陷数量54个,第二周缺陷数量18个等这一类的表达形式;时间段不宜过少,否则拟合的结果不足以反应可靠性随时间变化的趋势。
所述测试分析模块44,用于根据得出的拟合结果进行趋势分析,得到软件在测试条件下发生失效的频率。具体的,该失效频率可为次/年;次/月等。
所述时间折算模块45,与所述拟合模块43相连,用于当测试条件下的环境与运行环境不相同时,将测试阶段的时间,折算为运行阶段的时间,并将折算后的时间输出给拟合模块43。当测试条件下的环境与运行环境相同时,就可以直接通过测试数据反映出运行环境下软件的缺陷数量与时间的拟合关系。而当测试条件下的环境与运行环境不相同时,对筛选出的缺陷按时间进行拟合时,需要时间折算模块45将测试阶段的时间折算为运行阶段的时间。比如,某一指标在运行时需要300,而在测试时将其扩大到30,这样如果在测试阶段第一个星期的缺陷数量为54,则对应于运行阶段,其时间也应延长,将一个星期的时间延长为十个星期。
本实施例通过在测试阶段统计引起软件失效的缺陷,并通过统计的缺陷得到软件失效的频率来反映软件运行阶段的可靠性,可有效对软件的可靠性进行分析。
图6是本发明的基于第三实施例的第四实施例的软件可靠性的分析***的结构组成示意图;如图6所示,本实施例的***包括:包括获取模块42、拟合模块43、测试分析模块44、时间折算模块45(可选)、缺陷换算模块46、运行分析模块47以及统计模块48,其中:
获取模块42、拟合模块43、测试分析模块44以及时间折算模块45与第三实施例相同,在此不赘述。
所述缺陷换算模块46,用于根据测试阶段筛选出的缺陷数量,计算出软件的千行代码缺陷率,并通过所述千行代码率以及软件的总的代码行数,得到软件总的缺陷数量。其中,所述千行代码缺陷率是指软件每一千行代码中包含的缺陷数量。
所述运行分析模块47,用于对于超出测试条件的运行环境,计算该运行环境在每年中所占时间比例,通过软件总的缺陷数量乘以所述时间比例得到该运行环境下的软件失效频率。其中,所述每年可为自然年,也可为特殊环境下的特殊时间限制,比如,当软件运行在核电站***中,所述每年即指核反应的堆年。
所述统计模块48,分别与所述运行分析模块47和所述测试分析模块44相连,用于将软件在测试条件下发生失效的频率与超出测试条件的运行环境下的软件失效频率相加,得到软件在运行阶段的总的失效频率。
本实施例通过在测试阶段统计引起软件失效的缺陷,并通过统计的缺陷得到软件失效的频率来反映软件运行阶段的可靠性,同时,通过千行代码率来反映超出测试条件下的软件的失效频率,并与测试环境下的失效频率相结合,共同反映整个软件运行阶段的失效频率,可有效对软件的可靠性进行分析。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种软件可靠性的分析方法,其特征在于,包括:
获取并筛选软件测试阶段的缺陷数量;
对筛选出的缺陷按时间进行拟合,得到拟合结果;
根据得出的拟合结果进行趋势分析,得到软件在测试条件下发生失效的频率。
2.如权利要求1所述的软件可靠性的分析方法,其特征在于,还包括:
当测试条件下的环境与运行环境不相同时,对筛选出的缺陷按时间进行拟合时,需将测试阶段的时间,折算为运行阶段的时间。
3.如权利要求1或2所述的软件可靠性的分析方法,其特征在于,还包括:
根据测试阶段筛选出的缺陷数量,计算出软件的千行代码缺陷率,并通过所述千行代码率以及软件的总的代码行数,得到软件总的缺陷数量;
对于超出测试条件的运行环境,计算该运行环境在每年中所占时间比例,通过软件总的缺陷数量乘以所述时间比例得到该运行环境下的软件失效频率。
4.如权利要求3所述的软件可靠性的分析方法,其特征在于,还包括:
将软件在测试条件下发生失效的频率与超出测试条件的运行环境下的软件失效频率相加,得到软件在运行阶段的总的失效频率。
5.如权利要求1所述的软件可靠性的分析方法,其特征在于,所述获取并筛选软件测试阶段的缺陷数量进一步包括:
识别软件测试过程中,属于性能测试的环节;
采集所述性能测试过程的测试记录,统计各环节发现的缺陷数量;
对统计的缺陷数量进行筛选,将重复记录和可靠性无关的缺陷去除。
6.一种软件可靠性的分析***,其特征在于,包括:
获取模块,用于获取并筛选软件测试阶段的缺陷数量;
拟合模块,用于对筛选出的缺陷按时间进行拟合,得到拟合结果;
测试分析模块,用于根据得出的拟合结果进行趋势分析,得到软件在测试条件下发生失效的频率。
7.如权利要求6所述的分析***,其特征在于,还包括:
时间折算模块,与所述拟合模块相连,用于当测试条件下的环境与运行环境不相同时,将测试阶段的时间,折算为运行阶段的时间,并将折算后的时间输出给拟合模块。
8.如权利要求6或7所述的分析***,其特征在于,还包括:
缺陷换算模块,用于根据测试阶段筛选出的缺陷数量,计算出软件的千行代码缺陷率,并通过所述千行代码率以及软件的总的代码行数,得到软件总的缺陷数量;
运行分析模块,用于对于超出测试条件的运行环境,计算该运行环境在每年中所占时间比例,通过软件总的缺陷数量乘以所述时间比例得到该运行环境下的软件失效频率。
9.如权利要求8所述的分析***,其特征在于,还包括:
统计模块,分别与所述运行分析模块和所述测试分析模块相连,用于将软件在测试条件下发生失效的频率与超出测试条件的运行环境下的软件失效频率相加,得到软件在运行阶段的总的失效频率。
10.如权利要求6所述的分析***,其特征在于,所述获取模块进一步包括:
识别模块,用于识别软件测试过程中,属于性能测试的环节;
采集模块,用于采集所述性能测试过程的测试记录,统计各环节发现的缺陷数量;
筛选模块,用于对统计的缺陷数量进行筛选,将重复记录和可靠性无关的缺陷去除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010117982 CN101777022A (zh) | 2010-03-03 | 2010-03-03 | 一种软件可靠性的分析方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010117982 CN101777022A (zh) | 2010-03-03 | 2010-03-03 | 一种软件可靠性的分析方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101777022A true CN101777022A (zh) | 2010-07-14 |
Family
ID=42513491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010117982 Pending CN101777022A (zh) | 2010-03-03 | 2010-03-03 | 一种软件可靠性的分析方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101777022A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102393832A (zh) * | 2011-10-14 | 2012-03-28 | 哈尔滨工业大学 | 基于改进的可加模型的构件软件可靠性分析方法 |
CN106528397A (zh) * | 2015-09-11 | 2017-03-22 | 北大方正集团有限公司 | 一种软件测试方法及其装置 |
CN106874201A (zh) * | 2017-02-14 | 2017-06-20 | 北京数码大方科技股份有限公司 | 测试方法和装置 |
CN108197018A (zh) * | 2017-12-12 | 2018-06-22 | 链家网(北京)科技有限公司 | 一种软件代码缺陷率统计方法及装置 |
CN110275825A (zh) * | 2019-05-15 | 2019-09-24 | 南京航空航天大学 | 一种基于构件影响力的软件可靠性评估方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226597B1 (en) * | 1996-11-27 | 2001-05-01 | Hamilton Sundstrand Corporation | Method of maintaining components subject to fatigue failure |
CN1368678A (zh) * | 2001-02-05 | 2002-09-11 | 联华电子股份有限公司 | 判断失效率与选择最佳预处理周期的方法 |
-
2010
- 2010-03-03 CN CN 201010117982 patent/CN101777022A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226597B1 (en) * | 1996-11-27 | 2001-05-01 | Hamilton Sundstrand Corporation | Method of maintaining components subject to fatigue failure |
CN1368678A (zh) * | 2001-02-05 | 2002-09-11 | 联华电子股份有限公司 | 判断失效率与选择最佳预处理周期的方法 |
Non-Patent Citations (1)
Title |
---|
《中国优秀硕士论文电子期刊》 20070915 姚珍 《基于失效数据的软件可靠性评估及分析工具的实现》 第34页第4行-第35页第16行、第38页第22行-第39页第8行 1-10 , * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102393832A (zh) * | 2011-10-14 | 2012-03-28 | 哈尔滨工业大学 | 基于改进的可加模型的构件软件可靠性分析方法 |
CN106528397A (zh) * | 2015-09-11 | 2017-03-22 | 北大方正集团有限公司 | 一种软件测试方法及其装置 |
CN106528397B (zh) * | 2015-09-11 | 2019-03-29 | 北大方正集团有限公司 | 一种软件测试方法及其装置 |
CN106874201A (zh) * | 2017-02-14 | 2017-06-20 | 北京数码大方科技股份有限公司 | 测试方法和装置 |
CN108197018A (zh) * | 2017-12-12 | 2018-06-22 | 链家网(北京)科技有限公司 | 一种软件代码缺陷率统计方法及装置 |
CN110275825A (zh) * | 2019-05-15 | 2019-09-24 | 南京航空航天大学 | 一种基于构件影响力的软件可靠性评估方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101093462B (zh) | 数据库应用集群压力测试自动化方法 | |
CN109446076A (zh) | 软件项目测试方法、***、存储介质及终端设备 | |
CN100392617C (zh) | 片上***与应用于其中的测试/除错方法 | |
CN101777022A (zh) | 一种软件可靠性的分析方法及*** | |
CN105068929A (zh) | 测试脚本生成方法和装置、测试方法、测试装置以及测试*** | |
CN1804808A (zh) | 优化测试顺序的方法 | |
CN103049371A (zh) | Android应用程序测试方法和测试装置 | |
US8219856B2 (en) | Memory growth detection | |
CN1248116C (zh) | 一种基于主机平台的嵌入式模块和子***的通用测试装置 | |
US20080294943A1 (en) | Sata interface tester and testing method | |
CN111679977B (zh) | 一种基于Jest的React项目单元测试方法、设备及存储介质 | |
CN111858698A (zh) | 一种数据检查方法、数据检查装置及终端设备 | |
CN107516546B (zh) | 一种随机存储器的在线检测装置及方法 | |
CN1953102B (zh) | 测试数据报告和分析方法及*** | |
CN101017496A (zh) | 基于最佳匹配测试结果类型自动格式化数据的方法和装置 | |
CN102918508B (zh) | 采用无探针跟踪捕获的重播体系结构执行 | |
CN112162908A (zh) | 基于字节码注入技术的程序调用链路监控实现方法及装置 | |
CN101662394B (zh) | 自动化测试***和自动化测试方法 | |
Bernardi et al. | An effective technique for minimizing the cost of processor software-based diagnosis in SoCs | |
US9625524B2 (en) | Efficient method of retesting integrated circuits | |
CN101409643B (zh) | 电信网络模型化分析方法、装置和相应的*** | |
CN102467583A (zh) | 追踪不确定信号的方法和装置 | |
CN102521134B (zh) | 一种基于大型机的测试信息检测方法及装置 | |
CN113111009A (zh) | 一种软件测试装置及测试方法 | |
CN102567192A (zh) | 一种对视音频文件基于归类组合的功能自动测试方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100714 |