移植(Porting)测试的困惑

文章出处:关河@与谁同坐轩 / 作者: / 发布时间:2007-02-12 / 阅读次数:5次

近段时间,我的主要工作之一是管理一个移植项目的测试,移植过程包括:从Oracle数据库移植到Informix数据库、从HP-Unix移植到Solaris,上层PC应用基本不变,只需要在数据库访问部分进行部分的代码修改。当然,和所有的移植项目一样,被移植的应用还需要进行一些功能上的调整。
    初看起来,移植项目的测试应该会比普通项目测试简单,因为有下面一些优势:
    1、测试用例可以重用;
    2、需求已明确定义;
    3、系统架构经过了其他项目的考验,一般不需要担心架构的问题;
    4、代码修改不大,可能不需要全面测试。
    但真正开始进行移植项目的测试准备之后,我开始发现,移植测试并不像想象的那么简单:
    1、测试用例可以重用,但需要小心确定可以重用的用例,对不能重用的用例进行修改;
    2、需求已经明确定义了,但需要区分新增、不变、修改的需求(对于修改的需求,有些是系统限制导致的);
    3、系统架构基本不需要变化,但细节上的变化不少;
    4、代码修改不大,但为了保证代码的一致性(相信我,这个很关键),可能会需要对部分模块的局部设计进行调整,导致需要为移植前的项目进行重新测试;
    5、代码的修改可能分散在许多地方,对系统的影响很难评估,这样的直接后果就是只能对移植后的系统进行全面的测试,测试开销很大。
    MinderFire的网站上有一篇关于移植测试技术的文章:Porting-Test Technique (http://www.mindfiresolutions.com/whitepapers.htm#PortTest),简单描述了一个移植测试的框架,但这篇白皮书一大部分侧重在界面移植方面,对于我关注的数据库部分的移植只是略略带过,不过其中提到的步骤、移植项目的分层次识别和风险识别策略还是比较有借鉴意义的。
    对我现在的这个项目来说,最头痛的问题包括几个:
    1、数据库的移植;其实在上一个项目(被移植项目)设计的时候,就考虑到了为将来的移植提供便利,因此采用存储过程的方式,访问数据库的应用都只通过存储过程访问,本来这是很好的想法,但在本次移植过程中发现,由于上一个项目(基于Oracle数据库)的存储过程采用了多数据集返回的方式,而Informix并不支持这种方式,导致需要对部分存储过程进行分拆。另外,由于上一个项目的数据库还会有变动,为了保持两边的同步,也需要额外的流程支持;
    2、为了保持代码的一致性,应用部分需要调整设计,对数据库的访问增加一层封装,屏蔽数据库之间的差异,这样一来就将代码修改造成的影响扩散了;
    3、项目的配置项管理;是为所有的工件建立配置项还是为项目建立配置项?一方面想统一,另一方面,统一到工件需要对我们现有的配置管理工作增加部分工作内容,而且,配置项的划分也需要相应调整,总之是工作量比较大。
    4、测试策略;如何确定需要新增的测试用例?如何确定用例的优先级?看来还需要摸索啊。
    摸索中,希望能在这次测试完成后总结一下。

 » 相关连接:
软件本地化能力测试 排错的基本方法 系统测试的基本方法 测试用例之性能测试用例
软件测试术语解析 压力测试和性能测试的区别 测试设计中需要考虑的22种测试类型 谈项目管理和软件测试过程
软件测试:单元测试浅析 开源软件测试模型精析
 » 本栏目最新帖:
 » 精华帖:

Powered by PHPWind v6.0 Code © 2003-08