基于框架的软件测试性分析
2013-04-23张伟俊
张伟俊
【摘 要】分析了基于框架的软件产品线测试方法、当前的状况以及相关的自动化测试工具,为确保软件产品线的可靠性以及促使软件生产在时间、成本和质量方面获得显著的改善提供了有力支持。
【关键词】软件产品线测试;面向对象的软件测试;自动化工具支持
软件产品线是一套软件密集型系统,它拥有一组能满足特定需求的公共的、可管理的特性,并且是按预定义的方式由一组公共的核心资产开发而来。在软件开发过程中,测试是一项持续性活动,同时也是一项劳动密集型活动。传统的面向对象的测试方法是产品线测试的基础,因为软件产品线,尤其是框架通常是用面向对象技术来进行设计和实施的。为了确保框架的可靠性,在应用它之前必须进行仔细的检测。实践中,通常是通过测试应用程序来测试框架,因而难以区分框架和应用程序的编码错误。同时,当前测试框架和产品线的方法还非常不成熟,因此对成熟测试方法的需求十分迫切,测试过程也应获得测试工具更多的支持。
1.面向对象的软件系统测试
1.1面向对象系统的测试方法与过程
为了保证软件的质量和可靠性,应力求在分析、设计等各个开发阶段,对软件进行严格技术评审。近年来,测试的作用在很多组织中得以扩展,进而为软件可靠性的评估提供技术支持。
面向对象技术产生更好的系统结构,更规范的编程风格,极大地优化了数据使用的安全性,提高了程序代码的使用率,然而正是因为面向对象技术开发的软件代码重用率高,这就需要更严格的测试,避免错误的繁衍。
1.2测试自动化和工具支持
近几年来,许多研究工作者通过使用自动化的测试工具对软件的质量进行保障研究。到现在为止自动化测试工具已经足够完善了,完全可以应用自动化测试工具来大幅度地提高软件测试的效率和质量。在使用自动化的测试工具的时候应尽早地开始测试工作,这样可以使修改错误更加地容易和廉价,并且可以减少更正错误对软件开发周期的影响。
自动化支持的一个关键因素是是否有用于所有测试交付物和工作产品的中心项目数据库。这可以指的是测试管理系统,包括用于对测试进行保存、描述、文档化和跟踪,并且对测试目标和结果进行记录、跟踪、评审的辅助设施。好的工具可以使得这些信息很容易被项目组获得,并且提供稳定的工作流支持来简化和跟踪软件开发过程。
2.软件产品线测试方法
在软件产品线测试时虽然可以使用传统面向对象的测试方法,但仍强烈需要一个明确定义的产品线测试过程和方法,包括工具支持。这是因为当一个产品线或多个产品线被测试时,一些具体问题就会暴露出来。例如规模问题,因为产品线中的所有应用都需要测试,这就使得产品线的测试要比单独的产品测试要复杂得多。产品线测试的关键在于重用测试用例和测试件(Testware,指测试工作形成的产品),而不是将产品线中的每个软件作为一个单独的产品来进行测试。
2.1软件产品线测试
产品线测试关系到多个方面,包括回归测试、非完整性项目测试和有效使用可重用的测试资产等等。回归测试是用来确认前期可正常工作的组件在面临某些修改时,是否还能正确运行。产品线中的成员在共享许多共性特征的基础上又各自变化,因此回归测试适合于产品线或重用情况。与单个系统开发项目不同,测试也是可以重用于大多数产品中的活动,它本身产生可重用的核心资产。建立可重用的测试资产能使产品线测试拥有较高的成本效益比。
产品线测试的主要问题可以从两个方面来进行论述。在领域工程中测试核心资产时,测试者试图减少应用测试,但却很难保证软件在不明确的用例情景下都正常运作;产品线中的成员在共享许多共性特征的基础上又各自变化,测试者发现根据V 模型进行集成和系统测试并不可行。而在应用工程中,在核心资产和其它应用测试的基础上,测试者想使充分测试特定产品的费用最小化,但很难确定哪些已有测试结果是可以利用的,哪些产品测试是必须进行的。
2.2当前产品线测试状况
目前产品线测试的工作重心主要放在验收和系统测试上。
但由于产品线中大量重用组件,因此它们的低级别测试(例如,单元级)也应该得到保证。换而言之,当前的研究和实践主要集中在高级别的产品线测试上。假设传统的面向对象的测试方法可以不做任何修改就用于产品线测试过程,那么这一假设存在许多疑点。例如,目前尚不清楚将使用哪一种面向对象的测试方法以及如何将之用于产品线测试,更加不清楚是否还需要新的、具体的产品线测试方法。
在基于框架的软件产品线测试方法中,应用框架是产品线的核心,在所有应用从它产生之前就应该得到很好的测试。但是以框架为基础的产品线的实际测试中,往往没有使用产品线的任何信息。例如,诺基亚的移动浏览器产品线是按照如下要求进行产品线测试的:“产品线测试的复杂性要远大于单个软件产品的测试。必须测试在不同情景下的产品线。为了控制测试的复杂性,应缩减单个产品的测试,取而代之的是对整个产品线的测试。这样才能保证测试的简化以及产品质量”。
2.3软件产品线自动化测试及相关工具支持
在软件产品线测试方法中,工具支持比在传统面向对象测试中更加重要。这是因为包含数个相同体系结构的产品线测试规模要大于单个产品测试。当一个组织有几个产品线时,规模的问题就更加突出。产品线的工具支持因使用可重用的测试资产可以减少费用,并且使复杂的测试过程更易于管理。
现今有许多成熟的测试工具,但是产品线和框架测试缺乏有效的工具支持。通常这些工具也能够应用于产品线的测试,但它们只适用于像单元测试这样低级别的测试。在产品线方面,需要详细而精确的测试工具。测试工具应有效地管理可重用的测试资产。工具支持应从测试执行和测试结果的分析扩展到集成产品线测试的整个过程。
目前赫尔辛基大学已经开发出RITA工具。RITA是一个能覆盖所有领域的测试支持工具。但是所有设计功能并没有在RITA的第一版中完全实现。同时,RITA工具的焦点在于支持基于框架结构的低水平的白盒测试。
3.结束语
软件产品线受到越来越多的关注和研究,特别是在工业应用领域。但是产品线的测试所受到的关注还是很少。产品线需要一个详细规划的测试过程,它要能够比较容易地被不同的产品线应用领域所采纳和运用。然而,测试产品线是一项非常具有挑战性的工作。因此迫切需要一些成熟的测试方法和工具。
【参考文献】
[1]王建辉.论软件产品线技术[J].福建电脑,2007,(02).
[2]江瑜.基于软件产品线的需求分析研究[J].计算机工程与设计,2007,(08).
[3]邢瑜琨,刘超,高仲仪,金茂忠.基于构件和框架、面向方面的软件产品线开发方法CFB-AOD[J].微计算机信息,2006,(27).
[4]郭军,张斌,高岩,高克宁.支持渐变过程的软件产品线框架的研究[J].小型微型计算机系统,2007,(02).