CN1227643A - 测试一个面向对象程序的系统组成部分的方法 - Google Patents

测试一个面向对象程序的系统组成部分的方法 Download PDF

Info

Publication number
CN1227643A
CN1227643A CN97197018A CN97197018A CN1227643A CN 1227643 A CN1227643 A CN 1227643A CN 97197018 A CN97197018 A CN 97197018A CN 97197018 A CN97197018 A CN 97197018A CN 1227643 A CN1227643 A CN 1227643A
Authority
CN
China
Prior art keywords
function
test
classification
equivalent function
equivalent
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
Application number
CN97197018A
Other languages
English (en)
Other versions
CN1105353C (zh
Inventor
W·格伦兹
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of CN1227643A publication Critical patent/CN1227643A/zh
Application granted granted Critical
Publication of CN1105353C publication Critical patent/CN1105353C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

Abstract

在该方法中,通过如此解决方法的重叠的依赖关系,即用一个残桩(=等效函数)代替一个任意的方法,来测试一个面向对象程序的系统成分。对此,找到不包括自动编码的方法,并且该方法作为残桩实现。一个测试范围发生器产生残桩,其同必须被代替的函数一样支配同样的调用参数和返回参数。此外,等效函数隐含状态自动转换。其另一方面作为分类对象封装,并且在残桩内具体说明。如果在测试期间调用残桩,则使用者可以使用通过被封装的状态自动转换确定的相互作用命令,或者多个如此的命令结合成为一个命令数据块,这可以自动实现。

Description

测试一个面向对象程序的 系统组成部分的方法
本发明涉及一个测试一个面向对象程序的系统组成部分的方法。在(W.Archert:“面向对象分析-一种重要方法的概括”,电子学,3/96,80-86页)中阐明了比较面向对象方法的标准,特别是面向对象程序不同表达能力的比较方法。此外,描述了面向对象程序设计的优点,特别是调整和简洁。
在改进一个软件系统时,在测试全部系统之前孤立地测试单个的系统组成部分是合理的。系统组成部分是例如单个的程序模块或者-在一个面向对象的改进中-分类。在分类或者模块中经常出现这个问题,即一个测试单元(分类或者模块)非常依赖于另一个测试单元。如此的依赖关系例如由函数的相互调用产生(或者在分类应用中:方法)。可是这将引起,为了测试一个测试单元A必须存在所有另外的由A使用的测试单元U(直接或者间接,因为例如U还调用另外的单元)。
以本发明为基础的任务在于,简化并且加快测试单元的测试。
这个任务通过按照权利要求1的特征解决。
为了解决这个问题,对于由来自另外的测试单元U的测试单元A使用的函数和/或方法通过空的函数中产生等效的函数。如此的等效函数也称为“残桩”(Stub)。如果一个函数/方法已经实现,则对于另外的函数/方法的测试用一个残桩代替这个函数/方法可能是合理的。因此,测试范围的综合性被认为是小的。
本发明描述了在分类和/或模块测试时使用的完整函数(残桩)的一个最小组的自动发生。因此认为,在软件系统中说明的所有函数/方法,其自动编码或者可能还不存在,或者可能还不是从综合性的基础中调用的,自动作为等效函数(残桩)执行。对此注意,将产生也用于等效函数的等效于最初的函数/方法的函数/方法的返回参数和移交参数。对于等效函数的执行,在函数/方法中局部具体说明测试范围分类。这个测试范围分类对象封装一个状态自动转换,其通过用残桩代替的函数的参数(不仅返回参数而且移交参数)定义。如果在残桩的内部继续实施一个逻辑操作,则这个操作可以人工补充。
如果软件系统现在开始测试过程,在残桩中根据测试范围分类的预先调整的模式分支。这个模式例如可能是,在一个命令提示上根据一个在测试范围分类中一体的解释程序的指令组允许相互作用的命令,或者在等效函数中阐明一个命令数据块,该命令数据块例如根据命令数据块的命令引起递交。在相互作用或者阐明命令数据块后从等效函数中转移回到调用的模块中。当一调用一个另外的等效函数,这个等效函数就提供具有自身参数的相同的函数性使用。因此,对于所有的等效函数特殊的测试可以以这个等效函数实施一个测试范围分类。作为自身状态自动转换的测试范围分类对象封装在每个等效函数中使灵活应用成为可能。用参数(不仅移交参数而且返回参数)预置具体说明等效函数的测试范围分类。因此,在测试范围分类中可以定义类型特殊的操作。
按照本发明方法的一个有益的改进在于测试范围分类的互相作用的应用。这个相互作用表明具有在测试范围分类中定义的指令组的一个一体化调试程序的功能范围。因此,象在调试程序中一样,可以根据在当前的函数中显而易见的参数实施相互作用的命令。
按照本发明方法的改进在从属权利要求中给出。
根据在图中描述的实施例进一步说明的本发明。
图示:
图1一个运行图,在该运行中描述单个的方法步骤,
图2包含一个例如显现按照本发明的方法的略图。
在图1中描述了按照本发明方法的单个的方法步骤。在第一步骤1a中确定等效函数的集合。如此例如按测试过程的种类,或者对于一个面向对象程序的所有的还没实现的方法设计自动的等效函数,或者可以如此解决方法调用的重叠,即在调用体系中一个任意选择的方法作为等效函数实现。因此,获得一个等效函数的体系,其只在通过等效函数说明的至少所有还没实现的功能范围内是完整的。等效函数的自动产生不仅考虑返回参数,而且考虑必须替换的函数的调用参数(参见步骤1b)。为了获得尽可能高的灵活性和可重复使用性,可以定义一个普及的测试范围分类,其对于每个等效函数实现一个状态自动转换,该状态自动转换一方面依赖于在测试范围分类中一体化的解释程序的指令组,另一方面通过参数体系确定该状态自动转换,或者如果这个函数是分类的方法,则通过属于方法的分类确定该状态自动转换。对于所有的等效函数测试范围分类支配相同的指令组,允许根据等效函数特殊参数(不仅移交参数而且返回参数)存取。此外,可以如下补充等效函数的函数性,在定义所有的等效函数特殊的参数后测试范围分类不仅可以交互运行,而且可以独立处理一个命令数据块。这相当于状态自动转换的预置(步骤1c)。在这种情况下相互作用意味着,在测试过程期间,当一调用当时的等效函数时,使用者就在其显示屏上看到一个命令提示,在显示屏上根据在测试过程中预先确定的指令组使用者可以作出一个申请。通过多个如此的由测试范围分类的状态自动转换允许的指令结合成为一个命令数据块的方法,该数据块可以代替相互作用实现,可以使这个过程自动化。此外,这是可能的,即在一个等效函数中命令数据块的实现和以与使用者一起等待相互作用的模式的转换可以排列成任意的顺序。因此命令数据块可以不在等效函数中运行,或者用作相互作用之间的补充(步骤1d)。
这个方法的特征在于,不是对于每个测试过程都需要一个重复的编译程序和链接。此外,通过应用上面已说明的命令数据块的方法,可以使测试情况简单地自动化。
按照本发明的方法的有利的改进是在任意的模块中测试范围分类的应用。因为已知了测试范围登记的所有必要的参数,并且因为可以在程序代码中特别确定了相互作用的位置,所以在程序代码中的该位置上,在这个位置允许相互作用,通过当前有效变量的显示一体化调试程序是可能的。可以用简单的方式实施例如包含复杂数据格式的类型的操作。在测试范围分类中可以独特实现相互作用允许的指令。通过封装用于实现确定指令的函数性,在测试范围分类中这是可能的,即对于所有的等效函数通过测试范围分类的简单说明在各个等效函数中提供测试范围分类的函数性。
图2指出了按照本发明的方法的一个示范的显现。一个面向对象的仿真可以例如在程序设计语言C++下实现。在相应的分类-起始文件KLH中适当地说明系统软件的分类。在附属的程序文件PrgF(例如结尾为.cpp或者.c的文件)中执行每个分类的方法。如果这时在分类-起始文件KLH内部说明确定的方法,可是在程序文件PrgF的内部缺少附属的具体执行,则转换器发出一个出错信息,其表明,可能没有发现已说明的方法的执行(例如出错信息:“未澄清外部情况”)。从这个关于方法的信息中,该方法的执行或者应当还不存在或者应当没有使用,一个测试范围发生器TRG通过一个等效函数发生器EFG产生响应的等效函数EF。为此,测试范围发生器TRG寻找合适的说明,并且从中确定返回参数和调用参数。相同的调用参数和返回参数获得等效函数EF。为了在等效函数EF的内部允许特殊的测试过程,在该等效函数中预置测试范围分类。测试范围分类支配自身的方法,该方法允许,通知预置的测试范围分类的等效函数EF移交参数和返回参数,此外,在等效函数EF的内部可以协调一个模式,其在调用这个等效函数EF时,或者在一个命令提示上允许相互作用或者允许命令正本的实现。如果该形式示范地选择相互作用,则使用者可以在一个命令提示上递交不同的指令,在测试范围分类的内部协调这些指令。这相当于一种解释程序,其表示一个通过测试范围分类定义的支配一个确定的指令组的状态自动转换,该状态自动转换具有补偿函数的参数。
根据特殊的需求在等效函数EF中模仿存在于补偿函数内部的函数性是有益的。在一个自身的测试范围分类中的解释程序的封装例如在语言C++中有这样的优点,对于这个测试范围分类的所有主管程序,在每个等效函数EF中提供了在测试范围分类中协调的状态自动转换的特殊定义的指令组使用。为了在测试范围分类中合理使用状态自动转换,唯一必要的措施是定义状态自动转换的等效函数附属的参数。这是由等效函数发生器EFG自动实施。获得一个普遍的并且对于不同的测试情况简单的必须使用的工具,其或者可以手工(在相互作用的模式下)或者可以自动(通过命令数据块)或者可以混合使用。

Claims (2)

1.测试一个面向对象程序的系统组成部分的方法,其中,系统成分具有面向对象程序的分类和/或模块,
a)其中,通过用一个等效函数代替被调用的方法或函数来解决模块和/或函数的依赖关系,
b)其中,通过一个状态自动转换来描述等效函数,对此,状态自动转换封装在一个自身的分类中,并且交互地允许命令的输入,
c)其中,自动产生作为等效函数的要代替的方法/函数,对此,各自产生的等效函数同被代替的方法/函数一样具有相同的调用参数和相同的返回值。
2.按照权利要求1的方法,其中,通过在等效函数的内部递交相互作用的命令,自动产生的函数作为一体化调试程序来使用。
CN97197018A 1996-12-04 1997-11-07 测试一个面向对象程序的系统组成部分的方法 Expired - Fee Related CN1105353C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19650293A DE19650293C1 (de) 1996-12-04 1996-12-04 Verfahren zum Testen von Systemkomponenten eines objektorientierten Programms
DE19650293.4 1996-12-04

