CN111694741B - 一种基于路径深度覆盖的测试用例设计方法 - Google Patents

一种基于路径深度覆盖的测试用例设计方法 Download PDF

Info

Publication number
CN111694741B
CN111694741B CN202010509602.5A CN202010509602A CN111694741B CN 111694741 B CN111694741 B CN 111694741B CN 202010509602 A CN202010509602 A CN 202010509602A CN 111694741 B CN111694741 B CN 111694741B
Authority
CN
China
Prior art keywords
test
coverage
data
model
path
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.)
Active
Application number
CN202010509602.5A
Other languages
English (en)
Other versions
CN111694741A (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.)
COMPUTER APPLICATION RESEARCH INST CHINA ACADEMY OF ENGINEERING PHYSICS
Original Assignee
COMPUTER APPLICATION RESEARCH INST CHINA ACADEMY OF ENGINEERING PHYSICS
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 COMPUTER APPLICATION RESEARCH INST CHINA ACADEMY OF ENGINEERING PHYSICS filed Critical COMPUTER APPLICATION RESEARCH INST CHINA ACADEMY OF ENGINEERING PHYSICS
Priority to CN202010509602.5A priority Critical patent/CN111694741B/zh
Publication of CN111694741A publication Critical patent/CN111694741A/zh
Application granted granted Critical
Publication of CN111694741B publication Critical patent/CN111694741B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test 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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种基于路径深度覆盖的测试用例设计方法,包括:层次化测试建模及测试覆盖准则设计,多约束条件下的测试覆盖算法设计,基于模型的自动化测试用例生成。本发明采用的测试用例设计方法基于用户需求风险,科学抽样,保证充分性同时,用例数量可控,关注测试目的,测试数据明确,测试用例可执行,实现了与仿真测试平台VsimTP/CosimRT无缝对接和连贯执行,显著提高了测试设计的效率和对测试需求的覆盖率。

Description

