CN111124928A - 一种基于数据的测试用例设计方法 - Google Patents
一种基于数据的测试用例设计方法 Download PDFInfo
- Publication number
- CN111124928A CN111124928A CN201911372502.6A CN201911372502A CN111124928A CN 111124928 A CN111124928 A CN 111124928A CN 201911372502 A CN201911372502 A CN 201911372502A CN 111124928 A CN111124928 A CN 111124928A
- Authority
- CN
- China
- Prior art keywords
- data
- software
- chain
- data items
- test case
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 56
- 238000013461 design Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000007689 inspection Methods 0.000 claims abstract description 5
- 238000004519 manufacturing process Methods 0.000 claims description 9
- 230000001502 supplementing effect Effects 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 10
- 238000007726 management method Methods 0.000 abstract description 4
- 238000013522 software testing Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000011265 semifinished product Substances 0.000 description 1
Images
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/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)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于数据的测试用例设计方法,包括以下步骤:S1、分析出软件的所有功能逻辑链、所有原始数据项、所有成果数据项;S2、计出软件的所有数据周期链,并在数据周期链中标识原始数据项和成果数据项;S3、覆盖度检查:检查数据周期链是否覆盖所有功能和数据项,若是则执行步骤S4,否则返回步骤S1;S4、用例数据值设计:设计原始数据项数据值,并形成有效值测试用例链和无效值测试用例;S5、完成用例设计,进行用例整理。本发明引入数据周期链的思维,以链式管理法进行用例设计和维护,具有较好的易执行性及易维护性,确保软件测试过程的覆盖度和数据精准性。
Description
技术领域
本发明属于软件测试技术领域,特别涉及一种基于数据的测试用例设计方法。
背景技术
随着移动互联网的发展,计算机软件已成为人们生活和工作中不可或缺的部分,在软件的生产过程中,软件测试是进行软件质量检测的一个重要手段,而软件测试工作的核心就是测试用例。目前业内测试用例主要存在以下不足:
目前测试用例的设计思路大致有基于功能模块和基于功能流程两种,但基于功能模块的设计思路无法很好的适应功能流程的多变性,而基于功能流程的设计思路容易造成小功能点的遗漏;
1、由于软件功能的日益复杂和数量增加,导致测试用例的维护难度增加,且在维护过程中易存在疏漏点;
2、由于软件的需求容易发现变化,导致软件测试时无法快速的进行系统影响的评估;
3、目前测试用例的操作步骤过于繁重,导致执行时效率较慢。
发明内容
本发明的目的在于克服现有技术的不足,提供一种引入数据周期链的思维,以链式管理法进行用例设计和维护,具有较好的易执行性及易维护性,确保软件测试过程的覆盖度和数据精准性的基于数据的测试用例设计方法。
本发明的目的是通过以下技术方案来实现的:一种基于数据的测试用例设计方法,包括以下步骤:
S1、分析出软件的所有功能逻辑链、所有原始数据项、所有成果数据项;
S2、计出软件的所有数据周期链,并在数据周期链中标识原始数据项和成果数据项;
S3、覆盖度检查:检查数据周期链是否覆盖所有功能和数据项,若是则执行步骤S4,否则返回步骤S1;
S4、用例数据值设计:设计原始数据项数据值,并形成有效值测试用例链和无效值测试用例;
S5、完成用例设计,进行用例整理:根据软件需求文档,在有效值测试用例链的所有成果数据项集合中补充对应功能逻辑运行后的提示信息;根据软件的角色权限/团队权限/用户权限进行统一整理,最终形成完整的测试用例,完成测试用例的设计。
进一步地,所述步骤S1包括以下子步骤:
S11、分析软件的所有功能模块及逻辑关系链,得到软件的功能逻辑链:
通过对软件功能清单和需求文档进行分析,得到软件的所有功能模块和每个功能模块的具体功能;
通过对软件需求文档和设计文档进行分析,得到所有的功能模块逻辑链以及各模块的功能逻辑链;
通过功能模块逻辑链将各个功能模块的具体功能进行关联,得到所有功能的功能逻辑链;
S12、分析软件所有的原始数据项:
通过对软件数据字典表或设计文档进行分析,得到全部数据项的名称和应用模块;
通过对软件需求文档和设计文档进行分析,得到所有内置数据项的名称、默认值和应用模块,以及所有输入数据项的名称和应用模块;
S13、分析软件产生的成果数据项:通过软件需求文档和设计文档确认软件各个模块产出的成果数据项,从而得到所有成果数据项的数据项名称和应用模块。
进一步地,所述步骤S2包括以下子步骤:
S21、分析出软件的所有数据周期链:通过软件需求文档和设计文档进行分析,得到每个功能运行前的数据项集合和运行后的数据项集合;将每个功能需要的数据项集合带入步骤S11得到的功能逻辑链,从而得到数据周期链,周期链中节点为数据项集合,节点间关系为具体功能逻辑;
S22、在数据周期链中标识原始数据项和成果数据项:参照步骤S12中得到的原始数据项,在数据周期链中标识出所有的原始数据项;参照步骤S13中得到的成果数据项,在数据周期链中标识出所有的成果数据项。
进一步地,所述步骤S4包括以下子步骤:
S41、设计有效的原始数据项的数据值,测算出对应的成果数据项的值:通过软件需求文档,使用等价类划分法为每个原始数据项设计出有效值和无效值;
S42、形成有效值测试用例链:将所有原始数据项的有效值代入数据周期链中,根据功能逻辑测算出对应的成果数据项值,形成有效值测试用例链;
S43、形成无效值测试用例:通过原始数据项的无效值和软件需求文档,设计出无效值测试用例集合。
本发明的有益效果是:本发明在原有测试用例的设计方法上,引入数据周期链的思维,以链式管理法进行用例设计和维护,具有较好的易执行性及易维护性,确保软件测试过程的覆盖度和数据精准性。同时链式用例可以在软件需求发生变化时,及时发现涉及的用例链,从而快速评估软件的影响范围,同时提升的用例维护的容易程度;基于数据分析的链式用例,强调数据的状态和值而简化用例的执行步骤,从而确保测试用例具有较好的易执行性和数据精准性;通过数据项和功能的检查确保测试用例的覆盖度;有助于测试人员在用例阅读时更好的通过数据项的变化情况而理解软件的整体功能逻辑。
附图说明
图1为本发明的一种基于数据的测试用例设计方法的流程图。
具体实施方式
对目前测试用例存在的不足,本发明提供一种基于数据分析的测试用例设计思路,同时将用例的结构修改为链式结构。将软件理解为一个进行数据加工的工厂,用户输入/提供的数据为原始数据,通过软件的加工,将原始数据加工为各种成品或半成品的成果数据,从而进行软件的功能模块覆盖和功能流程覆盖;用例采用链式结构可以在软件需求发生变化时,及时发现涉及的用例链,从而快速评估软件的影响范围,同时提升的用例维护的容易程度;基于数据分析的链式用例,强调数据的状态和值而简化用例的执行步骤,从而确保测试用例具有较好的易执行性和数据精准性;通过数据项和功能的检查确保测试用例的覆盖度。
下面结合附图进一步说明本发明的技术方案。
如图1所示,本发明的一种基于数据的测试用例设计方法,包括以下步骤:
S1、数据及模块分析:分析出软件的所有功能逻辑链、所有原始数据项、所有成果数据项;所述原始数据项提供软件运行的必要数据,包括软件运行时用户可以输入的所有数据项和默认数据项;所述成果数据项是软件运行后为用户提供的数据;所述功能逻辑链是软件运行时各个功能模块和模块中各个功能的逻辑关系。通过每个功能模块间的逻辑关系和各个功能模块中每个功能间的逻辑关系将软件中所有的功能联系起来,形成一条或者多条功能逻辑链。
数据周期链是根据功能逻辑链分析演变而来,数据周期链节点为数据项集合,节点间关系为功能逻辑。所述数据项集合中可以同时包含原始数据项和成果数据项。所述数据周期链必须包含全部的原始数据项和成果数据项。
本步骤具体包括以下子步骤:
S11、分析软件的所有功能模块及逻辑关系链101,得到软件的功能逻辑链:
通过对软件功能清单和需求文档进行分析,得到软件的所有功能模块和每个功能模块的具体功能;
通过对软件需求文档和设计文档进行分析,得到所有的功能模块逻辑链以及各模块的功能逻辑链;
通过功能模块逻辑链将各个功能模块的具体功能进行关联,得到所有功能的功能逻辑链;
S12、分析软件所有的原始数据项102:
通过对软件数据字典表或设计文档进行分析,得到全部数据项的名称和应用模块;
通过对软件需求文档和设计文档进行分析,得到所有内置数据项的名称、默认值和应用模块,以及所有输入数据项的名称和应用模块;
S13、分析软件产生的成果数据项:通过软件需求文档和设计文档确认软件各个模块产出的成果数据项,从而得到所有成果数据项的数据项名称和应用模块。
本阶段通过对软件需求文档、软件功能清单、软件设计文档进行分析,分析出软件中的所有原始数据项、成果数据项,通过每个功能模块间的逻辑关系和各个功能模块中每个功能间的逻辑关系将软件中所有的功能联系起来,形成一条或者多条功能逻辑链。
S2、计出软件的所有数据周期链201,并在数据周期链中标识原始数据项和成果数据项202;包括以下子步骤:
S21、分析出软件的所有数据周期链:通过软件需求文档和设计文档进行分析,得到每个功能运行前的数据项集合和运行后的数据项集合;将每个功能需要的数据项集合带入步骤S11得到的功能逻辑链,从而得到数据周期链,周期链中节点为数据项集合,节点间关系为具体功能逻辑;
S22、在数据周期链中标识原始数据项和成果数据项:参照步骤S12中得到的原始数据项,在数据周期链中标识出所有的原始数据项;参照步骤S13中得到的成果数据项,在数据周期链中标识出所有的成果数据项。
本阶段通过对软件需求文档和软件设计文档的分析,首先得到软件中每个功能运行所需要的数据项集合和运行后所产生的数据项集合,然后将所有的数据项集合通过功能逻辑联系起来,从而将原来的功能逻辑链转化成为数据周期链,最后在数据周期链中标识出原始数据项和成果数据项。
S3、覆盖度检查:检查数据周期链是否覆盖所有功能和数据项301,若是则执行步骤S4,否则返回步骤S1;
S4、用例数据值设计:设计原始数据项数据值401,并形成有效值测试用例链402和无效值测试用例403;包括以下子步骤:
S41、设计有效的原始数据项的数据值,测算出对应的成果数据项的值:通过软件需求文档,使用等价类划分法为每个原始数据项设计出有效值和无效值;
S42、形成有效值测试用例链:将所有原始数据项的有效值代入数据周期链中,根据功能逻辑测算出对应的成果数据项值,形成有效值测试用例链;
S43、形成无效值测试用例:通过原始数据项的无效值和软件需求文档,设计出无效值测试用例集合。
本阶段通过对软件需求文档进行分析,为每个的原始数据项设计出对应的测试数据值,数据值分为有效值和无效值;其中有效值在软件正常运行允许提供或输入的范围内,而无效值不在软件正常运行允许提供的范围内,其方法与等价类设计方法一致;再根据有效值和软件需求逻辑测算出对应的成果数据集中的数据值已形成有效值测试用例链;根据无效值和软件需求形成无效测试用例集,本发明中有效值测试用例采用链式管理,无效值测试用例采用用例集合管理方法。
S5、完成用例设计,进行用例整理501:根据软件需求文档,在有效值测试用例链的所有成果数据项集合中补充对应功能逻辑运行后的提示信息;根据软件的角色权限/团队权限/用户权限进行统一整理,最终形成完整的测试用例,完成测试用例的设计。
本发明在原有测试用例的设计方法上,引入数据周期链的思维,以链式管理法进行用例设计和维护,从而让测试人员可以更好的理解和执行用例。同时链式用例有助于测试人员在用例阅读时更好的通过数据项的变化情况而理解软件的整体功能逻辑。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (4)
1.一种基于数据的测试用例设计方法,其特征在于,包括以下步骤:
S1、分析出软件的所有功能逻辑链、所有原始数据项、所有成果数据项;
S2、计出软件的所有数据周期链,并在数据周期链中标识原始数据项和成果数据项;
S3、覆盖度检查:检查数据周期链是否覆盖所有功能和数据项,若是则执行步骤S4,否则返回步骤S1;
S4、用例数据值设计:设计原始数据项数据值,并形成有效值测试用例链和无效值测试用例;
S5、完成用例设计,进行用例整理:根据软件需求文档,在有效值测试用例链的所有成果数据项集合中补充对应功能逻辑运行后的提示信息;根据软件的角色权限/团队权限/用户权限进行统一整理,最终形成完整的测试用例,完成测试用例的设计。
2.根据权利要求1所述的一种基于数据的测试用例设计方法,其特征在于,所述步骤S1包括以下子步骤:
S11、分析软件的所有功能模块及逻辑关系链,得到软件的功能逻辑链:
通过对软件功能清单和需求文档进行分析,得到软件的所有功能模块和每个功能模块的具体功能;
通过对软件需求文档和设计文档进行分析,得到所有的功能模块逻辑链以及各模块的功能逻辑链;
通过功能模块逻辑链将各个功能模块的具体功能进行关联,得到所有功能的功能逻辑链;
S12、分析软件所有的原始数据项:
通过对软件数据字典表或设计文档进行分析,得到全部数据项的名称和应用模块;
通过对软件需求文档和设计文档进行分析,得到所有内置数据项的名称、默认值和应用模块,以及所有输入数据项的名称和应用模块;
S13、分析软件产生的成果数据项:通过软件需求文档和设计文档确认软件各个模块产出的成果数据项,从而得到所有成果数据项的数据项名称和应用模块。
3.根据权利要求2所述的一种基于数据的测试用例设计方法,其特征在于,所述步骤S2包括以下子步骤:
S21、分析出软件的所有数据周期链:通过软件需求文档和设计文档进行分析,得到每个功能运行前的数据项集合和运行后的数据项集合;将每个功能需要的数据项集合带入步骤S11得到的功能逻辑链,从而得到数据周期链,周期链中节点为数据项集合,节点间关系为具体功能逻辑;
S22、在数据周期链中标识原始数据项和成果数据项:参照步骤S12中得到的原始数据项,在数据周期链中标识出所有的原始数据项;参照步骤S13中得到的成果数据项,在数据周期链中标识出所有的成果数据项。
4.根据权利要求1所述的一种基于数据的测试用例设计方法,其特征在于,所述步骤S4包括以下子步骤:
S41、设计有效的原始数据项的数据值,测算出对应的成果数据项的值:通过软件需求文档,使用等价类划分法为每个原始数据项设计出有效值和无效值;
S42、形成有效值测试用例链:将所有原始数据项的有效值代入数据周期链中,根据功能逻辑测算出对应的成果数据项值,形成有效值测试用例链;
S43、形成无效值测试用例:通过原始数据项的无效值和软件需求文档,设计出无效值测试用例集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911372502.6A CN111124928B (zh) | 2019-12-27 | 2019-12-27 | 一种基于数据的测试用例设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911372502.6A CN111124928B (zh) | 2019-12-27 | 2019-12-27 | 一种基于数据的测试用例设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124928A true CN111124928A (zh) | 2020-05-08 |
CN111124928B CN111124928B (zh) | 2023-03-14 |
Family
ID=70503682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911372502.6A Active CN111124928B (zh) | 2019-12-27 | 2019-12-27 | 一种基于数据的测试用例设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124928B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004107087A2 (en) * | 2003-05-29 | 2004-12-09 | Flextronics Design Limited | Generating test cases |
CN101593145A (zh) * | 2008-05-29 | 2009-12-02 | 福建升腾资讯有限公司 | 高效性高覆盖率功能测试用例设计方法 |
CN103176896A (zh) * | 2011-12-23 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 一种测试用例的生成方法及装置 |
CN106201899A (zh) * | 2016-07-29 | 2016-12-07 | 普元信息技术股份有限公司 | 基于业务分析实现自动生成测试案例的系统和方法 |
CN107562635A (zh) * | 2017-09-15 | 2018-01-09 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 嵌入式软件测试辅助系统 |
US10073763B1 (en) * | 2017-12-27 | 2018-09-11 | Accenture Global Solutions Limited | Touchless testing platform |
CN110221965A (zh) * | 2019-05-09 | 2019-09-10 | 阿里巴巴集团控股有限公司 | 测试用例生成、测试方法、装置、设备及系统 |
-
2019
- 2019-12-27 CN CN201911372502.6A patent/CN111124928B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004107087A2 (en) * | 2003-05-29 | 2004-12-09 | Flextronics Design Limited | Generating test cases |
CN101593145A (zh) * | 2008-05-29 | 2009-12-02 | 福建升腾资讯有限公司 | 高效性高覆盖率功能测试用例设计方法 |
CN103176896A (zh) * | 2011-12-23 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 一种测试用例的生成方法及装置 |
CN106201899A (zh) * | 2016-07-29 | 2016-12-07 | 普元信息技术股份有限公司 | 基于业务分析实现自动生成测试案例的系统和方法 |
CN107562635A (zh) * | 2017-09-15 | 2018-01-09 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 嵌入式软件测试辅助系统 |
US10073763B1 (en) * | 2017-12-27 | 2018-09-11 | Accenture Global Solutions Limited | Touchless testing platform |
CN110221965A (zh) * | 2019-05-09 | 2019-09-10 | 阿里巴巴集团控股有限公司 | 测试用例生成、测试方法、装置、设备及系统 |
Non-Patent Citations (4)
Title |
---|
KARLKÜBLER等: ""Test case generation for production systems with model-implemented fault injection consideration"" * |
杨杰: ""基于Markov链的可靠性测试用例自动生成技术"" * |
王昕;覃征;韩峰岩;: "基于UML的软件可靠性测试用例生成的混合模型" * |
钱忠胜: ""基于模型的Web应用测试用例生成方法"" * |
Also Published As
Publication number | Publication date |
---|---|
CN111124928B (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391369B (zh) | 一种基于数据筛选和数据过采样的跨项目缺陷预测方法 | |
CN103235759B (zh) | 测试用例生成方法和装置 | |
CN105022691B (zh) | 一种基于uml图的高度自动化软件测试方法 | |
EP3032425A1 (en) | Integrated automated test case generation for safety-critical software | |
CN106682350B (zh) | 一种基于三维模型的多属性决策质量检测方法 | |
CN111177134B (zh) | 适用于海量数据的数据质量分析方法、装置、终端及介质 | |
CN105389262B (zh) | 一种针对界面测试生成测试建议的方法和装置 | |
CN107168868B (zh) | 一种基于采样和集成学习的软件更改缺陷预测方法 | |
CN112131116A (zh) | 一种嵌入式软件自动化回归测试方法 | |
WO2021253641A1 (zh) | 着色语言翻译方法 | |
US11474795B2 (en) | Static enforcement of provable assertions at compile | |
CN111124928B (zh) | 一种基于数据的测试用例设计方法 | |
CN106933572B (zh) | 一种基于llvm中间表示程序切片的度量模型 | |
JP2015001825A (ja) | テストスケジュール決定装置、プログラム | |
CN107562808B (zh) | 一种异构双链自动化数据的验证方法 | |
Ulewicz et al. | Proving equivalence between control software variants for Programmable Logic Controllers | |
Saidani et al. | Combining life cycle assessment and online customer reviews to design more sustainable products-Case study on a printing machine | |
Lee et al. | A design pattern detection technique that aids reverse engineering | |
Khan et al. | Detecting wake lock leaks in android apps using machine learning | |
WO2016082474A1 (zh) | 一种人机命令脚本更新方法、装置及计算机存储介质 | |
US20190377661A1 (en) | Influence extraction device, computer readable medium and influence extraction method | |
CN109947648B (zh) | 针对web系统需求规格的纵横结合测试方法 | |
TWI528204B (zh) | 三維模型零件比對系統及其方法 | |
CN113934636A (zh) | 一种海量测试驱动自动生成系统和方法 | |
Singh et al. | Formal Methods and its Importance in Minimizing Ambiguity in the Requirement Engineering Document Phase of SDLC |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A Data Based Test Case Design Method Effective date of registration: 20231016 Granted publication date: 20230314 Pledgee: Industrial Bank Limited by Share Ltd. Chengdu branch Pledgor: CHENGDU COMSYS INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2023980061301 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |