构件化软件开发及系统测试技术探究

时间:2022-10-14 11:42:40

构件化软件开发及系统测试技术探究

摘要:随着社会对软件需求的不断增加,以及软件开发的难度和成本的加大,构件软件开发系统及系统测试技术的应用越来越广泛,本文就构件化软件开发过程进行探究,同时运用一个开发实例进行了分析,最后研究了构件化软件系统测试技术和构件测试方法,并得出测试技术中存在的问题。

关键词:构件化;软件开发;过程;开发实例;系统测试技术;构件测试方法;问题

中图分类号:TP311文献标识码:A文章编号:1007-9599 (2012) 03-0000-02

Component-based Software Development and System Testing TechnologyExploration

Ye Wei

(Ningbo Dahongying University,Ningbo315175,China)

Abstract:Along with the social demand for software continues to increase,as well as the difficulty and cost of software development increase,the technology of component-based software development and system testing is more extensive,component-based software development process to explore,while the use a development instance,the last component-based software system testing and component testing methods,

and come to the problems in the testing techniques.

Keywords:Component-based;Software development;Process;Development instance;System testing technology;Component test methods;Problem

近年来由于软件系统困难度及复杂性不断加大,以及不断增加的软件开发规模,同时软件开发机构不仅对开发软件的成本有了日益增高的要求,还对开发周期提出更多要求。当软件开发面向对象分析以及设计方法以后,构件化的软件开发形式已变为新发展趋势。把外部开发的构件集成至实际具体应用中,进而面向固定应用的软件系统得以合理构建,对软件集成以及重用产生相当重要的影响,其已变为目前软件研究领域的热点以及主流技术。另外在构件应用前进行相关测试,也被实践证明了其正确性。

一、构件化软件开发过程分析

对于基于构件的开发,其指开发软件系统的时候,把这个过程视为基于体系结构指导,合理运用构件组装形式,进行软件系统开发的一种软件开发方法。下述的四个阶段构成了构件化软件开发过程。

第一个阶段就是进行问题域分析与建模的阶段。针对具体的问题情形,合理实施分析以及建模,与此同时,能够利用合适的UML模型进行表示说明。

第二个阶段就是求解域模型设计阶段。针对问题域,合理实施分析建模,随后得到求解域模型,就是系统需要的构件以及系统的体系结构。针对那些可以进行复用的构件,对其接口进行合理分析,然后确认是否应该进行扩展,要是增加一些新的构件,进行恰当的分析设计,进而保证构件可以达到求解域的需求。还要尽可能地保证构件有着可复用性。

第三个阶段就是构件的开发及组装阶段。在构件库内,进行可以达到需求构件的选用,并对其接口进行扩展,使之于目前工程相适应;针对新研发出来的软件构件,可以把它储存到构件库内,保证日后的方便复制使用,还应把它运用到目前的工程里[1]。组装完成后,完整的系统便得出,进行测试合格之后,就能够运行。

最后阶段就是应用系统的演化阶段。针对构件的应用系统的演化,换句话说就是构件的替换、升级以及扩充的过程,按照具体的运行效果,同时根据用户的实际要求,合理调整软件,以保证期对新的环境的适应性。

二、开发实例分析

当进行某个系统开发的时候,积极采用构件复用技术,进而确保权限配置管理功能的实现。通过合理的分析,对于系统的权限管理,“用户-角色-功能”方式得以确定,其为基于角色的访问控制模式,对已有构件的复用可以确保此功能的合理实现。

角色管理以及用户管理构件、角色节点配置构件、节点管理构件及用户角色配置构件,这五个构件都存在于构件库中,其中角色管理构件对系统制定的角色进行维护,与此同时就角色的名称以及描述等信息进行合理管理;用户管理构件则是对一个系统用户信息进行管理的,主要由登陆名、登陆密码构成的;对于角色节点配置构件,其重点应用在进行节点与角色之间对应关系的配置,保证一个角色能够显示几个功能节点的制定,进而间接的对某个角色具有的功能进行合理限定;节点管理构件主要作用在管理系统功能树上的节点中;用户角色配置构件则用于用户和角色对应关系的配置。以上五个构件不是单独运行的,而是相互合作的,正是由于它们的互相合作才使系统中权限管理的相关功能得以实现。

三、构件化软件系统测试技术研究

由于构件自身具有的特点,实施测试人员主要由构件的开发方以及构件的使用方来组成的,由于他们在测试中占据不同的立场,在实施测试的内容方面多少会存在一定的差异性:一是测试目的是不相同的,构件的开发方对构件的所有功能进行测试,构件使用方则更多的关心与其有关部分的功能。二是使用的环境存在差异性;三是具有的资源存在差异性,对于构件开发方,其对构件源代码有着一定拥有权,但是对于构件的使用方,只具有构件的可执行代码;于是,当对构件软件进行实施测试时,要分别站在构件的开发方以及构件使用方等两个角度上展开[2]。基于构件的使用方角度,测试方法是通过测试构件类型进而得出,具有两种主要类型的构件:首先源代码不确定,只给予使用方测试的信息当作所提供服务的COTS构件;另外一种是源代码具有可访问性的构件。当构件类型不同时,对测试方法的选用也是不同的。

