CN108897680A - 一种基于soa的软件系统操作剖面构造方法 - Google Patents
一种基于soa的软件系统操作剖面构造方法 Download PDFInfo
- Publication number
- CN108897680A CN108897680A CN201810639331.8A CN201810639331A CN108897680A CN 108897680 A CN108897680 A CN 108897680A CN 201810639331 A CN201810639331 A CN 201810639331A CN 108897680 A CN108897680 A CN 108897680A
- Authority
- CN
- China
- Prior art keywords
- soa
- section
- user concurrent
- user
- probability
- 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
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/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
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)
- Stored Programmes (AREA)
Abstract
本发明提出一种基于SOA的软件系统操作剖面构造方法,以传统的操作剖面的概念为基础,并结合SOA系统的业务流程及用户并发特点,构造SOA系统的业务剖面及用户并发剖面,旨在解决传统的操作剖面不能有效描述SOA系统实际使用场景的问题。业务剖面及用户并发剖面的概率信息均来源于相似系统的使用日志,从而保证了两个剖面中使用概率的准确性。在生成测试数据时根据概率分布分别抽取用户并发剖面的用户并发数及业务剖面的业务流程,实现两个剖面融合成为一个整体的操作剖面。本发明提供的基于SOA的软件系统操作剖面构造方法具有一定的工程实用价值,可应用于软件可靠性测试与评估工程领域。
Description
技术领域
本发明涉及一种软件操作剖面构造方案,具体地说是一种针对基于SOA的软件系统并充分考虑该类软件特征的操作剖面构造方法,它属于软件可靠性测试领域。
背景技术
(1)软件可靠性测试及操作剖面构造技术
软件可靠性测试是一种通过模拟软件的实际使用情况来评估软件可靠性水平并验证软件是否满足可靠性要求的重要方法。软件可靠性测试的核心思想就是对软件的实际使用情况进行建模并构造出操作剖面,然后基于操作剖面的操作概率随机抽取测试数据并执行测试。传统的软件可靠性测试主要过程包括软件的操作剖面或使用剖面构造、可靠性测试数据生成、可靠性测试执行等。
(2)基于SOA架构的软件特征、优势及重要影响
面向服务的体系结构(Software-Oriented Architecture,SOA)是一种基于服务的松耦合、粗粒度的体系思想,通过编排一系列具有特定功能的服务实现业务功能。SOA具有的接口标准化、服务可重用、松散耦合等特点在应对系统集成的复杂性时具有极大的优势,正改变着软件工程的现在和未来。目前SOA迎来了其发展的成熟期,大量IT企业对SOA的优势已达成共识,并纷纷采用SOA架构来构建企业软件系统。
(3)针对SOA软件进行操作剖面构造及可靠性测试的必要性
伴随着SOA软件的迅速普及,其可靠性问题越来越受到人们的广泛关注,传统的软件操作剖面构造方法已不能有效描述该类软件的业务流程、用户并发等特点,从而难以描述其实际使用场景。如何合理有效地对传统的操作剖面进行优化改进,使得构造出的操作剖面能够体现SOA软件系统的特点,已经成为SOA软件可靠性测试工作中迫切需要解决的一个问题。
发明内容
(1)本发明的主要内容及旨在解决的问题:
本发明以SOA软件的可靠性测试需求为背景,针对传统的操作剖面不能有效描述该类软件的实际使用情况这一现状,结合SOA软件的特点,提出一种由业务剖面及用户并发剖面组成的操作剖面构造方法,以解决SOA软件可靠性测试过程中面临的使用场景描述不全面、操作概率不精确等问题。
(2)本发明的技术方案:
本发明的技术实现框架如附图1,一种基于SOA的软件系统操作剖面构造方法,构造过程主要通过以下四个部分内容实现:
1)确定构造操作剖面的信息来源
SOA软件系统的操作剖面构造方法的信息来源为:业务结构图、新增需求和历史日志,见图1中的“输入”一栏。从系统的业务结构图和服务器的使用日志中可提取业务流程及使用概率信息。此外,在相似系统的基础上,被测SOA软件系统存在新增业务的情况,新增业务概率通过专家经验、用户调查等方法直接给出。
2)构造SOA软件的业务剖面
业务剖面由业务流程及其发生概率组成,其中,SOA软件系统的业务流程是利用深度遍历业务结构图的方法生成的,业务结构图是由该系统所有的业务流程组成的网状图,通过深度优先搜索算法可遍历出这些业务流程。业务流程的发生概率由相似系统的历史日志及新增需求提供,新增需求提供了新增业务流程的发生概率。对于与相似系统的业务流程较为相似的被测系统的业务流程,首先从相似系统的日志中挖掘并计算出相似系统的业务流程概率,然后将被测SOA系统的业务流程与相似系统的业务流程进行相似度匹配,按照基于相似度寻找最佳匹配的方法确定概率。
3)构造SOA软件的用户并发剖面
为描述SOA软件的用户并发场景,构造体现该类软件用户并发特点的用户并发剖面。用户并发剖面由用户并发数区间及其概率构成,从相似系统的使用日志获取用户并发数据,以相似系统的用户并发情况近似描述被测系统的用户并发场景。
4)业务剖面与用户并发剖面的融合
分别抽取业务剖面的业务流程及用户并发剖面的用户并发数,将两个剖面融合成为一个整体的操作剖面,以生成SOA软件的可靠性测试数据。
(3)本发明的优点:
与现有的操作剖面构造方法相比,该方法有如下的优点:
a)本发明提出的业务剖面能够体现SOA软件的业务流程特点;
b)本发明提出的用户并发剖面能够体现SOA软件的用户并发特点;
c)本发明提出的针对SOA软件的操作剖面构造方法充分利用实际的使用日志,能够更准确描述该类软件的实际使用情况。
d)本发明提出的操作剖面构造方法不仅适用于SOA软件,而且能够运用到具有操作时序性及用户并发特点的其他软件系统的操作剖面构造过程,具有良好的普适性。
附图说明
图1为基于SOA的软件系统操作剖面构造方法原理;
图2为SOA软件的业务剖面构造方法;
图3为深度优先遍历的算法流程;
图4为业务剖面的概率确定方法原理;
图5为SOA软件的用户并发剖面构造原理;
图6为SOA系统的平均用户并发数直方图示例;
图7为SOA系统的用户并发剖面示例;
图8为基于SOA系统的操作剖面的可靠性测试数据生成原理。
具体实施方式
下面结合附图,对本发明的技术方案作进一步具体说明,具体实施步骤如下:
步骤一、确定构造操作剖面的信息来源
SOA软件系统的操作剖面构造方法的信息来源为:业务结构图、新增需求和历史日志。
步骤二、生成业务剖面的业务流程
业务剖面的构造方法见图2,SOA系统的业务流程是利用深度优先遍历的方法遍历业务结构图生成的,从业务结构图进行深度优先遍历生成业务流程的算法流程如图3所示。首先建立业务结构图的邻接矩阵,从起始节点开始入栈,在邻接矩阵中逐步搜索与其相邻的节点并将其入栈,直到搜索的终止节点为止;然后回溯至前一节点继续深度搜索其他路径,直至完成整个业务结构图的遍历为止。
步骤三、确定业务剖面的业务流程概率
图4为业务剖面的概率确定方法原理。首先从相似系统的日志中挖掘出相似系统的业务流程概率,然后将被测SOA系统的业务流程与相似系统的业务流程进行相似度匹配,按照基于相似度寻找最佳匹配的方法确定概率。比如,业务流程Li与Lj分别属于相似系统与被测系统,且Lj与Li的相似度值均大于Lj与相似系统中其他业务流程的相似度,则Li与Lj称为最佳匹配,可将业务流程Li的发生概率赋给业务流程Lj。对于新增的业务流程,其发生概率由新增需求提供,或采用专家经验或用户调查的方法确定概率。最终被测系统所有业务流程的概率之和应按照一定的比例缩放为1。
确定业务概率最核心的部分是计算业务流程间的相似度,本发明给出两个业务流程间的相似度计算公式:
其中,Sim(L1,L2)表示业务流程L1与L2的相似度,EditDis(L1,L2)表示由业务流程L1转化为L2的编辑距离,max.costdelete(L1,L2)表示L1与L2两者中最长的业务流程的所有节点和边的删除代价值。上式中的分数部分表示两个业务流程间的差异度,即一个业务流程转化为另一个业务流程的编辑代价占最长业务流程中所有节点和边的删除代价的比重。其中,节点指的是调用的操作,用英文字符串表示,边表示操作之间的逻辑关系。编辑代价指的是从一个字符串或业务流程转化为另一个字符串或业务流程所需编辑操作(增加、删除或替换)的最小值,增加或删除一个字符串的操作耗费的代价为1,替换操作的代价为2。
编辑距离计算公式为:
EditDis(L1,L2)=(W1,W2,W3)T·(costadd&del_N(L1,L2),costsub_N(L1,L2),cost_E(L1,L2))
上式中,(costadd&del_N(L1,L2),costsub_N(L1,L2),cost_E(L1,L2))表示增删节点、替换节点和边操作的代价。(W1,W2,W3)表示增删节点的代价权重、替换节点的代价权重和边操作的代价权重,该组参数取实验最佳值(1,2,0.5)。边操作(增加与删除)的编辑代价为1,节点增加或删除的编辑代价为1,节点替换的编辑代价为:
costsub_N(L1,L2)=1-Sim(N1,N2)
两个节点字符串N1与N2的相似度计算公式为:
其中,cost(N1,N2)表示两个字符串N1与N2之间的编辑代价,max.length(N1,N2)表示字符串N1与N2中最长字符串的长度。
步骤四、平均用户并发数的计算
用户并发剖面描述了一段时间内用户并发量的平均情况,用户并发剖面的构造原理见图5。在计算平均用户并发数时,首先把日志分成多个相等的时间段,然后在每个时间段内根据IP地址的不同识别出不同的用户并计算出每个用户执行业务流程的时间,根据平均用户并发数的计算公式(见步骤5)计算出每段时间内的平均用户并发数。图6为SOA系统的平均用户并发数直方图示例。平均用户并发数的计算流程如下:
输入:相似系统的使用日志
输出:n个时间段内的平均用户并发数
步骤1:将日志文件划分为时间间隔相等的n段日志;
步骤2:从n段日志中的第一段日志开始,选定该段日志的第一条日志的用户IP,并逐条识别该用户执行操作的日志,统计该用户执行的业务流程执行时间;
步骤3:统计出每一段时间内的日志所有N个用户执行业务流程的总时间,记为t1,t2,t3,…,tN;
步骤4:N个用户每个用户的平均执行时间为
步骤5:某一时间段T内的平均用户并发数Ci=(N*t)/T;
步骤6:重复步骤3、4、5,计算出n个时间段内的平均用户并发数C1,C2,…,Cn;
步骤五、用户并发数区间的设定
设定用户并发数区间时,首先需要根据每个时间段内的平均用户并发数得到用户并发数随时间变化的直方图,然后利用百分比划分的方法将平均用户并发数划分为不同的且等百分比的区间段,以此作为用户并发数区间。平均用户并发数区间划分的具体方法为:为突出用户并发数多少的层次性,以所有平均用户并发数中的最大值即最大平均用户并发数为基础,计算其他所有平均用户并发数占最大平均用户并发数的比例。然后根据所占的比例大小(从0%到100%)划分为m个用户并发数区间,这m个区间具有相等的比例跨度(比如,划分为5个区间,则比例跨度为20%)。
步骤六、用户并发数区间概率的确定
图7为SOA系统的用户并发剖面示例。用户并发剖面是用户并发数区间的概率分布,每个用户并发数区间的概率表示该区间的用户并发数所占用的时间总和占日志总时间的比例。根据每个用户并发数区间所占用的时间与总时间之比计算出所有用户并发数区间的概率,构造出SOA软件系统的用户并发剖面。
步骤七、业务剖面与用户并发剖面的融合
在生成测试数据时分别抽取业务剖面的业务流程及用户并发剖面的用户并发数,将两个剖面融合成为一个整体的操作剖面。图8为基于SOA系统的操作剖面的可靠性测试数据生成原理。根据SOA软件系统的操作剖面生成可靠性测试数据的步骤如下:
步骤1:根据业务剖面的业务流程概率抽取一条业务流程Li;
步骤2:在用户并发剖面中根据各个用户并发数区间段的概率抽取用户并发数区间并生成区间内的一个随机用户并发数Uj;
步骤3:重复抽取业务剖面生成Uj条业务流程,构成一条测试数据;
步骤4:重复步骤1、2、3生成可靠性测试要求的N条测试数据。
Claims (4)
1.一种基于SOA的软件系统操作剖面构造方法,其特征在于包括:
利用本方法构造出的SOA软件系统的操作剖面由业务剖面及用户并发剖面组成,分别体现SOA软件系统的业务流程及用户并发特点;
业务剖面及用户并发剖面的概率数据均来源于相似系统的使用日志,并利用相似度匹配的方法实现两个系统间业务流程概率的映射,保证了操作概率的准确性;
SOA软件系统的业务剖面与用户并发剖面融合为一个整体的操作剖面发生在可靠性测试数据的生成过程中。
2.根据权利要求1所述的基于SOA的软件系统操作剖面构造方法,其特征在于:所述的业务剖面由SOA系统的业务流程及其发生概率构成,通过深度遍历SOA系统的业务结构图生成业务流程,从相似系统的使用日志获取该系统的业务流程概率,并通过相似度匹配的方法将其映射为被测SOA系统的业务流程概率。
3.根据权利要求1所述的基于SOA的软件系统操作剖面构造方法,其特征在于:所述的用户并发剖面由用户并发数区间及其发生概率构成,从相似系统的使用日志获取用户并发数据,以相似系统的用户并发情况近似描述被测系统的用户并发场景,用户并发剖面构造过程包括平均用户并发数的计算、用户并发数区间的设定和用户并发数区间概率的分配等步骤。
4.根据权利要求1、2和3所述的基于SOA的软件系统操作剖面构造方法,其特征在于:在生成可靠性测试数据时根据用户并发剖面和业务剖面的概率分布分别抽取用户并发数及业务流程,将两个剖面融合成一个整体的操作剖面,以指导SOA软件的可靠性测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810639331.8A CN108897680B (zh) | 2018-06-20 | 2018-06-20 | 一种基于soa的软件系统操作剖面构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810639331.8A CN108897680B (zh) | 2018-06-20 | 2018-06-20 | 一种基于soa的软件系统操作剖面构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108897680A true CN108897680A (zh) | 2018-11-27 |
CN108897680B CN108897680B (zh) | 2021-04-06 |
Family
ID=64345416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810639331.8A Active CN108897680B (zh) | 2018-06-20 | 2018-06-20 | 一种基于soa的软件系统操作剖面构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108897680B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783381A (zh) * | 2019-01-07 | 2019-05-21 | 中国银行股份有限公司 | 一种测试数据生成方法、装置及系统 |
CN110427016A (zh) * | 2019-08-05 | 2019-11-08 | 上海无线电设备研究所 | 一种相控阵天线波束控制系统的可靠性测试方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5548718A (en) * | 1994-01-07 | 1996-08-20 | Microsoft Corporation | Method and system for determining software reliability |
CN102629233A (zh) * | 2012-01-09 | 2012-08-08 | 北京航空航天大学 | 一种软件可靠性测试数据生成方法及其计算机辅助工具 |
CN102662841A (zh) * | 2012-04-01 | 2012-09-12 | 北京航空航天大学 | 一种软硬件结合的可靠性综合试验剖面构造方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914353B (zh) * | 2014-04-17 | 2016-11-23 | 北京航空航天大学 | 结合软件可靠性测试与硬件可靠性试验的联合试验方法 |
-
2018
- 2018-06-20 CN CN201810639331.8A patent/CN108897680B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5548718A (en) * | 1994-01-07 | 1996-08-20 | Microsoft Corporation | Method and system for determining software reliability |
CN102629233A (zh) * | 2012-01-09 | 2012-08-08 | 北京航空航天大学 | 一种软件可靠性测试数据生成方法及其计算机辅助工具 |
CN102662841A (zh) * | 2012-04-01 | 2012-09-12 | 北京航空航天大学 | 一种软硬件结合的可靠性综合试验剖面构造方法 |
Non-Patent Citations (1)
Title |
---|
何双: "《中国优秀硕士学位论文数据库》", 《中国优秀硕士学位论文数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783381A (zh) * | 2019-01-07 | 2019-05-21 | 中国银行股份有限公司 | 一种测试数据生成方法、装置及系统 |
CN109783381B (zh) * | 2019-01-07 | 2021-11-09 | 中国银行股份有限公司 | 一种测试数据生成方法、装置及系统 |
CN110427016A (zh) * | 2019-08-05 | 2019-11-08 | 上海无线电设备研究所 | 一种相控阵天线波束控制系统的可靠性测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108897680B (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7685141B2 (en) | Connection sub-graphs in entity relationship graphs | |
CN106452825B (zh) | 一种基于改进决策树的配用电通信网告警关联分析方法 | |
Touran | Calculation of contingency in construction projects | |
CN100568179C (zh) | 一种基于关系的测试用例生成方法 | |
Pierro et al. | Are the gas prices oracle reliable? a case study using the ethgasstation | |
CN101377758B (zh) | 一种生成测试用例的方法和装置 | |
CN108897680A (zh) | 一种基于soa的软件系统操作剖面构造方法 | |
Iskandar et al. | Software size measurement of knowledge management portal with use case point | |
CN108845942A (zh) | 产品特征管理方法、装置、系统及存储介质 | |
CN108509198B (zh) | 一种基于中性bom的产品电子图册构建方法 | |
CN114841789B (zh) | 基于区块链的审计审价故障数据在线编辑方法及系统 | |
CN112541711A (zh) | 模型构建方法、装置、计算机设备和存储介质 | |
Fernandez-Sanz et al. | Practical application of UML activity diagrams for the generation of test cases | |
CN109189849B (zh) | 一种标准化、流程化的数据录入方法和系统 | |
CN106056299A (zh) | 一种基于流程挖掘的决策支持方法及装置 | |
Dittrich et al. | Network analysis of software repositories: identifying subject matter experts | |
Al-Deek et al. | Computing travel time reliability in transportation networks with multistates and dependent link failures | |
Wang et al. | Quantifying the flattening of internet topology | |
CN115239066A (zh) | 一种通信信息化数据管控平台 | |
Shahzadi et al. | Role of Stochastic Petri Net (SPN) in process discovery for modelling and analysis | |
CN112100165A (zh) | 基于质量评估的交通数据处理方法、系统、设备和介质 | |
Urem et al. | Developing operational profile for ERP software module reliability prediction | |
Shahzadi et al. | Research Article Role of Stochastic Petri Net (SPN) in Process Discovery for Modelling and Analysis | |
Wang et al. | KS-Diff: a key structure based difference detection method for process models | |
TWI476709B (zh) | Work flow management system and method |
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 |