国际化软件的开发周期与面向单一语言用户的软件产品相似,包括多个相互联系的阶段:业务分析、需求定义、架构设计、软件编码、软件测试、文档写作、发布。每一个阶段的产品和文档都对最终产品的质量产生或大或小的影响。为了提供高质量的国际化软件,不仅需要把测试尽早融入到项目开发流程中,而且广泛采用外包测试的方式。
国际化软件的复杂性,用户的多样性决定了软件外包的必要性。在各种外包类型中,软件测试外包非常流行。外包测试并不是随机的、无序的把软件测试“抛”给外包测试服务公司,而是采取“智能外包(Smartsouce)”的方式,确定需要外包的内容和程度、寻找最佳外包测试服务公司、保持价格和质量的最佳平衡。
“智能外包”测试成功的关键在于软件开发商和外包测试服务公司之间的有效知识传递和项目过程管理,包括详细的软件规格说明、测试文档和测试流程,具有熟练技能的外包测试团队,软件开发商和测试服务公司的有效交流、进度跟踪和质量度量。
大型国际化软件的开发实践表明,外包测试和开发的无缝集成是降低软件开发成本,保证软件质量,缩短发布日期的有效方法。这种无缝集成体现在软件外包测试从项目开始直到项目发布和维护的全系列过程。
1.业务分析
任何国际化项目在立项阶段都需要进行市场调查和产品定位等的业务分析,并且形成规范的立项建议书,论述开发软件产品的充分理由。国际化软件必须具有长远的测试策略,这种测试策略必须是明确的、可度量的、可实现的,以此改进流程,确保流程的正确性,定义度量成功的指标。
2.需求定义
软件开发的最终目标是开发的软件满足用户的需求和期望。为了获得用户的真实需求,负责软件测试的团队要和最终用户直接交流,并且分析竞争对手产品的功能特性,确定产品可用性测试需求。根据用户需求制订产品需求和确认测试需求,确保最终产品符合用户的期望。
软件产品的功能需求是需求定义要重视的一个方面,它指明软件能够做什么,即有哪些功能和特性。在需求定义阶段,需要确定验证测试策略,采用质量保证和其他测试方法,检测“是否正确地开发了软件”。对于国际化软件,这个阶段需要确定国际化设计方法,测试团队要确保设计的软件具有充分的适应性,易于全球发布。
3.架构设计
架构设计阶段,软件测试团队依据软件概要设计和详细设计规格说明,辅助开发团队选择和优化软件的架构设计,确保架构设计融入了当前软件设计的最佳实践经验。提供有效集成测试策略,确保软件各个模块集成的有效性,并且使国际化设计需求融入架构设集中。
4.软件开发
软件开发阶段与软件测试紧密相连。通过外包测试,不仅可以节约资金,还可改进软件质量,提高流程成熟度。通过软件国际化外包测试,尽早发现软件国际化设计的缺陷,为软件本地化处理扫除障碍。
不论采用的瀑布式、极限编程还是迭代开发技术,软件的模块测试(或者单元测试)都是需要测试人员与开发人员密切配合执行的测试。此外还需要集成测试、系统测试。对于某些软件可能还需要负载测试、基准测试、交互测试等多种测试类型,以保证测试覆盖软件涉及的全部技术层面。