CN103164337B - 基于有限状态机的云计算软件测试方法 - Google Patents
基于有限状态机的云计算软件测试方法 Download PDFInfo
- Publication number
- CN103164337B CN103164337B CN201310064128.XA CN201310064128A CN103164337B CN 103164337 B CN103164337 B CN 103164337B CN 201310064128 A CN201310064128 A CN 201310064128A CN 103164337 B CN103164337 B CN 103164337B
- Authority
- CN
- China
- Prior art keywords
- logic branch
- state machine
- finite state
- test tool
- automated test
- 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.)
- Expired - Fee Related
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/3676—Test management for coverage analysis
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)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于有限状态机的云计算软件测试方法,包括以下步骤:S1、在云计算系统中,将其领域对象的所有瞬时状态描述为一个有限状态机模型,并将该有限状态机的初始状态初始化;S2、根据所述有限状态机每个状态允许的操作,所述自动化测试工具分别创建其对应的逻辑分支;S3、根据所述有限状态机各个状态转移的顺序,所述自动化测试工具遍历并执行所述多个逻辑分支,且分别对所述多个逻辑分支进行测试;本发明通过有限状态机将云计算系统涉及的大量分散的领域对象的状态集中在一个整体中,并根据业务规则自动遍历所述云计算系统内可能的瞬时状态,保证了测试覆盖率,避免了关键业务的遗漏和疏忽,保障了云计算系统的质量。
Description
技术领域
本发明涉及软件测试领域,特别涉及一种基于有限状态机的云计算软件测试方法。
背景技术
随着科技和信息化的发展,基于云计算的信息管理系统在企业、机关等单位的部署率和使用率不断增大,如何在保证效率和质量的前提下,开发出满足企业、机关等单位在相关特定领域的业务需求的云计算管理系统,成为相关软件开发单位必备的能力。
开发一个基于云计算的信息管理系统面临的最主要的问题是维护大量云计算特定领域数据的状态和关系,并向用户提供在各状态间进行跳转的途径。例如一个虚拟机启动功能,实现的途径是先获取虚拟机状态,再执行判断虚拟机是否被允许启动的逻辑,最后更新虚拟机状态,类似的逻辑在一个基于云计算的信息管理系统中随处可见;随着系统规模的扩大,对领域数据状态的获取、处理和更新所需要的工作量呈现指数型增长的趋势,对大量相关逻辑代码的维护和对代码质量的保证也成为了开发过程中面临的最大难题。
软件开发单位为了解决此难题,通常会在开发过程中引入单元测试或集成测试,针对操作领域数据的业务逻辑,编写验证其是否符合需求的测试用例和套件。但每个测试用例通常针对的是单一的业务逻辑,验证的是单步的数据状态迁移,而一个基于云计算的信息管理系统往往拥有数千个需要验证的业务逻辑和状态迁移,对这些分散的逻辑进行测试,避免遗漏,保证测试的有效性和覆盖率,同样是一个艰巨的任务。
发明内容
针对现有技术的不足,本发明提供一种基于有限状态机的云计算软件测试方法,通过使用有限状态机对云计算领域的数据进行整体建模,来保证测试用例和套件能够全面的覆盖所有关键性业务逻辑。
为实现以上目的,本发明通过以下技术方案予以实现:
本发明提供一种基于有限状态机的云计算软件测试方法,包括以下步骤:
S1、在云计算系统中,将其领域对象的所有瞬时状态描述为一个有限状态机模型,并将该有限状态机的初始状态初始化;
S2、根据所述有限状态机每个状态允许的操作,自动化测试工具分别创建其对应的逻辑分支;
S3、根据所述有限状态机各个状态转移的顺序,所述自动化测试工具遍历并执行多个逻辑分支,且分别对所述多个逻辑分支进行测试。
优选的,所述步骤S1进一步包括:
所述有限状态机的每个状态均包含一个属性,用以表示该状态所允许的操作,所述有限状态机的不同状态所允许的操作不同。
优选的,所述步骤S1进一步包括:所述自动化测试工具在测试开始前,将所述有限状态机的初始状态初始化。
优选的,所述步骤S3进一步包括:
所述自动化测试工具遍历所述多个逻辑分支,并分别依次或并行的执行所述多个逻辑分支,且所述自动化测试工具对所述多个逻辑分支进行测试;
所述有限状态机每个状态允许的操作其对应的逻辑分支相互独立。
优选的,所述步骤S3进一步包括:所述自动化测试工具根据所述逻辑分支预设的业务模板,对所述逻辑分支进行单一的业务测试。
优选的,所述步骤S3进一步包括:所述自动化测试工具遍历所述多个逻辑分支,并分别依次或并行的执行所述多个逻辑分支,所述自动化测试工具将所述多个逻辑分支执行过的操作记录在存储系统中。
优选的,所述步骤S3进一步包括:当所述自动化测试工具对所述逻辑分支测试未通过时,所述自动化测试工具报告错误并清理资源,且退出该逻辑分支。
优选的,所述步骤S3进一步包括:在执行所述逻辑分支时,所述自动化测试工具通过查询所述存储系统以判断所述逻辑分支对应的操作是否已经被执行过且通过已测试,若是,则结束该逻辑分支并销毁;若不是,则继续执行该逻辑分支。
优选的,所述步骤S3进一步包括:当所述有限状态机的当前状态所允许的操作与其前面的状态所允许的操作相同时,所述自动化测试工具结束并销毁所述有限状态机当前状态所允许操作对应的逻辑分支。
本发明通过提供一种基于有限状态机的云计算软件测试方法,与现有技术中针对各个业务逻辑或子逻辑进行单独测试的测试方法相比,通过有限状态机将云计算系统涉及的大量分散的领域对象的状态集中在一个整体中,并根据业务规则自动遍历所述云计算系统内所有可能的瞬时状态,保证了测试覆盖率,具有逻辑清晰,实现简单和保障严密的特点;且本发明允许每名开发人员在编写测试用例或套件时,只需要考虑系统当前的状态,而不必时刻统揽全局,避免了关键业务的遗漏和疏忽,从而较彻底地保障了云计算信息管理系统的质量。
另外,对于需要管理大量领域对象的非云计算信息管理系统,本发明同样可以用来解决类似的问题,确保系统的质量。
附图说明
图1为本发明一实施例的流程图。
具体实施方式
下面对于本发明所提出的一种基于有限状态机的云计算软件测试方法,结合附图和实施例详细说明。
实施例1:
如图1所示,本发明提供一种基于有限状态机的云计算软件测试方法,包括以下步骤:
S1、在云计算系统中,将其领域对象的所有瞬时状态描述为一个有限状态机模型,并将该有限状态机的初始状态初始化;
S2、根据所述有限状态机每个状态允许的操作,自动化测试工具分别创建其对应的逻辑分支;
S3、根据所述有限状态机各个状态转移的顺序,所述自动化测试工具遍历并执行多个逻辑分支,且分别对所述多个逻辑分支进行测试。
优选的,所述步骤S1进一步包括:
所述有限状态机的每个状态均包含一个属性,用以表示该状态所允许的操作,所述有限状态机的不同状态所允许的操作不同。
优选的,所述步骤S1进一步包括:所述自动化测试工具在测试开始前,将所述有限状态机的初始状态初始化。
优选的,所述步骤S3进一步包括:
所述自动化测试工具遍历所述多个逻辑分支,并分别依次或并行的执行所述多个逻辑分支,且所述自动化测试工具对所述多个逻辑分支进行测试;
所述有限状态机每个状态允许的操作其对应的逻辑分支相互独立。
优选的,所述步骤S3进一步包括:所述自动化测试工具根据所述逻辑分支预设的业务模板,对所述逻辑分支进行单一的业务测试。
优选的,所述步骤S3进一步包括:所述自动化测试工具遍历所述多个逻辑分支,并分别依次或并行的执行所述多个逻辑分支,所述自动化测试工具将所述多个逻辑分支执行过的操作记录在存储系统中。
优选的,所述步骤S3进一步包括:当所述自动化测试工具对所述逻辑分支测试未通过时,所述自动化测试工具报告错误并清理资源,且退出该逻辑分支。
优选的,所述步骤S3进一步包括:在执行所述逻辑分支时,所述自动化测试工具通过查询所述存储系统以判断所述逻辑分支对应的操作是否已经被执行过且通过已测试,若是,则结束该逻辑分支并销毁;若不是,则继续执行该逻辑分支。
优选的,所述步骤S3进一步包括:当所述有限状态机的当前状态所允许的操作与其前面的状态所允许的操作相同时,所述自动化测试工具结束并销毁所述有限状态机当前状态所允许操作对应的逻辑分支。
实施例2:
该实施例以一个用于虚拟机管理的简单云计算系统为例,其主要包含的领域对象有用户、虚拟机管理平台、虚拟机池和虚拟机等,各类对象均具有多种状态,各类对象之间均具有多种相互关系;本发明将所有领域对象视为一个有机结合的整体,并将其每一个瞬时状态都描述为一个有限状态机的状态。这个状态有一个属性表示此状态允许接受的操作;在此有限状态机的不同状态下,其所允许的操作是不同的。
基于本发明实现的自动化测试工具会在测试开始时自动初始化这个有限状态机的初始状态。在初始状态下,系统中只存在着一个用作默认管理员的用户对象,其他对象均不存在,此时依照业务需求,系统的操作者可以进行的操作有添加用户、编辑用户和添加虚拟机管理平台三种操作,则此初始状态允许接受的操作亦有以上三种,自动化测试工具在获知此情况后,将自动创建三个逻辑分支,并依次或并行地执行各个逻辑分支。所述自动化测试工具执行各个逻辑分支所基于的状态都是系统当前状态的副本,逻辑分支间互不影响,也不会改变已有的系统状态。每个逻辑分支根据事先定义的业务模板,按照各自的业务逻辑进行单一的业务测试。例如负责添加虚拟机管理平台的逻辑分支,将根据模板提供的平台地址、平台用户名和密码,向系统提交添加虚拟机管理平台的请求,检查系统的响应是否符合预期,并随后宣告添加虚拟机管理平台逻辑的测试执行完毕。
如果此逻辑的测试未能通过,自动化测试工具将直接报告错误,并清理资源及退出。
所有被逻辑分支执行过的操作均会被自动化测试工具记录在存储系统中。
当负责添加虚拟机管理平台的逻辑分支执行完毕后,系统进入了一个新的状态,在此状态下,系统中存在着一个用户对象和一个虚拟机管理平台对象,故可以进行的操作有添加用户、编辑用户、添加虚拟机管理平台、删除虚拟机管理平台和基于虚拟机管理平台创建虚拟机池五种操作,所以自动化测试工具将自动创建五个逻辑分支,并依次或并行地执行各个逻辑分支。
在再次执行负责添加虚拟机管理平台的逻辑分支时,自动化测试工具通过与存储系统中所有执行过的操作进行比较,认定此类操作已在此前执行过且已测试通过,则此逻辑分支将被直接结束;该逻辑分支结束后即被自动化测试工具销毁,也无法再衍生出更多的后续分支。
在执行删除虚拟机管理平台的逻辑分支时,自动化测试工具在分支执行完毕后将发现新的系统状态与系统曾进入的某一状态相同(即系统初始状态),此时也会将此逻辑分支记为结束并销毁。
在执行基于虚拟机管理平台创建虚拟机池的逻辑分支时,系统在分支执行完毕后进入新的状态;此状态下存在一个用户,一个虚拟机管理平台和一个虚拟机池,按照业务需求,此时除了对用户和虚拟机管理平台的操作外,还可以执行删除虚拟机池和为虚拟机池添加虚拟机的操作。自动化测试工具将基于此状态,再次建立并执行多个新的逻辑分支。
如此往复,多个逻辑分支像一棵树的枝杈般从代表系统初始状态的根节点逐级蔓延开来,多个系统状态则构成了这棵树的各个子节点。各个逻辑分支在执行的过程中,逐级覆盖了此系统所有主要的业务需求。当所有逻辑分支都因重复的操作或重复的状态而被结束并销毁时,这棵树停止生长,一套完整的业务测试也宣告结束。
本发明通过提供一种基于有限状态机的云计算软件测试方法,与现有技术中针对各个业务逻辑或子逻辑进行单独测试的测试方法相比,通过有限状态机将云计算系统涉及的大量分散的领域对象的状态集中在一个整体中,并根据业务规则自动遍历所述云计算系统内所有可能的瞬时状态,保证了测试覆盖率,具有逻辑清晰,实现简单和保障严密的特点;且本发明允许每名开发人员在编写测试用例或套件时,只需要考虑系统当前的状态,而不必时刻统揽全局,避免了关键业务的遗漏和疏忽,从而较彻底地保障了云计算信息管理系统的质量。
另外,对于需要管理大量领域对象的非云计算信息管理系统,本发明同样可以用来解决类似的问题,确保系统的质量。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (7)
1.一种基于有限状态机的云计算软件测试方法,其特征在于,包括以下步骤:
S1、在云计算系统中,将其领域对象的所有瞬时状态描述为一个有限状态机模型,并将该有限状态机的初始状态初始化;
S2、根据所述有限状态机每个状态允许的操作,自动化测试工具分别创建其对应的逻辑分支;
S3、根据所述有限状态机各个状态转移的顺序,所述自动化测试工具遍历并执行多个逻辑分支,且分别对所述多个逻辑分支进行测试;
其中,所述有限状态机的每个状态均包含一个属性,用以表示该状态所允许的操作,所述有限状态机的不同状态所允许的操作不同;
当所述有限状态机的当前状态所允许的操作与其前面的状态所允许的操作相同时,所述自动化测试工具结束并销毁所述有限状态机当前状态所允许操作对应的逻辑分支。
2.如权利要求1所述的方法,其特征在于,所述步骤S1进一步包括:所述自动化测试工具在测试开始前,将所述有限状态机的初始状态初始化。
3.如权利要求2所述的方法,其特征在于,所述步骤S3进一步包括:
所述自动化测试工具遍历所述多个逻辑分支,并分别依次或并行的执行所述多个逻辑分支,且所述自动化测试工具对所述多个逻辑分支进行测试;
所述有限状态机每个状态允许的操作其对应的逻辑分支相互独立。
4.如权利要求3所述的方法,其特征在于,所述步骤S3进一步包括:所述自动化测试工具根据所述逻辑分支预设的业务模板,对所述逻辑分支进行单一的业务测试。
5.如权利要求3所述的方法,其特征在于,所述步骤S3进一步包括:所述自动化测试工具遍历所述多个逻辑分支,并分别依次或并行的执行所述多个逻辑分支,所述自动化测试工具将所述多个逻辑分支执行过的操作记录在存储系统中。
6.如权利要求5所述的方法,其特征在于,所述步骤S3进一步包括:当所述自动化测试工具对所述逻辑分支测试未通过时,所述自动化测试工具报告错误并清理资源,且退出该逻辑分支。
7.如权利要求6所述的方法,其特征在于,所述步骤S3进一步包括:在执行所述逻辑分支时,所述自动化测试工具通过查询所述存储系统以判断所述逻辑分支对应的操作是否已经被执行过且通过已测试,若是,则结束该逻辑分支并销毁;若不是,则继续执行该逻辑分支。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310064128.XA CN103164337B (zh) | 2013-02-28 | 2013-02-28 | 基于有限状态机的云计算软件测试方法 |
PCT/CN2013/089249 WO2014131304A1 (zh) | 2013-02-28 | 2013-12-12 | 基于有限状态机的云计算软件测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310064128.XA CN103164337B (zh) | 2013-02-28 | 2013-02-28 | 基于有限状态机的云计算软件测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164337A CN103164337A (zh) | 2013-06-19 |
CN103164337B true CN103164337B (zh) | 2015-12-09 |
Family
ID=48587442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310064128.XA Expired - Fee Related CN103164337B (zh) | 2013-02-28 | 2013-02-28 | 基于有限状态机的云计算软件测试方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103164337B (zh) |
WO (1) | WO2014131304A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164337B (zh) * | 2013-02-28 | 2015-12-09 | 汉柏科技有限公司 | 基于有限状态机的云计算软件测试方法 |
CN104536897B (zh) * | 2015-01-16 | 2018-02-13 | 安一恒通(北京)科技有限公司 | 基于关键字的自动测试方法及系统 |
CN107102943B (zh) * | 2017-04-05 | 2021-03-16 | 中国电力科学研究院 | 一种智能电能表软件可靠性测试方法及系统 |
CN107797923B (zh) * | 2017-10-10 | 2019-04-26 | 平安科技(深圳)有限公司 | 代码覆盖率分析方法及应用服务器 |
CN112330298A (zh) * | 2020-11-17 | 2021-02-05 | 中国平安财产保险股份有限公司 | 消费订单的流程管理方法、装置、计算机设备及存储介质 |
CN112527419B (zh) * | 2020-12-16 | 2024-04-19 | 深圳知释网络技术有限公司 | 一种基于抽象模型的有限状态机分析方法和系统 |
CN113704093B (zh) * | 2021-08-05 | 2024-07-05 | 卡斯柯信号(成都)有限公司 | 一种通用联锁软件测试用例生成方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090070746A1 (en) * | 2007-09-07 | 2009-03-12 | Dinakar Dhurjati | Method for test suite reduction through system call coverage criterion |
CN101567013B (zh) * | 2009-06-02 | 2011-09-28 | 阿里巴巴集团控股有限公司 | 一种etl调度的实现方法及装置 |
CN101968769B (zh) * | 2010-10-22 | 2012-01-25 | 中国人民解放军理工大学 | 一种基于行为模型的软件安全性测试用例生成方法 |
CN102014163B (zh) * | 2010-12-08 | 2013-06-05 | 云海创想信息技术(北京)有限公司 | 一种基于事务驱动的云存储测试方法及系统 |
CN102368226B (zh) * | 2011-10-10 | 2014-02-26 | 南京大学 | 一种基于扩展有限状态机可行路径分析的测试用例自动生成方法 |
CN103164337B (zh) * | 2013-02-28 | 2015-12-09 | 汉柏科技有限公司 | 基于有限状态机的云计算软件测试方法 |
-
2013
- 2013-02-28 CN CN201310064128.XA patent/CN103164337B/zh not_active Expired - Fee Related
- 2013-12-12 WO PCT/CN2013/089249 patent/WO2014131304A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN103164337A (zh) | 2013-06-19 |
WO2014131304A1 (zh) | 2014-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103164337B (zh) | 基于有限状态机的云计算软件测试方法 | |
US10797958B2 (en) | Enabling real-time operational environment conformity within an enterprise architecture model dashboard | |
US10353913B2 (en) | Automating extract, transform, and load job testing | |
WO2016101638A1 (zh) | 一种电力系统云仿真平台的运营管理方法 | |
US20180039490A1 (en) | Systems and methods for transformation of reporting schema | |
Hummel et al. | A collection of software engineering challenges for big data system development | |
US20150142728A1 (en) | Upgrade of heterogeneous multi-instance database clusters | |
US9201702B2 (en) | Integrated cloud data center management | |
US20150347261A1 (en) | Performance checking component for an etl job | |
CN104090776A (zh) | 一种软件开发方法及系统 | |
JP2014503910A (ja) | コードクローンの通知およびアーキテクチャの変更の視覚化 | |
US10135913B2 (en) | Impact analysis system and method | |
CN110990396B (zh) | 数据存储方法、装置及存储介质 | |
US11200049B2 (en) | Automated test authorization management | |
US7949688B2 (en) | Method of recording and backtracking business information model changes | |
US11829335B1 (en) | Using machine learning to provide a single user interface for streamlines deployment and management of multiple types of databases | |
Ahmed-Nacer et al. | OCCI-compliant cloud configuration simulation | |
US20190188185A1 (en) | Defining Software Infrastructure Using a Picture | |
US10664338B2 (en) | System and method for root cause analysis in large scale data curation flows using provenance | |
US11928627B2 (en) | Workflow manager | |
CN116029648A (zh) | 基于产品bom结构的关系建模管理方法、装置及系统 | |
CN104951312A (zh) | 一种基于模型驱动的业务功能定制系统 | |
Frey | Conformance Checking and Simulation-based Evolutionary Optimization for Deployment and Reconfiguration of Software in the Cloud | |
Wan et al. | Cloud migration: layer partition and integration | |
Anderson et al. | What is this thing called “system configuration” |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right | ||
PP01 | Preservation of patent right |
Effective date of registration: 20180823 Granted publication date: 20151209 |
|
PD01 | Discharge of preservation of patent | ||
PD01 | Discharge of preservation of patent |
Date of cancellation: 20210823 Granted publication date: 20151209 |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151209 Termination date: 20190228 |