一种基于路径深度覆盖的测试用例设计方法
技术领域
本发明涉及计算机领域,具体涉及一种基于活动模型图中路径深度覆盖的测试用例自动化设计方法。
背景技术
传统的软件设计流程的每个阶段都是基于文档描述的形式,通过大量的、不同的文档传递软件系统结构、交互行为等信息,随着装备嵌入式系统功能越来越复杂,综合程度不断提高,传统测试面临严峻的问题与挑战。首先,软件研制任务书、需求规格说明等设计文档基于文字形式描述,信息传递差、容易产生二义性,极易导致设计人员、编码人员和测试人员对软件的需求理解不一致,即对同一段文档需求,不同的测试设计人员理解存在差异,使得后续的测试用例设计,依赖于测试设计人员经验,测试设计过程不透明,缺乏科学的覆盖手段。其次,由于测试需求为文字化的描述,需求分析必须借助测试人员参与,通过测试人员对软件需求的理解,结合自身的业务背景知识,对划分的功能进行测试用例设计,导致过于依赖测试人员及其隐含知识,难以采用自动化的测试工具来提高测试设计效率。
为了解决上述问题,且科学地覆盖系统各种应用场景,本发明采用一种基于模型的自动化测试设计方法,由于SysML活动模型图着重描述系统的动态行为和业务交互过程,因此,活动图模型不仅是进行功能业务需求分析和系统设计的重要手段,也是系统测试时测试用例设计的基本依据。通过对活动模型图中功能业务场景的遍历以及测试数据组合的科学化抽样,基于模型自动生成测试用例,实现测试的科学化覆盖。与众不同的是,本发明从用户角度出发,即根据用户需求风险确定不同测试覆盖目标,依据测试覆盖目标,采用“业务模型+数据驱动”的方式进行数据约束计算,自动生成满足路径覆盖、数据覆盖、条件判定覆盖、子图嵌套覆盖等覆盖策略的测试用例集,实现嵌入式软件系统不同粒度,不同风险级别测试设计的科学化覆盖与抽样,提高测试设计的效率和对测试需求的覆盖率,进而能发现更多有价值的系统性问题。
发明内容
本发明的目的在于解决自动化测试过程中测试用例设计的科学化覆盖与抽样问题,提供一种新颖的基于活动模型图路径深度覆盖的测试用例自动化设计方法,使测试设计分析过程透明化、设计思考更系统,提高测试设计的效率和对测试需求的覆盖率。
为实现上述目的,本发明提供了一种基于路径深度覆盖的测试用例设计方法,包括:层次化测试建模及测试覆盖准则设计,多约束条件下的测试覆盖算法设计,基于模型的自动化测试用例生成。
优选的,所述层次化测试建模及测试覆盖准则设计,包括:层次化测试模型,数据配置,条件约束设计,测试策略配置,基于分层嵌套的测试覆盖准则设计。
优选的,所述层次化测试模型,针对系统功能需求,采用“自上而下,逐步精化”的方法和“高内聚低耦合原则”对整个系统的业务行为,功能之间关系进行抽象描述,上层业务模型采用子活动图(简称子图)嵌套方式对下层的功能模块进行建模描述,在系统上层生成的测试用例重点考察功能模块间的交互场景,在底层功能模型生成的测试用例重点考察模块内部的业务逻辑。
优选的,所述数据配置是设计合适的测试数据输入表达方式,并将测试数据引用到测试模型中参与计算生成具体的测试用例,需配置数据格式,类型,精度以及范围等。数据格式包括单个数据,结构数据以及集合数据,数据类型包括整形、浮点型、字符串、布尔型等,数据精度和数据范围用于自动根据等价类、边界值的算法抽样生成测试数据。
优选的,所述条件约束设计在测试建模过程中按照实际业务需求进行数据和控制流的约束设计,约束设计包括数据约束设计,前置条件,后置条件,重置条件以及时间约束。
优选的,所述测试覆盖策略配置是在生成测试用例前需要根据用户风险确定测试覆盖目标,即测试设计的终止条件,包括路径覆盖策略、数据覆盖策略、条件判定覆盖策略、子图嵌套覆盖策略。路径覆盖策略包括路径深度选择{1,2,3,n},设置覆盖深度越大,即覆盖程度越高,生成的测试路径越多。数据覆盖策略包括EC、2-wise、3-wise和n-wise。EC组合策略是指组合数据中每个因子至少出现一次,n-wise是n维组合覆盖,其中n是不同数据因素之间交互的力度。条件判定覆盖策略包括分支覆盖(DC)策略和条件组合覆盖(MC/DC)策略,分支覆盖策略是针对模型图中每个分支的覆盖要求,适合测试风险级别比较低的情况,条件组合覆盖策略需要覆盖模型图中条件分支中条件约束逻辑组合情况,适合测试风险级别比较高的情况。子图嵌套覆盖策略包括扩展策略、贯通策略以及组合策略。
优选的,所述基于分层嵌套的测试覆盖准则,为实现不同层次、不同粒度的测试用例设计自动生成,在嵌套子图生成逻辑测试用例时,对嵌套的子图覆盖定义了3种处理方式:1)子图覆盖准则1:展开关系,定义子图为父图的一部分,只是为了显示直观或方便,将其单独成图,覆盖策略与父图一致。2)子图覆盖准则2:贯通关系,取子图中任一贯通路径融入父图中,在测试生成时父图只选取该条路径进行场景的覆盖。3)子图覆盖准则3:组合关系,考虑在父图中有多个入路径或出路径的情况下,子图中所有路径与父图连接路径进行全组合。
优选的,所述多约束条件下的测试覆盖算法设计,包括:基于判定节点的模型分层,基于路径深度的逻辑测试用例生成。
优选的,所述基于判定节点的模型分层,将活动模型图抽象为有向无环图后,以判定节点为分割点对整个模型图进行分割分层,将复杂模型图分割为从开始节点到结束节点的路径段,完成将活动图分为以判定节点为关联的相邻路径。
优选的,所述基于路径深度的逻辑测试用例生成,在完成活动图被分为以判定节点为关联的相邻路径的基础上,定义并引用路径覆盖深度的概念,定义路径覆盖深度为相邻小路径之间的组合程度,依据设置的路径覆盖深度来生成最终的逻辑测试用例集合。定义路径覆盖深度为1,生成的逻辑测试用例以覆盖模型图中的小路径集合为目标,定义路径覆盖深度为2,则生成的逻辑测试用例需要覆盖模型图中的所有相邻小路径之间的组合情况,以此类推,定义路径覆盖深度为n,则生成的逻辑测试用例需要覆盖模型图中的相邻路径之间完全组合的情况,设置的覆盖深度越大,则需要覆盖相邻小路径之间的组合强度要求越高,需设计生成的逻辑测试用例越多,测试设计对场景的覆盖越充分。
优选的,所述基于模型的测试用例输出是在基于测试模型已经生成了满足测试覆盖目标的逻辑测试用例集后,由于一个完整的测试用例应该包括前置条件,测试步骤,测试输入,期望结果等,在基于测试模型生成测试用例时,并不是所有的活动节点都是需要关注的测试点,定义了以下3种测试点作为测试用例输出的每个输入操作步骤,并设计相应期望结果,包括:判定节点作为测试点,断言作为测试点,时间约束作为测试点。
优选的,所述基于模型的测试用例自动化生成,包括:模型图形脚本生成,数据字典脚本生成,动作字典脚本生成,执行用例脚本生成及用例设计文档自动生成。
优选的,所述模型图形脚本生成是将整个模型图信息传递给仿真平台,仿真平台根据模型图信息进行模型反演,用于模型与仿真平台的绑定和测试用例动态执行显示,模型信息包括各个图元的名称、ID、位置、大小、以及图元间连接关系等信息。
优选的,所述数据字典脚本生成是测试执行过程中所用到的测试数据集合,数据字典信息包括数据名称、数据描述、ID、类型、属性名、数据值域等信息。
优选的,所述动作字典脚本生成用于具体仿真执行时进行底层的接口级函数封装,动作字典信息包括动作名称(不可重复),动作ID,参数列表(参数名称、参数ID,参数类型)等信息。
优选的,所述执行用例脚本生成是用于仿真平台的可执行测试用例脚本,用例脚本的每一个步骤包含操作节点名称,ID,描述,数据属性(包括数据名称、数据ID、数据类型,具体数据),以及动作属性(包括动作名称、动作ID、动作的参数属性)。
优选的,所述用例设计文档自动生成,包括:测试说明文档生成和测试记录文档生成,测试说明文档信息包括测试用例名称,标识,追踪关系,用例综述,用例初始化,前提和约束,设计方法,测试步骤,测试用例终止条件,测试用例通过准则及设计人员。测试记录文档信息包括测试用例名称,标识,追踪关系,用例综述,用例初始化,前提和约束,设计方法,测试步骤,测试用例终止条件,测试用例通过准则,执行状态,问题单标识,测试人员,测试时间及未(完整)执行的原因。
附图说明
图1是本发明实施例中基于路径深度覆盖的测试用例设计结构示意图
图2是本发明实施例中基于模型的测试设计流程框架示意图
图3是本发明实施例中基于判定节点的模型分层示意图
图4是本发明实施例中多约束条件下的测试覆盖算法设计示意图
图5是本发明实施例中基于路径深度的逻辑测试用例生成示意图
图6是本发明实施例中层次化测试建模及测试覆盖准则设计示意图
具体实施方式
为使本发明的上述目的、特征和优点能够更加简明易懂,下面结合附图和具体实施方式对本发明进行进一步的说明。
图1是本发明一种基于路径深度覆盖的测试用例设计结构示意图:针对系统功能需求采用高内聚低耦合原则进行层次化测试建模,首先,依据子图嵌套测试覆盖准则处理图与图之间的嵌套交互关系,包括:展开关系、贯通关系以及组合关系,其次,针对模型图内采用基于路径深度覆盖的测试设计方法生成逻辑测试用例,再结合图与图之间的处理规则生成最终的逻辑测试用例,最后,基于每个逻辑测试用例进行测试数据覆盖自动化生成最终测试用例,包括:模型脚本,数据字典,动作字典,用例脚本及用例设计文档。
图2是本发明一种基于模型的测试设计流程框架示意图:基于模型的测试设计方法结合用户的需求风险,采用业务模型和数据驱动的方式进行测试分析与设计,其过程可以分为以下几个步骤:对软件需求进行分析,建立软件测试模型;配置定义模型中的输入数据,包括变量、数组以及结构体等;在模型图的判定分支上设计数据约束条件;配置测试覆盖策略,包括路径覆盖、数据覆盖策略以及条件判定覆盖策略等,确定测试覆盖的目标;采用测试数据驱动的方法,将路径、数据和约束求解一起进行计算,在计算的过程中检查覆盖目标,直至满足所有的覆盖策略条件,即完成测试设计目标;将满足测试目标的测试用例,结合模型图中测试场景和数据组合生成最终可执行测试用例,并按照一定的格式输出。
图3是本发明一种基于判定节点的模型分层示意图:将活动模型图解析后抽象为4类节点:分别是开始节点,活动节点,判定节点,结束节点。以判定节点为分割点对整个模型图进行分层,任何复杂模型图将被分割为从开始节点到结束节点的路径段,即活动模型图被分为以判定节点为关联的相邻路径,我们定义路径覆盖深度的概念,路径覆盖深度为相邻路径段的组合强度,路径覆盖深度为1表示生成的逻辑测试用例只覆盖模型图中的各个分割路径段,路径覆盖深度为2表示生成的逻辑测试用例需要覆盖模型图中的各相邻路径段之间的组合情况,路径覆盖深度为3表示生成的逻辑测试用例需要覆盖模型图中的每3个相邻路径段之间的组合情况,以此类推,路径覆盖深度为n表示生成的逻辑测试用例需要覆盖模型图中的所有路径段之间完全组合的情况,路径覆盖深度越大,要求生成的测试用例越多,测试覆盖越充分。
图4是本发明一种多约束条件下的测试覆盖算法设计示意图:在将模型图遍历解析,并基于模型图中的判定节点进行分层,将模型图分割为相邻路径段后,为了生成满足测试覆盖目标的测试用例集,生成过程中同时考虑了条件组合覆盖和数据覆盖要求,首先,将判定节点中数据约束条件进行约束求解,依据条件覆盖策略将条件组合覆盖要求衍生/转化为路径段覆盖,再将基于判定节点分割路径段和衍生路径段采用基于路径深度覆盖算法生成逻辑测试用例,此时逻辑测试用例已满足路径覆盖和条件组合覆盖策略要求。其次,基于生成的逻辑测试用例,由于每条逻辑测试用例对应于软件需求的一个业务场景,每个业务场景涉及的测试数据不尽相同,因此,基于每个逻辑测试用例逐个考虑数据覆盖策略要求,直至生成最终的带测试数据的测试用例集合。最后,结合模型图中路径、数据、约束、动作序列以及期望结果等,输出最终的测试用例。下面算法1给出了覆盖算法的具体实现过程,该算法解决了多约束条件下(路径覆盖,数据覆盖以及条件组合覆盖)的测试覆盖设计与生成,其中,AP为模型图提取信息集合,D为判定节点集合,C为条件约束集合,AB_TestCase为逻辑上测试用例集,即生成测试用例只有路径不包含具体数据,EX_TestCase为可执行的测试用例集,包含具体的测试数据。
图5是本发明一种基于路径深度的逻辑测试用例生成示意图:采用基于路径深度的测试用例设计方法,来生成满足相应风险级别的逻辑测试用例集合,如图所示,以判定节点D1和D2为分割点,分层得到模型图的关联路径段,即小路径/分支集合,其中基于判定节点D1的入路径为{1},出路径为{2,3},基于判定节点D1的入路径为{2,3},出路径为{4,5,6},若设置路径覆盖深度为1,则生成的逻辑测试用例只覆盖模型图中的小路径集合,即覆盖路径集合{1,2,3,4,5,6},要完成这个覆盖目标需要设计3个逻辑测试用例,即TC1、TC2和TC3。同理,若设置路径覆盖深度为2,则生成的逻辑测试用例需要覆盖模型图中的每个相邻路径之间组合情况,即覆盖路径集合{1-2,1-3,2-4,2-5,2-6,3-4,3-5,3-6},要完成这个覆盖目标需要设计6个逻辑测试用例,即TC1、TC2、TC3、TC4、TC5和TC6。以此类推,若设置路径覆盖深度为n,则生成的逻辑测试用例需要覆盖模型图中的所有路径段之间完全组合的情况,即覆盖路径集合{1-2-4,1-2-5,1-2-6,1-3-4,1-3-5,1-3-6},设置的路径覆盖深度越大,则为满足覆盖目标需要生成的测试用例越多。
图6是本发明一种层次化测试建模及测试覆盖准则设计示意图:采用“自上而下,逐步精化”的方法对系统功能需求进行分层建模,并在不同的层次可采用不同测试覆盖准则进行抽样设计,如图所示,从系统功能需求出发,建立了系统的4层模型:包括顶层行为模型,第二层行为模型,第三层行为模型和底层基本业务模型。在生成测试用例时,可以在4个层次分别配置覆盖策略生成测试用例,即在顶层行为模型中重点考察功能模块ACT1,ACT2,ACT3,ACT4,ACT5,ACT6间的交互场景,针对嵌套的子图ACT5采用3种可选的处理方式:展开关系、贯通关系和组合关系。在第二层行为模型中生成测试用例时,可按照3种可选的处理方式设置子图ACT5.5的展开策略,在该层重点考察功能模块ACT5.1,ACT5.2,ACT5.3,ACT5.4,ACT5.5间业务交互场景,以此类推,在底层基本业务模型中生成测试用例时,该层由于不嵌套子活动模型图,因此,依据所述基于路径深度覆盖的测试设计方法生成测试用例,并重点考察模块内部的业务逻辑交互关系。综上,通过层次化测试建模和设置子图展开覆盖准则,实现了不同层次、不同粒度的测试用例自动生成。
虽然结合附图描述了本发明的实施方式,但是本领域普通技术人员在所附权利要求的范围内不需要创造性的劳动就能做出的各种变形或修改仍属本专利的保护范围。
以上对本发明所提供的一种基于路径深度覆盖的测试用例设计方法进行了详细的介绍,与现有技术相比,本发明实施至少具有以下优点:本发明采用的基于路径深度覆盖的测试用例设计方法,基于用户测试需求风险,科学抽样,保证充分性同时,用例数量可控;采用数据驱动测试方法,测试数据明确,测试用例可执行;复杂流程解耦,关注测试目的;支持与仿真测试平台VsimTP/CosimRT无缝对接,实现了连贯执行和用例执行路径在仿真平台动态显示;提高了测试设计的效率和对测试需求的覆盖率。

