Por que eu devo ler este artigo:Este artigo trata da importância da realização de testes e como algumas ferramentas podem ser úteis para o auxílio a essa tarefa. Este artigo irá apresentar uma ferramenta chamada Selenium Evidence que é utilizada para gerar relatórios a partir dos testes funcionais de aplicações Web. O tema é útil para analistas de qualidade, desenvolvedores e gerentes de projeto, para auxiliar e melhorar o processo de software através de uma API que gera relatórios a partir de testes funcionais, tornando o trabalho da equipe de qualidade mais prático e produtivo.
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) intermediária entre o layout do relatório e o conjunto de dados a ser apresentado no mesmo, ou seja, o JasperReport é responsável por gerenciar os dados provenientes da aplicação e repassar essas informações para o relatório. Para gerar esses relatórios é necessário passar por alguns processos, são eles: processo de compilação, preenchimento e visualização. Todo esse processo é abstraído pela API. A ferramenta utiliza um arquivo XML (eXtensible Markup Language) para definir o layout do relatório. Nesse arquivo são inseridas as seções, a localização dos campos, variáveis, linhas, imagens, etc. Quando compilado, o arquivo XML gera um novo arquivo com extensão .jasper, que é o relatório propriamente dito.

Para utilizar essa biblioteca é necessário ter o arquivo .jar no projeto, que pode ser baixado no site mavenrepository ou pode-se adicioná-lo às dependências do Maven, como será mostrado no decorrer do artigo.

JasperSoftware Studio

O iReport é uma ferramenta desenvolvida com o objetivo de criar relatórios de forma fácil e rápida, através de uma interface gráfica semelhante ao NetBeans IDE. Apresenta uma interface simples de ser manipulada, sendo assim não é necessário conhecer as tags XML para criar um design de relatório.

Boa parte dos desenvolvedores que utilizam o iReport utiliza também o Eclipse como IDE. Com isso, muitos desenvolvedores tinham dificuldades para se adaptar ao layout do iReport, já que esse foi construído em cima do NetBeans IDE. Atendendo ao pedido da comunidade de desenvolvedores, a Jaspersoft desenvolveu um novo software baseado no Eclipse IDE, chamado JasperSoftware Studio, com isso o iReport foi descontinuado.

Neste artigo, será criado um layout para gerar os relatórios do Selenium Evidence.

Selenium Evidence

Após conhecer algumas ferramentas que serão usadas neste artigo, será apresentado o Selenium Evidence, uma API simples e útil para desenvolvedores e testadores. O propósito dessa ferramenta é criar relatórios com evidências, isto é, gerar provas de que o teste executado está funcionando. Evidenciar consiste em mostrar com imagens ou vídeos que determinado fato aconteceu, isto é, o que o Selenium Evidence na realidade faz é capturar imagens da tela montando um relatório para ser apresentado para o cliente. Os relatórios criados podem ser exportados para arquivos do tipo pdf, doc ou html.

Atualmente esse processo é feito de forma manual por testadores ou desenvolvedores, utilizando print screen para capturar as imagens do software em funcionamento, porém esse processo pode ser lon ...

Quer ler esse conteúdo completo? Tenha acesso completo