(一)对构件测试方法的分析

目前,对构件的测试主要是通过以下几个方法:

1.基于构件使用规范说明的测试。以下方法都与构件开发方有着一定联系,本方法按照构件运用方就应用环境与规范给予的数据当作测试用例,只局限于黑盒测试中来使用。

2.内置测试。对于构件开发方,他们把有着可执行性的测试用例内置于构件内,同时当作构件的常用功能,在构件集成于实际应用环境的情况下,对其中测试用例进行运行,进而进行集成测试;

3.元数据。针对在集成测试的时候,构件信息缺乏等一些问题,构件开发方将关于构件的基本信息通过元数据这一合理形式,给予构件测试或者使用方,确保测试顺利地实施,提升构件的可测试性是它的核心内容;

4.可测试体系结构。由构件开发方会提供与构件相配套的可测试体系,这样构件使用方在实施测试的情况下,能对测试用例进行直接执行,和上述各个方法相比,不同的是,该测试信息通过规范的形式附加于构件之上,当运行的时候,没有占用内存[3]。

5.证明策略。一般情况下,由于构件证明不同的承担方,构件证明主要包括以下几类:首先是构件使用方构件证明,其次是第三方构件证明,最后为构件开发方构件证明。

(二)构件测试技术中存在的一些主要问题

对于构件集成测试,很难对其实施,主要有两方面的原因:异构性的存在以及相关信息的缺少。针对异构性,其表现为:同一个构件处于相同规范下,具有不相同的实现方法;不相同的构件能使用不同平台的不同程序语言进行实现;由于构件使用方与开发方两方很少进行交换信息,便导致了信息缺乏,构件开发方主要对开发构件的应用环境没有足够了解,所以,它进行的构件测试只可以面对假设的应用环境,但是实际环境和假设的环境之间一定具有差别,在实际的应用中,各个构件在动态交互过程中可能会出现数据交换不能有效兼容等问题。从另一方面,构件的源代码因为相对构件运用方法有着某些未知性,于是,对其实施静态分析是很难进行的。更别说对相关数据依赖以及控制依赖关系的获得,进行有关测试用例的构造,进行测试,确认出进行测试需要的充分性准则是很难的。所以,在构件测试技术中,应该考虑以下几个问题:

1.怎样利用系统方法对测试驱动程序与插针进行构建。对于构件测试驱动程序,其一定是基于脚本的程序,同时仅仅对其黑盒功能进行执行。主要有基于场景以及规范的测试驱动程序;各个测试探针进行构件行为或者黑盒功能的合理模拟,在当前,还是主要通过基于操作脚本以及基于模型的方法。

2.怎样合理构造出可重用的构件。就是开发系统方法以及工具安装可重用的测试程序,进而进行各种测试资源的存储及管理,主要有测试脚本、测试用例以及数据[4]。在当今,两个方向较为突出,一个为于构件内部中进行构件测试的创建,内置测试就是实例;另外方向是使用可直接插拔技术进行一套测试程序的创建,不仅牵涉了测试访问接口以及标准化测试信息格式,还牵涉到测试数据库模式与定义以及开发新的可插拔技术支持构件单元测试。

3.怎样正确进行可重用及通用的构件测试平台的构建。在一般情况下,测试检索以及执行、测试结果检查以及报告组成了测试执行环境。此测试平台可以根据不同语言及不同技术开发实现的构件是它的主要问题。

4.怎样合理进行可测试构件的构建。其牵涉到三个问题,就是定义及设计可测构件的测试接口与公共结构、开发系统方法进行可测构件的构建、最小化系统资源及开销。

四、总结

由于社会对软件的需求一直增加,软件复杂度及规模一直加大,因此,人们就不断探索创新软件开发技术,进而满足软件发展的需要。对于构件技术,其要经过创建及复用构件,还要通过组装构件保证软件系统开发的完成,能使系统的开发效率提高,系统的开发成本还减少,进而达到软件复用的要求。于是,构件化的软件开发方法能够作为一种有效途径,使软件危机得以解决。与此同时,更要引起构件测试技术中的一些主要问题。

参考文献:

[1]梅宏,杨芙清.构件化软件设计与实现[M].北京:清华大学出版社,2008

[2]许帧.基于构件的软件开发方法及实现[J].软件导刊,2009,11:17-19

[3]R.S.Freedman.Testability of Software Components[J].IEEE Transactions on Software Engineering,2008,17(6):533-564

[4]IEEE Standard Glossary of Software Engineering Technology[M].ANSI/IEEE 610.12,IEEE Press,2008:79-90

上一篇:3D计算中高速图形转换器算法设计 下一篇:浅谈计算机网络安全的具体问题及控制策略