Quais práticas existem para testes de unidade específicos de localidade?


17

Recentemente, descobrimos um problema específico de localidade em nosso aplicativo e, embora fosse fácil de corrigir (uma vez que descobrimos o que estava acontecendo), a equipe em que estou pensando sobre as práticas de teste de unidade nesse sentido.

Gostaríamos de capturar esses problemas mais cedo, idealmente antes que eles sejam descobertos por um cliente, e queremos nos proteger de reintroduzir erros específicos de local no futuro, mas duplicar todos os testes de unidade em pelo menos uma outra cultura parece muito. a sobrecarga.

Como você ou como abordaria o teste de unidade com vários códigos de idioma?


1
Gostaria de dar mais alguns detalhes sobre o problema que você teve? Parece interessante, e eu adoraria saber mais sobre isso.
Mchl

1
@Mchl Foi o bug da localidade turca . Tivemos algum código de comparação de strings que incluía a letra i.
Adam Lear

Respostas:


4

Geralmente, você não precisará duplicar todos os testes de unidade. Você deve identificar o que realmente depende do código do idioma (boa lista de verificação está aqui ). Muitas coisas relacionadas à internacionalização estão sujeitas ao nível mais alto de teste do que ao teste de unidade.

Se você estiver lidando com os dados da string que podem vir em codificações diferentes, poderá utilizar o "teste controlado por dados", ou seja, passar dados em codificações diferentes para o mesmo método de teste. Para Java, o TestNG é mais adequado para isso.

Outro possível problema é a formatação e análise de data / hora. A maioria das localidades usa: para separar elementos do tempo, mas existem aqueles que usam pontos e os brasileiros usam hm e s (12h15m30s). Isso também pode ser usado pelos dados passados ​​em diferentes localidades - você não precisa testar todos eles.

E testar a GUI com localidades da direita para a esquerda geralmente não é um assunto de teste de unidade.

O ponto principal é que você precisa identificar quais dados em seus testes de unidade são específicos do local e usar o teste orientado a dados (provedores de dados) para fornecer esses dados para seus testes.


3

Aqui estão algumas sugestões:

  • Sempre desenvolva em uma máquina com configurações locais diferentes do seu público-alvo principal. Isso o ajudará a encontrar erros relacionados a datas, moeda e todos os problemas de formatação numérica muito rapidamente. Faça o mesmo com o servidor de compilação, coloque-o no Brasil ou no Vietnã (não fisicamente, apenas as configurações).

  • Use acentos e caracteres especiais em seu título de teste, seqüências de caracteres etc. nos testes de unidade. O problema mais comum de internacionalização que recebo com o software que utilizo (e não com os que desenvolvo) é com é e è ou mesmo ç ​​em francês. Coloque-os em todas as strings que você usa em seus testes. Use uma palavra comum que você usa o tempo todo, comobrèç©

  • Não se esqueça de usar também acentos e gráficos especiais nos caminhos . O próprio Visual Studio.NET ainda tem muitos problemas com isso! Você deve acessar a criação desses diretórios e ler / gravar deles em seus testes.

  • Se você usar o Visual Studio .NET, nas propriedades do projeto, em Análise de Código , ative Regras de Globalização . Os problemas mais comuns geram um aviso na compilação.

  • Contrate um estrangeiro em sua equipe.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.