Autores: Luiz Fernando Andrade de Souza, Charleston Josué Campos e Marco Antônio Pereira Araújo
A engenharia de software (ES) surgiu para auxiliar no planejamento e desenvolvimento de software, bem como em sua manutenção. Com o avanço tecnológico, foram sendo desenvolvidos softwares cada vez maiores e mais complexos, e de difícil manutenibilidade, o que resultava em grandes atrasos, custos elevados com relação ao produto (que muitas vezes não passava confiança aos clientes), e de baixo desempenho. Havia então a necessidade de se pensar em novos métodos para estruturação e desenvolvimento de projetos de software.
Teste de software é uma das vertentes de ES. Para garantir a qualidade de um software são necessários vários outros fatores, como um bom levantamento de requisitos, um modelo de processos bem definido, adoção de padrões e boas práticas no desenvolvimento e, não menos importante, testes realizados no produto. Em alguns casos, pouco se investe na área de qualidade, justificando-se que o gasto não seria compensador. Porém, dados estatísticos mostram que corrigir erros depois que o produto já foi entregue é até 100 vezes mais caro, causando prejuízo para o cliente e também para a empresa desenvolvedora.
O controle de qualidade é indispensável nos processos de desenvolvimento de software. Conceitos de qualidade são imprecisos e difíceis de serem aceitos por desenvolvedores e empresas de desenvolvimento, no entanto, métricas de qualidade foram criadas para ajudar o processo de desenvolvimento de software onde o teste, por exemplo, é um elemento importante para garantir a qualidade do produto final. As atividades de teste podem muitas vezes se tornar cansativas e improdutivas, pois são executadas de forma inadequada, aumentado assim o risco do software apresentar problemas para o usuário.
Com objetivo de melhorar este processo, foram criados testes automatizados, que proporcionam a execução dos testes de forma rápida e com uma cobertura maior do sistema, quando desenvolvidos de forma correta. Algumas APIs foram criadas com este propósito, uma delas é a Selenium Evidence, que é uma ferramenta que auxilia a criar relatórios com evidências de testes funcionais de forma automatizada.
Existem várias técnicas e métodos de se testar um software como teste de unidade, teste de integração, teste funcional, teste de cobertura, teste de regressão, dentre outros. O que será abordado neste artigo é o teste funcional, onde não é necessário que se visualize o código fonte para realizar os testes.
Pré-requisitos
Antes de iniciar este artigo, é importante conhecer um pouco sobre as ferramentas que serão utilizadas: JUnit, Selenium WebDriver, Maven, JasperReport e JasperSoftware Studio.
Como pré-requisito, é necessário conhecer conceitos básicos de programação orientada a objetos, conhecer a linguagem de programação Java, HTML, JUnit e Selenium WebDriver. O Maven, JasperSoftware e o Jasper Report serão explicados nos próximos tópicos.
Maven
O Maven é uma ferramenta de integração de projetos e gerenciamento de build. Uma vez configurado o arquivo pom.xml do projeto, define-se a versão das APIs e também do compilador Java no qual o projeto será compilado. Ele também é responsável por gerenciar dependências, controlar versão do projeto, executar testes, entre outras funcionalidades. Neste artigo vamos utilizar apenas o gerenciamento de dependência do Maven com o objetivo de organizar as bibliotecas do projeto.
Um projeto Maven cria um arquivo chamado pom.xml, utilizado para descrever as características do projeto como, por exemplo, as dependências que o projeto irá utilizar, bem como sua versão. A Figura 1 mostra um exemplo de arquivo pom.xml.

Figura 1. Exemplo de um arquivo pom.xml
JasperReport
O JasperReport é uma API (Application Programming Interface) interm ...
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais