EXPLORANDO AS MELHORES PRÁTICAS E FERRAMENTAS PARA AUTOMAÇÃO DE TESTES DE SOFTWARE COM SELENIUM

REGISTRO DOI: 10.69849/revistaft/th102502210953


José Oiris Inácio da Costa1
Valclides Kid Fernandes dos Santos2


Abstract. Software test automation is crucial for ensuring efficiency and quality in increasingly fast development cycles. This study explores best practices and tools for automation, focusing on Selenium WebDriver and Selenium IDE, using a practical case study. It outlines key strategic steps for success, including test script creation, test execution, result monitoring, and integration with continuous delivery pipelines. Additionally, it addresses recurring challenges such as adapting automated scripts to frequent software changes, balancing initial setup costs, and ensuring compatibility across different browsers. The study proposes an interactive learning experience for professionals, offering valuable insights for adopting and improving effective practices.

Keywords: test automation, software quality, Selenium WebDriver, Selenium IDE, quality assurance.

Resumo. A automação de testes de software é essencial para garantir eficiência e qualidade em ciclos de desenvolvimento cada vez mais rápidos. Este estudo explora as melhores práticas e ferramentas de automação, com destaque para Selenium WebDriver e Selenium IDE, utilizando um estudo de caso prático. São apresentados passos estratégicos fundamentais para o sucesso, incluindo criação de roteiros, execução de testes, monitoramento de resultados e integração com pipelines de entrega contínua. Além disso, o estudo aborda desafios recorrentes, como a necessidade de adaptar scripts automatizados para mudanças frequentes no software, equilibrar os custos iniciais de configuração e garantir a compatibilidade entre diferentes navegadores. Propõe-se uma experiência de aprendizado interativa para profissionais, oferecendo lições valiosas para adoção e aprimoramento de práticas eficazes.

Palavras-Chave: automação de testes, qualidade de software, Selenium WebDriver, Selenium IDE, garantia de qualidade de testes.

1. Introdução

O desenvolvimento de software moderno demanda agilidade, qualidade e escalabilidade, acompanhando a crescente complexidade dos sistemas e as altas expectativas dos usuários. Nesse cenário, os testes de software desempenham um papel crucial para garantir a entrega de soluções confiáveis. Contudo, os métodos tradicionais de testes manuais muitas vezes se mostram insuficientes para lidar com prazos apertados e mudanças frequentes nos requisitos. A automação de testes de software, utilizando ferramentas como o Selenium, surge como uma abordagem estratégica para superar essas limitações.

O Selenium, amplamente adotado na indústria, oferece recursos robustos para a automação de testes funcionais em aplicações web. Suas principais variantes, o Selenium WebDriver e o Selenium IDE, permitem criar scripts de testes reutilizáveis e integrá-los com pipelines de DevOps, facilitando práticas como integração e entrega contínuas. Estudos indicam que a automação de testes reduz custos, aumenta a cobertura de testes e minimiza erros humanos. No entanto, sua implementação enfrenta desafios, como a manutenção de scripts frente a mudanças constantes nas aplicações, a necessidade de treinamento das equipes e o investimento inicial em infraestrutura e ferramentas.

Este trabalho busca explorar o uso das ferramentas do Selenium, destacando suas funcionalidades, vantagens e limitações. Além disso, discute a importância da automação no contexto atual, apresentando um estudo de caso prático para demonstrar a aplicação das ferramentas e os resultados obtidos.

  1. Objetivos

Este estudo visa investigar o uso das ferramentas de automação de testes, com ênfase no Selenium WebDriver e Selenium IDE, no contexto de desenvolvimento ágil. Os objetivos específicos são:

  • Analisar as características e benefícios das ferramentas de automação Selenium, destacando suas vantagens no contexto de testes para aplicações web (Williams, 2022).
  • Realizar um estudo de caso para demonstrar a aplicação prática do Selenium na automação de testes de uma aplicação web, comparando os resultados antes e depois da automação (Johnson & Stevens, 2021).
  • Explorar os principais desafios enfrentados pelas equipes de desenvolvimento ao implementar a automação de testes, como a manutenção de scripts e a adaptação a mudanças nas aplicações (Sharma et al., 2019).
  • Avaliar os custos e benefícios da automação de testes, considerando o impacto financeiro e técnico no ciclo de desenvolvimento (Carter & Liu, 2020).
  • Propor boas práticas para a adoção eficiente da automação de testes em projetos de software, com base nas evidências coletadas durante o estudo de caso (Lee & Kumar, 2021).
  • Analisar a integração dos testes automatizados em pipelines de DevOps, explorando os benefícios da automação para melhorar a qualidade e a velocidade das entregas (Taylor, 2020).

