UML软件工程组织

 

 

国际化软件开发与测试模型研究与实践
 
2007-11-20 来源: 网络转载
 

1. 引言

随着全球软件产业在生产要素和市场资源的整合和迁移,软件生产的国际化成为新的软件设计模式和技术。国际化软件也称为全球化软件,它是为全球用户设计,面向全球市场发布的具有一致的界面、风格和功能的软件。

国际化软件开发需要遵守国际化技术准则,采用软件项目(或产品)方式进行,一个完整的国际化软件项目将包含很多内容和阶段,其中软件的国际化和本地化是两项主要内容。

国际化软件测试的内容和范围广泛,包括软件的核心功能特性测试、国际化能力测试、本地化能力测试和本地化测试。

2. 国际化软件的概念

国际化软件有四个紧密相关的术语,分别是“全球化”、“国际化”、“本地化”和“市场化”。由于它们都包含“化”字,统称为“四化”。

2.1. 概念

全球化软件也称为国际化软件,是为全球用户设计,面向全球市场发布的具有一致的界面、风格和功能的软件。它的核心特征和代码设计并不仅仅局限于某一种语言和区域用户,支持不同目标市场的语言文字和数据信息的输入、输出、显示和存储。

软件国际化是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,使创建不同语言版本时,不需要重新设计源程序代码的软件工程方法。

软件本地化是将一个软件产品按特定国家/地区或语言市场的需要进行加工,使之满足特定市场上的用户对语言和文化的特殊要求的软件生产活动。

软件市场化是国际化软件领域的一个新引入地概念,是为了将国际化软件实现全球市场的销售和服务,而进行的一系列市场宣传、推广、销售、支持、培训和服务的全部过程。

2.2. 概念辨析

软件全球化与软件国际化和软件本地化之间的关系可以使用公式表示为:软件全球化 = 软件国际化 + 软件本地化 + 软件市场化,下图所示进一步解释了他们之间的关系。

图1 国际化软件概念之间的关系

从图中可以看出,全球化软件(也称为国际化软件)包括软件国际化、软件本地化和市场服务等过程,即一个完整的软件全球化将包括软件进行正确的国际化设计,软件本地化集成,以及在全球市场进行的市场推广、销售和支持的全部过程。

软件本地化和软件国际化构成国际化软件的核心,其中软件国际化是顺利实施软件本地化的基础,没有良好国际化设计的软件很难进行本地化。而软件本地化则是对原始语言编写的软件(通常是英文软件)进行语言和技术加工,为不同语言和区域的用户量身定做满足其使用习惯的软件。从某种意义上讲,软件国际化设计是手段,软件市场化是营销策略,而软件本地化是结果,最终的目的是实现“全球可用”的全球化软件。

3. 同步国际化开发模型

现代国际化软件开发要求源语言软件和多种本地化软件同步发布,这必然需要从软件开发和测试模型和流程上进行改革,

以适应这种较强的时效性和软件的多语言软件发布的需要,这就催生了国际化软件同步发布模型。

国际化软件同步发布模型的最重要特点之一是将软件的国际化设计思想贯穿于软件开发的整个生命周期,而不是将软件国际化作为一个附加的后期阶段。

这个模型中,软件开发分为三个阶段:开发,测试和本地化,其中的开发和测试都是国际化支持的开发和测试,测试和开发同步进行。

这种模型的好处也是显而易见的,首先简化了项目流程;其次,提高了软件的国际化设计能力,简化了软件本地化过程;最后是软件的质量有了提高,可以保证同步发布多语言版本。

国际化软件同步发布模型如下图所示。

图2 国际化软件同步发布模型

这种国际化软件同步发布模型,非常简单明了,具有以下特征:

(1).源语言和本地化语言版本同步发布

同步发布模型中没有源语言发布的里程碑,源语言软件和本地化软件都使用相同的单一的软件代码,方便软件代码版本控制,也使得本地化软件的功能和源语言的功能相同,不会出现本地化功能缺失。

这种开发模型最大的好处是可以做到源语言软件和多语言本地化软件同步发布,可以更好的为国际软件用户更及时地提供产品,也有利于提升软件开发公司的市场形象。

(2).软件本地化阶段大为缩短

由于软件自始至终采用了国际化设计思想,并且测试和开发同步进行,很多软件缺陷(核心功能缺陷和国际化缺陷)可以在软件开发阶段修正,这样软件本地化很容易进行,减少了软件本地化后的缺陷。这对于软件开发公司和软件本地化服务公司都是非常有利的。

