3 MÉTODO
4.1 FERRAMENTAS ESCOLHIDAS, ESSENCIAIS E DE SUPORTE
Como forma de tornar a automação de testes, uma prática viável e versátil, a utilização de ferramentas como o Selenium e o TestNG, são essenciais na rotina de criação dos
scripts e execução da automatização de testes. Também, se faz necessário, como todo em
desenvolvimento estruturado de software, a aplicação de um padrão de projeto no desenvolvimento do script de testes, conforme Fowler (2013) preconiza. O padrão de projeto utilizado nesse projeto é o PageObject, a ser detalhado neste capítulo.
4.1.2 Selenium
Na criação e desenvolvimento dos scripts de automação de testes, o Selenium é uma ferramenta indispensável nesta rotina. O Selenium possui algumas versões como o WebDriver e a Integrated Development Environment (IDE).
Conforme a Gomes (2016):
A Application Programming Interface (API) Selenium WebDriver tem como principal objetivo automatizar ações do navegador, tais como submits de formulários, seleções em menus dropdown, digitação em campos texto, varredura de dados em elementos, HyperText Markup Language (HTML) etc.
50
Já a versão IDE, segundo Nogueira (2016), é definida como:
Selenium IDE (Integrated Development Environment) é uma ferramenta utilizada para o desenvolvimento de scripts de teste com o Selenium, através de um plugin para o Firefox, que torna o desenvolvimento dos scripts mais eficiente pelo método Record and Replay (Gravação e Execução).
Para o gerenciamento dos casos de testes implementados, o framework TestNG é aplicado conforme descrição a seguir.
4.1.3 TestNG
O TestNG é um framework de testes para cobrir e ser utilizado em categorias de testes como, unitário, funcional, integração, e entre outros. Segundo o Beust (2016), foi inspirado no JUnit, tornando o mais robusto e agregando novas funcionalidades inerentes a rotina de criação e execução de scripts de automatização de testes.
Por meio da utilização de anotações nos métodos dos scripts de automação de testes, e combinado com o arquivo XML, conforme Figura 12, de execução dos testes, facilita a rotina de desenvolvimento dos scripts e simplifica a execução de quais métodos deverão serem executados.
Figura 12 - Arquivo de configuração de testes TestNG
51
Implementado o caso de teste através de uma classe JAVA, conforme a Figura 13 - Classe de testes JAVA com anotação do TestNG, abaixo o método que passa a ser um caso de teste é identificado pela anotação “@Test”, para execuções junto a suíte de testes. Também é necessário, que o nome do método seja explicitado no arquivo XML de configuração de testes do TestNG, conforme Figura 12 - Arquivo de configuração de testes TestNG, apresentada anteriormente. Outras informações também são possíveis de configurar e integrar com o projeto de testes, como a plataforma de execução, o aplicativo a ser testado, o nome do dispositivo e outras variações e possibilidades que o framework TestNG disponibiliza.
Figura 13 - Classe de testes JAVA com anotação do TestNG
Fonte: Elaboração dos autores, 2016.
No decorrer da execução, é possível acompanhar em tempo real via console da IDE o status do andamento, e após a execução, o TestNG gera como produto final, arquivos de
52
Figura 14 - Feedback de execução TestNG
Fonte: Elaboração dos autores, 2016.
Na Figura 14 - Feedback de execução TestNG acima, tem-se como exemplo a execução de uma suíte de testes, que apresentou erro na execução de um de seus casos de testes, influenciando a execução sobre os outros casos de testes, que seriam executados após o sucesso deste. Com identificação em vermelho, o caso de teste que apresentou falha e em amarelo os casos de testes que foram omitidos, devido ao erro do caso anterior.
4.1.4 Appium
A ferramenta que conforme o quadro comparativo disponível no ANEXO A – Quadro comparativo entre as ferramentas Appium, Calabash e Robotium, apresentou mais vantagens de viabilidade, versatilidade, robustez e suporte da comunidade, dentre as analisadas e estudadas nesse projeto pelos autores, foi o Appium. A escolha desta ferramenta na criação de scripts de automatização de testes pelos autores, é suprir a necessidade da realização de parte dos testes manuais, tornando-os automatizados.
O Appium é utilizado em conjunto e integrado com as demais ferramentas descritas neste capítulo, cada qual com sua finalidade e função, tendo como missão facilitar e tornar viável, os testes automatizados para aplicações mobile.
Nas próximas seções, são apresentado parte dos métodos de códigos dos scripts de automação de teste desenvolvidos em linguagem JAVA, utilizados nos casos de testes.
53
4.1.5 Page Object
Assim como o desenvolvimento de software, propriamente dito, a organização do código para um bom rendimento e qualidade é necessário também no desenvolvimento dos
scripts de testes de automação. Conforme Vicente (2016), "A proposta desse padrão é de criar
um objeto para cada página web, e utilizando a boa e velha orientação a objetos, encapsular em cada classe os atributos e métodos, como campos e ações de cada página."
Os ganhos em organização, maior independência entre os testes, agilidade na criação de novos scripts de testes e o mais importante na reutilização e aproveitamento de códigos já implementados.
4.1.5.1 Linguagem de programação JAVA
A linguagem de programação utilizada em conjunto com o padrão de projeto Page Object, para o desenvolvimento dos scripts de teste automatizados foi o JAVA. Esta linguagem, foi escolhida em virtude do seu modelo de orientação a objetos e compatibilidade com as demais ferramentas escolhidas para compor este projeto.
4.1.6 Sauce Labs
Assim como a escolha da ferramenta Appium, os autores também selecionaram e utilizaram o recurso de simulação de dispositivos na nuvem da Sauce Labs. Os custos, a possibilidade do período trial e os diferenciais analisados entre os outros serviços na nuvem de testes apresentados anteriormente, foram decisivos e factíveis para a utilização do serviço da Sauce Labs.
A integração entre o Appium e Sauce Labs com o suporte de execução do TestNG e as funcionalidades essenciais do Selenium, permitiram grande viabilidade nas criações e execuções dos testes automatizados.
54