Nerds-On

Informações, novidades e curiosidades. Tudo e mais um pouco sobre tecnologia da informação

Testes ágeis com mapas mentais

Vou falar hoje de Testes ágeis, um assunto que está muito em alta na área de desenvolvimento de software e que muitas pessoas estão estudando sobre o assunto para tornar os testes mais ágeis ou para acoplar os testes a um processo de desenvolvimento ágil.

agile

Processos de teste se tornaram comuns com tanta concorrência entre empresas e clientes cada vez mais exigentes. Estes processos normalmente acompanham processos de desenvolvimento baseados em modelos tradicionais e pesados, gerando assim um processo de testes tradicional e pesado também.

O que tem evoluído muito e que também tem ganhado espaço nas empresas de desenvolvimento de software são os processos e metodologias ágeis. Estes têm como princípio quebrar as atividades em partes menores com respostas mais rápidas e entregas em períodos mais curtos.

Para acompanhar essa onda de desenvolvimento em processos ágeis os profissionais da área de teste estão em busca de métodos para tornar os testes mais ágeis com respostas mais rápidas, porém que consigam manter a mesma qualidade dos processos de testes tradicionais.

Buscando aperfeiçoar as atividades de um processo para torna-lo ágil, ou ao menos torna-lo menos oneroso, tive como base alguns dos princípios básicos dos testes ágeis para guiar o método explanado a seguir como, feedback constante, manter a simplicidade, auto organização, ter coragem e desfrutar. Com esses princípios em mente consegui montar uma maneira simples de mapear as ideias de testes, ficando de fácil entendimento a todos da equipe para uma melhor troca de opiniões no aprimoramento dos testes levantados.

ideia

Pensei então em algo que substituísse a descrição de casos de teste a altura, surgindo a ideia de fazer o levantamento das ideias de testes através de mapas mentais. O desenho dos testes através dessa técnica trouxe agilidade não só na execução manual dos testes, mas também trouxe facilidade nas revisões e automação dos testes. Isso devido a facilidade de compreensão visual dos testes em forma de mapas mentais na estrutura que apresento abaixo.

Você deve estar mentalizando “mas eu já faço algo parecido numa folha de papel”. Isso mesmo, algumas pessoas já tem a prática de primeiro escrever as ideias de testes em algum lugar antes de criar os casos de teste. O que farei será organizar essas ideias e apresenta-las de forma gráfica, tornando-a de fácil leitura por qualquer pessoa da equipe e de fácil controle para automação dos testes ou para a  execução manual caso o seu processo não contemple a etapa de automação de testes.

A estrutura que irei apresentar foi desenhada para se encaixar com os processos de teste que tenho utilizado, você poderá criar a sua própria estrutura de mapas mentais para deixar mais aderente ao seu processo.

Mão na massa

Como eu não gosto de falar as coisas sem explicar como funciona, vou para a parte prática do nosso método ágil de criação de testes.

Para a utilização deste método necessitamos de uma ferramenta de mapas mentais, existem várias no mercado, mas para a demonstração utilizaremos a ferramenta FreeMind por ser gratuita e de código aberto.

Download Freemind

Após instalada a ferramenta, podemos dar continuidade ao nosso pequeno tutorial de escrita de testes ágeis.

Ao abrir a ferramenta o usuário terá a visão do ponto inicial de nossa árvore conforme podemos observar abaixo.

Ponto inicial do mapa mental

Figura 1 – Ponto inicial do mapa mental

O Freemind oferece vários recursos para marcar os nós criados no mapa mental, na lateral esquerda da ferramenta visualiza-se inúmeros marcadores passíveis de serem utilizados, os quais alguns estaremos abordando mais adiante para utilizarmos em nossa estrutura para as ideias de testes.

Para iniciar o levantamento dos testes que serão realizados precisamos primeiramente definir qual funcionalidade que estaremos testando com esse mapa, sugerimos fazer um mapa mental para cada funcionalidade para que os testes fiquem melhor agrupados e de fácil compreensão. Esse item que estaremos colocando no ponto inicial de nosso mapa pode ser um caso de uso, um módulo, uma funcionalidade, um item de menu, um requisito ou algo que represente uma funcionalidade dentro do seu processo de desenvolvimento.

No nosso exemplo utilizaremos o ponto inicial como um módulo de um ERP fictício. Escolhemos o módulo de Nota Fiscal Eletrônica, neste caso esse mapa será somente para os testes deste Módulo. Caso queira testar outro módulo como o de Vendas, deve-se criar um outro mapa mental o qual terá como ponto inicial o módulo de Vendas.

Clica-se no ponto inicial para abrir o modo de edição do texto contido nele, assim digitamos o nome do módulo que testaremos, como apresentado na figura 2.

Mapa mental da Nota Fiscal Eletrônica

Figura 2 – Mapa mental da Nota Fiscal Eletrônica

A partir deste ponto mostraremos a estrutura utilizada por nós do Nerds-On, porém você pode adaptar esta estrutura para o seu processo de teste. Depois de configurado o ponto inicial com a descrição da funcionalidade a ser testada, podemos iniciar a estruturação dos testes.

O testware do nosso processo compõe-se de Cenários de teste e Casos de teste. Sendo os Cenários de teste um ponto Macro a ser testado e os casos de testes são todas as situações de testes existentes dentro de cada cenário de teste. Ou seja, cada caso de teste tem um único objetivo de testar um resultado do sistema, os cenários de teste vão agrupar os casos de teste que tenham esses resultados similares.

