quarta-feira, 7 de outubro de 2009

Internationalization Testing - Teste de Internacionalização

Como pode ser visto neste post, podemos ter erros de tradução dentro do software, que não trazem um mal funcionamento para o mesmo, mas trazem uma imagem negativa e também uma falta de entendimento da funcionalidade, que pode levar a um defeito posterior.
Para garantir que a aplicação seja testada e esteja em conformidade com a localidade e lingua da pessoa, existe um Tipo de Teste chamado Internationalization Testing ou Teste de Internacionalização.

Internationalization Testing (Teste de Internacionalização)

Este tipo de teste tem o intuito de validar o comportamento do sistema utilizado em outras linguas. Ele é desenvolvido no momento de design e codificação da aplicação.
A tradução do sistema pode ser feita de várias formas e em vários pontos como labels, mensagens, hints, help etc... O comum é ter nas aplicações um arquivo de configuração onde a propriedade para uma mensagem é a mesma, mudando quando a lingua utilizada pelo usuário é alterada e tendo um arquivo de configuração para cada lingua da aplicação.
Isso faz com que não tenhamos alteração no código fonte da aplicação, somento nos arquivos de configuração.

Nos teste de Internacionalização garantimos que as funcionalidades do produto estejam funcionando perfeitamente com a alteração da lingua da aplicação e que os textos estejam sendo apresentados corretamente e traduzidos corretamente. Esse Tipo de Teste também pode ser chamado de I18N Testing.

Exemplo de um aplicativo com Internacionalização
Para poder ilustrar brevemente um aplicativo que possui Internacionalização olharemos para a aplicaçãozinha abaixo.
O que ela faz é receber um nome num inputbox e exibir uma mensagem com o texto inserido, coisa simples. Segue imagem do "sistema" desenvolvido em Java:


clique na imagem para ampliar

Para Internacionalizar a aplicação o desenvolvedor cria, em Java, um arquivo que vai conter todos os textos da aplicação, removendo-os do código-fonte.


clique na imagem para ampliar

Na imagem acima é apresentado os arquivo de configuração de lingua, um em inglês e outro em portugues. Se vocês apliarem a imagem verão que existem propriedades como "label.information" nos dois arquivos, trocando apenas o seu valor.

Na aplicação são inseridos os códigos necessários para que a aplicação passe a ler o conteudo do arquivo de linguagem (ingles, portugues, etc..) da máquina. A imagem abaixo mostra um exemplo:


clique na imagem para ampliar

O novo código inserido serve para carregar o arquivo de configuração para que o código-fonte possa utiliza-lo e o código para carregar o valor da propriedade para cada tipo de componente. No exemplo acima na primeira linha estamos carregando o arquivo e na segunda colocando o valor de "label.name" no label de nome da aplicação.

Quando o sistema operacional do usuario do sistema estiver um ingles, o sistema é automaticamente traduzido. Isso também pode ser feito colocando parâmetros na aplicação.


clique na imagem para ampliar

Bom, espero que tenham gostado do post e do exemplo. Quaquer dúvida não deixe de colocar um comentário!
Abraços!

2 comentários:

  1. Agregando mais informações..:
    - Num teste de sistema, os textos seriam verificados página a página ou seriam validados através do arquivo properties?

    ResponderExcluir
  2. Pode ser feito em ambos, mas o recomendado é efetuar página a página, pois o erro de tradução pode trazer um efeito colateral para a mesma. O texto traduzido corretamente também poderá causar algum efeito coletarel, o que acaba deixando a verificação na página um teste mais abrangente.

    ResponderExcluir