在面向对象框架设计中重用内建自测试

发表于:2008-05-20来源:作者:点击数: 标签:框架设计面向对象重用
关键字: 软件测试 面向对象 技术 框架 模式 代码重用 框架重用 测试重用 内建测试 可测试软件 摘要: 面向对象框架将软件的复用级别从代码模型扩展到了体系结构和域信息层次。本文更进一步地将这种扩展延伸至内建自测试(built-in tests 简称:BITs)的面向
 关键字:软件测试 面向对象技术 框架 模式 代码重用 框架重用 测试重用 内建测试 可测试软件 

        摘要: 面向对象框架将软件的复用级别从代码模型扩展到了体系结构和域信息层次。本文更进一步地将这种扩展延伸至内建自测试(built-in tests 简称:BITs)的面向对象框架开发中来。在对象和面向对象框架中嵌入BITs的方法将被着重介绍。本文还仔细分析了在常态模式和测试模式中带有BITs的对象和框架的行为,并系统地提供了在面向对象框架开发可重用BITs的方法。在本文所述的这种开发模式最引人注意的还是面向对象框架中的BITs能够象普通面向对象的代码一样被继承和重用。因此我们可以通过BIT方法来提高自测试面向对象框架的可测试性和可维护性。BIT方法可以用于面向对象框架的分析、设计、编程等阶段。 

        关键词: 软件工程,面向对象技术,框架,模式,代码重用,框架重用,测试重用,内建测试,可测试软件 

  1. 介绍

        面向对象框架的设计方法在[1-4]中已经被多次讨论。面向对象软件测试的特征和方法在[5-10]得以极大地扩展。本文所要阐述的是在面向对象框架开发中使用BIT方法和重用BITs。

        普通的软件测试常常是基于应用规范,因而较难重用,商用化的模块或包尤为甚。即使是在一个软件开发组织中,由于程序设计和测试分布于不同的部门并用不同的文档来进行描述。这使测试重用变得十分困难[5,11,12]。

        在[5,13-15]中BIT的概念曾得以介绍,而且在面向对象中运用可继承和可重用的测试方法的思路在[16,15]中亦被提及。本文将更进一步地提出一实用的途径,该途径结合了BIT方法和重用技术。通过该途径,在面向对象框架开发中应用中可复用BITs能够系统地被拓展。 

  2. 面向对象框架中的内建测试

        BITs是一种新型的软件测试途径。 BITs在软件中以源代码(成员函数,方法)的形式出现。BITs在常态模式下是独立的并在测试模式下被激活。面向对象框架将软件的可复用度从代码模型扩展到了体系结构和域信息方面。可复用的BITs方法更进一步地延展了这种软件的可重用性。

        BIT是一种设计可测试软件新思维。传统的面向对象测试着眼于为已经存在的对象和框架编写测试代码,生成测试用例。可测试的面向对象框架则着眼于为对象和框架建立可测试性。BIT技术最引人入胜的特色在于测试能够被继承和重用。BIT方法可以用于面向对象框架的分析、设计、编程。 

  2.1 对象级别的BITs

        通过在传统的对象结构[18]中嵌入测试声明和测试用例。生成的BIT对象的原型如标记A所示

  Class class-name {

    // interface

    Data declaration;

    Constructor declaration;

    Destructor declaration;

    Function declarations;

    Tests declaration; // Built-in test declarations

    // implementation

    Constructor;

    Destructor;

    Functions;

    TestCases; // Built-in test cases as new

    // member functions (methods)

  } TestableObject;

  标记A BIT对象

        BITs方法作为BIT对象的组成成分。BITs与普通对象中标准的构造函数和析构函数一样有着相同的语法形式,因此 BITs如同类的方法(成员函数)一样能够被继承和重用。BITs能够融入对象和模型对象框架中并能轻易的实现为C++,JAVA等语言。

        BIT对象如同普通对象一样在常态模式下可以调用正常的方法(函数),在测试模式中BITs被调用。其调用形式如下所示:

  TestableObject :: TestCase1;

  TestableObject :: TestCase2;

  ......

  TestableObject :: TestCaseN;

        因而,BIT对象能够自动地被测试并报告响应结果。 

  2.2 框架级别的BITs

        事实已经证明:如果每一个对象都能够被测试,那么包容这些对象的系统也能够被自底向上地被测试。因而这种方法同样能够扩展到面向对象框架级别。一个面向对象的框架具有一个BIT子系统和众多BIT类。图-1是一个带有BIT子系统和BIT类的框架。模块1,3 和 2 分别为可测试、部分可测试和应用规范子系统的BIT类集合。子系统4是一个全局的子系统,通过预设的事件驱动线程和场景对整个系统进行测试。BIT类和子系统可能会给类间的测试增加额外的耦合。通过限定测试模式中耦合的激活数,采用BIT将不会增加面向对象框架的复杂性。

原文转自:http://www.ltesting.net