238 Часть II: Приемы и технологии тестирования
Существует и другая хорошая литература о локализации программного обес-
печения. Множество нюансов перевода продуктов Macintosh описаны в кни-
ге Картера (Carter, 1990). Ряд полезных сведений мы почерпнули из
печатавшихся в периодических изданиях глав будущей книги Эрена, Говарда
и Перинотти (Uren, Howard & Perinotty, 1993).
На наш взгляд, лучшим руководством по локализационному тестированию
является выпущенная Microsoft книга Microsoft Windows International Handbook
for Software Design.
Кроме того, разработке международного программного обеспечения посвя-
щен целый ряд стандартов ISO (International Standard Organization). Например,
сборником ISO эргономических стандартов для программного обеспечения
является Technical Committee 159, Sub-Committee 4, Working Group 5. В этом
сборнике есть стандарты для справочных систем, меню, диалоговых окон и
многого другого. Почитайте колонку Пат Биллингслей (Pat Billingsley) The
Standards Factor в журнале Association for Computing Machinery SIGCHI Bulletin
— в ней вы найдете сведения о разработке новых стандартов на эту тему
и изменениях существующих. Обзор UNIX-стандартов с информацией о том,
где их можно найти, публиковался организацией 88open Consortium (1991).
Локализация — это процесс адаптации программного обеспечения для
нового места эксплуатации. Изменение языка не является его единствен-
ной составляющей. Не менее важна, например, и культурная адаптация.
Изменен ли исходный код?
Это первый вопрос, который вы себе зададите, приступая к тестирова-
нию локализованной версии программного продукта. В отдельных случа-
ях, например при адаптации американской программы для
Великобритании, может оказаться достаточным изменить несколько вне-
шних файлов, хранящих, например, информацию о единицах измерения.
Сама программа не подвергается повторной компиляции и компоновке. В
этом случае тестирование локализованной версии может быть довольно по-
верхностным, с акцентом только на национальных особенностях.
Однако, как правило, адаптация программного продукта требует гораздо
более серьезных изменений. И они могут касаться не только перевода
надписей и сообщений, включенных прямо в текст программы, — могут
появиться новые функции, которых в исходной версии не было вообще,
или какие-либо из прежних возможностей программы могут несколько
видоизмениться. А раз меняется код и даже появляются его новые фраг-
менты, значит, не обойтись без полноценного функционального тестиро-
вания. Если программа адаптируется для целого ряда стран, после второй
или третьей адаптации программисты приобретут некоторый опыт и станут
допускать уже меньше ошибок. Однако код по-прежнему будет модифи-
Глава 9: Адаптационное тестирование 239
цироваться и дополняться, поэтому каждая новая версия должна тестиро-
ваться очень обстоятельно.
Сейчас модно критиковать продукты, в которых с самого начала не
встраиваются возможности быстрой локализации. Однако у такого подхо-
да существует и ряд недостатков, поскольку он усложняет разработку ис-
ходной версии, увеличивая сроки и делая продукт более громоздким. Так
что не спешите присоединяться к критике. Вопрос этот имеет стратегичес-
кий характер и в каждом конкретном случае решается по-своему.
Привлекайте к работе специалистов,
свободно владеющих языком
Когда текст переведен на русский язык человеком, который им плохо
владеет, это сразу заметно. Поэтому специалист, занимающийся адаптацией
американского продукта, обязательно должен свободно владеть обоими
языками, особенно технической терминологией. Необходимо, чтобы и в груп-
пе тестирования тоже был человек, свободно владеющий языком, на который
переводится продукт, причем желательно, чтобы это был его родной язык.
Встроен ли текст в программный код?
Если продукт должен переводиться на несколько языков, подавляющая
часть его текста, скорее всего, отделена от программного кода. Однако не
верьте на слово программисту, утверждающему, что в коде нет ни слова,
выводящегося на экран или принтер. Просмотрите файлы сами или вос-
пользуйтесь утилитами, извлекающими из двоичных файлов текстовые
строки. Вы наверняка что-нибудь да найдете. Краткие сообщения вроде
"Ошибка чтения диска" программисту наверняка было лень считывать из
файла ресурсов.
Если критические сообщения об ошибках невозможно или нерацио-
нально выносить во внешние файлы, это вовсе не означает, что их нельзя
перевести. Программист или переводчик может внести исправления прямо
в объектный или исполняемый файл. Хотите более элегантное решение —
пожалуйста: программист может написать маленькую утилиту, которая
находит в объектном файле текстовые строки и позволяет переводчику
ввести новый текст, ограничивая его длину длиной исходной строки.
Перевод длиннее исходного текста
На многих языках, в том числе и на русском, короткие сообщения и
названия команд оказываются длиннее исходных английских эквивалентов.
На рис. 9.1 приведены оценки увеличения длины текста при переводе с
английского, сделанные специалистами компании IBM. Предполагается,
что в тексте отсутствуют аббревиатуры.