Publications (2)

Publication Number Publication Date
CN1227643A true CN1227643A (zh) 1999-09-01
CN1105353C CN1105353C (zh) 2003-04-09

Family

ID=7813626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN97197018A Expired - Fee Related CN1105353C (zh) 1996-12-04 1997-11-07 测试一个面向对象程序的系统组成部分的方法

Country Status (5)

Country Link
US (1) US6523169B1 (zh)
EP (1) EP1034475B1 (zh)
CN (1) CN1105353C (zh)
DE (2) DE19650293C1 (zh)
WO (1) WO1998025204A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1310150C (zh) * 2002-11-21 2007-04-11 中兴通讯股份有限公司 一种嵌入式软件测试方法
CN1326044C (zh) * 2004-10-22 2007-07-11 中国工商银行股份有限公司 一种基于脚本解释工具的自动化软件测试系统
CN100412811C (zh) * 2003-10-07 2008-08-20 爱德万测试株式会社 测试程序除错装置与方法、半导体测试装置及测试方法

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047176B2 (en) * 2000-05-05 2006-05-16 Fujitsu Limited Method and system for hardware simulation
US7150007B2 (en) * 2000-09-11 2006-12-12 Microsoft Corporation Universal routine for reviewing and exercising software objects
WO2002075610A1 (en) * 2001-03-19 2002-09-26 Empirix Inc. Component/web service data synthesis using test software
DE10127530B4 (de) * 2001-05-31 2016-03-03 Bally Wulff Games & Entertainment Gmbh Verfahren und Vorrichtung zur Durchführung des Verfahrens für ein Geldspielgerät zur Begrenzung der innerhalb einer Zeiteinheit aufsummierten Spielergebnisse
US6983399B2 (en) * 2001-12-06 2006-01-03 Sun Microsystems, Inc. System and method for ascertaining public application program interface coverage
US7152222B2 (en) * 2002-01-08 2006-12-19 International Business Machines Corporation Method and system for localizing Java™ JAR files
US7039902B2 (en) * 2002-06-06 2006-05-02 Sun Microsystems, Inc. Mechanism for enabling efficient testing of a set of computer code
JP2004213053A (ja) * 2002-12-26 2004-07-29 Toshiba Corp オブジェクト状態分類方法とシステム、およびそのためのプログラム
JP2005338987A (ja) * 2004-05-25 2005-12-08 Fujitsu Ltd 例外テスト支援プログラム及び例外テスト支援装置
CN1318976C (zh) * 2004-06-16 2007-05-30 华为技术有限公司 软件测试方法及其系统
US7519945B2 (en) * 2004-06-17 2009-04-14 International Business Machines Corporation System and method for supporting data driving a software process using objects of arbitrary data types
US7549144B2 (en) * 2005-02-22 2009-06-16 Microsoft Corporation Custom API modeling for source code static analysis simulator
US7805709B2 (en) * 2005-05-27 2010-09-28 Delphi Technologies, Inc. System and method for bypassing execution of an algorithm
US20070168973A1 (en) * 2005-12-02 2007-07-19 Sun Microsystems, Inc. Method and apparatus for API testing
US7533314B2 (en) * 2006-08-10 2009-05-12 Microsoft Corporation Unit test extender
US8311794B2 (en) * 2007-05-04 2012-11-13 Sap Ag Testing executable logic
CN101387980B (zh) * 2007-09-13 2010-09-22 英业达股份有限公司 配置文件测试系统及方法
US8745587B2 (en) * 2007-10-03 2014-06-03 International Business Machines Corporation System and method for testing computer programs
US20120174068A1 (en) * 2010-12-30 2012-07-05 Sap Ag Testing Software Code
US9454347B2 (en) * 2013-03-14 2016-09-27 Fujitsu Limited Analyzing incomplete software
US9990272B2 (en) 2016-08-03 2018-06-05 International Business Machines Corporation Test case generation for uncovered code paths
US10592396B2 (en) * 2018-04-23 2020-03-17 Microsoft Technology Licensing, Llc Memory validity states in time-travel debugging
US10541042B2 (en) 2018-04-23 2020-01-21 Microsoft Technology Licensing, Llc Level-crossing memory trace inspection queries
CN112882931B (zh) * 2021-02-06 2023-05-09 重庆富民银行股份有限公司 基于ddt的自动化测试方法及装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2926867C2 (de) 1979-07-03 1986-01-02 GAO Gesellschaft für Automation und Organisation mbH, 8000 München Schaltungseinheit
AT395224B (de) 1990-08-23 1992-10-27 Mikron Ges Fuer Integrierte Mi Kontaktloses, induktives datenuebertragungssystem
US5432940A (en) * 1992-11-02 1995-07-11 Borland International, Inc. System and methods for improved computer-based training
JPH08504526A (ja) * 1992-12-17 1996-05-14 シーメンス アクチエンゲゼルシヤフト コンピュータにてオブジェクト指向プログラムの少なくとも1つのクラスのテストをする方法
EP0679004A3 (de) * 1994-04-20 1997-09-10 Siemens Ag Albis Verfahren zum Testen von Fernmeldeanlagen oder Teilen davon und eine Vorrichtung zur Durchführung des Verfahrens.
DE4416704A1 (de) * 1994-05-11 1995-11-16 Siemens Ag Integrationstestverfahren für ein objektorientiertes Programm
US5680619A (en) * 1995-04-03 1997-10-21 Mfactory, Inc. Hierarchical encapsulation of instantiated objects in a multimedia authoring system
US5692184A (en) * 1995-05-09 1997-11-25 Intergraph Corporation Object relationship management system
US5757669A (en) * 1995-05-31 1998-05-26 Netscape Communications Corporation Method and apparatus for workgroup information replication
US5724589A (en) * 1995-10-13 1998-03-03 Borland International, Inc. Development system with a property-method-event programming model for developing context-free reusable software components
US6085233A (en) * 1995-12-29 2000-07-04 Pankosmion, Inc. System and method for cellular network computing and communications
US6275976B1 (en) * 1996-03-15 2001-08-14 Joseph M. Scandura Automated method for building and maintaining software including methods for verifying that systems are internally consistent and correct relative to their specifications
US5751941A (en) * 1996-04-04 1998-05-12 Hewlett-Packard Company Object oriented framework for testing software
US5987245A (en) * 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
JP3427918B2 (ja) * 1996-07-02 2003-07-22 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム開発支援システム及び支援方法
US5892949A (en) * 1996-08-30 1999-04-06 Schlumberger Technologies, Inc. ATE test programming architecture
US6031990A (en) * 1997-04-15 2000-02-29 Compuware Corporation Computer software testing management
US5923867A (en) * 1997-07-31 1999-07-13 Adaptec, Inc. Object oriented simulation modeling
EP1071991A4 (en) * 1997-12-11 2002-03-13 Digits Corp OBJECT CODE ANALYSIS AND IMPROVEMENT SYSTEM AND METHOD
US6223306B1 (en) * 1998-02-27 2001-04-24 Hewlett-Packard Company Method and apparatus for testing X servers
US6175956B1 (en) * 1998-07-15 2001-01-16 International Business Machines Corporation Method and computer program product for implementing method calls in a computer system
US6421634B1 (en) * 1999-03-04 2002-07-16 Sun Microsystems, Inc. Interface independent test system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1310150C (zh) * 2002-11-21 2007-04-11 中兴通讯股份有限公司 一种嵌入式软件测试方法
CN100412811C (zh) * 2003-10-07 2008-08-20 爱德万测试株式会社 测试程序除错装置与方法、半导体测试装置及测试方法
CN1326044C (zh) * 2004-10-22 2007-07-11 中国工商银行股份有限公司 一种基于脚本解释工具的自动化软件测试系统