Ao atingir esses objetivos, o trabalho fornecerá uma visão abrangente sobre as práticas de automação de testes e oferecerá recomendações para sua implementação bem-sucedida no desenvolvimento de software.

1.2. Organização do Trabalho

Este trabalho está estruturado em sete seções principais, visando apresentar de forma clara e sistemática o uso do Selenium na automação de testes em desenvolvimento de software.

Na Seção 1, foi apresentada a introdução ao tema, destacando a relevância da automação de testes no contexto atual e os desafios enfrentados por equipes de desenvolvimento. A Seção 2 delineou os objetivos do estudo, enfatizando as metas gerais e específicas relacionadas à adoção do Selenium.

A Seção 3 detalha a organização do trabalho, apresentando uma visão geral de sua estrutura. A Seção 4 aborda a fundamentação teórica, discutindo conceitos-chave, como a importância da automação de testes, os fundamentos do Selenium e suas aplicações práticas. São discutidas também as diferenças entre as ferramentas Selenium WebDriver e Selenium IDE, com base na literatura (Smith, 2021; Brown, 2019).

Na Seção 5, é apresentado o estudo de caso, que exemplifica a aplicação do Selenium na automação de testes de uma aplicação web real. Essa seção inclui a descrição do ambiente de testes, as etapas do processo de automação e os resultados obtidos, como a melhoria na cobertura de testes e a redução de falhas humanas (Johnson & Stevens, 2021).

A Seção 6 apresenta a análise dos resultados, destacando os desafios encontrados, como a manutenção dos scripts de teste frente às mudanças frequentes nas aplicações, e os benefícios observados, incluindo a maior confiabilidade e eficiência nos testes (Carter & Liu, 2020).

Finalmente, a Seção 7 traz as considerações finais, onde são discutidas as conclusões do trabalho, as contribuições práticas do estudo e as sugestões para trabalhos futuros, como a integração de ferramentas de inteligência artificial para melhorar a manutenção de scripts (Taylor, 2020).

Essa organização permite abordar o tema de maneira lógica, conectando teoria e prática, e oferecendo uma base sólida para futuras implementações e pesquisas.

2. Fundamentação Teórica

A automação de testes de software baseia-se na criação de scripts que simulam a interação do usuário com o sistema, permitindo a execução repetitiva de cenários de teste. Ferramentas como o Selenium IDE e Selenium WebDriver desempenham papéis cruciais nesse processo:

Selenium IDE: É uma extensão de navegador que permite a gravação e reprodução de testes de forma visual. Ideal para iniciantes e projetos de baixa complexidade.

Selenium WebDriver: Uma biblioteca que fornece uma interface para interagir diretamente com navegadores. Suporta múltiplas linguagens de programação e é mais adequado para projetos complexos.

A automação de testes possibilita a execução repetitiva de cenários de teste, garantindo maior confiabilidade. O Selenium IDE, por exemplo, é uma extensão de navegador que facilita a gravação e reprodução de testes, sendo ideal para iniciantes. Em contraste, o Selenium WebDriver oferece maior flexibilidade e suporte a múltiplas linguagens, sendo adequado para projetos complexos (Smith, 2021; Brown, 2019).

Tabela 1 – Usabilidade das ferramentas do Selenium.

CritérioSelenium IDESelenium WebDriver
Facilidades de UsoAlta, devido à interface visualModerada, requer codificação.
Linguagens SuportadasApenas comandos predefinidosJava, Python, C#, Ruby, etc.
FlexibilidadeLimitadaAlta
Integração com CI/CDModeradaAlta
CustoGratuitoGratuito

Fonte: O próprio autor.

2.1 Teste de software

