Desenvolvimento

Testando aplicações Java Swing com Cucumber

Tenho dito como um mantra para todos que “documentação boa, roda”. Digo isso pois vejo várias equipes gastando horas escrevendo casos de uso intermináveis que por muitas vezes não refletem as mudanças de requisitos muito comuns em projetos de software.

Isto significa que: a maioria dos casos de uso que vejo, estão desatualizados e/ou incompletos. Há algum tempo tenho usado e feito vários testes com Cucumber, que é uma ferramenta desenvolvida em Rails para automatização de testes de aceitação. O interessante do Cucumber é que é possível testar aplicações web usando Selenium, Webrat (Rails) ou Webdriver.

Porém recentemente um cliente comentou que gostaria de fazer um treinamento sobre como fazer planos de testes. Ele tem aplicações desktop desenvolvidas em Java Swing. Na mesma hora sugeri a idéia de implementação de testes automatizados e apresentei a proposta do Cucumber, mas expliquei que não tinha visto nenhuma integração de Cucumber com Java Swing.

Foi aí que encontrei o Swinger de um cara chamado Demetrius Nunes. Ele implementou os steps do Cucumber usando uma API em Java para automatizar testes de aplicações Swing, o Jemmy. Com isso, fiz o download do exemplo que ele disponibiliza no blog e realmente o negócio funciona. O vídeo abaixo prova isso:

Para testar, usei uma implementação simples de calculadora em Java e fiz um cenário de testes para subtrair dois números. Coloquei o código no github, se alguém precisar de alguma ajuda para executar o projeto, deixe um comentário abaixo.