Also Published As

Publication number Publication date
CN1105353C (zh) 2003-04-09
EP1034475B1 (de) 2001-05-30
DE19650293C1 (de) 1998-04-09
DE59703703D1 (de) 2001-07-05
WO1998025204A1 (de) 1998-06-11
EP1034475A1 (de) 2000-09-13
US6523169B1 (en) 2003-02-18

Similar Documents

Publication Publication Date Title
CN1105353C (zh) 测试一个面向对象程序的系统组成部分的方法
US6718533B1 (en) Method for building a real-time control system with mode and logical rate
US8612870B2 (en) Graphically specifying and indicating targeted execution in a graphical program
Oreizy et al. Architecture-based runtime software evolution
US6370682B1 (en) System and method for developing reusable flexible and platform independent software using components
US7840904B2 (en) Execution target structure node for a graphical program
US5615333A (en) Integration testing method for object-oriented software
CN103365638B (zh) 基于ECUCoder的单片机开发系统及方法
US20080034310A1 (en) Diagram That Visually Indicates Targeted Execution
CN101710361B (zh) 基于面向服务架构的分布式交通仿真装置及其仿真方法
CN109783340A (zh) SoC的测试代码烧写方法、IP测试方法及装置
CN109783083A (zh) Web应用开发方法及其系统
Annighoefer et al. Holistic IMA platform configuration using web-technologies and a domain-specific model query language
US20040015816A1 (en) Coordination synthesis for software systems
Lee et al. A New Integrated Software Development Environment Based on SDL, MSC, and CHILL for Large‐scale Switching Systems
Bakker et al. Design and evaluation of the Distributed Software Component framework for distributed communication architectures
US5951682A (en) Start-up system of a computer system
Heisler et al. A reverse engineering model for C programs
Ben-Shaul et al. A configuration process for a distributed software development environment
Grosse-Rhode Towards object-oriented algebraic specifications
Fröhlich et al. Tailor-made operating systems for embedded parallel applications
Speck Component-based control system
CN112817571B (zh) 一种基于场景故事板的人机物融合应用建模方法
Wang et al. MAC: a component reuse architecture based on multi-agent adapter
Van der Linden et al. Composing product families from reusable components

Legal Events

Date Code Title Description
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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20030409

Termination date: 20121107