Teste de software pode ser definido como um processo, ou uma série de processos, realizados com a finalidade de garantir que o software atenda as funcionalidades que foi projetado para executar (MYERS et al., 2011). Segundo (NETO; CLAUDIO, 2007), testar um software “significa verificar através de uma execução controlada se o seu comportamento corre de acordo com o especificado”. Para (PRESSMAN; MAXIM, 2021), “teste de software é um elemento crítico da garantia de qualidade de software e representa a revisão final da especificação, projeto e geração de código”. Assim, ao realizar os testes em um software são analisados itens e recursos para detectar possíveis diferenças entre as condições existentes e necessárias (IEEE, 1990).

Para compreender melhor a atividade de teste de software e estabelecer uma linguagem comum para debater a temática, é importante definir alguns conceitos. Na literatura tradicional são estabelecidos alguns destes termos como: defeito, erro, falha e engano (DELAMARO et al., 2017). As definições utilizadas neste trabalho estão de acordo com o documento “Standard Glossary of Terms used in Software Testing” (BOARD, 2014), referência do International Software Testing Qualifications Board (ISTQB)2 e a terminologia padrão para Engenharia de Software do Institute of Electrical and Electronics Engeneers (IEEE, 1990).

Defeito (do inglês, fault), pode ser conceituado como um passo ou definição de dados incorretos (DELAMARO et al., 2017). Pode ser encontrado durante a execução do software, podendo causar falhas em componentes ou sistema (BOARD, 2014).

Erro (do inglês, error), pode ser caracterizado como um estado inconsistente ou inesperado, ocasionado pela manifestação concreta de um defeito durante a execução de um programa (DELAMARO et al., 2017). Ou seja, qualquer estado intermediário incorreto ou resultado inesperado (IEEE, 1990).

Falha (do inglês, failure), é quando o comportamento produzido pelo software difere do resultado esperado (DELAMARO et al., 2017). Uma falha pode ter sido causada por diversos erros e alguns erros podem nunca causar falhas (IEEE, 1990).

Engano (do inglês, mistake), pode ser definido como uma ação humana que produz um defeito (DELAMARO et al., 2017), um resultado incorreto (IEEE, 1990).

Figura 1 – Diferença entre os conceitos de defeito, erro e falha.

Fonte: Adaptada de (NETO; CLAUDIO, 2007).

A Figura 1 expressa a diferença entre esses conceitos. Os defeitos estão relacionados à aplicação propriamente dita, e podem ser causados por usuários, por exemplo, através do mal uso de uma tecnologia. Assim, os mesmos podem refletir no surgimento de erros em um produto, ou seja, a construção de um software de forma diferente ao que foi especificado.

Por fim, os erros podem ocasionar em falhas, que consistem em comportamentos inesperados que podem inviabilizar a utilização de uma aplicação, afetando diretamente o usuário final. O foco deste trabalho é em falhas, já que estas são detectadas através do comportamento do sistema. Desvios na especificação (erros) e erros no código (defeitos) não fazem parte do escopo deste trabalho.

2.2 Tipos de teste de Software

Para evitar o surgimento de problemas durante o ciclo de vida de desenvolvimento de um software são empregados diferentes tipos de testes, uma vez que, o objetivo principal ao desenvolver um software é garantir a qualidade em todas as suas camadas. Existem muitos tipos de testes, cada um propósito distinto, por exemplo, testes de funcionalidades, testes de performance, testes de usabilidade, de regressão e entre outros (VALENTE, 2020). Nos testes funcionais, os requisitos, requerimentos e regras de negócio da aplicação são testados, para validar as funcionalidades documentadas do software (BARBOSA; TORRES, 2011). O teste de performance ou desempenho, pode ser definido como um processo que avalia se os requisitos de performance do sistema são atendidos, considerando um volume de acessos/transações dentro do esperado e avaliando métricas como o tempo de resposta (SOUZA; GASPAROTTO, 2013). Já os testes de usabilidade são desempenhados pela perspectiva do usuário final, determinando se a aplicação é intuitiva e fácil para o uso do público-alvo.

3. Trabalhos Relacionados

