CN105022691A - 一种基于uml图的高度自动化软件测试方法 - Google Patents

一种基于uml图的高度自动化软件测试方法 Download PDF

Info

Publication number
CN105022691A
CN105022691A CN201510433451.9A CN201510433451A CN105022691A CN 105022691 A CN105022691 A CN 105022691A CN 201510433451 A CN201510433451 A CN 201510433451A CN 105022691 A CN105022691 A CN 105022691A
Authority
CN
China
Prior art keywords
test
test case
interface object
case
testing
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
Application number
CN201510433451.9A
Other languages
English (en)
Other versions
CN105022691B (zh
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.)
ANHUI NARI JIYUAN SOFTWARE Co Ltd
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
State Grid Anhui Electric Power Co Ltd
Original Assignee
ANHUI NARI JIYUAN SOFTWARE Co Ltd
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
State Grid Anhui Electric Power Co Ltd
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 ANHUI NARI JIYUAN SOFTWARE Co Ltd, State Grid Corp of China SGCC, State Grid Information and Telecommunication Co Ltd, State Grid Anhui Electric Power Co Ltd filed Critical ANHUI NARI JIYUAN SOFTWARE Co Ltd
Priority to CN201510433451.9A priority Critical patent/CN105022691B/zh
Publication of CN105022691A publication Critical patent/CN105022691A/zh
Application granted granted Critical
Publication of CN105022691B publication Critical patent/CN105022691B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种基于UML图的高度自动化软件测试方法,包括测试用例自动生成步骤和测试用例自动执行步骤。本发明通过分析UML图,并结合组合覆盖算法,通过关键字调用规则自动生成检错能力更高、覆盖更完整的测试用例;测试过程高度自动化,极大地提高了测试速度,减少了测试遗漏,检错性高,覆盖率大,响应快,用例维护简单,特别适用于软件迭代周期短、测试工作强度大的敏捷开发模式,可以大幅降低软件功能测试人员的工作强度。

Description

