如果你是一個有競爭力的軟件測試員,並且熟練掌握除英語之外的一門外語,你就有了很有價值的技能。
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、測試量的大小
如果軟件從一開始就考慮到了本章所述的問題,那么本地化版本中包含更多軟件缺陷和增大測試量的風險就很小。
注意:本地化測試量的要求是一個有風險的選擇。
另一個問題關系到整個軟件產品中什么需要改變。如果本地化工作只限於修改諸如文本和圖形等內容——不是代碼,——測試工作可能只是對改動進行合法性檢查。如改動基本代碼,則需考慮測試代碼,並且檢查功能和內容。