(3).测试与开发同步进行

测试不再是开发后的一个被动执行的过程,通过尽早介入测试,可以发现、报告和修正软件缺陷。由于国际化不再是一个单独的过程,所以软件的功能测试、国际化测试将同步进行。这样即使没有本地化测试版本,测试人员可以使用“伪本地化版本”进行“伪本地化测试”,以便发现本地化能力方面的缺陷。

当代软件市场已经全球化,市场竞争日趋激烈,软件的开发周期不断缩短,软件的规模不断增加,软件的质量要求不断提高,为了最大程度地占领国际市场,国际化软件同步发布开发模式势在必行。

4. 同步本地化工程模型

随着国际化软件开发技术的不断发展,软件业积累了成熟的国际化软件设计经验,全球软件市场竞争加剧,传统开发模型的耗时、低效的开发方法已经不符合当代国际化软件开发的需要而逐渐被淘汰,而将软件国际化思想和技术贯穿于整个软件开发周期的同步软件本地化工程模型,可以保证源语言和多个语言的本地化软件同步发布,成为业界主流的国际化软件开发方法。

同步软件本地化工程模型的本地化过程如下图所示。

图3 同步软件本地化工程模型

使用同步软件本地化工程模型方法,软件开发人员基于国际化设计的要求开发一个各个语言版本所通用的核心软件模块,它可以很容易地调用操作系统的国际化支持功能。另外,编写与核心软件模块进行数据传递的本地化接口模块,它包含与区域相关的软件内容,例如,字符串、对话框、菜单以及特定区域要求的软件功能。核心软件模块可以很方便地调用本地化接口模块的内容。开发核心软件模块和本地化接口模块的过程成为对软件进行国际化设计。

开发完核心软件模块后,与区域特定的功能可以很容易的被下层操作系统处理,或者编写与核心软件模块隔离的区域特定功能的代码,这样可以在不修改核心软件代码的情况下,随时方便的修改区域特定的功能代码。本地化的接口模块和区域特定的功能模块可以传递给专业的本地化服务公司,而不用给它们全部软件代码,这样具有较高的信息安全性,也可以保持较高的本地化处理效率。

本地化服务公司对本地化接口模块进行资源字符串的翻译、本地化工程处理、桌面排版和软件测试,编译出最后的本地化版本。本地化工程处理的内容包括调整对话框等用户界面的大小和控件位置,重新设计一些软件的图像,编译本地化的软件。桌面排版是对翻译后的软件手册、联机帮助和其它文档根据本地要求进行重新排版。所有的本地化内容(软件、文档、手册等)都要经过系统的软件测试,修正缺陷后,才能发布本地化版本。

软件的翻译、本地化工程、桌面排版和测试合称软件本地化过程。核心软件模块如果进行了正确的国际化设计,多种语言的软件本地化过程可以快速有效地并行处理,不需要对核心软件代码进行修改,这样就可以做到多个本地化语言的版本和源语言版本同步发布。

5. 分步本地化测试模型

软件本地化测试是国际化软件测试的一个重要类型,通过测试本地化软件的语言、功能和界面等内容,使本地化软件更符合当地语言市场和用户的使用习惯。

5.1. 本地化测试的内容

本地化测试是国际化软件测试的内容之一,对一个完整的本地化测试项目而言,测试内容包括三个方面:

  • 测试本地化产品的功能,保证本地化后的功能不失效或错误;
  • 测试本地化界面的字符串和控件的显示完整和本地化的完整性,避免出现字符串被截断引起不完全显示,或者存在没有本地化的源语言字符串;
  • 测试本地化文本的语言质量,保证本地化语言的正确性和一致性,符合目标市场的文化和习俗的特定要求。

5.2. 分布本地化测试模型

本地化分布测试模型是指按照一定的时间顺序,将测试内容进行详细分工,安排不同技能的人员,分别执行本地化功能、与语言无关的本地化测试(例如用户界面)和语言相关的语言质量的测试。

本地化分布测试模型的本地化测试过程如下图所示。

图4 分步本地化测试模型

本地化分布测试模型把测试内容分成三个独立的部分,分别由掌握不同技能的测试和语言人员分别完成。由于一般本地化测试发现的语言质量缺陷只占缺陷总数的5%至20%,因此完全可以考虑由语言人员单独执行语言质量测试。

