5.2.1 Escopo dos testes
Para veriĄcar a aplicação e garantir que a mesma tenha sido desenvolvida conforme o padrão esperado, são estabelecidos os testes necessários para isso. Neste caso, a deĄnição do escopo dos testes, ou seja, aquilo será testado, foi elaborada a partir dos principais requisitos funcionais do sistema.
A partir das funcionalidades é possível estabelecer os testes de caixa-preta que darão cobertura necessária para o software, visto que se sabe quais serão as entradas e os resultados esperados do sistema, mesmo não tendo conhecimento do processo interno.
Capítulo 5. Desenvolvimento 33
a seguir:
Tabela 1 Ű Requisitos funcionais do sistema agrupados por tela
Tela Funcionalidade
Home
O sistema deverá ser capaz de navegar entre as telas através de abas (cada uma correspondente a uma tela) localizadas no canto superior direito da aplicação
O sistema deverá exibir um texto referente a biograĄa do professor em uma sessão destinada
O sistema deverá exibir um texto para os alunos em uma sessão destinada
O sistema deverá conter um link no rodapé com direcionamento a página do Facebook do professor.
O sistema deverá conter um link no rodapé com direcionamento a página do Twitter do professor.
Disciplinas O sistema deverá exibir uma tabela com informações sobre asdisciplinas ministradas pelo professor nos últimos seis semestres
Pesquisa
O sistema deverá ser capaz de exibir imagens interativas em uma sessão destinada
O sistema deverá exibir um texto referente a área de pesquisa do professor em uma sessão destinada
Contato
O sistema deverá ser capaz de realizar o preenchimento e envio de um formulário
O sistema deverá ser capaz de apresentar um alerta caso os campos obrigatórios do formulário não tenham sido preenchidos
O sistema deverá ser capaz de apresentar um alerta de conĄrmação caso seja marcado o checkbox de novas informações
Após a deĄnição do escopo dos testes, teremos a construção dos casos de testes, onde são escolhidos dados que servirão para teste do programa e os objetivos que se deseja alcançar com os mesmos.
O produto Ąnal de trabalho com os processos destacados é o plano de testes da aplicação, onde estará contido o escopo, propósito e estratégia dos testes, assim como os casos de testes, detalhados passo a passo.
5.2.2 Testes automatizados
Para realizar a elaboração da automação dos testes planejados para a aplicação foram utilizadas as ferramentas Selenium WebDriver e JUnit, juntamente a linguagem de programação orientada a objetos Java.
O Selenium WebDriver (SELENIUMHQ, 2019) é uma ferramenta de automação de testes de sistema que provê ao desenvolvedor a execução de ações interativas com o navegador, dada sua integração direta com o mesmo. Com essa ferramenta é possível criar
Capítulo 5. Desenvolvimento 34
scripts de testes, em diferentes linguagens de programação, responsáveis por simular ações de um usuário no browser, ou seja, é possível reproduzir, via código, ações como cliques, preenchimento de campos, seleção de menus, conĄrmação de mensagens de alerta, entre outros. A reprodução dos comandos pela ferramenta é possível através da interação com os elementos HTML da página web.
Já o JUnit (JUNIT, 2019) é um framework de código aberto responsável por facilitar a criação e automatização de testes de unidade em projetos de código Java. Devido a sua grande versatilidade, fornecendo uma completa aplicação para construção dos testes, sua utilização geralmente está ligada a integração com outras ferramentas. Através do JUnit é possível estruturar projetos de testes unitários ou automatizados, sendo a ferramenta, responsável pela parte de execução dos testes, análise dos resultados obtidos e estruturação do script em si.
Figura 11 Ű Exemplo - script de teste automatizado
A estruturação do projeto foi deĄnida avaliando os requisitos funcionais da aplica- ção, onde os mesmos eram agrupados por tela, assim foi deĄnido no projeto de automação. Para cada página do sistema, existe uma classe no projeto contendo os métodos respon- sáveis pela execução automatizada dos comandos que compõem o teste, assim como um script que contém todos os testes da página em veriĄcação. Pensando em um âmbito geral, há também um script responsável pela execução de toda a suíte de testes, ou seja, todos os testes desenvolvidos para a aplicação independente da página.
Para a criação dos testes automatizados foram utilizados como artefato de entrada os casos de teste contidos no documento de plano de testes. Onde para cada caso de testes existia o detalhamento dos passos necessários para sua realização foi reproduzida a automatização dos comandos.
A execução dos testes é realizada de forma bem simples e intuitiva, sendo feita através do próprio JUnit e, de acordo com a estrutura deĄnida para o projeto, pode ocorrer de duas maneiras. O primeiro cenário aborda a execução dos testes referentes a
Capítulo 5. Desenvolvimento 35
somente uma página da aplicação e o segundo cenário aborda a execução de todos os testes já desenvolvidos para o sistema, podendo corresponder a um teste de regressão.
Os resultados obtidos pela execução dos testes podem ser apresentados de duas maneiras, a apresentação gráĄca e a apresentação consolidada dos dados, através de um documento. Na apresentação gráĄca, que ocorre por meio da própria ferramenta de de- senvolvimento e execução dos casos, são apresentadas somente as principais informações dos casos e do projeto em geral, além do grande destaque dado aos resultados. Já na apresentação consolidada, é gerado um documento de extensão do tipo xml através do JUnit. Este documento é responsável por conter informações referentes a execução dos testes automatizados, são apresentados dados do projeto em geral, como nome do projeto, quantidade de casos de teste executados, quantidades de falhas, entre outros, e informa- ções relativas a cada um dos testes individualmente, como nome do caso de teste, tempo de execução, entre outros dados.
Capítulo 5. Desenvolvimento 36
Figura 13 Ű Resultados da execução dos testes automatizados - Modelo detalhado (Ar- quivo xml com consolidado das informações)
37
6 Testes automatizados aplicados ao DevOps
Para esse trabalho foi adotada a utilização do framework DevOps devido seu ali- nhamento de priorização de atividades automatizadas, porém para o mesmo poderiam ser aplicadas diversas metodologias e frameworks resultando também nos ganhos potencias obtidos pelos testes automatizados.
A aplicação dos testes automatizados a metodologia DevOps foi centralizada em dois cenários principais, o evolutivo e o corretivo. Os cenários são detalhados nos tópicos a seguir.