CN108388511A - 一种用于构件化软件的集成测试方法 - Google Patents
一种用于构件化软件的集成测试方法 Download PDFInfo
- Publication number
- CN108388511A CN108388511A CN201810145608.1A CN201810145608A CN108388511A CN 108388511 A CN108388511 A CN 108388511A CN 201810145608 A CN201810145608 A CN 201810145608A CN 108388511 A CN108388511 A CN 108388511A
- Authority
- CN
- China
- Prior art keywords
- component
- cycle tests
- dependence
- integration test
- test method
- 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.)
- Pending
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/3696—Methods or tools to render software testable
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)
Abstract
本发明公开了一种用于构件化软件的集成测试方法,涉及软件开发技术领域。包括步骤一:接口分析、步骤二:设置测试参数、步骤三:读取接口信息和步骤四:基于依赖的构件集成测试。本发明在于提供针对NET构件的软件集成测试方法,通过分析构件间的依赖关系,提出了构件依赖矩阵的模型和计算测试序列距离的概念,并以次为基础,得出了基于依赖的测试序列生成的算法,该算法以构件依赖矩阵为输入,计算所有候选序列与上一个测试序列的距离,并选取最大距离的作为新的测试序列;基于依赖的构件集成测试方法具有更强的发现错误的能力,同时也具有更好的有效性,从而能更好的保证系统的稳定性和安全性。
Description
技术领域
本发明属于软件开发技术领域,特别是涉及一种用于构件化软件的集成测试方法。
背景技术
随着软件工程的不断发展,软件规模越来越大,软件的复杂性也不断增加,随着网络的高速发展和对软件本身越来越高的要求,从而增加了软件开发的困难;因此基于构件化的软件开发应运而生,并迅速成为主流技术;构件开发技术缩短了软件开发周期,提高了系统的性能,同时也带来了安全隐患,影响了整个系统的可靠性,当不同种类的构件集成到构件化的软件系统时,由于不同构件所遵循的开发标准不同,以及构件集成环境不同的原因,使构件功能的正确性无法得到保障,甚至会出现交互性错误,因而在各种构件被集成到一起时必须对系统进行有效的集成测试,才能保证构件系统的可靠性和安全性。
由于构件本身所具有的特性,也使得构件和构件系统的测试面临着诸多问题,基于面向对象的软件测试方法已不适用与构件化的软件测试,目前国内基于构件的软件测试技术主要包括:构件单元测试、构件回归测试、构件安全性测试、网络构件测试、构件集成测试;构件化软件测试的问题实质为构件集成测试,但是构件的使用人员一般无法从开发方获得构件的源代码,由于构件的这种封装性和信息匮乏,给构件的集成测试带来了很大的困难,因此分析构件之间的依赖关系,并以此为基础研究构件集成测试方法对于保障构件系统的稳定性和安全性具有十分重要的意义。
发明内容
本发明的目的在于提供针对NET构件的软件集成测试方法,通过分析构件间的依赖关系,提出了构件依赖矩阵的模型和计算测试序列距离的概念,并以次为基础,得出了一种基于依赖的测试序列生成的算法,该算法以构件依赖矩阵为输入,计算所有候选序列与上一个测试序列的距离,并选取最大距离的作为新的测试序列;基于依赖的构件集成测试方法具有更强的发现错误的能力,同时也具有更好的有效性,从而能更好的保证系统的稳定性和安全性。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明为一种用于构件化软件的集成测试方法,包括如下步骤:
步骤一:接口分析,对待测的各个构件进行分析,提取需要的类型信息;
步骤二:设置测试参数,设置测试序列的个数和构件依赖矩阵文件路径;
步骤三:读取接口信息,从接口分析提取的类型信息文件读取构件的各种接口信息和通过构件依赖矩阵文件路径将构件依赖矩阵文件中的内容读入内存保存;
步骤四:基于依赖的构件集成测试,使用基于依赖的测试序列生成算法,生成对应的测试序列,当生成的测试序列个数与设置的序列个数一致时停止生成序列,输出测试结果。
进一步地,所述步骤一接口分析提取的类型信息包括构件名称、命名空间名称、类名称、方法名称、参数名称、参数类型和返回类型。
进一步地,所述步骤二中构件依赖矩阵文件为描述待测的各个构件间依赖关系的数据结构,所述构件依赖矩阵(简称CDM)包括:构件接口依赖邻接矩阵(简称IDAM)、构件数据依赖邻接矩阵(简称DDAM)、构件间接接口依赖矩阵(简称IIDM)和构件数据间接依赖矩阵(简称IDDM)。
进一步地,所述步骤四中基于依赖的测试序列生成算法包括计算测试序列的距离过分析构件间的依赖关系,提出了构件依赖矩阵的模型和计算测试序列距离的概率。
进一步地,所述测试序列的距离为两个测试序列间的编辑距离。
本发明具有以下有益效果:
1、本发明通过分析构件间的依赖关系,得出构件依赖矩阵,更形式化的描述构件间所有直接或间接的依赖关系,并可以通过数据结构来表示。
2、本发明通过构件依赖矩阵和测试序列距离为基础生成基于依赖的测试序列,更充分的说明了构件间的依赖和交互关系,同时基于依赖的构件集成测试方法具有更强的发现错误的能力,同时也具有更好的有效性。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种用于构件化软件的集成测试方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,本发明为一种用于构件化软件的集成测试方法的一个具体应用为:
一种用于构件化软件的集成测试方法,包括如下步骤:
步骤一:接口分析,对待测的各个构件进行分析,提取构件名称、命名空间名称、类名称、方法名称、参数名称、参数类型和返回类型;
步骤二:设置测试参数,设置测试序列的个数和构件依赖矩阵文件路径;
步骤三:读取接口信息,从接口分析提取的类型信息文件读取构件的各种接口信息和通过构件依赖矩阵文件路径将构件依赖矩阵文件中的内容读入内存保存;
步骤四:基于依赖的构件集成测试,使用基于依赖的测试序列生成算法,生成对应的测试序列,当生成的测试序列个数与设置的序列个数一致时停止生成序列,输出测试结果。
其中,步骤二中构件依赖矩阵文件为描述待测的各个构件间依赖关系的数据结构,构件依赖矩阵(简称CDM)包括:构件接口依赖邻接矩阵(简称IDAM)、构件数据依赖邻接矩阵(简称DDAM)、构件间接接口依赖矩阵(简称IIDM)和构件数据间接依赖矩阵(简称IDDM)。
其中,构件依赖矩阵(简称CDM)定义为:假设构件系统中有n个构件:c1,c2…cn,其中ci和cj(1≤i,j≤n)是该系统中的两个构件,则idij表示IDAM中第i行j列元素,表示ci和cj之间直接接口依赖关系的值;ddij表示DDAM中第i行j列元素,表示ci和cj之间直接接口依赖关系的值;id’ij表示IIDM中第i行j列元素,表示ci和cj之间直接接口依赖关系的值;dd’ij表示IDDM中第i行j列元素,表示ci和cj之间直接接口依赖关系的值;根据依赖关系设定权重为λid>λid’,λdd>λdd’且λid+λid’+λdd+λdd’=1;则ci和cj之间的依赖度为dij=λididij+λid’id’ij+λddddij+λdd’dd’ij,所以构件依赖矩阵(简称CDM)为CDM=λidIDAM+λid’IIDM+λddDDAM+λdd’IDDM。
其中,步骤四中基于依赖的测试序列生成算法包括计算测试序列的距离;测试序列的距离为两个测试序列间的编辑距离,其算法为:
假设测试序列s的字符串长度为p,t的字符串长度为q,计算两个测试序列的距离:
基于依赖的测试序列生成算法包括计算算法为:
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (5)
1.一种用于构件化软件的集成测试方法,其特征在于,包括如下步骤:
步骤一:接口分析,对待测的各个构件进行分析,提取需要的类型信息;
步骤二:设置测试参数,设置测试序列的个数和构件依赖矩阵文件路径;
步骤三:读取接口信息,从接口分析提取的类型信息文件读取构件的各种接口信息和通过构件依赖矩阵文件路径将构件依赖矩阵文件中的内容读入内存保存;
步骤四:基于依赖的构件集成测试,使用基于依赖的测试序列生成算法,生成对应的测试序列,当生成的测试序列个数与设置的序列个数一致时停止生成序列,输出测试结果。
2.根据权利要求1所述的用于构件化软件的集成测试方法,其特征在于,所述步骤一接口分析提取的类型信息包括构件名称、命名空间名称、类名称、方法名称、参数名称、参数类型和返回类型。
3.根据权利要求1所述的用于构件化软件的集成测试方法,其特征在于,所述步骤二中构件依赖矩阵文件为描述待测的各个构件间依赖关系的数据结构,所述构件依赖矩阵(简称CDM)包括:构件接口依赖邻接矩阵(简称IDAM)、构件数据依赖邻接矩阵(简称DDAM)、构件间接接口依赖矩阵(简称IIDM)和构件数据间接依赖矩阵(简称IDDM)。
4.根据权利要求1所述的用于构件化软件的集成测试方法,其特征在于,所述步骤四中基于依赖的测试序列生成算法包括计算测试序列的距离。
5.根据权利要求4所述的用于构件化软件的集成测试方法,其特征在于,所述测试序列的距离为两个测试序列间的编辑距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810145608.1A CN108388511A (zh) | 2018-02-12 | 2018-02-12 | 一种用于构件化软件的集成测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810145608.1A CN108388511A (zh) | 2018-02-12 | 2018-02-12 | 一种用于构件化软件的集成测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108388511A true CN108388511A (zh) | 2018-08-10 |
Family
ID=63068819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810145608.1A Pending CN108388511A (zh) | 2018-02-12 | 2018-02-12 | 一种用于构件化软件的集成测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108388511A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860492A (zh) * | 2021-03-29 | 2021-05-28 | 中信银行股份有限公司 | 一种适用于核心系统的自动化回归测试方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279794A (zh) * | 2011-08-12 | 2011-12-14 | 华南理工大学 | 一种rfid构件动态测试系统及方法 |
CN102880546A (zh) * | 2012-09-03 | 2013-01-16 | 上海方正数字出版技术有限公司 | 一种基于xml数据库的软件集成测试方法及系统 |
US8601446B2 (en) * | 2008-10-22 | 2013-12-03 | Wipro Limited | Complexity dependency change impact system and method |
CN104077228A (zh) * | 2014-07-08 | 2014-10-01 | 浙江理工大学 | 一种基于谓词依赖图的efsm可执行测试序列生成方法 |
US9495281B2 (en) * | 2012-11-21 | 2016-11-15 | Hewlett Packard Enterprise Development Lp | User interface coverage |
-
2018
- 2018-02-12 CN CN201810145608.1A patent/CN108388511A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8601446B2 (en) * | 2008-10-22 | 2013-12-03 | Wipro Limited | Complexity dependency change impact system and method |
CN102279794A (zh) * | 2011-08-12 | 2011-12-14 | 华南理工大学 | 一种rfid构件动态测试系统及方法 |
CN102880546A (zh) * | 2012-09-03 | 2013-01-16 | 上海方正数字出版技术有限公司 | 一种基于xml数据库的软件集成测试方法及系统 |
US9495281B2 (en) * | 2012-11-21 | 2016-11-15 | Hewlett Packard Enterprise Development Lp | User interface coverage |
CN104077228A (zh) * | 2014-07-08 | 2014-10-01 | 浙江理工大学 | 一种基于谓词依赖图的efsm可执行测试序列生成方法 |
Non-Patent Citations (1)
Title |
---|
陈祖文: "基于依赖的构件集成测试方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860492A (zh) * | 2021-03-29 | 2021-05-28 | 中信银行股份有限公司 | 一种适用于核心系统的自动化回归测试方法及系统 |
CN112860492B (zh) * | 2021-03-29 | 2024-03-26 | 中信银行股份有限公司 | 一种适用于核心系统的自动化回归测试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10476908B2 (en) | Generating highly realistic decoy email and documents | |
Goodreau et al. | A statnet tutorial | |
US9043759B1 (en) | System and method for generating software unit tests simultaneously with API documentation | |
CN107992409A (zh) | 测试用例生成方法、装置、计算机设备和存储介质 | |
US20020091968A1 (en) | Object-oriented data driven software GUI automated test harness | |
CN101501684A (zh) | 包装器生成和模板检测的联合优化 | |
Qin et al. | Testmig: Migrating gui test cases from ios to android | |
CN111290956B (zh) | 基于脑图的测试方法、装置、电子设备及存储介质 | |
US8849612B2 (en) | System and method of substituting parameter sets in self-contained mini-applications | |
Ahadi et al. | A comparison of three popular source code similarity tools for detecting student plagiarism | |
Liu et al. | Identifying renaming opportunities by expanding conducted rename refactorings | |
CN108572942A (zh) | 一种创建超链接的方法和装置 | |
US20040133880A1 (en) | Tracking unit tests of computer software applications | |
CN106649107A (zh) | 安卓系统稳定性的自动化测试方法及装置 | |
US20230308381A1 (en) | Test script generation from test specifications using natural language processing | |
CN116361810A (zh) | 一种基于符号执行的智能合约漏洞检测方法 | |
EP3467691B1 (en) | Method of selecting software files | |
Jiang et al. | Tracing back the history of commits in low-tech reviewing environments: a case study of the linux kernel | |
US10830818B2 (en) | Ensuring completeness of interface signal checking in functional verification | |
Kulczynski et al. | The power of string solving: simplicity of comparison | |
Nong et al. | Vulgen: Realistic vulnerability generation via pattern mining and deep learning | |
CN108388511A (zh) | 一种用于构件化软件的集成测试方法 | |
Liu et al. | PropertyGPT: LLM-driven Formal Verification of Smart Contracts through Retrieval-Augmented Property Generation | |
US6954746B1 (en) | Block corruption analysis and fixing tool | |
Silva et al. | Identifying classes in legacy JavaScript code |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180810 |
|
RJ01 | Rejection of invention patent application after publication |