Claims (8)

1.一种基于路径深度覆盖的测试用例设计方法,针对软件系统的业务行为和运行场景,采用层次化测试建模方法进行描述,建立软件业务行为模型;层次化测试模型,其特征在于:针对系统功能需求,采用“自上而下,逐步精化”的方法,对整个系统的业务行为,功能之间关系进行描述,下层行为模型采用子活动图嵌套方式对上层的功能模块进行建模描述,顶层行为模型中的功能模块ACT5采用子图嵌套的方式由第二层行为模型进行抽象描述,第二层行为模型中的功能模块ACT5.5采用子图嵌套的方式由第三层行为模型进行抽象描述,第三层行为模型中的功能模块ACT5.5.5采用子图嵌套的方式由基本业务模型进行抽象描述,在系统上层生成的测试用例重点考察功能模块间的交互场景,在底层功能模型生成的测试用例重点考察模块内部的业务逻辑;
在行为模型中的配置输入数据,并将测试数据引用到测试模型中参与计算生成具体的测试用例;数据配置,设计合适的测试输入数据表达方式,并将测试数据引用到测试模型中参与计算生成具体的测试用例,需配置数据格式,类型,精度以及范围,数据格式包括单个数据,结构数据以及集合数据,数据类型包括整形、浮点型、字符串、布尔型,数据精度和数据范围用于自动根据等价类、边界值的算法抽样生成测试数据;
在行为模型的判定分支上,根据业务逻辑关系设计数据流和控制流的约束条件,建立软件的测试模型;条件约束设计,在测试建模过程中按照实际业务需求进行数据和控制流的约束设计,约束设计包括数据约束设计,前置条件,后置条件,重置条件以及时间约束。
2.根据权利要求1所述的一种基于路径深度覆盖的测试用例设计方法,其特征在于:基于用户需求风险配置测试设计的覆盖目标,即确定测试设计的终止条件,包括路径覆盖策略、数据覆盖策略、条件判定覆盖策略以及子图嵌套覆盖策略;测试覆盖策略配置,在生成测试用例前需要根据用户风险确定测试覆盖目标,即测试设计的终止条件,包括路径覆盖策略,即选择路径深度;数据覆盖策略,即选择数据覆盖策略;条件判定覆盖策略,即选择条件组合策略,分支覆盖,条件组合覆盖;子图嵌套覆盖策略,即选择子图嵌套展开策略r扩展策略,贯通策略,组合策略。
3.根据权利要求2所述的一种基于路径深度覆盖的测试用例设计方法,其特征在于:在模型嵌套子图生成测试场景/路径时,对嵌套的子图覆盖采用基于分层嵌套的测试覆盖准则生成逻辑测试用例;分层嵌套的测试覆盖准则设计,为实现不同层次、不同粒度的测试用例设计自动生成,在嵌套子图生成逻辑测试用例时,对嵌套的子图覆盖准则定义了3种处理方式:1)子图覆盖准则1:展开关系,定义子图为父图的一部分,只是为了显示直观或方便,将其单独成图,覆盖策略与父图一致;2)子图覆盖准则2:贯通关系,取子图中任一贯通路径融入父图中,在测试生成时父图只选取该条路径进行场景的覆盖,3)子图覆盖准则3:组合关系,考虑在父图中有多个入路径或出路径的情况下,子图中所有路径与父图连接路径进行全组合。
4.根据权利要求3所述的一种基于路径深度覆盖的测试用例设计方法,其特征在于:针对每层的测试模型,采用多约束条件下的测试覆盖算法,将路径、数据和约束求解一起进行计算,在计算的过程中检查覆盖目标,直至生成的测试用例集合满足所有的覆盖策略,即完成设置的测试覆盖目标;包括基于判定节点的模型分层,基于路径深度的测试用例生成。
5.根据权利要求4所述的一种基于路径深度覆盖的测试用例设计方法,其特征在于:基于判定节点的模型分层,将活动模型图解析后抽象为包括4类节点:分别是开始节点,活动节点,判定节点,结束节点,以判定节点为分割点对整个模型图进行分层,任何复杂模型图将被分害为从开始节点到结束节点的路径段,即活动模型图被分为以判定节点为关联的相邻路径,路径从活动节点N1开始,经过第一层的判定点D1后形成活动节点N2、N3两条分支,N2经过第N层判定节点D2后形成分支N4而后进入结束节点E1结束该路径,N3经过第N判定节点D3后形成分支N5、N6,N5、N6经过第N层判定节点D4后形成分支N7、N8、N9而后进入结束节点E2结束该路径。
6.根据权利要求5所述的一种基于路径深度覆盖的测试用例设计方法,其特征在于:在完成活动图被分为以判定节点为关联的相邻路径的基础上,定义并引用路径覆盖深度的概念,定义路径覆盖深度为相邻小路径之间的组合程度,依据设置的路径覆盖深度来生成最终的逻辑测试用例集合,定义路径覆盖深度为1,生成的逻辑测试用例以覆盖模型图中的小路径集合为目标,定义路径覆盖深度为2,则生成的逻辑测试用例需要覆盖模型图中的所有相邻小路径之间的组合情况,以此类推,定义路径覆盖深度为n,则生成的逻辑测试用例需要覆盖模型图中的相邻路径之间完全组合的情况,设置的覆盖深度越大,则需要覆盖相邻小路径之间的组合强度要求越高,需设计生成的逻辑测试用例越多,为生成满足测试覆盖目标的测试用例集,生成过程中同时考虑了条件组合覆盖和数据覆盖要求,首先,将判定节点中数据约束条件进行约束求解,依据条件覆盖策略将条件组合覆盖要求衍生/转化为路径段覆盖,再将基于判定节点分割路径段和衍生路径段采用基于路径深度覆盖算法生成逻辑测试用例,此时逻辑测试用例已满足路径覆盖和条件组合覆盖策略要求,其次,基于生成的逻辑测试用例,由于每条逻辑测试用例对应于软件需求的一个业务场景,每个业务场景涉及的测试数据不尽相同,因此,基于每个逻辑测试用例逐个考虑数据覆盖策略要求,直至生成最终的待测试数据的测试用例集合,最后,结合模型图中路径、数据、约束、动作序列以及期望结果,输出最终的测试用例。
7.根据权利要求6所述的一种基于路径深度覆盖的测试用例设计方法,其特征在于:将满足测试覆盖目标的测试用例集,结合模型图中测试场景和数据要求,组合生成最终的可执行测试用例集,并按照测试用例设计格式输出测试设计文档和测试脚本,基于模型的测试用例输出,在基于测试模型已经生成了满足测试覆盖目标的逻辑测试用例集后,由于一个完整的测试用例应该包括前置条件,测试步骤,测试输入,期望结果,在基于测试模型生成测试用例时,并不是所有的活动节点都是需要关注的测试点,定义了以下3种测试点作为测试用例输出的每个输入操作步骤,并设计相应期望结果,包括:判定节点作为测试点,断言作为测试点,时间约束作为测试点。
8.根据权利要求7所述的一种基于路径深度覆盖的测试用例设计方法,其特征在于:基于模型的测试用例自动化生成,包括模型图形脚本生成,数据字典脚本生成,动作字典脚本生成,执行用例脚本生成及用例设计文档自动生成,所述模型图形脚本生成,测试执行时将整个模型图信息传递给仿真平台,仿真平台根据模型图信息进行模型反演,用于模型与仿真平台的绑定和测试用例动态执行显示,模型信息包括各个图元的名称、ID、位置、大小、以及图元间连接关系信息,所述数据字典脚本生成,测试执行过程中所用到的测试数据集合,数据字典信息包括数据名称、数据描述、ID、类型、属性名、数据值域信息,所述动作字典脚本生成,用于具体仿真执行时进行底层的接口级函数封装,动作字典信息包括动作名称,名称不可重复,动作ID,参数列表,参数包括:参数名称、参数ID,参数类型,所述执行用例脚本生成,用于仿真平台的可执行测试用例脚本,用例脚本的每一个步骤包含操作节点名称,ID,描述,数据属性包括数据名称、数据ID、数据类型,具体数据,以及动作属性包括动作名称、动作ID、动作的参数属性,所述用例设计文档自动生成,包括:测试说明文档生成和测试记录文档生成,测试说明文档信息包括测试用例名称,标识,追踪关系,用例综述,用例初始化,前提和约束,设计方法,测试步骤,测试用例终止条件,测试用例通过准则及设计人员,测试记录文档信息包括测试用例名称,标识,追踪关系,用例综述,用例初始化,前提和约束,设计方法,测试步骤,测试用例终止条件,测试用例通过准则,执行状态,问题单标识,测试人员,测试时间及未执行的原因。
CN202010509602.5A 2020-06-05 2020-06-05 一种基于路径深度覆盖的测试用例设计方法 Active CN111694741B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010509602.5A CN111694741B (zh) 2020-06-05 2020-06-05 一种基于路径深度覆盖的测试用例设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010509602.5A CN111694741B (zh) 2020-06-05 2020-06-05 一种基于路径深度覆盖的测试用例设计方法

