CN100403264C - Ttcn测试用例执行方法 - Google Patents

Ttcn测试用例执行方法 Download PDF

Info

Publication number
CN100403264C
CN100403264C CNB011346167A CN01134616A CN100403264C CN 100403264 C CN100403264 C CN 100403264C CN B011346167 A CNB011346167 A CN B011346167A CN 01134616 A CN01134616 A CN 01134616A CN 100403264 C CN100403264 C CN 100403264C
Authority
CN
China
Prior art keywords
class
ttcn
test case
test
internal memory
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.)
Expired - Fee Related
Application number
CNB011346167A
Other languages
English (en)
Other versions
CN1417678A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB011346167A priority Critical patent/CN100403264C/zh
Publication of CN1417678A publication Critical patent/CN1417678A/zh
Application granted granted Critical
Publication of CN100403264C publication Critical patent/CN100403264C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种TTCN测试用例执行方法,首先输入以MP文件格式编写的测试用例或多个测试用例组成的测试套,再将MP文件中的所有元素转化为相应的内存中对象,通过对所述的内存中对象进行执行、调试完成对TTCN测试用例的执行,省去了MP文件转换为C程序、与库函数的链接等过程,大大提高了执行效率,并且通过对可控对象的操作进行诸如获取某个对象的值、设置某个对象的值、设置断点、单步跟踪等调试。

Description