一种基于UML图的高度自动化软件测试方法
技术领域
本发明涉及软件测试技术领域,具体是一种基于UML图的高度自动化软件测试方法。
背景技术
软件测试是在预设条件下运行系统或应用程序,评估运行结果,预设条件应包括正常条件和异常条件。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较,测试过程以人为驱动。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念,自动化测试是程序自动执行测试的过程。
目前,行业内自动化测试研究工作主要集中在测试脚本的运行上,部分程度上提升了测试效率。对测试用例的自动生成、优化组合及文本用例自动转换为自动化用例脚本的研究较为缺少,尚无一套从测试需求至测试结果分析端到端全自动化测试的工具。
在软件敏捷开发模式中,版本迭代频繁,测试需求频繁变更,用例维护难度大,测试工作强度大,如何能有效缩短回归测试的周期,提升测试用例覆盖度,减少缺陷漏测率,已成为测试领域重点关注且亟待解决的问题。
发明内容
本发明的目的在于提供一种基于UML图的高度自动化软件测试方法,大幅降低软件功能测试人员的工作强度。
本发明的技术方案为:
一种基于UML图的高度自动化软件测试方法,包括以下步骤:
(1)测试用例自动生成步骤,包括:
(11)分析待测试软件系统需求和设计,生成系统模块集;
(12)确定系统操作的关键字,并以界面对象名称为参数,对所述关键字编写用于界面操作的关键字组件函数;
(13)画出待测试软件系统各个模块的UML活动图,并在所述活动图中确定每个操作的关键字、界面对象名称和操作参数以及每个验证的界面对象名称和验证期望参数;
(14)将待测试软件系统各个模块的活动图转换为相应的有向图;
(15)遍历有向图,将有向图中的关键字作为测试步骤,操作参数作为测试数据,验证期望参数作为预期结果组装成测试用例存储到测试用例集中,若遇到需要并行输入多个参数的活动节点,则采用组合算法生成参数组合测试用例;
(16)利用UML用例图,画出待测试软件系统的模块关联关系图;
(17)根据模块关联关系图,抽取有关联关系的模块,采用组合算法将其中的测试用例生成跨模块的操作组合测试用例并存储到测试用例集中;
(18)采用测试用例生成算法将测试用例集中的用例按照测试用例模板填写数据项到测试用例文件的各项中;
(2)测试用例自动执行步骤,包括:
(21)待测试软件系统界面成型后,通过自动化测试工具获取界面对象库,并将界面对象库中的界面对象名称设置为活动图中已确定的界面对象名称;
(22)关键字驱动主程序循环读入测试用例文件中的每一行操作信息,调用对应的关键字组件函数,所述关键字组件函数根据界面对象名称到界面对象库中查找匹配的界面对象信息,然后在待测试软件系统界面上对查找到的相应界面对象进行自动操作;
(23)读取测试用例文件中当前用例的验证信息,通过验证函数验证界面对象是否符合预期结果;
(24)输出测试报告和日志信息。
所述的基于UML图的高度自动化软件测试方法,步骤(15)中,采用深度优先搜索算法遍历有向图。
所述的基于UML图的高度自动化软件测试方法,步骤(15)中,所述组合算法具体为两两组合覆盖算法。
所述的基于UML图的高度自动化软件测试方法,步骤(15)中,还包括根据设定的参数约束和兼容性测试及硬件配置项约束,对生成的参数组合测试用例进行约简。
由上述技术方案可知,本发明通过分析UML图,并结合组合覆盖算法,通过关键字调用规则自动生成检错能力更高、覆盖更完整的测试用例;测试过程高度自动化,极大地提高了测试速度,减少了测试遗漏,检错性高,覆盖率大,响应快,用例维护简单,特别适用于软件迭代周期短、测试工作强度大的敏捷开发模式,可以大幅降低软件功能测试人员的工作强度。
附图说明
图1是本发明的测试用例自动生成流程图;
图2是本发明的测试用例自动执行流程图。
具体实施方式
下面结合附图和具体实施例进一步说明本发明。
一种基于UML图的高度自动化软件测试方法,包括测试用例自动生成步骤和测试用例自动执行步骤:
S1、如图1所示,测试用例自动生成步骤,具体包括:
S11、分析待测试软件系统需求和设计,生成系统模块集。
S12、确定系统操作的关键字,这些关键字类似于“点击”、“输入”、“复制”和“粘贴”等等;
对这些关键字编写可以用于界面操作的组件函数,这些组件函数的参数为界面对象名称。
S13、画出待测试软件系统各个模块的UML活动图,根据步骤S12中已确定的关键字和界面对象名称,在活动图中确定每个操作的关键字、界面对象名称和操作参数以及每个验证的界面对象名称和验证期望参数;
每个操作活动填写当前操作的描述,操作转换标明测试执行需要用到的关键字,并在操作转换的详细描述中,将当前操作的界面对象名称写入发送对象选项,将操作参数的约束正则表达式或实际数据写入输入参数选项,并根据特定的用户需求和实际逻辑在配置文件中设定参数约束和兼容性测试及硬件配置项约束;
在一个操作活动将要结束时可以添加预期结果的验证活动和验证转换,在验证转换的详细描述中,将验证的界面对象名称写入发送对象选项,将验证期望参数写入输入参数选项以完成一次测试的验证。
S14、将待测试软件系统各个模块的活动图转换为相应的有向图。
S15、采用深度优先搜索算法遍历有向图,将有向图中的关键字作为测试步骤,操作参数作为测试数据,验证期望参数作为预期结果组装成测试用例存储到测试用例集中;在此过程中,若遇到需要并行输入多个参数的活动节点,则采用两两组合覆盖算法生成参数组合测试用例以实现模块内的参数组合,并根据设定的参数约束和兼容性测试及硬件配置项约束,去除不符合约束规则的参数组合测试用例,将约简后的参数组合测试用例存储到测试用例集中。
其中,采用两两组合覆盖算法生成参数组合测试用例,示例如下:
假定某个模块具有参数A、B、C,每个参数的取值如表1所示:
表1
将各参数进行两两组合生成元组合数据,如表2所示:
表2
对每个元组合数据进行匹配,生成参数组合测试用例:
例如,对于(A1,B1)需要补充的是参数C,我们在包含C参数的元组合中查找,(A1,C1)包含C参数且A1是重合参数,符合两两组合覆盖标准,因此可以将这两个元组合标记为已匹配,同时输出去除重复参数的用例(A1,B1,C1)。通过循环匹配,当所有元组合匹配完毕后输出18个测试用例,如表3所示:
表3
通过比较这些用例,我们发现有三个用例构成后在前面已经输出过相同的,因此在输出用例时必须与已输出的用例进行比较,如果有相同的用例已经输出,就不再输出。
最终输出有效的两两覆盖组合用例15个,比所有参数全组合构成的27个用例减少12个,实现了测试用例集的简化。参数个数越多,简化效果越明显,但覆盖率和检错能力没有下降。
S16、利用UML用例图,画出待测试软件系统的模块关联关系图;
S17、根据模块关联关系图,抽取有关联关系的模块,采用组合算法将其中的测试用例生成跨模块的操作组合测试用例并存储到测试用例集中。
S18、采用测试用例生成算法将测试用例集中的用例按照测试用例模板填写数据项到测试用例文件的各项中。
S2、如图2所示,测试用例自动生成步骤,具体包括:
S21、待测试软件系统界面成型后,通过自动化测试工具获取界面对象库,并将界面对象库中的界面对象名称设置为步骤S13中活动图已确定的界面对象名称。
S22、自动测试框架的关键字驱动主程序循环读入测试用例文件中的每一行操作信息,调用对应的关键字组件函数,该关键字组件函数根据当前的界面对象名称参数到界面对象库中查找匹配的界面对象信息,然后在待测试软件系统界面上对查找到的相应界面对象进行自动操作。
S23、读取测试用例文件中当前用例的验证信息,通过验证函数验证界面对象是否符合预期结果。
S24、输出测试报告和日志信息。
当项目需求更新时,更新相应活动图和界面对象库便可自动生成可自动执行的测试用例。同时调用回归优先级算法找出其他有关联关系的模块对测试用例进行排序,优先执行关联模块测试用例。
当有新项目需要自动化测试时,由于关键字动作是通用的,可以直接重用关键字组件函数,因此,只需要完成新项目的活动图设计,新建界面对象库,便可快速生成可执行的自动化测试用例。
以上所述实施方式仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。