Publications (2)

Publication Number Publication Date
CN111694741A CN111694741A (zh) 2020-09-22
CN111694741B true CN111694741B (zh) 2023-09-29

Family

ID=72479654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010509602.5A Active CN111694741B (zh) 2020-06-05 2020-06-05 一种基于路径深度覆盖的测试用例设计方法

Country Status (1)

Country Link
CN (1) CN111694741B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112564997A (zh) * 2020-10-27 2021-03-26 图灵人工智能研究院(南京)有限公司 网络功能的验证方法、开发系统、计算机设备及存储介质
CN112363924B (zh) * 2020-11-10 2023-09-29 中国平安人寿保险股份有限公司 基于有向图的文本覆盖率测试方法及相关设备
CN112416761B (zh) * 2020-11-11 2023-07-07 北京京航计算通讯研究所 一种基于广度优先搜索的测试用例生成方法及装置
CN112559359B (zh) * 2020-12-22 2024-03-22 华东师范大学 一种基于s2ml的安全攸关系统分析与验证方法
CN114721931B (zh) * 2021-01-06 2024-04-09 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN113190438A (zh) * 2021-04-22 2021-07-30 大商所飞泰测试技术有限公司 基于业务流图的图形化的需求分析及测试用例智能生成方法
CN115525532A (zh) * 2021-06-25 2022-12-27 华为云计算技术有限公司 一种测试用例选择方法及相关装置
CN113468057A (zh) * 2021-07-07 2021-10-01 凯云联创(北京)科技有限公司 基于业务流程模型自动生成测试用例的方法
CN113760751B (zh) * 2021-08-18 2022-11-15 芯华章科技股份有限公司 生成测试用例的方法、电子设备及存储介质
CN113641591B (zh) * 2021-10-14 2022-06-24 腾讯科技(深圳)有限公司 测试用例生成方法及装置、测试方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968769A (zh) * 2010-10-22 2011-02-09 中国人民解放军理工大学 一种基于行为模型的软件安全性测试用例生成方法
US7900089B2 (en) * 2006-06-12 2011-03-01 International Business Machines Corporation Method for creating error tolerant and adaptive graphical user interface test automation
CN105677563A (zh) * 2016-01-05 2016-06-15 南昌航空大学 一种基于SysML模块图的集成测试序列生成方法
CN103530228B (zh) * 2013-09-27 2016-09-28 西安电子科技大学 一种基于模型的软件测试方法
CN107870852A (zh) * 2016-09-26 2018-04-03 北京金山云网络技术有限公司 一种测试方法及装置
CN108459967A (zh) * 2018-03-21 2018-08-28 东南大学 基于用户接口状态流图的Web应用测试用例生成方法
CN108647145A (zh) * 2018-05-10 2018-10-12 清华大学 软件内存安全检测方法及系统
CN108845951A (zh) * 2018-08-14 2018-11-20 郑州云海信息技术有限公司 一种自动化测试覆盖率的计算方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069967B2 (en) * 2007-02-16 2015-06-30 Veracode, Inc. Assessment and analysis of software security flaws
US20190129832A1 (en) * 2017-11-02 2019-05-02 Siemens Aktiengesellschaft System and method for test data generation for use in model based testing using source code test annotations and constraint solving

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7900089B2 (en) * 2006-06-12 2011-03-01 International Business Machines Corporation Method for creating error tolerant and adaptive graphical user interface test automation
CN101968769A (zh) * 2010-10-22 2011-02-09 中国人民解放军理工大学 一种基于行为模型的软件安全性测试用例生成方法
CN103530228B (zh) * 2013-09-27 2016-09-28 西安电子科技大学 一种基于模型的软件测试方法
CN105677563A (zh) * 2016-01-05 2016-06-15 南昌航空大学 一种基于SysML模块图的集成测试序列生成方法
CN107870852A (zh) * 2016-09-26 2018-04-03 北京金山云网络技术有限公司 一种测试方法及装置
CN108459967A (zh) * 2018-03-21 2018-08-28 东南大学 基于用户接口状态流图的Web应用测试用例生成方法
CN108647145A (zh) * 2018-05-10 2018-10-12 清华大学 软件内存安全检测方法及系统
CN108845951A (zh) * 2018-08-14 2018-11-20 郑州云海信息技术有限公司 一种自动化测试覆盖率的计算方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Revit-Based Automation Modeling for Intermediate Railway Station";Bashar Abdal Noor 等;《2017 2nd International Conference on Cybernetics,Robotics and Control》;20171125;162-166 *
"基于SysML 的嵌入式软件系统建模与验证方法研究";仵林博 等;《计算机工程》;20181205;第45卷(第1期);1-8 *
一种基于模型的测试充分性评估方法;张瑶 等;《计算机科学》;20130215;第40卷(第02期);153-158 *

