不论是“敏捷开发”还是“极限编程”都可以加速软件的开发周期,增强用户的满意度。其中成功的“妙诀”在于将软件测试与开发紧密集成,并贯穿于软件生命周期。
国际化软件的开发周期与面向单一语言用户的软件产品相似,包括多个相互联系的阶段:业务分析、需求定义、架构设计、软件编码、软件测试、文档写作、发布。每一个阶段的产品和文档都对最终产品的质量产生或大或小的影响。为了提供高质量的国际化软件,不仅需要把测试尽早融入到项目开发流程中,而且广泛采用外包测试的方式。
国际化软件的复杂性,用户的多样性决定了软件外包的必要性。在各种外包类型中,软件测试外包非常流行。外包测试并不是随机的、无序的把软件测试“抛”给外包测试服务公司,而是采取“智能外包(Smartsouce)”的方式,确定需要外包的内容和程度、寻找最佳外包测试服务公司、保持价格和质量的最佳平衡。
“智能外包”测试成功的关键在于软件开发商和外包测试服务公司之间的有效知识传递和项目过程管理,包括详细的软件规格说明、测试文档和测试流程,具有熟练技能的外包测试团队,软件开发商和测试服务公司的有效交流、进度跟踪和质量度量。
大型国际化软件的开发实践表明,外包测试和开发的无缝集成是降低软件开发成本,保证软件质量,缩短发布日期的有效方法。这种无缝集成体现在软件外包测试从项目开始直到项目发布和维护的全系列过程。
1.业务分析
任何国际化项目在立项阶段都需要进行市场调查和产品定位等的业务分析,并且形成规范的立项建议书,论述开发软件产品的充分理由。国际化软件必须具有长远的测试策略,这种测试策略必须是明确的、可度量的、可实现的,以此改进流程,确保流程的正确性,定义度量成功的指标。
2.需求定义
软件开发的最终目标是开发的软件满足用户的需求和期望。为了获得用户的真实需求,负责软件测试的团队要和最终用户直接交流,并且分析竞争对手产品的功能特性,确定产品可用性测试需求。根据用户需求制订产品需求和确认测试需求,确保最终产品符合用户的期望。
软件产品的功能需求是需求定义要重视的一个方面,它指明软件能够做什么,即有哪些功能和特性。在需求定义阶段,需要确定验证测试策略,采用质量保证和其他测试方法,检测“是否正确地开发了软件”。对于国际化软件,这个阶段需要确定国际化设计方法,测试团队要确保设计的软件具有充分的适应性,易于全球发布。
3.架构设计
架构设计阶段,软件测试团队依据软件概要设计和详细设计规格说明,辅助开发团队选择和优化软件的架构设计,确保架构设计融入了当前软件设计的最佳实践经验。提供有效集成测试策略,确保软件各个模块集成的有效性,并且使国际化设计需求融入架构设集中。
4.软件开发
软件开发阶段与软件测试紧密相连。通过外包测试,不仅可以节约资金,还可改进软件质量,提高流程成熟度。通过软件国际化外包测试,尽早发现软件国际化设计的缺陷,为软件本地化处理扫除障碍。
不论采用的瀑布式、极限编程还是迭代开发技术,软件的模块测试(或者单元测试)都是需要测试人员与开发人员密切配合执行的测试。此外还需要集成测试、系统测试。对于某些软件可能还需要负载测试、基准测试、交互测试等多种测试类型,以保证测试覆盖软件涉及的全部技术层面。
5.软件测试
软件发布前需要执行全面的软件测试,尽可能的消除软件缺陷。通过外包测试的综合的、阶段性的测试方法,评估软件开发商的当前流程,开始和实现测试方案,并且通过周期性的设计和反馈,持续优化测试方案。
这种外包测试方式特别适用于全球存在多个开发团队的软件开发商,通过采用企业内部网(Intranet)发布全部相关的度量数据和项目进度,不同地区的团队都能看到整个项目过程、应用程序开发环境等进展情况。
大型软件外包测试服务公司使用外包项目管理系统,软件开发商和外包测试团队依靠这个管理系统,可以快速的提出问题、处理反馈、提出解决办法。外包项目管理系统是一个可以不断优化的、快速、安全访问的知识资源库,包括服务等级协议(SLA)、测试工作说明(SOW)、项目合同、进展状态报告的历史纪录等与测试项目有关的内容。全球团队只要拥有登录帐号就可以共享管理系统的文件、日历、应用程序和项目进度等信息。
6.文档写作
软件文档是大型国际化软件的组成之一,包括用户手册、联机帮助、市场宣传资料等。大型软件外包服务公司内部都开发了软件内容管理系统(CMS),设有专门的内容写作团队,为软件开发商提供多种形式的文档内容写作、排版、测试等一条龙服务。内容写作可能是网页形式,也可能是多媒体课件,需要印刷的产品文档,包装材料和市场宣传材料等。通过提供专业的内容写作服务,使得内容与应用程序有效集成,增强用户的体验,也降低了软件开发商的成本。
7.发布
在软件发布前主动修正软件的缺陷比发布后修正代价要小很多。完整的可用性测试可以模拟用户的体验,其中软件的界面设计是用户体验的主要部分,影响用户是否乐于接受新软件。
国际化软件需要发布多个语言的本地化版本,本地化软件是否能够适应特定国家和地区的文化、法律、语言和特定功能要求都是影响软件可用性的因素。另外,软件的兼容性测试和交互操作测试可以确保国际化软件可以在世界不同国家和地区的不同软、硬件系统上平稳运行,软件发布前需要执行这些类型的测试。
大型软件外包测试服务公司可以提供灵活的、系统的本地化软件外包测试的最佳实践,采用核心工具和技术,提供可以度量的、一致的本地化外包测试服务,利用专业的压力或负载测试工具,保证软件在真实的压力环境下的功能和性能,指导用户交互操作,提供专业的培训服务。