

本发明涉及一种软件测试覆盖率分析方法,尤其涉及一种基本的软件平台应用程序界面集成测试覆盖率分析方法.
背景技术:
对基本软件平台的应用程序接口进行集成测试的目的之一是验证构成平台的基本软件的应用程序接口方法,接口方法之间的顺序约束以及两者之间的交互约束. 接口和其他基本软件接口方法在集成环境中的正确性. 在基本软件平台应用程序接口的集成测试过程中,基本软件供应商,第三方测试组织还是应用系统开发人员面临的共同问题是: 如何评估根据典型应用场景设计的集成测试用例集Basic软件平台应用程序接口以及接口之间交互约束的覆盖范围等.
以基本软件为组成部分,由基本软件组合而成的基本软件平台可视为组成软件.
尽管结构化和面向对象软件的覆盖率分析方法相对成熟,但针对程序内部结构提出了许多测试覆盖率指南,并且有成熟的基于源代码的覆盖率分析工具可支持基于这些覆盖准则,例如北航软件开发的Ratioanal Purify,SafePro C ++和SafePro Java.
但是,关于组件软件的覆盖率准则和覆盖率分析方法的研究才刚刚开始. 由于商业组件的源代码信息不可用,因此无法应用基于源代码的覆盖率分析方法,并且将其面向单个模块或组件,并针对程序的内部结构. 测试覆盖率准则不适用于组件软件,并且需要用于组件之间交互的测试覆盖率准则和覆盖率分析方法. 当前组件和组件软件的覆盖率分析方法仅仅是Jerry Gao等人提出的组件验证测试覆盖率分析方法. 但是,它仅分析单个组件的接口方法之间的顺序约束的测试覆盖率,而不分析集成环境中的组件. 覆盖分析其他组件的接口方法之间的交互约束.
技术实现要素:
根据基本软件平台应用程序界面集成测试覆盖率评估的要求程序调用时序图,本发明提出了一种基本软件平台应用程序界面集成测试覆盖率分析方法. 该方法使用静态接口方法调用序列图来表示所有可能的基本软件应用程序. 接口,接口和与其他组件的接口之间的交互信息,使用动态接口方法调用序列图表示在集成测试用例集执行期间基本软件应用程序接口,接口和与其他组件的接口之间的交互,以及然后根据覆盖评估测试集覆盖基本的软件应用程序接口和接口之间的交互. 该方法包括以下步骤:

(1)利用现有的静态分析技术,对基础软件平台集成应用系统进行分析,获取基础软件平台集成应用系统的结构信息,构造静态接口方法,并调用时序图S-IMAD;
(2)在集成测试用例集的执行过程中,动态分析技术用于获取基本软件应用程序接口,集成测试用例集运行时的接口以及与测试用例的接口之间的交互信息. 其他组件,并建立一个动态接口Method调用序列图D-IMAD;
(3)基于S-IMAD和D-IMAD,测试集用于评估测试集中的接口覆盖范围和接互.
本发明的技术效果是提供一种用于评估集成测试用例集覆盖基本软件应用程序接口以及接口之间的交互程度的测量方法.
图纸说明
图. 图1是组件C1的接口I1的静态接口方法调用的顺序图.
图2是在执行T1和T2用例之后,接口I1的D-IMAD动态接口方法调用的顺序图.
图3是基本软件平台的应用程序接口的集成测试覆盖率分析方法的流程图.
具体实现

一种基本软件平台应用程序接口集成测试覆盖率分析方法,该方法以基本软件为组件,然后将基本软件组合而成的基本软件平台视为组件软件. 软件和组件统称为组件.
(1)图1是S-IMAD静态接口方法调用的序列图. 对于组件C的每个应用程序接口Ik,都有一个静态接口方法调用序列图S-IMAD. S-IMAD是有向图. S-IMAD表示为二进制组G =(F,E),其中F是一组节点,并且这些节点表示组件C的接口Ik的公共可访问方法和应用程序. 组件接口的可公共访问的方法在系统上下文中与Ik交互. 任何节点Fi的描述包括以下内容: 该方法所属的组件的名称,该方法所属的组件接口的名称以及该方法的名称. E是一组边,并且边Ei =(Fi,Fj)表示访问Fi之后,访问Fj,它表示方法调用顺序Fi→Fj. 边缘有两种类型,条件边缘和无条件边缘. 条件边缘上有一个谓词条件,表明对方法访问顺序Fi→Fj的约束.
S-IMAD描述了组件接口之间的方法调用,组件接口之间的方法调用以及由组件与系统中其他组件之间的交互作用生成的组件接口之间的方法调用. 图1是组件C1的接口I1的静态接口方法调用的顺序图,描述了组件C1的接口I1的可能交互. 从图中可以看出,C1的接口I1与C1的接口I2和C2的接口I2具有交互关系.
(2)图2是D-IMAD动态接口方法调用的序列图. 对于组件C的每个应用程序接口Ik程序调用时序图,可以建立许多动态接口方法调用序列图D-IMAD. 每个D-IMAD代表执行. 在给定一组集成测试用例T之后,组件C的接口Ik的方法调用序列集. D-IMAD是有向图. D-IMAD表示为二进制组G =(F,E),其中F是一组节点,而节点表示组件C的接口Ik及其应用的可公开访问的方法. 组件接口的可公开访问的方法,它与系统上下文中的组件C接口Ik具有交互关系. 任何节点Fi的描述包括以下内容: 该方法所属的组件的名称,该方法所属的组件接口的名称以及该方法的名称. E是一组边. 边缘表示在执行测试集T中的测试用例tn之后,方法调用序列将在访问Fj之后访问Fi,这表示方法调用序列Fi→Fj. 图2是执行T1和T2用例后,接口I1的D-IMAD动态接口方法调用的顺序图.
方明基于接口方法调用序列图的覆盖率分析方法,使用静态接口方法调用序列图来表示基本软件应用程序接口,接口以及与其他组件的接口之间的所有可能的交互信息,使用动态接口方法调用序列该图表示在集成测试用例集执行期间基本软件应用程序接口,接口以及与其他组件的接口之间的交互,然后评估测试集对基本软件应用程序接口与应用程序接口之间交互的覆盖范围. 界面基于覆盖率.
请参见图3,此方法的具体实现过程如下:
(1)使用静态分析技术分析基本软件平台集成应用系统,获取基本软件平台集成应用系统的结构信息,并构建静态接口方法调用序列图S-IMAD. 此活动的目的是获取应用程序系统的结构信息,并对被评估组件和应用程序系统的所有可能的方法调用进行建模.
1)获取基本软件平台集成应用系统的结构信息;
应用系统结构信息是指构成基本软件平台的集成应用系统体系结构中的组件,接口,类和方法信息,类与接口之间的关系信息以及类与接口之间调用的方法等. 信息. 此任务的输入是基本软件和应用程序系统开发人员可以提供的所有可用文档信息,例如组件图和类间关系图,输出是基本软件平台的集成应用程序系统的结构信息. . 通常,由基本软件制造商和应用程序系统开发人员提供的信息非常有限,并且可以使用软件逆向工程工具来提取结构信息. 目前,用于用Java和C ++编写的软件的逆向工程工具已经相对成熟. 反向工具可以提取字节码软件的结构信息.