TTCN测试用例执行方法
技术领域
本发明涉及用于协议一致性测试的TTCN(Tree and TabularCombined Notation)国际标准的测试用例执行方法。
背景技术
TTCN标准是一种测试用例的表示法,提供了一个编程的语言,TTCN中用Tabular(表)来描述数据结构,用Tree(树)来描述执行过程,通过执行过程与数据结构的结合,实现测试用例的描述。
用户按照TTCN标准编写测试用例脚本后,测试用例以MP(符合TTCN标准的文本文件)文件格式保存,该MP文件中一般包含多个测试用例组成的测试套。之后就需要提供一套方法来执行此MP文件,从而达到运行测试用例的目的,目前的TTCN商用工具采用的执行方法是把MP文件转换为C语言源文件,再用其他C语言工具对这些代码进行编译、链接,最后得到一个可执行文件(EXE),通过执行这个EXE文件实现对用户编写的测试用例的执行,具体过程还包括:
TTCN工具一般提供一些库函数,用户还需要根据TTCN工具提供的Lib(库函数)进行编程,编程内容包括编解码模块、与被测系统的通信模块。用户编写的C语言程序与MP文件生成的C语言程序再加上TTCN工具提供的库函数,一起编译、链接,最后生成一个独立的可执行文件,测试用例的执行就是执行此可执行文件。
这种方法的缺点是:
1)需要把MP文件转换为C语言代码,然后编译、链接、调试过程复杂,速度比较慢。而在编写用例过程中,经常需要修改用例、调试用例,需要不断重复这些过程,效率低下。
2)使用此方法需要C语言编译器、工具库函数等额外支持,依赖性比较强。
3)最后生成的EXE文件只能简单地运行,或者利用C语言调试器进行调试,而这种调试只能以C语句为基础进行,不能以TTCN语句为基础进行调试,所以不能直接地定位。
发明内容
本发明的目的在于提供一种便于执行和调试的TTCN测试用例执行方法,不需要C语言编译器、工具库函数等额外支持。
本发明采用的技术方案是:一种TTCN测试用例执行方法,输入步骤,输入MP文件格式的测试用例或多个测试用例组成的测试套;转换步骤,将MP文件格式的测试用例或多个测试用例组成的测试套中的所有元素转化为相应的内存中对象;执行步骤,对内存中对象进行执行、调试完成对TTCN测试用例的执行。
采用本发明方法后,以MP文件作为输入,把MP文件编译为内存中对象,然后对此对象进行执行、调试。通过这种方法,省去了MP文件转换为C程序、与库函数的链接等过程,大大提高了执行效率。并且由于MP文件中所有元素一一转化为内存中对象,这些对象都是可控的,可以对这些对象进行诸如获取某个对象的值、设置某个对象的值、设置断点、单步跟踪等调试。
附图说明
图1是现有技术中TTCN测试用例执行过程图。
图2是本发明方法总体过程示意图。
图3是本发明方法具体实施方式中的类组成图。
具体实施方式
下面结合附图和实施例对本发明作进一步描述,图1所示是现有技术中TTCN测试用例执行过程。
参照图2,本发明的TTCN测试用例执行方法总体上包括三个过程,输入步骤,输入测试用例,即MP文件格式的测试用例或多个测试用例组成的测试套;转换步骤,将MP文件格式的测试用例或多个测试用例组成的测试套中的所有元素转化为相应的内存中对象;执行步骤,通过对所述的内存中对象进行执行、调试完成对TTCN测试用例的执行。
参照图3,本发明方法为MP文件中的每种元素设计一个对应的C++类,此类作为此元素在内存中的表现方式。MP文件编译时,每个元素分别转化为代表自己的类,把相应的信息以对象的形式保存到内存中。编译完成后,整个MP文件变为了内存中的一系列对象,这一系列对象可以完整地反映整个MP文件所包含的信息,内存中对象可以包括数值运算类Cvalue、语句类Cline、测试用例类CtestCase和测试套类CtestSuit四个基本类型;一个测试套类对象可以包含多个测试用例类对象,一个测试用例类对象可以包含多个语句类对象,一个语句类对象由多个数值运算类对象组成;其中:
数值运算类包括数值类和表达式类CExpr,数值类包括以下八类:(1)整数类CIntegerValue,(2)布尔类CBoolValue,(3)浮点类CFloatValue,(4)结构类CSetValue,(5)集合类CSetOfValue,(6)有顺序数组类CSequenceValue,(7)无顺序数组类CSequenceOfValue,(8)联合类CChoiceValue;以上类对应于MP文件中的各类数值,用于实现数值在内存中的表示;
表达式类包括以下八类:(1)加法运算类CPlusExpr,(2)减法运算类CMinusExpr,(3)乘法运算类CMultiplyExpr,(4)除法运算类CDivideExpr,(5)等于类CIsEqualExpr,(6)不等类CNotEqualExpr,(7)与运算类CAndExpr,(8)或运算类COrExpr;以上类对应于MP文件中的各类表达式,用于实现表达式在内存中的表示;
语句类包括以下几类:(1)条件转向类CWhileLine,(2)条件判断类CIfLine,(3)循环类CForLine,(4)发送消息类CSendLine,(5)接收消息类CReceiveLine,(6)无条件转向类CGotoLine,(7)返回类CReturnLine,(8)赋值类CAssignmentLine;以上类对应于MP文件中的各类语句,用于实现TTCN语句在内存中的表示;
对内存中对象进行执行、调试可以是对TTCN脚本的多个线程作分时处理,对每个线程用一个线程状态对象保存线程当前状态;每个线程状态对象记录以下四项内容:
(1)动态分配的内存指针;
(2)记录线程中的函数执行状态和调用顺序的堆栈;
(3)记录事件队列的数组;
(4)系统时钟。
根据内存对象进行用例执行,在执行过程中需要进行分配和回收内存、收发消息、开始和终止时钟等各种操作。TTCN标准支持多线程功能,执行过程中涉及到线程间的切换,对于每个线程用一个线程状态对象CRunContext对象保存它的运行上下文,即保存每个线程当前状态,使线程切换后,还能得到上次运行的最后状态,并从最后状态处继续运行。具体实施中可对类CRunContext定义如下:
class CRunContext
{CMemArray m_ContextMemArray;//用于记录运行中动态分配的内存,进行内存回收,实现内存管理
ARRAY(CFunc) m_FuncStack; //函数调用堆栈
ARRAY(CEvent)m_EventQueue;//事件队列
CTimerPool   m_TimerPool; //时钟队列}
m_ContextMemArray用于把运行过程中动态分配的内存指针保存起来,这些内存在运行一个函数后统一释放。
一个线程中包含多个函数的层次调用,m_FuncStack用于记录函数调用堆栈。调用一个函数前把函数指针压入此堆栈中,一个函数调用完成后退栈,从而实现堆栈管理。通过此堆栈还可以观察当前程序执行到哪个函数,函数的调用顺序等信息,从而实现调试功能。
m_EventQueue用于记录事件队列,以数组形式记录如消息、时钟超时等可以触发程序运行的事件,收到一个事件后把事件放到此数组中,等待处理。
m_TimerPool记录了目前系统启动的时钟,调度程序不断判断这些时钟是否已经超时,如果超时,则把它从m_TimerPool中删除,并在m_EventQueue中增加一个超时事件。
当执行程序切换到一个CRunContext对象,对此对象中的m_TimerPool进行判断,看是否有时钟超时,并检查m_EventQueue中是否有需要处理的事件,如果有则让此线程运行。线程运行时各语句会对这些事件进行处理。一个线程执行若干语句后,切换到另一个CRunContext对象,又执行若干个语句,实现了多个线程的分时执行,并可以在运行中进行包括设置断点、单步跟踪、获取某个对象的值等各种调试。

Claims (3)

1.一种TTCN测试用例执行方法,其特征在于:该方法包括以下步骤,输入步骤,输入MP文件格式的测试用例或多个测试用例组成的测试套;转换步骤,将MP文件格式的测试用例或多个测试用例组成的测试套中的所有元素转化为相应的内存中对象;执行步骤,对内存中对象进行执行、调试完成对TTCN测试用例的执行。
2.如权利要求1所述的TTCN测试用例执行方法,其特征在于:所述内存中对象包括数值运算类、语句类、测试用例类和测试套类四个基本类型;
一个测试套类对象可以包含多个测试用例类对象,一个测试用例类对象可以包含多个语句类对象,一个语句类对象由多个数值运算类对象组成;其中:
数值运算类包括数值类和表达式类,数值类包括以下八类:整数类、布尔类、浮点类、结构类、集合类、有顺序数组类、无顺序数组类和联合类。
表达式类包括以下八类:加法运算类、减法运算类、乘法运算类、除法运算类、等于类、不等类、与运算类和或运算类。
语句类包括以下八类:条件转向类、条件判断类、循环类、发送消息类、接收消息类、无条件转向类、返回类和赋值类。
3.如权利要求1所述的TTCN测试用例执行方法,其特征在于:所述对内存中对象进行执行、调试是对TTCN脚本的多个线程作分时处理,对每个线程用一个线程状态对象保存线程当前状态;每个线程状态对象记录以下四项内容:
(1)动态分配的内存指针;
(2)记录线程中的函数执行状态和调用顺序的堆栈;
(3)记录事件队列的数组;
(4)系统时钟。
CNB011346167A 2001-11-07 2001-11-07 Ttcn测试用例执行方法 Expired - Fee Related CN100403264C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB011346167A CN100403264C (zh) 2001-11-07 2001-11-07 Ttcn测试用例执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB011346167A CN100403264C (zh) 2001-11-07 2001-11-07 Ttcn测试用例执行方法

Publications (2)

Publication Number Publication Date
CN1417678A CN1417678A (zh) 2003-05-14
CN100403264C true CN100403264C (zh) 2008-07-16

Family

ID=4672615

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011346167A Expired - Fee Related CN100403264C (zh) 2001-11-07 2001-11-07 Ttcn测试用例执行方法

Country Status (1)

Country Link
CN (1) CN100403264C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012016443A1 (zh) * 2010-08-06 2012-02-09 中国科学院软件研究所 一种ttcn语言与数据描述语言的集成方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100435113C (zh) * 2005-03-08 2008-11-19 中国科学院软件研究所 基于c++映射的ttcn-3测试系统及测试方法
CN100377108C (zh) * 2005-04-30 2008-03-26 华为技术有限公司 一种测试用例的执行方法
CN1984171B (zh) * 2006-04-06 2011-04-13 华为技术有限公司 实现语音设备功能测试的系统和方法
CN101727345B (zh) * 2008-10-29 2013-09-04 国际商业机器公司 控制动态链接库dll加载状态的方法和系统
CN102195773B (zh) * 2010-03-03 2013-09-11 中国人民解放军信息工程大学 一种分组密码算法分析方法及系统
CN102395141B (zh) * 2011-11-04 2014-06-04 大唐联仪科技有限公司 一种基于一致性测试的重现方法和设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06241840A (ja) * 1993-02-18 1994-09-02 Kodo Tsushin Syst Kenkyusho:Kk 適合性試験スイート作成装置
JPH0787165A (ja) * 1993-09-13 1995-03-31 Kodo Tsushin Syst Kenkyusho:Kk 抽象試験ケース分割装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06241840A (ja) * 1993-02-18 1994-09-02 Kodo Tsushin Syst Kenkyusho:Kk 適合性試験スイート作成装置
JPH0787165A (ja) * 1993-09-13 1995-03-31 Kodo Tsushin Syst Kenkyusho:Kk 抽象試験ケース分割装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012016443A1 (zh) * 2010-08-06 2012-02-09 中国科学院软件研究所 一种ttcn语言与数据描述语言的集成方法

Also Published As

Publication number Publication date
CN1417678A (zh) 2003-05-14

Similar Documents

Publication Publication Date Title
US7316005B2 (en) Data race detection using sequential program analysis
US8458681B1 (en) Method and system for optimizing the object code of a program
US9672133B2 (en) Systems and methods for debugging applications using dual code generation
EP1074911A2 (en) Aspect-oriented programming
US8429632B1 (en) Method and system for debugging merged functions within a program
CN101408849A (zh) Ttcn-3语言的编译执行方法及系统
CN102819492A (zh) 一种基于Android的关键字驱动自动化测试框架
US8381198B2 (en) Systems, methods and computer program products for safety checking executable application programs in a module
CN102591777A (zh) 一种单元测试代码生成方法及装置
CN101246449B (zh) 跟踪函数调用轨迹的方法和装置
CN110861085B (zh) 一种基于VxWorks的机械臂指令解释器系统
US10496423B2 (en) Method for opening up data and functions of terminal application based on reconstruction technology
CN101639805A (zh) 用于在程序调试中跟踪变量的方法和设备
CN100403264C (zh) Ttcn测试用例执行方法
CN109542444B (zh) Java应用的监控方法、装置、服务器和存储介质
US7287246B2 (en) Debugging optimized flows with breakpoints using stored breakpoint trigger indicators
CN102331961A (zh) 并行模拟多个处理器的方法及系统、调度器
Sundaram et al. Diagnostic tracing for wireless sensor networks
CN103631585A (zh) 一种用于开发应用程序的方法及系统
EP2634693A1 (en) Method and apparatus for interacting with runnung software
EP3619612B1 (en) Temporary de-optimization of target functions in a cloud debugger
CN112740187A (zh) 调试程序的方法和系统
US20060101398A1 (en) Program output management
He et al. Stethoscope: A sustainable runtime debugger for wireless sensor networks
Misurda et al. Jazz2: a flexible and extensible framework for structural testing in a Java VM

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080716

Termination date: 20161107

CF01 Termination of patent right due to non-payment of annual fee