Claims (4)

1.一种基于UML图的高度自动化软件测试方法,其特征在于,包括以下步骤:
(1)测试用例自动生成步骤,包括:
(11)分析待测试软件系统需求和设计,生成系统模块集;
(12)确定系统操作的关键字,并以界面对象名称为参数,对所述关键字编写用于界面操作的关键字组件函数;
(13)画出待测试软件系统各个模块的UML活动图,并在所述活动图中确定每个操作的关键字、界面对象名称和操作参数以及每个验证的界面对象名称和验证期望参数;
(14)将待测试软件系统各个模块的活动图转换为相应的有向图;
(15)遍历有向图,将有向图中的关键字作为测试步骤,操作参数作为测试数据,验证期望参数作为预期结果组装成测试用例存储到测试用例集中,若遇到需要并行输入多个参数的活动节点,则采用组合算法生成参数组合测试用例;
(16)利用UML用例图,画出待测试软件系统的模块关联关系图;
(17)根据模块关联关系图,抽取有关联关系的模块,采用组合算法将其中的测试用例生成跨模块的操作组合测试用例并存储到测试用例集中;
(18)采用测试用例生成算法将测试用例集中的用例按照测试用例模板填写数据项到测试用例文件的各项中;
(2)测试用例自动执行步骤,包括:
(21)待测试软件系统界面成型后,通过自动化测试工具获取界面对象库,并将界面对象库中的界面对象名称设置为活动图中已确定的界面对象名称;
(22)关键字驱动主程序循环读入测试用例文件中的每一行操作信息,调用对应的关键字组件函数,所述关键字组件函数根据界面对象名称到界面对象库中查找匹配的界面对象信息,然后在待测试软件系统界面上对查找到的相应界面对象进行自动操作;
(23)读取测试用例文件中当前用例的验证信息,通过验证函数验证界面对象是否符合预期结果;
(24)输出测试报告和日志信息。
2.根据权利要求1所述的基于UML图的高度自动化软件测试方法,其特征在于,步骤(15)中,采用深度优先搜索算法遍历有向图。
3.根据权利要求1所述的基于UML图的高度自动化软件测试方法,其特征在于,步骤(15)中,所述组合算法具体为两两组合覆盖算法。
4.根据权利要求1所述的基于UML图的高度自动化软件测试方法,其特征在于,步骤(15)中,还包括根据设定的参数约束和兼容性测试及硬件配置项约束,对生成的参数组合测试用例进行约简。
CN201510433451.9A 2015-07-22 2015-07-22 一种基于uml图的高度自动化软件测试方法 Expired - Fee Related CN105022691B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510433451.9A CN105022691B (zh) 2015-07-22 2015-07-22 一种基于uml图的高度自动化软件测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510433451.9A CN105022691B (zh) 2015-07-22 2015-07-22 一种基于uml图的高度自动化软件测试方法

