Які існують практики тестування одиничних місць для конкретних локальних даних?


17

Нещодавно ми виявили проблему, пов’язану з місцевою локалізацією, у нашому додатку, і хоча це було легко виправити (як тільки ми зрозуміли, що відбувається), це отримало команду, з якою я роздумував над практикою тестування одиниць у цьому плані.

Ми хотіли б вирішити ці проблеми швидше, в ідеалі, перш ніж їх виявить клієнт, і ми хочемо захистити себе від повторного введення конкретних помилок у локальному масштабі, але дублювання кожного тесту принаймні в одній іншій культурі здається великою кількістю накладні.

Як ви чи як би ви підходили до тестування блоків на декількох локалях?


1
Хочете детальніше розповісти про проблему, яку ви мали? Це звучить цікаво, і я хотів би дізнатися про це більше.
Mchl

1
@Mchl Це була помилка турецького локалу . У нас був код порівняння рядків, який включав букву i.
Адам Лір

Відповіді:


4

Зазвичай вам не потрібно буде дублювати кожен тест одиниці. Ви повинні визначити, що насправді залежить від локальної точки (хороший контрольний список тут ). Багато речей, пов'язаних з інтернаціоналізацією, піддаються вищому рівню тестування, ніж одиничне тестування.

Якщо ви маєте справу з рядковими даними, які можуть надходити в різні кодування, то ви можете використовувати "тестування, кероване даними", тобто передачу даних в різні кодування до одного і того ж методу тестування. Для Java найкраще для цього підходить TestNG.

Ще одна можлива проблема - форматування дати та часу та розбору. Більшість локалів використовує: для розділення часових елементів, але є ті, хто використовує крапки, а бразильці використовують hm та s (12h15m30s). Це також може бути використано переданими даними в різних локальних місцях - вам не потрібно тестувати їх усі.

І тестування графічного інтерфейсу з локалізацією справа наліво зазвичай не є предметом тестування одиниць.

Суть полягає в тому, що вам потрібно визначити, які дані у ваших тестових підрозділах є специфічними для місцевого використання, і використовувати тестування, керовані даними (постачальники даних) для надання цих даних для ваших тестів.


3

Ось кілька пропозицій:

  • Завжди розробляйте на машині з локальними налаштуваннями, відмінними від вашої основної цільової аудиторії. Це допоможе вам знайти помилки, пов’язані з датами, валютою та кожним випуском цифрового форматування дуже швидко. Зробіть те ж саме зі своїм сервером побудови, розмістіть його у Бразилії чи В'єтнамі (фізично, не лише налаштування).

  • Використовуйте наголоси та спеціальні символи в заголовку тесту, рядків тощо у ваших тестових одиницях. Найпоширеніша проблема інтернаціоналізації, яку я отримую із програмним забезпеченням, яке я використовую (не тим, що я розробляю), - це е і è або навіть ç французькою мовою. Введіть їх у кожну рядок, який ви використовуєте у своїх тестах. Вживайте загальне слово, яке ви постійно використовуєтеbrèç©

  • Не забудьте також використовувати наголоси та спеціальні діаграми в доріжках . У самого Visual Studio.NET все ще багато проблем! Вам слід отримати доступ до створення таких каталогів і читати / писати з них у своїх тестах.

  • Якщо ви використовуєте Visual Studio .NET, у властивостях проекту в розділі Аналіз коду ввімкніть правила глобалізації . Найчастіші проблеми створюють попередження при компіляції.

  • Найміть іноземця у вашій команді.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.