CN1105353C - 测试一个面向对象程序的***组成部分的方法 - Google Patents
测试一个面向对象程序的***组成部分的方法 Download PDFInfo
- Publication number
- CN1105353C CN1105353C CN97197018A CN97197018A CN1105353C CN 1105353 C CN1105353 C CN 1105353C CN 97197018 A CN97197018 A CN 97197018A CN 97197018 A CN97197018 A CN 97197018A CN 1105353 C CN1105353 C CN 1105353C
- 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.)
- Expired - Fee Related
Links
Images
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
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)
- Stored Programmes (AREA)
Abstract
在该方法中,通过如此解决方法的重叠的依赖关系,即用一个残桩(=等效函数)代替一个任意的方法,来测试一个面向对象程序的***成分。对此,找到不包括自动编码的方法,并且该方法作为残桩实现。一个测试范围发生器产生残桩,其同必须被代替的函数一样支配同样的调用参数和返回参数。此外,等效函数隐含状态自动转换,其另一方面作为分类对象封装,并且在残桩内具体说明。如果在测试期间调用残桩,则使用者可以使用通过被封装的状态自动转换确定的相互作用命令,或者多个如此的命令结合成为一个命令数据块,这可以自动实现。
Description
技术领域
本发明涉及一个测试一个面向对象程序的***组成部分的方法。
背景技术
在(W.Archert:“面向对象分析-一种重要方法的概括”,电子学,3/96,80-86页)中阐明了比较面向对象方法的标准,特别是面向对象程序不同表达能力的比较方法。此外,描述了面向对象程序设计的优点,特别是调整和简洁。
在改进一个软件***时,在测试全部***之前孤立地测试单个的***组成部分是合理的。***组成部分是例如单个的程序模块或者-在一个面向对象的改进中-分类。在分类或者模块中经常出现这个问题,即一个测试单元(分类或者模块)非常依赖于另一个测试单元。如此的依赖关系例如由函数的相互调用产生(或者在分类应用中:方法)。可是这将引起,为了测试一个测试单元A必须存在所有另外的由A使用的测试单元U(直接或者间接,因为例如U还调用另外的单元)。
发明内容
以本发明为基础的任务在于,简化并且加快测试单元的测试。
这个任务通过本发明提供的一种测试一个面向对象程序的***组成部分的方法得到解决。其中,***成分具有面向对象程序的分类和/或模块;通过用一个等效函数代替被调用的方法或函数来解决模块和/或函数的依赖关系;通过一个状态自动转换来描述等效函数,对此,状态自动转换封装在一个自身的分类中,并且交互地允许命令的输入;以及,自动产生作为等效函数的要代替的方法/函数,对此,各自产生的等效函数同被代替的方法/函数一样具有相同的调用参数和相同的返回值。
为了解决这个问题,对于由来自另外的测试单元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的方法,其特征在于,通过在等效函数的内部递交相互作用的命令,自动产生的函数作为一体化调试程序来使用。
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 CN1227643A (zh) | 1999-09-01 |
CN1105353C true 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) |
Families Citing this family (27)
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 |
CN1310150C (zh) * | 2002-11-21 | 2007-04-11 | 中兴通讯股份有限公司 | 一种嵌入式软件测试方法 |
JP2004213053A (ja) * | 2002-12-26 | 2004-07-29 | Toshiba Corp | オブジェクト状態分類方法とシステム、およびそのためのプログラム |
KR20060108662A (ko) * | 2003-10-07 | 2006-10-18 | 주식회사 아도반테스토 | 테스트 프로그램 디버그 장치, 반도체 시험 장치, 테스트프로그램 디버그 방법, 및 시험 방법 |
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 |
CN1326044C (zh) * | 2004-10-22 | 2007-07-11 | 中国工商银行股份有限公司 | 一种基于脚本解释工具的自动化软件测试*** |
US7549144B2 (en) * | 2005-02-22 | 2009-06-16 | Microsoft Corporation | Custom API modeling for source code static analysis simulator |
EP1889163A1 (en) * | 2005-05-27 | 2008-02-20 | 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的自动化测试方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994014117A1 (de) * | 1992-12-17 | 1994-06-23 | Siemens Aktiengesellschaft | Verfahren zum testen mindestens einer klasse eines objektorientierten programmes auf einem rechner |
EP0679004A2 (de) * | 1994-04-20 | 1995-10-25 | Siemens Schweiz AG | 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 |
Family Cites Families (19)
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 |
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 |
-
1996
- 1996-12-04 DE DE19650293A patent/DE19650293C1/de not_active Expired - Fee Related
-
1997
- 1997-11-07 CN CN97197018A patent/CN1105353C/zh not_active Expired - Fee Related
- 1997-11-07 US US09/308,739 patent/US6523169B1/en not_active Expired - Fee Related
- 1997-11-07 DE DE59703703T patent/DE59703703D1/de not_active Expired - Lifetime
- 1997-11-07 EP EP97949889A patent/EP1034475B1/de not_active Expired - Lifetime
- 1997-11-07 WO PCT/DE1997/002609 patent/WO1998025204A1/de active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994014117A1 (de) * | 1992-12-17 | 1994-06-23 | Siemens Aktiengesellschaft | Verfahren zum testen mindestens einer klasse eines objektorientierten programmes auf einem rechner |
EP0679004A2 (de) * | 1994-04-20 | 1995-10-25 | Siemens Schweiz AG | 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 |
Also Published As
Publication number | Publication date |
---|---|
EP1034475A1 (de) | 2000-09-13 |
EP1034475B1 (de) | 2001-05-30 |
CN1227643A (zh) | 1999-09-01 |
DE19650293C1 (de) | 1998-04-09 |
DE59703703D1 (de) | 2001-07-05 |
WO1998025204A1 (de) | 1998-06-11 |
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 | |
US7844908B2 (en) | Diagram that visually indicates targeted execution | |
Karaorman et al. | Introducing concurrency to a sequential language | |
Garbinato et al. | Implementation of the GARF replicated objects platform | |
CN109783083A (zh) | Web应用开发方法及其*** | |
CN104573287A (zh) | 基于界面绑定统一模型的数字仿真框架设计方法 | |
CN107391155A (zh) | 一种打包方法及装置 | |
US20040015816A1 (en) | Coordination synthesis for software systems | |
KR20210039714A (ko) | 테스트 환경 구축 방법 및 장치 | |
Cass et al. | Logically central, physically distributed control in a process runtime environment | |
CN111597022B (zh) | 一种自动融合多专业业务功能的融合***及融合方法 | |
CN105677968B (zh) | 可编程逻辑器件电路图绘制方法及装置 | |
US5951682A (en) | Start-up system of a computer system | |
Grosse-Rhode | Towards object-oriented algebraic specifications | |
Kasten et al. | Perimorph: Run-time composition and state management for adaptive systems | |
White et al. | Integrating the heterogeneous control properties of software modules | |
CN114742984B (zh) | 一种动态三维模型的编辑方法及装置 | |
Yamanouchi et al. | Software synthesis shell SOFTEX/S | |
CN118012409A (zh) | 一种前后端配置化的实现方法及*** | |
CN112817571A (zh) | 一种基于场景故事板的人机物融合应用建模方法 | |
Levine | Proposal for beta-test of gifcorcode | |
CN117492681A (zh) | 一种基于Qt的分屏显示方法、装置、计算机设备及介质 | |
CN113608879A (zh) | 一种可重构的模拟器或测试设备架构设计方法 |
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 |