Jakie praktyki istnieją w przypadku testów jednostkowych specyficznych dla regionu?

17

Niedawno odkryliśmy w naszej aplikacji specyficzny dla danego regionu problem i chociaż łatwo go było naprawić (kiedy już zorientowaliśmy się, co się dzieje), zespół przekonał mnie o praktykach testowania jednostek w tym zakresie.

Chcielibyśmy uchwycić te problemy wcześniej, najlepiej zanim zostaną one wykryte przez klienta i chcemy uchronić się przed ponownym wprowadzeniem błędów specyficznych dla ustawień regionalnych w przyszłości, ale powielanie każdego testu jednostkowego w co najmniej jednej innej kulturze wydaje się dużo nad głową.

Jak sobie radzisz lub jak podejmiesz testy jednostkowe w wielu lokalizacjach?

Adam Lear
źródło
1
Chcesz podać więcej szczegółów dotyczących problemu? Brzmi interesująco i chciałbym dowiedzieć się więcej na ten temat.
Mchl,
1
@Mchl To był błąd tureckiej wersji językowej . Mieliśmy kod porównania ciągów zawierający literę i.
Adam Lear

Odpowiedzi:

4

Zasadniczo nie trzeba duplikować każdego testu jednostkowego. Powinieneś określić, co tak naprawdę zależy od ustawień regionalnych (dobra lista kontrolna jest tutaj ). Wiele rzeczy związanych z internacjonalizacją podlega wyższemu poziomowi testów niż testowi jednostkowemu.

Jeśli masz do czynienia z ciągami danych, które mogą pochodzić z różnych kodowań, możesz skorzystać z „testowania opartego na danych”, tj. Przekazując dane z różnych kodowań do tej samej metody testowej. W przypadku Java najlepiej nadaje się do tego TestNG.

Innym możliwym problemem jest formatowanie i analizowanie daty / godziny. Większość ustawień narodowych używa: do oddzielania elementów czasu, ale są takie, które używają kropek, a Brazylijczycy używają hm i s (12h15m30s). Może to również być wykorzystane przez przekazane dane w różnych lokalizacjach - nie musisz testować wszystkich z nich.

A testowanie GUI przy użyciu ustawień narodowych od prawej do lewej zwykle nie jest przedmiotem testów jednostkowych.

Najważniejsze jest to, że musisz określić, które dane w testach jednostkowych są specyficzne dla ustawień regionalnych i użyć testów opartych na danych (dostawców danych), aby dostarczyć te dane do testów.

Sergii Pozharov
źródło
3

Oto kilka sugestii:

  • Zawsze rozwijaj na maszynie z lokalnymi ustawieniami innymi niż główna grupa docelowa. Pomoże Ci to bardzo szybko znaleźć błędy związane z datami, walutą i każdym problemem związanym z formatowaniem liczbowym. Zrób to samo z serwerem kompilacji, umieść go w Brazylii lub Wietnamie (nie fizycznie, tylko ustawienia).

  • Użyj akcentów i znaków specjalnych w tytule testu, ciągach znaków itp. W testach jednostkowych. Najczęstszy problem związany z internacjonalizacją, który otrzymuję w przypadku oprogramowania, którego używam (a nie tych, które rozwijam), to é i è lub nawet ç w języku francuskim. Umieść je w każdym łańcuchu używanym w testach. Użyj zwykłego słowa, którego używasz przez cały czasbrèç©

  • Nie zapomnij również używać akcentów i specjalnych wykresów na ścieżkach . Sam Visual Studio.NET wciąż ma z tym wiele problemów! Powinieneś uzyskać dostęp do tworzenia takich katalogów i odczytywania / zapisywania z nich w testach.

  • Jeśli korzystasz z programu Visual Studio .NET, we właściwościach projektu w obszarze Analiza kodu włącz reguły globalizacji . Najczęstsze problemy generują ostrzeżenie podczas kompilacji.

  • Zatrudnij obcokrajowca w swoim zespole.


źródło