2)提取接口方法调用序列,并构建静态接口方法调用序列图S-IMAD;
此任务的输入是应用程序系统结构信息,输出是组件和组件间接口方法调用序列,以及根据方法调用序列构建的静态接口方法调用序列图S-IMAD. 由于特定的接口方法调用顺序与用户的使用场景有关,因此在运行测试场景时,可能不会调用S-IMAD中的某些接口方法调用顺序.
(2)使用动态分析技术获取测试集运行时组件的接口和接互信息,并建立动态接口方法调用序列图D-IMAD.
此活动的目标是在执行测试用例集期间提取接口的方法调用序列. 输入是应用程序系统测试集,输出是接口方法调用序列,以及基于接口方法调用序列构建的动态接口方法调用序列图D-IMAD.
1)提取接口方法的调用顺序;
在执行测试集期间,将提取组件的接口方法调用顺序,并忽略那些非接口方法,例如Java API方法,私有方法或接口中未定义的公共方法. . 任务输入是测试集,输出是接口方法调用序列. 根据实际情况,通过将字节码插入组件接口,生成包装器,使用中间件功能和面向方面的技术,还可以使用某些工具(例如调试器和性能调整工具)来收集运行时. 组件之间的交互信息. 您可以创建组件交互记录器,以记录受监视的组件与系统中其他组件之间的运行时交互信息,例如方法调用顺序,方法输入和输出值等.
2)构造动态接口方法调用序列图D-IMAD;
此任务将接口方法调用序列建模为动态接口方法调用序列图D-IMAD. 输入是组件接口的方法调用序列,输出是组件接口的D-IMAD.
(3)根据覆盖范围评估测试用例集的界面交互覆盖范围.

此活动的目标是计算和分析界面交互覆盖率,以评估测试集的界面交互覆盖能力. 输入是组件的S-IMAD和执行测试集后获得的D-IMAD,输出是覆盖率. 根据定义的覆盖率完成测试覆盖率分析:
定义1: 覆盖率
假定组件应用程序接口的集成测试用例集为T,并且T包含N个测试用例. 在执行测试用例集T之后,D-IMAD显示S-IMAD中节点,过渡边缘和路径的覆盖范围.
定义2: 节点覆盖率
IMS表示接互调用的所有方法集. ITMS表示在执行测试集期间测试的一组接互方法. 如果并且仅在运行测试集之后,才满足节点覆盖率的接口I至少已执行一次IMS中的所有方法. 节点覆盖率的计算公式为:
INode-Coverage = | ITMS∩IMS | | IMS | ---((1)]]>
其中IMS是接口I的S-IMAD节点的并集,而ITMS是执行测试用例集后获得的接口I的D-IMAD节点的并集.
定义2: 传输边缘覆盖范围
ILinkS表示接口I的S-IMAD中节点之间的所有过渡边缘的集合. ITLinkS表示在测试集执行期间执行的传输边缘的集合,其值是之间的所有传输边缘的集合. 接口I,它满足过渡边缘覆盖率,如果且仅在运行测试集之后,才能至少执行一次ILinkS中的所有过渡边缘. 传输边缘覆盖率的计算公式为:
ILink-Coverage = | ITLinkS∩ILinkS | | ILinkS | ---(2)]]>
定义3: 路径覆盖范围
当且仅当所有有效路径均已执行至少一次时,该接口I满足路径覆盖率. 有效路径从接口I的公共可调用方法开始,并且深度优先遍历由接口I的S-IMAD获得的节点形成的所有路径的集合;被覆盖的有效路径从接口I的公共可调用方法开始,即接口I的D-IMAD获得的节点形成的所有路径的集合的深度优先遍历. 路径覆盖率的计算公式为:
IPath-Coverage = | CoveredValidPaths | ValidPaths-(3). ]]>.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-276015-1.html
后面的报道一定是非常失望