Desenvolvimento

19 out, 2009

Conceitos de testes comportamentais

Publicidade

Facilidade no uso. Interface amigável, com comandos simples e intuitivos. Essas são algumas características buscadas não só em celulares, notebooks e outros eletroeletrônicos, mas também quando falamos de software – talvez a frase deveria ser: principalmente quando falamos de software.

Quando refletimos nessa frase, nos perguntamos: como desenvolver um software e saber que a aplicação de fato atende às necessidades do usuário final (ou seria mais adequado “cliente”)? Ponto para quem respondeu “efetuando testes”.

No filme “Big”, (“Quero ser Grande”, aqui no Brasil) o personagem do ator Tom Hanks é uma criança que tem o desejo de se tornar adulto da noite para o dia. No filme, o personagem foi atendido por uma máquina de um parque de diversões. O filme nos mostra que o personagem, na vida de adulto, arruma emprego numa fábrica de brinquedos e alavanca as vendas testando os produtos e sugerindo outros. Faz todo sentido, afinal é um adulto com a mente de uma criança de 10 anos. Todos os brinquedos testados e aprovados por ele são sucesso de vendas.

Trazendo o exemplo para a vida real e para o desenvolvimento de softwares, fica fácil identificar a importância dos testes comportamentais no processo de construção. Somente o cliente, na utilização do software, identificará possíveis falhas e isso agregará incalculável valor ao resultado final. Testes comportamentais são mais eficazes que testes automatizados, no que diz respeito à satisfação do cliente / usuário, justamente por encontrarem vulnerabilidades e inconsistências que a automação não encontra.

Testes comportamentais (como são chamados os testes de software que valorizam a participação do usuário no processo) têm como razão reverter a idéia subentendida de que testes servem para encontrar falhas, o que comprometeria a imagem dos desenvolvedores. Na prática, ninguém é melhor que o próprio usuário para saber qual funcionalidade se adequará melhor ao uso que a aplicação terá em seu dia-a-dia. Trazer esta informação para o desenvolvedor antecipa a maturidade e aumenta a qualidade do produto final.

Vale a pena lembrar que, para se colocar no lugar do usuário final e testar usabilidade, especificação e funcionalidade de uma aplicação, se faz necessário conhecer o público-alvo a quem se destina o mesmo, quais suas expectativas, sua rotina de trabalho, os diversos cenários e tipos de clientes dentro de uma mesma empresa.

Testes comportamentais subdividem-se fundamentalmente em três categorias: testes de verificação, de validação e de especialização. Cada um, por sua vez, possui itens a serem detalhados, conforme acompanharemos a seguir.

Testes de verificação

Garantem a navegabilidade, a interface amigável, a usabilidade e a leitura da aplicação diante do usuário final. Testes de verificação devem ser executados ao longo de todo o processo, uma vez que auxiliam na identificação de inconsistências de fácil e rápida correção.

  • Testes de Usabilidade: Tendo como ponto de partida o caminho que o usuário fará para executar determinada tarefa, testes de usabilidade visam identificar eventuais dificuldades encontradas na utilização/navegação do software. A interface deve ser intuitiva, simples, e a aplicação deve ter condições de uso.
  • Testes de Especificação: Tem como objetivo assegurar que todas as especificações solicitadas pelo cliente foram atendidas.

Testes de Validação

  • Testes de Funcionalidade: Qual o negócio que seu software deve executar satisfatoriamente? A aplicação atende às expectativas de negócios? Testes de funcionalidade identificam possíveis inconsistências no atendimento às premissas de negócios. Logo, se o software desenvolvido deixa de executar determinada função durante os testes, dizemos que o mesmo não está em conformidade com as necessidades de negócios do sistema.
  • Testes de Regressão: Como o próprio título sugere, testes de regressão são os efetuados a partir de releases anteriores, com o objetivo de assegurar que inconsistências encontradas desde o primeiro release foram corrigidas. Voltando no tempo para validar tudo o que foi validado anteriormente, elimina-se a reincidência de erros e garante-se a entrega do projeto 100% livre de falhas conhecidas e versões posteriores.

Testes de Especialização

Dentre as categorias de testes comportamentais, os chamados Testes de Especialização são os responsáveis pela personalização do software desenvolvido e a valorização do usuário no resultado final.

  • Testes de Cenário: Sabendo-se que dentro de uma empresa serão vários os usuários e, conseqüentemente, várias as configurações de máquina, os testes de cenário servem para diagnosticar o comportamento do produto em diferentes ambientes.
  • Testes de Persona: Por meio da criação de perfis e formação de grupos de usuários, cria-se um documento onde descreve-se o uso que cada grupo faz da aplicação, dentro de seus respectivos logins. Assim, com testes de persona, é possível traçar o caminho que cada usuário, dentro de seu perfil, faz dentro do software e identificar inconsistências e vulnerabilidades que o usuário encontraria, personalizando as experimentações.

Foco no cliente, na satisfação do mesmo e na qualidade dos serviços prestados. Tudo isso sem comprometer a imagem de quem desenvolve o projeto e em tempo hábil para entrega dentro do prazo preestabelecido. Sim, é possível com testes comportamentais.

*

Com a colaboração de Cinthia Gomes (analista de Teste e qualidade da F|Camara – Formação e Consultoria, possui sólidos conhecimentos na elaboração de planos, roteiros e scripts de testes. Também efetua testes de performance e carga através de ferramentas do VSTS – Visual Studio Team System).