Publications (2)

Publication Number Publication Date
CN105022691A true CN105022691A (zh) 2015-11-04
CN105022691B CN105022691B (zh) 2018-01-09

Family

ID=54412679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510433451.9A Expired - Fee Related CN105022691B (zh) 2015-07-22 2015-07-22 一种基于uml图的高度自动化软件测试方法

Country Status (1)

Country Link
CN (1) CN105022691B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426312A (zh) * 2015-12-31 2016-03-23 北京经纬恒润科技有限公司 一种冒烟测试用例集生成方法和装置
CN105893242A (zh) * 2015-12-11 2016-08-24 乐视致新电子科技(天津)有限公司 一种对应用进行测试的方法和测试装置
CN106502892A (zh) * 2016-10-20 2017-03-15 杭州电子科技大学 一种基于uml模型的测试用例优先排序方法
CN108255698A (zh) * 2017-02-17 2018-07-06 平安科技(深圳)有限公司 基于可视化界面的测试案例生成方法和装置
CN109117363A (zh) * 2018-06-28 2019-01-01 腾讯科技(深圳)有限公司 一种测试用例生成方法、装置及服务器
CN109410982A (zh) * 2018-12-20 2019-03-01 斑马网络技术有限公司 语音测试方法、装置、设备以及存储介质
CN109582559A (zh) * 2018-09-28 2019-04-05 阿里巴巴集团控股有限公司 系统的验证方法、装置、电子设备及存储介质
CN109739759A (zh) * 2018-12-28 2019-05-10 中核控制系统工程有限公司 一种验证黑盒测试用例设计完整性的方法
CN109992498A (zh) * 2017-12-29 2019-07-09 北京京东尚科信息技术有限公司 测试用例的生成方法及系统、计算机系统
CN112000558A (zh) * 2020-07-16 2020-11-27 浙江众合科技股份有限公司 轨道交通信号系统自动化测试用例生成方法
CN112015639A (zh) * 2020-07-31 2020-12-01 北京轩宇信息技术有限公司 一种星载软件测试用例的生成方法及装置
CN114077534A (zh) * 2020-08-11 2022-02-22 腾讯科技(深圳)有限公司 测试用例生成方法、装置和计算机可读存储介质
CN114328231A (zh) * 2021-12-29 2022-04-12 苏州浪潮智能科技有限公司 测试方法、装置、电子设备及存储介质
CN114721931A (zh) * 2021-01-06 2022-07-08 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN114721932A (zh) * 2021-01-06 2022-07-08 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN116467211A (zh) * 2023-04-26 2023-07-21 北京计算机技术及应用研究所 一种基于数字化仿真环境的系统级测试验证方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1866206A (zh) * 2005-03-30 2006-11-22 西门子共同研究公司 利用马尔可夫链根据uml规范生成性能测试
US20090094575A1 (en) * 2007-10-03 2009-04-09 Siemens Corporate Research, Inc. System and Method For Applying Model-Based Testing To Train Control Systems
CN103729293A (zh) * 2013-12-30 2014-04-16 华东师范大学 一种基于uml活动图的gui测试方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1866206A (zh) * 2005-03-30 2006-11-22 西门子共同研究公司 利用马尔可夫链根据uml规范生成性能测试
US20090094575A1 (en) * 2007-10-03 2009-04-09 Siemens Corporate Research, Inc. System and Method For Applying Model-Based Testing To Train Control Systems
CN103729293A (zh) * 2013-12-30 2014-04-16 华东师范大学 一种基于uml活动图的gui测试方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
唐育红: "基于UML活动图的测试用例自动生成方法研究", 《万方学位论文》 *
孟喜: "自动化测试平台的设计与实现", 《中国优秀硕士学位论文全文数据库》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893242A (zh) * 2015-12-11 2016-08-24 乐视致新电子科技(天津)有限公司 一种对应用进行测试的方法和测试装置
CN105426312A (zh) * 2015-12-31 2016-03-23 北京经纬恒润科技有限公司 一种冒烟测试用例集生成方法和装置
CN106502892A (zh) * 2016-10-20 2017-03-15 杭州电子科技大学 一种基于uml模型的测试用例优先排序方法
CN106502892B (zh) * 2016-10-20 2018-11-13 杭州电子科技大学 一种基于uml模型的测试用例优先排序方法
CN108255698A (zh) * 2017-02-17 2018-07-06 平安科技(深圳)有限公司 基于可视化界面的测试案例生成方法和装置
CN109992498A (zh) * 2017-12-29 2019-07-09 北京京东尚科信息技术有限公司 测试用例的生成方法及系统、计算机系统
CN109992498B (zh) * 2017-12-29 2022-12-02 北京京东尚科信息技术有限公司 测试用例的生成方法及系统、计算机系统
CN109117363B (zh) * 2018-06-28 2020-09-25 腾讯科技(深圳)有限公司 一种测试用例生成方法、装置及服务器
CN109117363A (zh) * 2018-06-28 2019-01-01 腾讯科技(深圳)有限公司 一种测试用例生成方法、装置及服务器
CN109582559A (zh) * 2018-09-28 2019-04-05 阿里巴巴集团控股有限公司 系统的验证方法、装置、电子设备及存储介质
CN109410982A (zh) * 2018-12-20 2019-03-01 斑马网络技术有限公司 语音测试方法、装置、设备以及存储介质
CN109739759A (zh) * 2018-12-28 2019-05-10 中核控制系统工程有限公司 一种验证黑盒测试用例设计完整性的方法
CN112000558A (zh) * 2020-07-16 2020-11-27 浙江众合科技股份有限公司 轨道交通信号系统自动化测试用例生成方法
CN112015639A (zh) * 2020-07-31 2020-12-01 北京轩宇信息技术有限公司 一种星载软件测试用例的生成方法及装置
CN112015639B (zh) * 2020-07-31 2024-03-15 北京轩宇信息技术有限公司 一种星载软件测试用例的生成方法及装置
CN114077534A (zh) * 2020-08-11 2022-02-22 腾讯科技(深圳)有限公司 测试用例生成方法、装置和计算机可读存储介质
CN114721931A (zh) * 2021-01-06 2022-07-08 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN114721932A (zh) * 2021-01-06 2022-07-08 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN114721932B (zh) * 2021-01-06 2024-04-09 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN114721931B (zh) * 2021-01-06 2024-04-09 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN114328231A (zh) * 2021-12-29 2022-04-12 苏州浪潮智能科技有限公司 测试方法、装置、电子设备及存储介质
CN116467211A (zh) * 2023-04-26 2023-07-21 北京计算机技术及应用研究所 一种基于数字化仿真环境的系统级测试验证方法
CN116467211B (zh) * 2023-04-26 2023-09-26 北京计算机技术及应用研究所 一种基于数字化仿真环境的系统级测试验证方法