Also Published As

Publication number Publication date
CN111694741A (zh) 2020-09-22

Similar Documents

Publication Publication Date Title
CN111694741B (zh) 一种基于路径深度覆盖的测试用例设计方法
WO2021190597A1 (zh) 一种神经网络模型的处理方法以及相关设备
González et al. Atltest: A white-box test generation approach for ATL transformations
CN106446412B (zh) 一种航空电子系统基于模型的测试方法
EP3023876A1 (en) Quality assurance tools for use with source code and a semantic model
US20200401503A1 (en) System and Method for Testing Artificial Intelligence Systems
US9594543B2 (en) Activity diagram model-based system behavior simulation method
KR100672894B1 (ko) 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법
JPH04288680A (ja) よりハイレベルのビヘイビア指向のデスクリプションから回路又は装置の構造上のデスクリプションを生成する方法
Mhenni Safety analysis integration in a systems engineering approach for mechatronic systems design
KR101352383B1 (ko) Vpl을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
Farheen et al. Transitive-closure-based model checking (TCMC) in Alloy
KR102271857B1 (ko) 테스트 자동화 시스템
Lai et al. Defining and verifying behaviour of domain specific language with fUML
Mckelvin, Jr et al. A principled approach to the specification of system architectures for space missions
Hasegawa et al. Formal verification for Node-Based visual scripts using symbolic model checking
Janssen et al. Custom Digital workflows with user-defined data transformations via property graphs
Hasegawa et al. Automatic verification for node-based visual script notation using model checking
Van der Elst et al. Application of a knowledge engineering process to support engineering design application development
EP2369528A1 (en) Information processing apparatus, method and protocol for generation of formal requirements specification models
Wu et al. Research on Modeling and Verification Methods for Embedded Software Systems Based on SysML
Yan et al. A Test Case Design Method Based on Path Depth Coverage
Ramamurthy et al. Development Of A Sysml Framework For Gas Turbine Design Under Uncertainty
Szwed et al. SOAROAD: an ontology of architectural decisions supporting assessment of service oriented architectures
Matichuk Automation for Proof Engineering: Machine-Checked Proofs At Scale

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