Melhorando a qualidade de software através de boas práticas de validação

Uma validação de software é uma atividade que tem como objetivo assegurar que o produto final corresponda aos requisitos do software, comprovando a inexistência de erros(“BUG”).

Visando melhorar o aprendizado e prática em validação, abaixo segue alguns casos e dicas para melhorar sua validação:

Identificar e detalhar o que será validado, isto pode incluir o software em si, os requisitos, e outros tipos de documentos, por exemplo: documentação, demostrações, etc.

Definir e implementar uma estratégia de validação, ou seja, definir como será feita e o que necessita para ser feita.

Definir critérios e procedimentos para a validação, por exemplo, tempo de resposta, tolerância a falhas etc.

Garantir a execução das atividades de validação. Por meio das reuniões de revisão, por exemplo.

Identificação e registro dos problemas encontrados durante a validação. Isto é relatado no ticket de validação da estória. Em caso de validação de pacote para liberação de release, deve ser criado um ticket de BUG ou estória para fazer a correção.

Disponibilização dos resultados das atividades de validação aos interessados, para que estes possam ser avaliados.

Fornecer evidências de que o produto final de software desenvolvido esteja pronto para uso, por exemplo: no nosso dia a dia seria colar o template de validação no ticket da estória.

Para fazer uma boa validação deve se pensar como o cliente irá usar a aplicação, testando todos os cenários possíveis:

Testar tratamento para exceções;

Verificar se há erros de português em mensagens de retorno(acentuação, pontuação, discordância verbal, etc);

Testar case sensitive(letras Maiúsculas e Minusculas);

Caracteres especiais, escapados e sem serem escapados;

Validar tamanho máximo e mínimo de campos;

Se possível testar em cenários diferentes(windows servers, windows x32bits, windows x64bits, etc);

Validar reparando no Log da aplicação, pois pode conter explicações minuciosas para sua dúvida, ou detalhando um fluxo que não esteja correto;

Alguns cenários que trazem erros simples são a impressão e e-mail, abaixo passarei algumas dicas para melhorar esta validação destes dois cenários:

Validação de e-mail:

Abrir os XMLs enviados e verificar a codificação destes, devem estar sempre em UTF8-sem BOM, que é a codificação padrão dos componentes TecnoSpeed;

Enviar anexos(diferentes tipos: .jpg, .txt, etc);

E-mail com cópia para outro usuário;

Alterar assunto(mensagem com caracteres especiais, texto grande e pequeno);

Enviar somente XML;

Enviar somente impressão da nota;

Enviar tudo o que for possível junto(XML, impressão, anexos, etc);

Validação de Impressão:

Exportar arquivos para um diretório;

Cancelar a exportação;

Visualizar a impressão;

Imprimir com impressora em rede;

Imprimir com impressora local;

Editar RTM, dropar campos no .rtm e visualizar a impressão;

Remover campos do .Rtm e visualizar impressão;

Testar links do QRCode quando tiver na impressão;

Trocar logotipo da empresa;

Imprimir sem logotipo;

imprimir passando caracteres especiais, deve sair corretamente na impressão;

Verificar máscaras de CNPJ e CPF(devem estar formatadas corretamente);

Durante a validação de um produto no nosso dia a dia usamos as seguintes técnicas: Demonstração e Teste de usabilidade.

Como o próprio nome sugere, a demonstração do produto apresenta o incremento mais recente produto para os usuários, clientes e partes interessadas. O validador deverá implementar uma demonstração de forma que sirva de explicação ou gabarito para que os usuários que empregam o produto façam seu bom uso, e imaginam como seria usar o produto.

Um teste de usabilidade permite entender como os usuários interagem com o produto. O validador irá executar uma tarefa usando o incremento mais recente produto. Desta forma, deverá ser testado os cenários de acordo como se o cliente esteja usando a aplicação.

As técnicas discutidas têm seus pontos fortes e fracos. Enquanto você deve sempre escolher a técnica que ajuda a cumprir seu objetivo da sprint e validar o incremento de forma eficaz, sempre se pondo no lugar do cliente na hora da validação.