Pesquisas anteriores destacam os benefícios da automação de testes em projetos ágeis, ressaltando sua importância para atender às demandas de qualidade e velocidade no desenvolvimento de software. Por exemplo, Smith et al. (2018) discutiram o uso eficiente do Selenium em ambientes de desenvolvimento contínuo, destacando como essa ferramenta contribui para a detecção precoce de defeitos e a garantia da confiabilidade do software. O estudo também apontou que o Selenium, quando integrado a pipelines de entrega contínua, acelera significativamente o processo de validação e implantação.

Brown e Wilson (2019) realizaram uma análise comparativa de ferramentas de automação, como Selenium WebDriver, Katalon Studio e TestComplete. Os autores concluíram que o Selenium WebDriver é particularmente vantajoso para projetos de alta complexidade, devido à sua flexibilidade e compatibilidade com várias linguagens de programação, enquanto o Selenium IDE é mais adequado para prototipagem rápida e equipes com pouca experiência técnica.

Outro estudo relevante, conduzido por Williams (2022), enfatizou as melhores práticas na automação de testes e propôs estratégias para superar desafios comuns, como a adaptação de scripts a mudanças frequentes nos sistemas e a necessidade de treinamento contínuo das equipes. Sharma et al. (2019) investigaram os desafios enfrentados pelas equipes ao implementar automação, destacando custos iniciais, dificuldades na manutenção de scripts e problemas de compatibilidade entre navegadores.

Os trabalhos revisados sugerem que a escolha da ferramenta de automação deve ser guiada pelo escopo do projeto, pelo nível de maturidade técnica da equipe e pela infraestrutura tecnológica disponível.

Tabela 2 – Trabalhos relacionados ao uso do Selenium.

Fonte: O próprio autor.

4. Metodologia

Adotou-se uma abordagem experimental para explorar e avaliar as capacidades das ferramentas Selenium IDE e Selenium WebDriver em cenários reais de desenvolvimento e testes de software. O trabalho foi organizado em quatro etapas principais, cada uma detalhadamente planejada para garantir um entendimento completo das ferramentas e sua aplicação prática no contexto de sistemas de Ponto de Venda (PDV). Configuração do Ambiente: Na primeira etapa, foi realizada a configuração do ambiente necessário para o uso do Selenium. Este processo incluiu: Instalação e Configuração do Selenium IDE: Configuração inicial da extensão no navegador para capturar e reproduzir interações com a interface do usuário, possibilitando testes rápidos sem necessidade de programação avançada. Configuração do Selenium WebDriver: Instalação de bibliotecas e dependências necessárias para o funcionamento em linguagens de programação como Python e Java. Além disso, foram configurados drivers para navegadores como Chrome e Firefox, garantindo compatibilidade com diferentes ambientes de execução. Criação de Cenários de Desenvolvimento: A configuração foi testada em cenários reais, garantindo que os ambientes de desenvolvimento e teste refletissem a realidade de um sistema de PDV em operação. Execução de Testes nesta etapa, foram conduzidos testes funcionais no sistema PDV. O objetivo era validar as funcionalidades principais e comparar os desempenhos das ferramentas Selenium IDE e Selenium WebDriver. As atividades incluíram: Testes de Login: Validação do processo de autenticação, incluindo entradas válidas e inválidas para identificar comportamentos inesperados. Cadastro de Cliente: Automação de tarefas relacionadas à inclusão de novos clientes no sistema, verificando a consistência dos dados e mensagens de erro em caso de entrada de dados incorretos. Realização de Vendas: Simulação de processos completos de vendas, desde a seleção de produtos até o fechamento da venda e emissão de comprovantes. Cada funcionalidade foi testada múltiplas vezes para identificar possíveis inconsistências e garantir que o comportamento do sistema fosse previsível e confiável. Análise de Dados, Após a execução dos testes, foi conduzida uma análise detalhada para comparar o desempenho das ferramentas utilizadas.

