章10 外国语言测试


如果你是一个有竞争力的软件测试员,并且熟练掌握除英语之外的一门外语,你就有了很有价值的技能。
1、使文字和图片有意义
软件的国际化
除了语言,还需要考虑地域(region或locale)——用户的国家和地理位置。
使软件适应特定地域特征,照顾到语言、方言、地区习俗和文化的过程称为本地化(localization)或国际化(internationalization)。测试此类软件称为本地化测试。
2、翻译问题
尽管翻译只是整个本地化工作的一部分,但是从测试角度看这是重要的一环,最明显的问题是如何测试用其它语言做的产品。
软件测试员或者测试小组至少要对所测试的语言基本熟悉,能够驾驭软件,看懂软件显示的文字,输入必要的命令执行测试。
注意:软件测试小组一定要有人对测试的语言比较熟悉。
对多种语言的情况,可以委托本地化测试公司进行测试。
(1)文本扩展(text expansion)
实践证明,当英语被翻译为其它语言,用来表达同一事务时往往需要加一些字符。
一个好的大拇指规则是每个单词长度预计增加100%。
因为这些扩展现象,故必须仔细测试可能受到变长了的文本影响的软件部分,要找出没有正确换行、截断的和连字符位置不对的文本;还要找到虽然文本有足够的扩展空间,但这是通过把其它的文本挤出去来实现的情况。
变长了的文本还可能导致主程序失败,甚至系统崩溃。
(2)ASCII、DBCS和Unicode
ASCII字符集只能表示256种不同的字符——远不足以表示所有语言的全部字符。
当开始为不同语言开发软件时,就需要找到克服该限制的解决方案。
常用的一个方法是代码页(code page)技术,实质是ASCII表的替换,每一种语言用一个不同的代码页。
这个方法虽然笨,但对于少于256个字符的语言还是可行的。但对于中文、日文则不行。这时,使用DBCS(双字节字符集)的系统提供对超过256个字符的语言的支持。用两个字节代替一个字节来表示最多可容纳65536个字符。
代码页和DBCS在许多情况下足够了,但是会遇到一些问题,最重要的是兼容性问题。
解决这个麻烦的方法是使用Unicode标准。
Unicode为每一个字符提供唯一编号,无论何种平台,无论何种程序,无论何种语言。
(3)热键和快捷键
在软件的本地化版本中,需要测试所有热键和快捷键工作是否正常,而且使用起来不困难。
(4)扩展字符
本地化软件,甚至非本地化软件中存在的一个常见问题是扩展字符(extended characters)。
扩展字符指的是普通英文字母A~Z和a~z之外的字符。
测试扩展字符的方法是找出软件所有接受字符输入和输出之处。在每一处尝试使用扩展字符,看能否与常规字符一样处理。对话框、文本域都是合适的对象。
技巧:测试扩展字符是否被正确处理的最简单的方法是,把它们加入测试的标准字符所在的等价划分之中。
(5)字符计算
与扩展字符有关的问题是软件在对其进行计算时如何接受解释。
要弄清楚测试的语言采用什么样的排序规则,并开发测试用例专门检查排列次序的正确性。
扩展字符计算打破的另一个领域是大小写转换。
(6)从左向右和从右向左读
翻译中有一个大难题是某些语言(例如希伯莱文和阿拉伯文)从右向左读,而不是从左向右读。
幸好大多数主要操作系统提供了处理这些语言的内部支持。如果没有这一点,完成任务几乎是不可能的。即便这样,翻译这样的文本也不是容易的事。
(7)图形中的文字
另一个翻译问题是处理图形中的文字。
它的影响是当软件本地化时,每一个图标都要改变,以反映新的语言。
(8)让文本与代码脱离
所有文本字符串、错误提示信息和其它可以翻译的内容都应该存放在与源代码独立的文件中。
大多数本地化人员不是程序员,也没有必要是。让其修改资源文件(resource file)的简单文本文件,该文件包含软件可以显示的全部信息。
当软件运行时,通过查找该文件来引用信息,不管信息的内容是什么,都按照原文显示。
这就是说,对于白盒测试员来说,检查代码,确保没有任何嵌入的字符串未出现在外部文本文件中很重要。
这个问题的另一个变化形式是当代码动态生成文本信息时。
3、本地化问题
翻译问题只是全部问题的一半。
翻译文字和允许字符串包含不同字符和长度都不难,难的是修改软件使其适应国外市场。
经过准确翻译和仔细测试的软件是精确和可靠的,但是如果程序员不考虑本地化的问题,程序就可能不够准确和高质量。
(1)内容
这里的内容是指产品中除了代码之外的所有东西。
以下清单给出了本地化问题要仔细审查的各类内容:范例文档,图标,图片,声音,视频,帮助文件,有边界争端的地图,市场宣传材料,包装,Web链接。
(2)数据格式
不同的地区在诸如货币、时间和度量衡上使用不同的睡觉单位格式。
在本地化时需要修改程序代码。
如果测试本地化软件,就需要对当地使用的度量单位非常熟悉,为了正确测试软件,需要从原版软件创建的测试数据中建立不同的等价划分。
4、配置和兼容性问题
(1)国外平台配置
键盘也许是语言依赖性最大的硬件——键盘布局。
从根本上讲,软件可能会用到的任何外设都要在平台配置和兼容性测试的等价划分中去考虑。
(2)数据兼容性
5、测试量的大小
如果软件从一开始就考虑到了本章所述的问题,那么本地化版本中包含更多软件缺陷和增大测试量的风险就很小。
注意:本地化测试量的要求是一个有风险的选择。
另一个问题关系到整个软件产品中什么需要改变。如果本地化工作只限于修改诸如文本和图形等内容——不是代码,——测试工作可能只是对改动进行合法性检查。如改动基本代码,则需考虑测试代码,并且检查功能和内容。

