基于框架的软件测试性分析
2014-01-03陈君
陈君
【摘要】分析了基于框架的软件产品线测试方法、当前的状况以及相关的自动化测试工具,为确保软件产品线的可靠性以及促使软件生产在时间、成本和质量方面获得显著的改善提供了有力支持。
【关键词】软件产品线测试;面向对象的软件测试:自动化工具支持
【中图分类号】TP311
【文献标识码】A
【文章编号】1672-5158(2013)04-0003-02
软件产品线是一套软件密集型系统,它拥有一组能满足特定需求的公共的、可管理的特性,并且是按预定义的方式由一组公共的核心资产开发而来。软件产品线可以提供重用软件资产,生产和开发一组类似系统的方法,使用这种方法可以有效地降低成本、缩短产品面世时间、提高软件质量。它是软件产业向大规模定制模式发展的一个重要途径和方法。
面向对象的应用框架是一种软件半成品,是软件产品线的主干(backbone)。框架具有很强的领域特性,是对问题领域共性的抽取(领域分析),它用一种抽象可扩展的方式描述产品线中所有产品的共性特征。基于框架的开发方法把软件复用提高到了设计层次,提高了软件生产率。
在软件开发过程中,测试是一项持续性活动,同时也是一项劳动密集型活动。传统的面向对象的测试方法是产品线测试的基础,因为软件产品线,尤其是框架通常是用面向对象技术来进行设计和实施的。为了确保框架的可靠性,在应用它之前必须进行仔细的检测。实践中,通常是通过测试应用程序来测试框架,因而难以区分框架和应用程序的编码错误。同时,当前测试框架和产品线的方法还非常不成熟,因此对成熟测试方法的需求十分迫切,测试过程也应获得测试工具更多的支持。
1 面向对象的软件系统测试
1.1 面向对象系统的测试方法与过程
为了保证软件的质量和可靠性,应力求在分析、设计等各个开发阶段,对软件进行严格技术评审。近年来,测试的作用在很多组织中得以扩展,进而为软件可靠性的评估提供技术支持。
面向对象技术产生更好的系统结构,更规范的编程风格,极大地优化了数据使用的安全性,提高了程序代码的使用率,然而正是因为面向对象技术开发的软件代码重用率高,这就需要更严格的测试,避免错误的繁衍。
1.2 测试自动化和工具支持
近几年来,许多研究工作者通过使用自动化的测试工具对软件的质量进行保障研究。到现在为止自动化测试工具已经足够完善了,完全可以应用自动化测试工具来大幅度地提高软件测试的效率和质量。在使用自动化的测试工具的时候应尽早地开始测试工作,这样可以使修改错误更加地容易和廉价,并且可以减少更正错误对软件开发周期的影响。
自动化支持的一个关键因素是是否有用于所有测试交付物和工作产品的中心项目数据库。这可以指的是测试管理系统,包括用于对测试进行保存、描述、文档化和跟踪,并且对测试目标和结果进行记录、跟踪、评审的辅助设施。好的工具可以使得这些信息很容易被项目组获得,并且提供稳定的工作流支持来简化和跟踪软件开发过程。
2 软件产品线测试方法
在软件产品线测试时虽然可以使用传统面向对象的测试方法,但仍强烈需要一个明确定义的产品线测试过程和方法,包括工具支持。这是因为当一个产品线或多个产品线被测试时,一些具体问题就会暴露出来。例如规模问题,因为产品线中的所有应用都需要测试,这就使得产品线的测试要比单独的产品测试要复杂得多。产品线测试的关键在于重用测试用例和测试件(Testwarc,指测试工作形成的产品),而不是将产品线中的每个软件作为一个单独的产品来进行测试。
2.1 软件产品线测试
产品线测试关系到多个方面,包括回归测试、非完整性项目测试和有效使用可重用的测试资产等等。回归测试是用来确认前期可正常工作的组件在面临某些修改时,是否还能正确运行。产品线中的成员在共享许多共性特征的基础上又各自变化,因此回归测试适合于产品线或重用情况。与单个系统开发项目不同,测试也是可以重用于大多数产品中的活动,它本身产生可重用的核心资产。建立可重用的测试资产能使产品线测试拥有较高的成本效益比。
产品线测试也需要详细规划并给出一个明确定义的过程,把测试集成到过程的每个阶段,以生产出高质量的产品。在产品线中组件被大量重用,有效的故障修复显得尤其重要。领域工程中的缺陷使风险演变为问题,因为可重用资产中的缺陷蔓延到重用它的每个产品中。然而在软件产品线方法中,测试不能很好地区分领域工程和应用工程任务。虽然根据V模型进行测试,但ISAPS、CAF和SEI提出的框架还是不能完全将V模型测试的各个阶段集成到软件开发中去。在实践中,将测试过程集成到整个产品线过程中被证明是最棘手的问题。
产品线测试的主要问题可以从两个方面来进行论述。在领域工程中测试核心资产时,测试者试图减少应用测试,但却很难保证软件在不明确的用例情景下都正常运作;产品线中的成员在共享许多共性特征的基础上又各自变化,测试者发现根据V模型进行集成和系统测试并不可行。而在应用工程中,在核心资产和其它应用测试的基础上,测试者想使充分测试特定产品的费用最小化,但很难确定哪些已有测试结果是可以利用的,哪些产品测试是必须进行的。
2.2 当前产品线测试状况
目前产品线测试的工作重心主要放在验收和系统测试上。
但由于产品线中大量重用组件,因此它们的低级别测试(例如,单元级)也应该得到保证。换而言之,当前的研究和实践主要集中在高级别的产品线测试上。假设传统的面向对象的测试方法可以不做任何修改就用于产品线测试过程,那么这一假设存在许多疑点。例如,目前尚不清楚将使用哪一种面向对象的测试方法以及如何将之用于产品线测试,更加不清楚是否还需要新的、具体的产品线测试方法。
在基于框架的软件产品线测试方法中,应用框架是产品线的核心,在所有应用从它产生之前就应该得到很好的测试。但是以框架为基础的产品线的实际测试中,往往没有使用产品线的任何信息。例如,诺基亚的移动浏览器产品线是按照如下要求进行产品线测试的:“产品线测试的复杂性要远大于单个软件产品的测试。必须测试在不同情景下的产品线。为了控制测试的复杂性,应缩减单个产品的测试,取而代之的是对整个产品线的测试。这样才能保证测试的简化以及产品质量”。
2.3 软件产品线自动化测试及相关工具支持
在软件产品线测试方法中,工具支持比在传统面向对象测试中更加重要。这是因为包含数个相同体系结构的产品线测试规模要大于单个产品测试。当一个组织有几个产品线时,规模的问题就更加突出。产品线的工具支持因使用可重用的测试资产可以减少费用,并且使复杂的测试过程更易于管理。
现今有许多成熟的测试工具,但是产品线和框架测试缺乏有效的工具支持。通常这些工具也能够应用于产品线的测试,但它们只适用于像单元测试这样低级别的测试。在产品线方面,需要详细而精确的测试工具。测试工具应有效地管理可重用的测试资产。工具支持应从测试执行和测试结果的分析扩展到集成产品线测试的整个过程。
目前赫尔辛基大学已经开发出RITA工具。RITA是一个能覆盖所有领域的测试支持工具。但是所有设计功能并没有在RITA的第一版中完全实现。同时,RITA工具的焦点在于支持基于框架结构的低水平的白盒测试。
3 评测过程
3.1 评测类型
对电子商务易用性质量的衡量,它侧重于提供同类产品之间可比的易用性质量数据,是黑箱方式的定量测试。
3.2 评测相关人员
可以由几方面的易用性专业人员共同完成。软件开发方可进行评测,为下一次开发提供历史数据或者向采购方提供报告;采购方也可以通过评测的方式来验证某个测试报告;还可由独立的第三方易用性专业机构进行评测。报告主要供三类人员使用:
①软件供应方的技术人员可以根据评测结果为下一版本的设计提供参考意见;
②采购方的管理和决策人员,他们根据评测结果做出产品采购决定;
③易用性专业人员,他们对评测的技术价值和产品的易用性质量进行评价,或者重复进行评测以验证报告结果。
本次评测是由第三方测试机构进行评测的,报告目前是作为相关领域的易用性评测的研究之用,在条件成熟之后会考虑向其他几方面的人员开放。
3.3 评测计划
评测尽可能地接近实际的用户、任务和环境,事先进行了使用环境分析,并据此制定了详细的评测计划,详细地说明了电子商务的特征描述、环境、过程和指标体系。
3.4 评测环境
产品的易用性不仅取决于产品本身,还受使用环境的影响。使用环境包括以下几方面:
(1)用户特征。它包括知识背景、技能、经验、学历、年龄、体力等,有时还可按经验、职务或能力来分组。
(2)使用产品的目标。产品的主要用途以及工作时间长短、强度等。
(3)社会物理环境。例如计算环境、温湿度环境、法律环境、社会文化习惯环境等。
(4)在详细分析使用环境的基础上,设计出评测环境并在评测计划中明确定义,并使评测环境具有使用环境的典型特征,包括:
①评测对象特征,如知识背景、技能、学历、年龄等;
②评测任务,如符合电子商务网站的主要用途并覆盖其主要功能,详细规定任务要求和执行顺序;
③评测的社会物理环境,如所使用的物理设备、软件以及相关的物理和社会环境特征。
3.5 评测过程与数据收集
在评测开始前向测试对象介绍产品及测试内容和目的,然后让测试对象熟悉测试环境。在测试过程中,为使测试环境符合使用环境,除了用户在正常使用环境中所能得到的帮助外,不向他们提供任何额外帮助,同时使测试对象尽可能地放松。
在正式开始测试时,要向测试对象介绍测试任务和完成时间。在测试过程中,记录人员针对任务完成情况和用户满意度,观察并记录各项测试数据,记录测试对象遇到的具体问题。在测试结束时,征询测试对象对产品的其他意见和建议。
3.6 数据的分析和解释
对测试数据进行计算整理和分析,得出综合评价。
4 结束语
软件产品线受到越来越多的关注和研究,特别是在工业应用领域。但是产品线的测试所受到的关注还是很少。产品线需要一个详细规划的测试过程,它要能够比较容易地被不同的产品线应用领域所采纳和运用。然而,测试产品线是一项非常具有挑战性的工作。因此迫切需要一些成熟的测试方法和工具。
参考文献:
[1]王建辉.论软件产品线技术[J].福建电脑,2007,(02)
[1]邵兵家电子商务[M].北京:高等教育再版社,2012
[2]王峰译:Glenford J Myers.软件测试的艺术[M].北京:机械工业出版社,2011
[3]林锐等:Web软件用户界面设计指南[M].北京:电子工业出版社,2012