Em um artigo anterior sobre testes Agile, eu mostrei como o Microsoft Test Manager e o Twist da ThoughtWorksStudios permitem os QA e Devs colaborar na criação de testes funcionais. Neste, vou analisar como cada ferramenta permite que você gerencie seus casos de teste.
Gerenciamento de testes
Todos nós queremos grandes suítes de testes abrangentes porque eles permitem que a gente altere o código de forma segura. Sem elas, como você saberia se essa função que você escreveu há dois anos ainda funciona?
No entanto, uma grande suíte de testes é difícil de manter. Muito parecida com uma base de código grande, ela pode sair do controle facilmente se não for feita com cuidado. E, assim como o código, é importante evitar a duplicação de esforços e promover a reutilização.
Considere o exemplo canônico de login. Cada caso de teste novo que você escrever vai, provavelmente, precisar primeiro fazer login no aplicativo. O ideal é que os passos necessários para efetuar login devam ser reutilizáveis em todos os casos de testes. Caso contrário, você não estará apenas perdendo seu tempo escrevendo os mesmos passos o tempo todo, mas isso vai demorar uma eternidade para mudar caso as funcionalidades de login mudem.
Promovendo a reutilização
Não é surpresa que a sua ferramenta de gerenciamento de testes tenha um papel importante a desempenhar na promoção da reutilização. Ela deve permitir que você estruture os testes de uma forma que o permita reutilizar e deve ter boa descoberta. Em outras palavras, a ferramenta deve facilitar que você encontre o que já foi criado.
Então, como é que se compara o Test Manager e o Twist quando se trata de gerenciamento de testes? Infelizmente, apenas um deles realmente tenta promover a reutilização (Alerta de spoiler: não é o Test Manager).
Isso não tem que ser o caso, porque o Test Manager suporta o conceito de reutilização através de passos compartilhados:
O problema está na forma como os passos compartilhados são implementados. Para criar uma nova etapa de teste, são dadas ao usuário duas opções: “Inserir Etapas” e “Inserir Etapas compartilhadas”.
Isso é ruim por dois motivos. Primeiro, o aplicativo parece esperar que o usuário saiba antecipadamente quais os passos que já existem como etapas compartilhadas. Caso contrário, por que eles iriam escolher a opção “Inserir Etapas Compartilhadas”?
Segundo, por meio desta apresentação, o Test Manager cria uma falsa equivalência entre as etapas compartilhadas e não compartilhadas. Em vez de fazer com que seja fácil a reutilização das etapas compartilhadas e difícil a criação de novas, ele basicamente diz que “se você quiser usar uma etapa compartilhada, ótimo. Se não quiser, tudo bem também!”. Na prática, isso leva a um uso muito limitado de etapas compartilhadas e muitas duplicações.
Agora compare isso com o Twist. Quando o usuário digita em um novo passo do teste, o Twist sugere automaticamente etapas previamente criadas que podem ser relevantes:
Em outras palavras, o sistema força ativamente o usuário a fazer a coisa certa, reutilizando um passo previamente definido.
Automação de testes
Outro tópico relevante para a gestão de teste é a automação. Mais especificamente, importa o quão fácil é identificar etapas manuais e automatizá-las.
No Test Manager, existe uma aba separada chamada “Automação Associada”, que permite associar um Coded UI Test para todo o caso de teste:
Observe que os Coded UI Test já devem existir e não podem ser criados diretamente dentro da ferramenta. Assim, a automação tem que ser feita por outra pessoa ou o usuário vai precisar ir para uma ferrhttps://imasters.com.br/wp-admin/post.php?post=36096&action=edit&message=10amenta diferente (Visual Studio), automatizar o teste e voltar para o Test Manager para vincular tudo.
Por outro lado, o Twist mostra em marrom qualquer passo que ainda não está implementado:
É preciso um clique para gerar um elemento Java em que você pode automatizar a etapa. É isso aí.
Resultado final
Ao contrário do Twist, o Test Manager não é apenas destinado a promover a reutilização e a automação de casos de teste. Qualquer funcionalidade que ele tem é muito fácil de ignorar e/ou muito complicado de usar.
***
Texto original disponível em http://tatiyants.com/agile-testing-test-case-management/







