Gerência - Qualidade e Testes
Introduzindo Conceitos de Testes Comportamentais
Testes comportamentais (como são chamados os testes de software que valorizam a participação do usuário no processo) tem como razão reverter a idéia subentendida de que testes servem para encontrar falhas, o que comprometeria a imagem dos desenvolvedores.
por Fabio CamaraPor: Cinthia Gomes e Fábio Câmara
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 esta 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", (com o título "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) tem 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 a 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, testes de validação e testes 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.
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.
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.
Fabio Camara é diretor de tecnologia da F|Camara - Formação e Consultoria, possui os títulos de MVP na ferramenta VSTS, MSF Practitionner, Certified SCRUM Practitionner, ITIL Foundations entre outros. Busca resgatar o valor humano nas metodologias e nos projetos de desenvolvimento de software.
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 esta 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", (com o título "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) tem 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 a 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, testes de validação e testes 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 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.
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.
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.
Fabio Camara é diretor de tecnologia da F|Camara - Formação e Consultoria, possui os títulos de MVP na ferramenta VSTS, MSF Practitionner, Certified SCRUM Practitionner, ITIL Foundations entre outros. Busca resgatar o valor humano nas metodologias e nos projetos de desenvolvimento de software.
- Entendendo o conceito por trás dos processos de Qualidade de SoftwareQualidade e Testes
- Entendendo Indicadores de Prazo e Custo de ProjetosQualidade e Testes
- Aplicação de QUALIDADE de processo de SoftwareQualidade e Testes
- Segurança: Item primordialQualidade e Testes
- Qualidade de Software: Oculte seu códigoQualidade e Testes