章10 外国语言测试相关推荐

  1. 《软件测试》第十章 外国语言测试

    <软件测试>第十章 外国语言测试 10.0 前言 10.1 使文字和图片有意义 10.2 翻译问题 10.2.1 文本扩展 10.2.2 ASCII.DBCS和Unicode 10.2.3 ...

  2. 软件测试之外国语言测试

    场景:学习<软件测试>第10章节 外国语言测试 关于翻译问题 文本扩展现象.这个在测试外国语言的时候是比较常遇到的,使用英文表述和翻译成其它语言时,文本的长度会不一样,在同一个按钮或者文本 ...

  3. c语言作业题五六章答案,C语言程序设计五六章习题和课堂测试答案.doc

    C语言程序设计五六章习题和课堂测试答案 C语言程序设计第四五六章习题和课堂测试答案,还有期末C语言复习例题//3--1矩形面积 #includevoid main(){float a,b;float ...

  4. 《C++ Concurrencyin Action》第10章--多线程程序的测试和调试

    本章主要内容 · 并发相关的错误 · 定位错误和代码审查 · 设计多线程测试用例 · 多线程代码的性能 目前为止,我们了解如何写并发代码--可以使用哪些工具,这些工具应该如何使用.不过,在软件开发中重 ...

  5. 【Filecoin源码仓库全解析】第一章:搭建Filecoin测试节点

    2019.2.14 情人节,Filecoin项目开放了核心源码仓库go-filecoin,并更新了 filecoin-project organization下的诸多核心成果,这意味着,Filecoi ...

  6. C语言——第三章:C语言程序设计

    文章目录 一.C语言程序设计 二.C程序的语句 1.表达式语句 2.函数调用语句 3.控制语句 4.复合语句 5.空语句 三.赋值语句 四.数据输出语句 1.printf函数调用的一般形式 2.格式字 ...

  7. 第三章 硬件描述语言verilog(一)

    文章目录 第三章 硬件描述语言verilog 第1节 Verilog语言的历史 第2节 综合和仿真 2.1 综合 2.2 仿真 2.3 可综合设计 第3节 模块结构 3.1 模块介绍 3.2 模块名和 ...

  8. c生万物【第一章 初识c语言】

    c生万物---第一章 初识c语言 前言 1.什么是C语言 2.第一个C语言程序 3.数据类型 4.变量.常量 4.1定义变量的方法 4.2变量的分类 4.3变量的使用 4.4 变量的作用域和生命周期 ...

  9. 第三章 VB程序设计语言基础

    第三章 VB程序设计语言基础 一 VB中的数据与运算 二 标准函数 三 三种基本结构(顺序,判定,循环) 一 VB中的数据与运算 3.1.1 数据类型 3.1.2 变量与常量 3.1.3 运算符和表达 ...

最新文章

  1. 华胜天成ivcs云系统初体验2
  2. 身为程序员的你一定要学会Python这个神操作,会这个想单身都难
  3. 阿里云护航罗振宇2018“时间的朋友”跨年演讲,与千万观众一起跨年
  4. HTML做3D立体特效,html5 3D立体粒子波浪动画特效代码
  5. 用计算机画有常数的函数图像,信息技术应用 用计算机画函数图象教学设计及教案分析...
  6. 【算法】迪杰斯特拉算法 最短路径算法
  7. 剪映电脑版_插上手机秒变2K屏笔记本!TNT go扩展本评测:欢迎使用下一代电脑...
  8. 十六进制的形式在屏幕中间显示二进制byte类型数据
  9. URAL 1004 Sightseeing Trip
  10. 机房搬迁实施规划方案
  11. marshmallow——简介
  12. 自己实现的水版MPI_Bcast(使用binomial tree,跟mpich2实现思路一样)
  13. angular *ngFor
  14. 计算机硬盘优化策略,如何让机械硬盘更快,几个优化提升机械硬盘速度!
  15. 第一步:搭建项目基本框架
  16. 软考证书具体用途--详细介绍
  17. 浏览器主页被劫持的解决办法、浏览器劫持是什么意思
  18. flink水位线简介
  19. js中的with()用法
  20. Django安全性、缓存框架、性能与优化

热门文章

  1. 【论文阅读】TRO2022: A Two-Stage Optimization-Based Motion Planner for Safe Urban Driving
  2. Attentional Feature Fusion 注意力特征融合
  3. 单点登录(四):HTTPS相关知识
  4. SDUTOJ 团战可以输,提莫必须死
  5. 你能清洗西雅图所有的窗户吗?
  6. 自定义View——双色球彩票选号界面,模仿网易彩票
  7. 微型计算机中的内存储器功能,微型计算机中的内存储器的功能是()。
  8. unity抠人像原理_抠取复杂背景下人像头发丝的PS方法
  9. C#获得计算机硬件信息和操作系统信息
  10. Android KTX举例