测试人员先执行本地化功能测试和用户界面测试,测试完成后再由语言人员测试本地化语言质量,反之亦然。测试人员和语言人员可以同时并行执行各自的测试内容,前提条件是语言人员必须熟悉测试的步骤。

一般情况下,本地化语言工程师对于被测试的软件可能不如本地化测试工程师更熟悉,本地化测试工程师把饱含被测试文字的软件用户界面通过UI导航图的形式给出具体的执行步骤,语言工程师可以按图索骥,找到对应的对话框,报告对话框的语言质量缺陷。

这种测试模型的优点如下:

(1). 提高测试效率

测试人员和语言人员各自在自己的计算机上执行测试,无需坐在一块协同测试,这样就可以节省测试的时间,提高了测试效率。

(2). 测试成本较低

测试人员执行的都是与语言无关的测试内容,只需要掌握测试技能,熟悉被测试产品,而不必懂得本地化语言,从而降低了测试的总体成本。

(3). 测试覆盖性高

由于测试人员和语言人员各自分工明确,可以提高测试的覆盖性,提高测试的全面性。

6. 国际化软件测试的项目实例分析

大型国际化软件开发的整个生命周期内都需要执行国际化测试,以保证软件的设计和编码符合国际化设计准则,满足国际化功能特性要求,具有较高的本地化能力。软件开发公司通常与专业的国际化软件测试服务公司合作,执行具体的国际化测试工作。下面结合一个具体的国际化软件的测试项目进行分析。

6.1. 项目概述

某世界领先的软件开发公司的大型软件开发工具需要进行软件国际化测试。这个软件开发工具在全球范围内拥有众多开发者,可以开发大型企业应用程序和系统。

软件开发公司要求通过执行有效的国际化测试,确保这个开发工具的源语言(英语)软件的设计和架构具有充分的健壮性,可以基于多语言的客户端/服务器开发系统软件,同时保证代码具有较好的本地化能力,从而最大程度地降低软件本地化过程的难度和成本。为了实现这个测试目标,软件开发公司把国际化测试项目外包给一家国际领先的国际化测试服务公司。

6.2. 解决方案

国际化测试服务公司的专业测试团队(以下简称“国际化测试团队”)与软件开发公司的开发和质量保证团队(以下简称“软件开发团队”)密切合作,共享开发和测试环境、执行软件测试、跟踪和控制测试进度、保持密切项目交流。

(1).国际化测试早期介入项目开发

国际化测试团队在项目开发的初期介入国际化测试,通过与软件开发公司的开发人员密切联系,准确理解了项目的测试目标和框架结构。

(2).“快速分析法”测试框架

国际化测试团队使用“快速分析法”分析了此项目的框架结构设计,建议软件开发团队根据国际化设计准则,修改原有的框架结构设计,以便支持多语言的运行环境。

(3).“逐行分析法”测试源代码

在该项目的整个开发阶段,国际化测试团队逐行分析源代码,寻找和报告与国际化有关的基本设计缺陷或代码缺陷。

(4).在每个里程碑定制测试工具测试国际化功能

除了评审源代码,国际化测试团队开发了测试国际化功能的测试工具,在项目的每个里程碑阶段测试源代码和框架的国际化功能。该测试工具是定制开发的,可以在多语言、多区域环境中运行和测试软件的国际化能力。

(5).共享访问企业内部网和版本控制系统

为了有效的执行国际化测试,国际化测试团队可以直接访问软件开发团队的企业内部网(Intranet)和版本控制系统,如果需要可以直接修改源代码。

(6).共享访问企业缺陷跟踪数据库

软件开发团队和国际化测试团队共享一个缺陷跟踪数据库,测试人员报告缺陷,验证修正的缺陷,开发人员修正报告的缺陷。

6.3. 测试小结

经过国际化测试服务公司和软件开发公司的协调合作,按照测试进度和测试质量要求,完成了全部测试内容,使得源语言软件具有较高的国际化能力和本地化能力,使得本地化处理过程比较容易。

该测试项目的成功地关键在于四个方面:

测试从开发的开始阶段介入,保证了软件框架的国际化支持能力;
“逐行代码分析法”确保了充分的国际化测试覆盖,保证代码按照国际化准则编写;
在项目的每个里程碑采用定制开发的国际化功能测试工具,保证了软件的框架结构和代码的国际化能力,而且提高了测试的效率;
软件开发团队和国际化测试团队共享内部网络、版本控制系统和缺陷跟踪数据库,保证缺陷的快速报告、确认、修改和验证。

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号