Gerência - Qualidade e Testes

Testes Comportamentais – Parte 1

A dinâmica por trás dos desenvolvimentos dos projetos estão antagônicas quando o assunto é testes. De um lado as metodologias cada vez mais acordam para a importância do feedback do usuário. De outro lado o usuário não tem paciência nem tempo para testar, em virtude de sua rotina acelerada de negócios, e gera um grande mal estar no projeto com críticas pesadas aos erros que encontra.

por Jones Amaral



Por Jones Amaral e Fábio Câmara

A dinâmica por trás dos desenvolvimentos dos projetos estão antagônicas quando o assunto é testes. De um lado as metodologias cada vez mais acordam para a importância do feedback do usuário. De outro lado o usuário não tem paciência nem tempo para testar, em virtude de sua rotina acelerada de negócios, e gera um grande mal estar no projeto com críticas pesadas aos erros que encontra.

Do ponto de vista técnico, não há dúvida que o usuário é o melhor analista de qualidade e testes que nossa aplicação possa ter, porém dependendo de situações contratuais, não é assim que o usuário se posiciona em um projeto de software.

Nosso objetivo neste artigo é trazer à devida importância um assunto que é muito mais discutido do que praticado nas empresas de desenvolvimento de software é apresentarmos uma proposta definitiva de solução, com premissas de ser fácil de implantar, baixo custo de investimento, baseada em práticas humanas e com resultados significativos. Apresentamos os testes comportamentais.

Como background, consideramos que não é possível solicitar para que todo o usuário faça testes nossas aplicações e depois nos envie seu parecer. Entendemos isso após verificação prática. Seja por falta de tempo ou inabilidade de conduzir testes efetivos, encontramos sempre um espaço importante ao resultado de nossos projetos de desenvolvimento negligenciado.

Com este cenário em mente passamos a desenvolver o que chamamos de metodologia de Testes Comportamentais. Tal metodologia aponta para testes voltados ao usuário, este o maior interessado na estabilização de nossas aplicações. O nome Testes Comportamentais foi inspirado no fato que nos preocupamos em captar o comportamento da utilização de nosso usuário em relação ao aplicativo em estabilização.

Para exemplificarmos os Testes Comportamentais é necessário que, primeiramente, possamos compreender que consideramos como base fundamental da nossa metodologia que o usuário tem um valor insubstituível na hora de testarmos nossas aplicações. Foi se responsabilizando com esta afirmativa que testaremos nossas aplicações focados em atender a necessidade do usuário, simulando o próprio usuário.

Em nossos métodos, todos os testes passam por dois momentos: a verificação e a validação. A verificação acontece a qualquer momento, com o propósito de certificarmos de que aplicação é usável e garantir que se o cliente solicitar, já é possível visualizar algo sem causar espantos a ele.

Quanto a validação podemos dizer que esta acontecerá sempre quando a aplicação estiver um conjunto de funcionalidades disponíveis que agreguem valor ao negócio e sempre antes de ser homologada pelo cliente. Teste de validação é algo bem mais profundo, onde serão testadas as vulnerabilizadas do sistema além de toda sua funcionalidade.

Neste primeiro artigo falaremos especificamente sobre Testes de Verificação. Iremos dividir os testes de verificação em dois grupos:

· Testes de Usabilidade; e

· Testes de Especificação.

Teste de Usabilidade

Tal teste compreende em uma revisão daquilo que para o desenvolvedor parece muito simples e tipicamente é negligenciado. Limitação de caracteres, por exemplo, é algo muito simples para o desenvolvedor, com apenas dois ou três cliques ele limita a quantidade de caracteres de um campo, mas se nossa aplicação não tiver com limitador de caracteres, podemos ter problemas.

Em um campo de senha como mostrado na figura abaixo, se o usuário criar uma senha muito extensa o banco de dados pode não receber todos aqueles caracteres, logo, quando o usuário tentar se logar na aplicação, certamente terá problema com a senha, pois o banco de dados recebeu menos campos do que ele realmente digitou.

Em testes de verificação é necessário como principio checar se aplicação é navegável, se tem condições de ao menos ser chamada de protótipo.

Outra inconsistência bastante comum que também podemos caracterizar como uma inconsistência de usabilidade é tudo relacionado a grafia. O desenvolvedor está acostumado com uma tela cheia de linhas de códigos e, freqüentemente, comete erros de grafia. Para ele, isso não é nada de mais, porém para o cliente pode significar baixa na credibilidade.

Testes de verificação devem acontecer durante todo o projeto, com o propósito de encontrar inconsistências simples e de rápida correção. Sendo assim, podemos garantir que no término do projeto todas as inconsistências mais simples já foram corrigidas.

Fundamentando o conceito: Nesta fase garantimos a usabilidade, a navegação, a leitura, a intuitividade de nosso aplicativo diante do usuário final. Entendemos por “intuitividade” os conceitos de interface amigável muito utilizados nos produtos da Microsoft.

Testes de Especificação

O ponto principal para realização de testes de especificação começa em ter acesso ao documento de especificação do sistema. Neste documento deve constar os requisitos funcionais do sistema, as regras de negócios, o que de fato o sistema deverá fazer (e está sendo solicitado explicitamente).

Uma vez compreendido este documento, devemos testar todos os requisitos nele descritos e garantir que todas as especificações estão sendo seguidas conforme solicitado.

Podemos usar como exemplo uma aplicação que tem como objetivo o gerenciamento de projetos. O usuário acessa esta aplicação, cadastra um projeto e insere tarefa a tarefa o que tem sido feito deste projeto. No final do mês a aplicação emite alguns relatórios. Um deles deve ser o total de horas trabalhada e a média de tempo de cada tarefa.

As especificações definem que a aplicação deve contar a quantidade de tarefas e dividir a soma das horas por essa quantidade de tarefas.  No exemplo da imagem acima podemos concluir que a aplicação estaria aderente à especificação, porque atende os requisitos solicitados.

Nesta etapa de nossa metodologia, quando ocorrem inconsistências, fica fácil explicar ao desenvolvedor o erro, pois é como se fizéssemos uma “prova real”. O documento diz que a aplicação tem de retornar a média, então, basta calcularmos a média à “moda antiga” e comparar com os resultados da aplicação. Este tipo de teste simula uma forma de depuração, porém através de uma manipulação humana, o qual é o foco da metodologia de testes chamada Testes Comportamentais.

Assim encerramos esse primeiro ciclo de explanação da metodologia. Passe a ver seu cliente como peça fundamental para o sucesso da ferramenta e assim será capaz de desenvolver esta metodologia sem grandes impactos.

Referências, cursos disponíveis e informações sobre Testes Comportamentais podem ser obtidas no site http://www.fcamara.com.br.

Sobre os Autores:

Jones Amaral é analista de testes e qualidade da MZ-IR. Aplica testes comportamentais há um ano e é responsável pelo controle de qualidade de 25 sistemas diferentes desenvolvidos internamente na empresa.

Contato: jones.amaral@fcamara.com.br

Fábio Câmara é professor e gestor de projetos praticante de técnicas ágeis desde suas primeiras aparições como propostas metodológicas em 2001. Em meados de 2003 começou a esboçar junto com diversos profissionais da empresa ArchITettura métodos novos de testar que pudessem atender com agilidade e baixo investimento as premissas de qualidade dos contratantes desta empresa.

Contato: fabio.camara@fcamara.com.br

Jones Amaral

Jones Amaral - Analista de testes e qualidade da MZ-IR. Aplica testes comportamentais há um ano e é responsável pelo controle de qualidade de 23 sistemas diferentes desenvolvidos internamente na empresa.