それ以前は、2GISはロシア語圏の都市でのみ公開されていたため、イタリアでのリリースは会社のほぼすべての部門にとって新しい経験となりました。 ガイドへの記入、地図の作成、製品の宣伝方法の理解が必要でした。 そして、開発者とテスターは初めて、アプリケーションを国際化するという課題に直面しました。
2GIS Onlineチームには、やるべきことがたくさんありました。
-インターフェイスの翻訳およびコンテンツのコレクションと並行してテストと開発を行います。 イタリア語の準備データがない;
-新しい言語のインターフェイスで動作する自動テストを教えるため。
-プロセスを再構築して、新しい機能と新しい言語のリリースに最小限の時間と人件費がかかるようにします。
-最後に、期限を守らずに製品をリリースします。
彼らが言うように、挑戦は受け入れた。 今後、上記のすべてが完了し、得られた経験とベストプラクティスが次の外国プロジェクトで使用されたと言います。 その後、2GISがキプロス 、 チェコ共和国で発表され、さらに2、3か国が進行中です。 しかし、ここで過去に戻り、2GIS Onlineテストチームがタスクをどのように解決したかを説明します。
プロジェクトの国際化のテスト方法
各テスターはアプリケーションのバージョンを1日に数回毎日ビルドするため、翻訳パッケージ(ロケール)の展開に最小限の時間と労力をかけることが重要です。
したがって、テスターが最初にしたことは、ロケールのインストール/追加/削除の開発要件と調整することでした。 実装方法は次のとおりです。新しいロケールを追加したり、目的の言語でアプリケーションを構築するには、構成に1行追加して1つのコマンドを実行するだけで十分です。 すべての翻訳データは1つのディレクトリに追加されます。翻訳エラーが発生した場合、特定の場所でその原因を見つけることができます。
Gettextは製品の翻訳に使用されました。
アプリケーション自体の確認は、いくつかの段階で構成されています。
1.すべてが翻訳されていることを確認します。
2.テキスト要素の翻訳がレイアウトを壊さないことを確認します。
3.アプリケーションが外国のユーザーに理解可能であることを確認します-テキストは一貫性があり、読み書きができます。
アプリケーションを完全に表示することにより、未翻訳の要素がないことを確認できます。 これを行うには、アプリケーションを元の言語以外の言語でコンパイルする必要があります。 この段階での最大の難しさは、できるだけ早くチェックすることであり、原則として、まだ転送がない場合です。 冒頭で述べたように、テキストを翻訳するプロセスは、製品の開発とテストと並行して行われます。 そして、これは不運です-あなたはすでにテストする必要がありますが、適切な言語のテキストはまだありません。 解決策は、それらを何かに置き換えることです。 したがって、疑似ローカリゼーションを使用しました。
テスターは、開発者の助けを借りて、ロシア語の翻訳から新しい「言語」を組み立てました-すべてのテキスト要素を変更し、先頭に3文字を追加し、画像を180度回転し、.ruリンクのドメインゾーンを.itに変更しました。
このロケールは「アルバニア語」と呼ばれ、テストがほとんどすべての未翻訳要素をすぐに検出するのに役立ちました。 また、先頭に文字を追加すると、テキスト要素の長さが変更され、テキストの変更がレイアウトに与える影響を同時に確認できるようになりました。
反復は、問題が最も頻繁に発生するブラウザー(多数のブラウザー間チェックで時間を無駄にしないため)で実行されました-OperaおよびIE。
したがって、テストの1回の反復で、ソースデータに基づいた擬似ローカリゼーションを使用し、「機密」ブラウザでチェックすることで、2つの問題を一度に解決できました-翻訳が見落とされたすべての場所を見つけ、レイアウトの弱点を見つけました。
3番目のタスクは、テスターによって実行される、原則として、テキストの妥当性、リテラシー、および一貫性を確認することです。 ただし、これらのテキストが外国語でない場合のみ。
州にポリグロットテスターがない場合、ネイティブスピーカーはこのタスクに最も質的に対処します。 たとえば、2GIS Onlineでは、レビュー担当者の役割は、国際的なプロジェクトと外国のパートナーからなる内部の適応グループによって実行されます。
新しいロケールが追加されるか、新しいローカライズされた機能がリリースされると、アプリケーションのドラフトバージョンが適応グループに転送されます。 この手順は「校正」と呼ばれ、固定の期限が修正されています。
開発チームのタスクは、テキストをタイムリーに修正し、製品をリリースすることです。
言語に加えて、特定の国には多くの機能的機能(10進数、日付、およびその他の指標を表示する機能)があります。 これらの機能には、さらに真剣な調査が必要です。 したがって、このようなニュアンスは、顧客(適応グループ)の責任範囲にもあります。 これらは、通常の機能製品要件として実装、検証、およびリリースされます。
振替の提供のタイミングに関するアレンジがいかに皮肉であっても、それらは混乱する可能性があります。 すべてが完璧に機能したとしても、不可抗力の可能性をキャンセルできる人はいません。 したがって、翻訳なしのリリース機能の場合、チームには「プランB」が必要です。 2GIS Onlineの開発により、このような欠落したテキストが英語に翻訳されます。 機能が大きく、多くの転送が必要な場合は、リリースを延期する決定が下されます。
自動テストの翻訳方法
ローカライズされたバージョンをチェックするために自動テストを適合させるタスクは、2段階で解決されました。 1つ目は、ローカライズバージョンの機能の特徴を考慮して、テスト自体をデバッグすることです。 2つ目は、入力/出力データを使用した作業の簡素化です。
ローカライズ版の機能はわずかに異なります(イタリア語版ではロシア語のプロモーションバナーを表示する必要はありません。一部の国では、ルート検索をサポートしていません)。
したがって、テストチームの従業員が最初に行ったのは、アプリケーションの機能全体を分析し、2つの部分(一般的な機能とロケール固有の部分)を識別することでした。
ルートを検索
非表示 | あります | あります | いや |
一般的な機能をチェックするすべてのテストは、外部バージョンをテストするためにデバッグする必要があります。 違いは、テストを追加し、目的のロケールでのみ実行されるようにテストを構成することです。 テストを実行するロケールを決定するために、テストのグループを使用しました。
次に、外部の入力/出力データを操作するテストを教える必要があります。
テストフレームワークで入力/出力データを適合させるには、抽象化のレベル-すべてのテキストの翻訳を含むクラスと、目的のロケールでこれらの翻訳を受け取るメソッドを強調する必要があります。
2つのロケールで実行されているテストの例 :
テストは2gis.ruを開き、ノボシビルスクを選択します。
「What」フィールドに「Pizza」と入力し、「Where」フィールドに「Novosibirsk」と入力して検索を実行します。
それは:
public function testSearchFirms() { $this->page->selectCity(''); $this->page->searchForm->send(array('what' => '', 'where' => '')); }
次のようになりました:
テスト:
/** * @group ru * @group it **/ public function testSearchFirms() { // , getText() $this->page->selectCity($this->locale->getText('popular_city')); $this->page->searchForm->send(array('what' => $this->locale->getText('firms_request'), 'where' => $this->locale->getText('popular_city'))); }
翻訳はクラスから取得されます。
msg_it.php <?php $msg = array(); $msg['popular_city'] = 'Padova'; $msg['firms_request'] = 'Pizza'; return $msg; ?>
msg_ru.php <?php $msg = array(); $msg['popular_city'] = ''; $msg['firms_request'] = ''; return $msg; ?>
言語はテスト設定で定義されています:
<phpunit bootstrap="bootstrap.php" colors="true" > <php> <const name="LOCALE" value="ru"/> </php>
このソリューションにより、新しいロケールのテストを非常に簡単に拡張できます。 新しい言語を追加する場合、そのための翻訳の「辞書」を作成する必要があります。
msg_<lang>.php,
グループを一般テストに追加します。
@group <lang>
また、特定のロケールの特定の機能のテストを追加します。
したがって、 Paduaで2GIS Onlineの最初の外国バージョンをチェックする問題を解決し、翻訳が表示される前に新しい機能をチェックし、新しい国のバージョンをすばやくリリースし、既存の自動テストをいくつかの手順で調整してチェックする方法を学びました。
現在、このアプリは6か国で4つの言語で提供されています。 また、これらの開発のおかげで、各新しいロケールのリリースには1週間しかかからず、テストには最大2日間かかります。