CN113157585B - 一种基于测试工作量变化的开源软件优化发布方法 - Google Patents
一种基于测试工作量变化的开源软件优化发布方法 Download PDFInfo
- Publication number
- CN113157585B CN113157585B CN202110468722.XA CN202110468722A CN113157585B CN 113157585 B CN113157585 B CN 113157585B CN 202110468722 A CN202110468722 A CN 202110468722A CN 113157585 B CN113157585 B CN 113157585B
- Authority
- CN
- China
- Prior art keywords
- open source
- source software
- time
- workload
- infinity
- 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
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/362—Software debugging
- G06F11/3628—Software debugging of optimised code
-
- 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及开源软件的优化发布,具体为一种基于测试工作量变化的开源软件优化发布方法。该方法是通过确定开源软件优化发布时间实现的,具体为,首先分别得到开源软件达到最小测试工作量所用的时间TE和开源软件满足预先设定的可靠性级别所用的时间TR,由于开源软件开发和测试的复杂性,需综合考虑两者的影响,即TE和TR取两者最大值,就可得到开源软件优化发布时间,实现开源软件优化发布。该发明基于志愿者和用户所花费的测试工作量作为预测开源软件优化发布的时间更符合实际的开源软件项目开发的情况,能够更准确地预测开源软件优化发布的时间,更能反映开源社区的生态变化,体现开源软件项目动态开发的特征。
Description
技术领域
本发明涉及软件的优化发布,具体为一种基于测试工作量变化的开源软件优化发布方法。
背景技术
一般的软件优化发布主要考虑成本情况。由于开源软件的开发和测试主要由世界各地的志愿者和用户完成,因此开源软件的开发和测试成本并不是软件优化发布的主要因素。因此,开源软件的优化发布主要考虑开源软件开发和测试过程中志愿者和用户的测试工作量消耗。
一般来说,如果志愿者和用户对新发布的开源软件感兴趣或满足需求,他们会做大量的工作来使用、开发和测试软件。相反,如果志愿者和用户对新发布的开放源码软件不感兴趣或不符合要求,那么他们在使用、开发和测试软件方面所做的工作就很少。因此,测试工作是优化开源软件发布的一个重要因素。当开源软件在开发和测试过程中的测试工作量达到最小时,开发者可以考虑发布新版本的软件。
发明内容
针对上述问题本发明提供了一种基于测试工作量变化的开源软件优化发布方法。
为了达到上述目的,本发明采用了下列技术方案:
本发明提供了一种基于测试工作量变化的开源软件优化发布方法,是通过确定开源软件优化发布时间实现的,具体包括以下步骤:
首先,建立测试工作量的函数:
式中,E(t)表示开源软件开发和测试过程中期望使用的总的测试工作量;E1表示在当前版本中去除一个故障期望使用的工作量;E2表示在以后的版本中去除一个故障期望使用的工作量;E3表示在当前版本中检测出一个故障期望每单位时间使用的工作量;E4表示在当前版本中检测出引进故障期望使用总的工作量;t表示测试时间变量;TL表示开源软件的生命周期;μ(t)表示开源软件可靠性模型,即式中,a,ω,β,d,θ为开源软件可靠性模型的参数;i=0,1,2,3,...,n;n为正整数;i!=(i-1)×(i-2)×(i-3)×,...,×1,0!=1。
对于当前版本中没有去除的故障,需要做更多的工作才能在以后的版本中去除,因此,E2>E1>0;
由于在确定开源软件开发和测试过程中所需工作量的同时,也需要考虑开源软件到达的可靠性程度,因此,基于工作量的开源软件优化发布时间可通过以下方法得到:
式中,表示可靠性函数,即t时刻开始,s时间内无故障运行的概率;R0预先设定的可靠性级别,它是一个常量;T*表示开源软件优化发布时间;TE表示开源软件达到最小测试工作量所用的时间;TR表示开源软件满足预先设定的可靠性级别所用的时间;s表示一段测试时间。
进一步,若E1,E2,E3,E4都是常量,则开源软件优化发布时间TE可以通过最小化测试工作量函数E(t)获得,具体步骤为:
对式(1)两边求导,得:
对式(3)两边求导,可得:
E”(t)=(E1-E2)μ”(t) (4)
(1)当E”(t)<0并且t∈[0,∞),则E'(t)是一个下降的函数,此时有以下三种情形:
如果E'(0)≤0,并且E(t)是一个非增函数,此时TE=∞,E(t)取最小值;
如果E'(∞)>0,并且E(t)是一个增函数,此时TE=0,E(t)取最小值;
如果E'(0)>0,并且E'(∞)<0,当t∈(0,t1],t1一定存在并且E'(t)>0;当t∈(t1,∞],E'(t)<0并且t1=[E'(0)]-1,此时,如果E'(0)≤E'(∞),那么TE=0;如果E'(0)>E'(∞),那么TE=∞;
(2)当E”(t)>0并且t∈[0,∞),则E'(t)是一个增函数,此时有以下三种情形:
如果E'(0)≥0,并且E(t)是一个非减函数;此时TE=0,E(t)取最小值;
如果E'(∞)≤0,并且E(t)是一个非增函数;此时TE=∞,E(t)取最小值;
如果E'(0)<0,当t∈(0,t2],t2一定存在并且E'(t)<0;当t∈(t2,∞],E'(t)≥0,如果TE=t2,那么TE=∞,此时E(t)取最小值并且t2=[E'(0)]-1;
(3)当t∈(t3,∞]并且E”(t)>0,E'(t)是一个增函数,此时有以下三种情形:
如果E'(0)≥0,则TE=t3;
如果E'(∞)≤0,则TE=∞;
如果E'(t3)<0,并且E'(∞)>0,则TE=t0∈(0,t3]并且t0=[E'(0)]-1;
(4)当t∈(0,t3]并且E”(t)>0,E'(t)是一个增函数,此时有以下三种形式:
如果E'(0)≥0,则TE=0;
如果E'(t3)≤0,则TE=t3;
如果E'(0)<0,并且E'(t3)>0,则TE=t0∈(0,t3]并且t0=[E'(0)]-1;
(5)当t∈(t3,∞]并且E”(t)<0,E'(t)是一个减函数;此时:
如果E'(t3)≤0,则TE=∞;
如果E'(∞)>0,则TE=t3;
如果E'(t3)>0并且E'(∞)<0,则有以下两种形式:若E'(∞)<E'(t3),则TE=∞;若E'(∞)≥E'(t3),则TE=t3;
(6)当t∈(0,t3]并且E”(t)<0,E'(t)是一个减函数,此时:
如果E'(0)≤0,则TE=t3;
如果E'(t3)>0,则TE=0;
如果E'(0)>0并且E'(t3)<0,则有以下两种形式:若E'(t3)<E'(0),则TE=t3;若E'(t3)≥E'(0),则TE=0;
(7)当TE=∞,则TE=TL;即当总的工作量趋于无穷时,开源软件的优化发布时间就是开源软件的生命周期时间。
与现有技术相比本发明具有以下优点:
1、本发明公布了一种基于测试工作量变化的开源软件优化发布方法,该方法基于测试工作量的变化能够更准确地预测开源软件优化发布的时间。
2、由于开源软件的测试主要是由世界各地的志愿者和用户完成的,因此本发明基于志愿者和用户所花费的测试工作量作为预测开源软件优化发布的时间更符合实际的开源软件项目开发的情况。
3、本发明方法与其它方法相比较,基于测试工作量的变化更能反映开源社区的生态变化。更能体现开源软件项目动态开发的特征。
附图说明
图1为本发明综合考虑最小测试工作量和软件可靠性因素确定开源软件优化发布时间的结果图。
具体实施方式
下面结合本发明实施例和附图,对本发明的技术方案进行具体、详细的说明。应当指出,对于本领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干变型和改进,这些也应视为属于本发明的保护范围。
实施例
从APACHE项目收集开源软件故障数据集(表1),网址为:https://issues.apache.org/。
表1开源软件故障数据集
用100%的故障数据集(DS1)和最小二乘法估计的开源软件可靠性模型的参数如下:a=116.64,ω=0.018266,β=0.27775,d=0.12323,θ=0.35516。
假设E1=1,E2=5,E3=2,E4=800,TL=1000,R0=0.8,s=1,事先预定软件可靠性不小于80%(即R0=0.8),结合公式和图1可得出开源软件达到最小测试工作量所用的时间为TE=126.93,E(TE)=2386.3;开源软件满足预先设定的可靠性级别所用的时间TR=185.85,E(TR)=2423.5。
由于开源软件开发和测试的复杂性,达到测试耗费工作量最小值的测试时间TE和达到开源软件预先设定的可靠性值的测试时间TR是不相同的,需要综合考虑两者的影响,即TE和TR取两者最大值T*,如式(2)所示。
通过比较TE和TR,可得基于工作量的开源软件优化发布时间为T*=185.85。
Claims (2)
1.一种基于测试工作量变化的开源软件优化发布方法,其特征在于,所述方法是通过确定开源软件优化发布时间实现的,具体包括以下步骤:
首先,建立测试工作量的函数:
式中,E(t)表示开源软件开发和测试过程中期望使用的总的测试工作量;E1表示在当前版本中去除一个故障期望使用的工作量;E2表示在以后的版本中去除一个故障期望使用的工作量;E3表示在当前版本中检测出一个故障期望每单位时间使用的工作量;E4表示在当前版本中检测出引进故障期望使用总的工作量;t表示测试时间变量;TL表示开源软件的生命周期;μ(t)表示开源软件可靠性模型,即式中,a,ω,β,d,θ为开源软件可靠性模型的参数,i=0,1,2,3,...,n,n是正整数;i!=(i-1)×(i-2)×(i-3)×,...,×1,0!=1;
对于当前版本中没有去除的故障,需要做更多的工作才能在以后的版本中去除,因此,E2>E1>0;
由于在确定开源软件开发和测试过程中所需工作量的同时,也需要考虑开源软件到达的可靠性程度,因此,基于工作量的开源软件优化发布时间可通过以下方法得到:
式中,表示可靠性函数,即t时刻开始,s时间内无故障运行的概率;R0预先设定的可靠性级别,它是一个常量;T*表示开源软件优化发布时间;TE表示开源软件达到最小测试工作量所用的时间;TR表示开源软件满足预先设定的可靠性级别所用的时间;s表示一段测试时间。
2.根据权利要求1所述的一种基于测试工作量变化的开源软件优化发布方法,其特征在于:若E1,E2,E3,E4都是常量,则开源软件优化发布时间TE可以通过最小化测试工作量函数E(t)获得,具体步骤为:
对式(1)两边求导,得:
对式(3)两边求导,可得:
E”(t)=(E1-E2)μ”(t) (4)
(1)当E”(t)<0并且t∈[0,∞),则E'(t)是一个下降的函数,此时有以下三种情形:
如果E'(0)≤0,并且E(t)是一个非增函数,此时TE=∞,E(t)取最小值;
如果E'(∞)>0,并且E(t)是一个增函数,此时TE=0,E(t)取最小值;
如果E'(0)>0,并且E'(∞)<0,当t∈(0,t1],t1一定存在并且E'(t)>0;当t∈(t1,∞],E'(t)<0并且t1=[E'(0)]-1,此时,如果E'(0)≤E'(∞),那么TE=0;如果E'(0)>E'(∞),那么TE=∞;
(2)当E”(t)>0并且t∈[0,∞),则E'(t)是一个增函数,此时有以下三种情形:
如果E'(0)≥0,并且E(t)是一个非减函数;此时TE=0,E(t)取最小值;
如果E'(∞)≤0,并且E(t)是一个非增函数;此时TE=∞,E(t)取最小值;
如果E'(0)<0,当t∈(0,t2],t2一定存在并且E'(t)<0;当t∈(t2,∞],E'(t)≥0,如果TE=t2,那么TE=∞,此时E(t)取最小值并且t2=[E'(0)]-1;
(3)当t∈(t3,∞]并且E”(t)>0,E'(t)是一个增函数,此时有以下三种情形:
如果E'(0)≥0,则TE=t3;
如果E'(∞)≤0,则TE=∞;
如果E'(t3)<0,并且E'(∞)>0,则TE=t0∈(0,t3]并且t0=[E'(0)]-1;
(4)当t∈(0,t3]并且E”(t)>0,E'(t)是一个增函数,此时有以下三种形式:
如果E'(0)≥0,则TE=0;
如果E'(t3)≤0,则TE=t3;
如果E'(0)<0,并且E'(t3)>0,则TE=t0∈(0,t3]并且t0=[E'(0)]-1;
(5)当t∈(t3,∞]并且E”(t)<0,E'(t)是一个减函数;此时:
如果E'(t3)≤0,则TE=∞;
如果E'(∞)>0,则TE=t3;
如果E'(t3)>0并且E'(∞)<0,则有以下两种形式:若E'(∞)<E'(t3),则TE=∞;若E'(∞)≥E'(t3),则TE=t3;
(6)当t∈(0,t3]并且E”(t)<0,E'(t)是一个减函数,此时:
如果E'(0)≤0,则TE=t3;
如果E'(t3)>0,则TE=0;
如果E'(0)>0并且E'(t3)<0,则有以下两种形式:若E'(t3)<E'(0),则TE=t3;若E'(t3)≥E'(0),则TE=0;
(7)当TE=∞,则TE=TL;即当总的工作量趋于无穷时,开源软件的优化发布时间就是开源软件的生命周期时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110468722.XA CN113157585B (zh) | 2021-04-28 | 2021-04-28 | 一种基于测试工作量变化的开源软件优化发布方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110468722.XA CN113157585B (zh) | 2021-04-28 | 2021-04-28 | 一种基于测试工作量变化的开源软件优化发布方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113157585A CN113157585A (zh) | 2021-07-23 |
CN113157585B true CN113157585B (zh) | 2023-09-22 |
Family
ID=76872221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110468722.XA Active CN113157585B (zh) | 2021-04-28 | 2021-04-28 | 一种基于测试工作量变化的开源软件优化发布方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157585B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1420344A2 (en) * | 2002-11-13 | 2004-05-19 | Imbus Ag | Method and device for prediction of the reliability of software programs |
CN111737113A (zh) * | 2020-05-29 | 2020-10-02 | 山西大学 | 故障检测和引进非线性变化的开源软件可靠性建模方法 |
-
2021
- 2021-04-28 CN CN202110468722.XA patent/CN113157585B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1420344A2 (en) * | 2002-11-13 | 2004-05-19 | Imbus Ag | Method and device for prediction of the reliability of software programs |
CN111737113A (zh) * | 2020-05-29 | 2020-10-02 | 山西大学 | 故障检测和引进非线性变化的开源软件可靠性建模方法 |
Non-Patent Citations (3)
Title |
---|
可靠性模型中故障检测率研究述评;张策;刘宏伟;白睿;王瞰宇;王金勇;吕为工;孟凡超;;软件学报(第09期);全文 * |
开源软件可靠性综述;王金勇;吴智博;舒燕君;董剑;左德承;;智能计算机与应用(第04期);全文 * |
故障检测率不规则变化的软件可靠性模型;王金勇;吴智博;舒燕君;张展;;软件学报(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113157585A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8255902B1 (en) | Systems and methods for determining and quantifying the impact of an application on the health of a system | |
US8381208B2 (en) | Tracking application installation among a plurality of client devices | |
US7831412B1 (en) | Systems and methods for providing guidance by category on the potential impact of an application on the health of a computing system | |
CN107179879B (zh) | 用于存储设备的数据迁移的方法和装置 | |
US10002054B2 (en) | Method and system for performing automatic system recovery | |
JP7125854B2 (ja) | 自動化された試験システムの方法及び設計 | |
US20150301818A1 (en) | System and methods for updating software of templates of virtual machines | |
US10664390B2 (en) | Optimizing execution order of system interval dependent test cases | |
EP2199942A2 (en) | Methods and systems for enabling community-tested security features for legacy applications | |
TWI622933B (zh) | Client update method and device | |
CN109634626B (zh) | 一种基于bmc的远程安装服务器系统驱动的方法及系统 | |
US9940115B2 (en) | Mobile application deployment for distributed computing environments | |
US20090204946A1 (en) | Intelligent software code updater | |
CN104008104A (zh) | 处理文件变更的方法及电子装置 | |
CN106445643A (zh) | 克隆、升级虚拟机的方法及设备 | |
US9288109B2 (en) | Enabling cluster scaling | |
CN107451006A (zh) | 限制存储设备中的性能变化的技术 | |
CN113157585B (zh) | 一种基于测试工作量变化的开源软件优化发布方法 | |
CN103902408A (zh) | 使用布隆过滤器检测副本之间的偏差 | |
WO2016101607A1 (zh) | 一种cpu及cpu的启动方法 | |
CN103885798A (zh) | 一种数据处理方法及电子设备 | |
CN105025365A (zh) | 一种智能电视平台离线下载方法及系统 | |
CN110912779A (zh) | 一种集群主机健康检测方法,系统,设备及可读存储介质 | |
CN102984680B (zh) | 一种在电信运营系统的对外接口中实现号码跟踪的方法 | |
CN110879885A (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 |