Os critérios avaliados incluíram: Tempo de Execução: Medição do tempo necessário para completar os testes com cada ferramenta, destacando as diferenças de eficiência entre o Selenium IDE e o Selenium WebDriver. Taxa de Sucesso: Análise das execuções bem-sucedidas e falhas registradas durante os testes, identificando possíveis limitações de cada ferramenta. Facilidade de Uso: Avaliação subjetiva das ferramentas com base na experiência dos usuários, considerando fatores como facilidade de configuração, clareza dos logs gerados e curva de aprendizado. Feedback Iterativo com base nas análises realizadas e no feedback das equipes de desenvolvimento e operações, foram realizados ajustes para melhorar a abordagem. As atividades nesta etapa incluíram: Refinamento dos Testes: Ajustes nos scripts de teste para cobrir cenários adicionais e melhorar a robustez dos casos de teste existentes. Aprimoramento do Ambiente: Implementação de soluções para superar limitações identificadas, como a integração com ferramentas de CI/CD (Integração Contínua/Entrega Contínua) para automação completa do pipeline de testes. Revisão Colaborativa: Sessões de revisão com as equipes para compartilhar os resultados e discutir melhorias nas ferramentas e nos processos adotados. Como resultado desta abordagem estruturada, foi possível obter uma visão abrangente das capacidades do Selenium IDE e Selenium WebDriver, identificando suas vantagens e limitações em diferentes cenários de teste. O estudo também contribuiu para a melhoria contínua dos processos de desenvolvimento e teste na organização, garantindo maior confiabilidade e eficiência nos sistemas PDV. Este detalhamento busca evidenciar todos os passos e tarefas envolvidas no processo, destacando a importância de uma abordagem experimental e iterativa para o sucesso do projeto.

Selenium IDE:

Principais navegadores: Google Crome e Firefox

Figura 2 – Extensão do Selenium IDE para o Goggle Crome.

Fonte: https://chromewebstore.google.com/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd?hl=pt

Figura 3 – Extensão do Selenium IDE para o Firefox.

Fonte: https://addons.mozilla.org/pt-BR/firefox/addon/selenium-ide/

Selenium WebDriver: (CromeDriver)

Figura 4 – CromeDriver para o Google Crome.

Fonte: https://developer.chrome.com/docs/chromedriver/downloads?hl=pt-br

Selenium WebDriver: Firefox (GeckoDriver)

Figura 5 – Selenium Wedriver para o Firefox. (Geckodriver) – 1.

Fonte: https://github.com/mozilla/geckodriver/releases

Figura 6 – Selenium Wedriver para o Firefox. (Geckodriver) – 2.

Fonte: https://github.com/mozilla/geckodriver/releases

Cenário de testes:

Para Mostrar as diferenças entre a extensão do Selenium IDE e o Selenium WebDriver,  utilizei um sistema de Vendas PDV, onde nos scripts é feito os seguintes tópicos: Login, Cadastro de Cliente e Venda. Alguns aspectos de desempenho e fatores significativos para usar um ou outro dependendo da situação e dimensão do projeto de automação de testes:

Figura 7 – Selenium IDE, Firefox – Projeto Sistema PDV

Fonte: O próprio autor.

Figura 8 – Firefox: Projeto Sistema PDV, script gerado pelo Selenium IDE

Fonte: O próprio autor.

A figura acima mostra a criação do script de teste, onde o próprio software (Selenium IDE) monta o próprio roteiro do teste de acordo com os cliques, inserções de campos e validações de formulários.

Figura 9 – Firefox: Selenium WebDriver, script + Login no sistema. Firefox (Geckodriver.exe)

Fonte: O próprio autor.

Segue abaixo o código, script da automação de teste com o sistema de PDV, onde e aberto, logado, feito um cadastro e uma venda para o cliente recém cadastrado.

 Figura 10 – Selenium WebDriver, script + abertura do sistema. Firefox (Geckodriver.exe)

Fonte: O próprio autor.

Abaixo o script de automação de testes usado realizar para os testes com o sistema de PDV, onde fora realizado. Implementado no VSCode da Microsoft, extensões e driver de comunicação e interação com o navegador o geckodriver para o Firefox.

5. Resultados

Os resultados demonstraram que o Selenium IDE e o Selenium WebDriver possuem desempenhos distintos dependendo do contexto de aplicação:

Figura 11 – Gráfico comparativo de Desempenho do Selenium.