Also Published As

Publication number Publication date
CN105022691B (zh) 2018-01-09

Similar Documents

Publication Publication Date Title
CN105022691A (zh) 一种基于uml图的高度自动化软件测试方法
US10025696B2 (en) System and method for equivalence class analysis-based automated requirements-based test case generation
CN102880546B (zh) 一种基于xml数据库的软件集成测试方法及系统
CN103678110B (zh) 提供修改相关信息的方法和装置
CN101526919B (zh) 生成脚本文件对Web应用软件进行测试的方法及装置
CN103793326A (zh) 组件测试方法及装置
CN103235759A (zh) 测试用例生成方法和装置
US20150286555A1 (en) System and method for converting the business processes to test-centric activity diagrams
US20180004635A1 (en) Input discovery for unknown program binaries
CN112783786B (zh) 测试案例的生成方法、装置、设备、介质和程序产品
Tahvili et al. Functional dependency detection for integration test cases
CN105279092A (zh) 一种软件测试的方法及装置
US8381185B2 (en) Apparatus, system, and method for dynamic module flow analysis
CN103218297A (zh) 测试数据的筛选方法及装置
CN102043720A (zh) 利用sql语句自动生成测试数据的方法和装置
CN108897678B (zh) 静态代码检测方法和静态代码检测系统、存储设备
CN104536880A (zh) 基于符号执行的gui程序测试用例扩增方法
CN102012816B (zh) 一种生成ide工程文件和解决方案文件的方法与装置
CN103559134A (zh) 基准测试组件的配置方法和装置
JP2011154568A (ja) 情報処理装置、プログラム検証方法およびプログラム
Merchant et al. Tool for performance tuning and regression analyses of HPC systems and applications
Angerer et al. An experiment comparing lifted and delayed variability-aware program analysis
WO2015184750A1 (zh) 网元设备数据维护的方法和装置
CN111078193A (zh) 一种面向数据分析系统的软件开发方法及系统
CN112015633A (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
GR01 Patent grant
GR01 Patent grant
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: 20180109

Termination date: 20210722