Selecione o ponto inicial e pressione a tecla [insert], com isso o sistema adiciona um nó ligado ao ponto inicial, sendo esse nó um segundo nível do mapa. Clicando neste novo nó podemos dar um nome para ele. Em nosso exemplo daremos o nome de Cenários de teste para o nó do segundo nível, o qual representa um agrupador de Casos de teste. Após fazer este procedimento nossa árvore se encontrará conforme a figura 3.

Ponto dos Cenários de Teste

Figura 3 – Ponto dos Cenários de Teste

Após essa etapa concluída pode-se levantar as ideias de cenários de testes possíveis. Ideias de testes macros, de funcionalidades como um todo, para depois aprofundar-se nessa ideia macro e criar os casos de teste.

Adicionaremos 2 cenários como exemplo, sendo o primeiro Validar rejeição de nota fiscal pela regra de certificado digital e o segundo Validar rejeição de nota fiscal pela regra de forma da área de dados. Nossos cenários de testes devem ficar igual a figura 4.

Figura 4 - Descrição dos Cenários de teste

Figura 4 – Descrição dos Cenários de teste

Agora devemos criar um outro nó abaixo de cada cenário com a descrição Casos de teste para agruparmos os testes correspondentes daquele Cenário de teste. Dentro deste nó Casos de teste fazemos o levantamento das micro ideias de teste baseados no cenário de teste correspondente e criamos para cada ideia de teste um nó abaixo deste. Na figura 5 podemos ver o resultado de nosso mapa mental.

Figura 5 - Mapa mental com as ideias de teste

Figura 5 – Mapa mental com as ideias de teste

Para melhorar ainda mais a facilidade de visualização e distinção dos testes, a ferramenta dispõe de um recurso que colore os níveis do mapa com diferentes cores, facilitando visualizar o que são cenários e o que são casos de teste.

Se você clicar com o botão direito do mouse sobre o ponto inicial do mapa ele abre um menu onde ao selecionar a opção Estilo > AutomaticMindMapRoot a ferramenta deixará o seu mapa conforme a figura 6 e exibirá os cenários criados em verde e os casos de teste em preto.

Figura 6 - Ideias de teste em cores

Figura 6 – Ideias de teste em cores

Pronto! Finalizamos nosso mapa mental de ideias de testes. Podemos agora utiliza-lo para automatizar os testes transformando essas ideias em scripts de testes e tornando o processo de testes mais ágil ainda, fazendo da primeira e única execução manual o meio de gravar esses scripts de automação em uma ferramenta de sua preferência. Não iremos discutir automação a fundo aqui, pois isto será assunto de um artigo futuro, onde o assunto será tratado como merece.

Com isso cada integrante poderá contribuir com suas opiniões de testes que estão faltando ou testes desnecessários, pois cada um analisará o mapa dentro da sua realidade, os programadores olharão para o mapa e verão que devido a padrões de projeto utilizados certos testes são desnecessários, ou os analistas de negócio com sua vasta experiência poderão opinar com mais ideias e situações que não foram previstas pelo analista de testes, tornando este método tanto ágil como colaborativo e por isso mais eficaz na cobertura de testes.



Conclusão

Esse método apresentado é apenas uma das maneiras de tornar os seus testes ágeis, porém não é a forma perfeita de faze-lo. Apenas apresentamos uma prática que gerou resultados positivos nas situações aplicadas de forma a economizar tempo nos projetos mantendo o mesmo nível de qualidade do produto.

Por experiência própria digo que, com este mapa feito pode-se apresentar à sua equipe de desenvolvimento, tanto programadores, como analistas de negócio, analistas de sistema e gerentes de projeto, todos eles observarão e saberão exatamente o que você pretende testar com o mapa, devido a facilidade que essa forma visual traz no entendimento do problema.

Outro ponto que devemos lembrar é que o colaborativismo deste documento com toda a equipe torna os testes um conhecimento de todos, ou seja, quando o programador estiver criando o seu código ele estará com o mapa na cabeça e com certeza por causa disso deixará de inserir bugs no código por saber que o testador já previu uma situação em seus testes.

Para quem deseja estudar e se aprofundar mais no assunto sobre testes ágeis, recomendo o livro Agile Testing: A Practical Guide for Testers and Agile Teams.

Você pode analisar as várias ferramentas de criação de mapas mentais para ver qual se encaixa melhor as suas necessidades ou a que você melhor se adapta. Abaixo segue uma lista de algumas das encontradas no mercado.

Xmind – http://www.xmind.net/download/win/
Bubbl.us – https://bubbl.us/
MindMeister – http://www.mindmeister.com/pt
Freeplane – http://sourceforge.net/projects/freeplane/
Mind42 – http://mind42.com/
Map MySelf – http://www.mapmyself.com/


Referências

http://freemind.sourceforge.net/wiki/index.php/Main_Page
http://spyrestudios.com/15-great-mindmapping-tools-and-apps/
Agile Testing: A Practical Guide for Testers and Agile Teams

Autor: Daniel Ricardo de Amorim

Consultant QA at ThoughtWorks

2 pensamentos sobre “Testes ágeis com mapas mentais

  1. Muito bom o texto, são ferramentas assim que tornam a vida e a rotina de nós Analistas de Teste e Testadores mais eficazes no quesito Análise e na hora de montarmos nossos Cenários de Teste.

  2. Muito bom Daniel. no momento não atuo na área de testes, mas já atuei, e, também utilizei mapas mentais, não para aplicar em testes e consegui entender perfeitamente sua explicação.