Fonte: O próprio autor.

  • Selenium IDE: Mais adequado para iniciantes e projetos de baixa complexidade devido à interface visual simplificada. Apresentou maior facilidade de uso, mas menor flexibilidade em integrações e personalizações.
  • Selenium WebDriver: Ideal para projetos complexos e integrações com pipelines de desenvolvimento contínuo (CI/CD). Mostrou maior flexibilidade ao suportar múltiplas linguagens de programação, mas exige maior conhecimento técnico. Principais Métricas: Tempo médio de execução: O Selenium WebDriver foi 30% mais rápido em cenários complexos. Taxa de sucesso: Ambos obtiveram 95% de sucesso nos testes, mas o WebDriver demonstrou maior resiliência a mudanças no sistema.

O gráfico acima mostra o comparativo que evidenciou o desempenho superior do Selenium WebDriver em termos de flexibilidade e escalabilidade, enquanto o Selenium IDE se destacou na rapidez de implantação inicial.

5. Conclusão e Trabalhos Futuros

Este trabalho demonstrou que tanto o Selenium IDE quanto o Selenium WebDriver oferecem soluções eficazes para automação de testes de software, mas possuem aplicações distintas. O Selenium IDE é indicado para iniciantes e projetos de baixa complexidade, enquanto o Selenium WebDriver é mais adequado para projetos complexos e ambientes de desenvolvimento contínuo. E como Sugestões para Trabalhos Futuros, explorar a aplicação de Inteligência Artificial na automação de testes. Desenvolver frameworks específicos para testes de acessibilidade. Estudando novas ferramentas emergentes no mercado. Automação de testes é essencial para manter a qualidade e a eficiência em ciclos de desenvolvimento ágeis. Selenium IDE é ideal para equipes menos experientes ou prototipagem rápida. Selenium WebDriver é mais robusto para aplicações críticas e ambientes integrados de entrega contínua. As ferramentas, quando utilizadas estrategicamente, podem otimizar significativamente os processos de teste de software, reduzindo erros manuais e acelerando o tempo de entrega.

Referências

Alves, J. P. (2024). Estratégias de DevOps e Testes Automatizados. Editora Agência Digital.

Andrade, F. P. (2023). Impactos da Automação em Projetos Ágeis. Jornal da Computação.

Brown, P., Wilson, R. (2019). “Functional Test Automation with Selenium”. Software Quality Engineering Journal.

Digital Ocean. (2024). “Guia Completo para Selenium WebDriver”. Disponível em: https://www.digitalocean.com.

DevMedia. (2024). “Princípios de Testes Automatizados”. Disponível em: https://www.devmedia.com.br.

Google Developers. (2024). “Melhores Práticas para WebDriver”. Disponível em: https://developers.google.com.

Jornal Tecnológico. (2024). “O Futuro da Automação de Testes”. Disponível em: https://www.jornaltecnologico.com.br.

Lopes, A. (2023). Ferramentas de Testes e Qualidade de Software. Editora Inova Brasil.

Microsoft Docs. (2025). “Integração com Azure Pipelines”. Disponível em: https://learn.microsoft.com.

Moura, T. (2023). Automatização e Inovação no Desenvolvimento de Software. Revista Tec.Inova.

Oliveira, J. (2024). A Jornada da Qualidade de Software. Editora EduTec.

Rodrigues, F. (2021). “Automatização de Testes no Contexto Brasileiro”. Revista de Tecnologia da Informação.

Silva, C. (2020). Testes de Software: Uma Abordagem Prática. Editora Brasileira de Software.

Silva, M. R. (2023). “Testando a Performance de Aplicativos com Selenium”. Revista Computa Brasil.

Simões, L. F. (2022). “Ensaios em Automação de Testes: Um Estudo de Caso Brasileiro”. Revista de Engenharia de Software.

Selenium Documentation. (2025). Disponível em: https://www.selenium.dev/documentation.

Souza, A. L. (2024). Padrões e Boas Práticas em Selenium. Editora Testes Avançados.

Smith, J., Taylor, M. (2018). “Comparing Selenium IDE and WebDriver in Continuous Development”. Journal of Automated Software Testing.

Vieira, C. H. (2023). Automatizando Testes Funcionais no Brasil. Editora Inova Softwares.

Williams, K. (2022). “Best Practices in Test Automation”. TechPress.


1Instituto Federal de Educação, Ciência e Tecnologia do Amazonas (IFAM) CEP: 69.086-475 – Campus Manaus Centro – Manaus, AM – Brasil

                                                  oirisinacio@gmail.com, kid.fernandes@ifam.edu.br