Domine o Selenium: 29 Perguntas e Respostas Essenciais para Entrevistas

O desenvolvimento de software é um processo complexo, dividido em várias etapas antes que um aplicativo seja disponibilizado para o público.

Dentro do Ciclo de Vida de Desenvolvimento de Software (SDLC), a fase de testes se destaca por sua importância. É durante essa etapa que os defeitos (bugs) são identificados e se verifica se o aplicativo opera de acordo com o planejado.

No passado, os testes de software eram realizados manualmente por profissionais da área. Contudo, essa abordagem manual é lenta e apresenta diversos desafios. O Selenium surgiu como uma solução para automatizar os testes de software, tornando o processo mais eficiente.

Atualmente, o Selenium é líder de mercado e amplamente utilizado por testadores de software. Se você almeja uma carreira como testador de software, é fundamental estar preparado para responder às perguntas mais comuns sobre Selenium em entrevistas de emprego. Isso lhe dará uma vantagem competitiva sobre outros candidatos.

A seguir, apresentamos uma série de perguntas e respostas sobre Selenium que você poderá encontrar em entrevistas de emprego:

O que é Teste de Automação?

De forma simplificada, o teste de automação é o processo de usar ferramentas de software para escrever e executar testes, com o objetivo de reduzir a intervenção manual. Essa abordagem permite que os testadores utilizem ferramentas específicas para executar tarefas de teste repetidamente.

Quais são os benefícios do teste de automação?

  • Economia de tempo e dinheiro: Testes manuais podem ser caros devido à necessidade de contratar testadores. Testes automatizados, a longo prazo, podem ser mais econômicos.
  • Reutilização de código: Os testes podem ser configurados uma única vez e executados repetidamente.
  • Redução de erros humanos: Testes automatizados diminuem erros, o que aumenta a precisão dos resultados.
  • Ideal para aplicativos de grande escala: Testar um aplicativo pequeno manualmente pode ser fácil, mas conforme o aplicativo cresce, um kit de teste automatizado se torna essencial.

O que é Selenium?

Selenium é um conjunto de ferramentas de teste de automação de código aberto, baseado na interface do usuário da web. Desenvolvido por Jason Huggins em 2004, ganhou popularidade graças a uma forte comunidade de usuários e desenvolvedores. O Selenium suporta diversos navegadores e plataformas.

Quais são as diferentes formas de Selenium?

O Selenium não é apenas uma ferramenta, mas um conjunto de várias ferramentas. As principais formas de Selenium são:

  • Selenium Integrated Development Environment (IDE)
  • Selenium WebDriver
  • Selenium Remote Control (RC)
  • Selenium Grid

Quais linguagens de programação são suportadas pelo Selenium?

  • Python
  • Java
  • C#
  • JavaScript
  • Ruby
  • PHP
  • Perl

Quais tipos de teste são suportados pelo Selenium?

O que é Selenium WebDriver?

O Selenium WebDriver é responsável pela comunicação com os navegadores da web. Essa ferramenta oferece compatibilidade nativa para automatizar diversas tarefas.

O que é Selenium IDE?

O Selenium IDE é um plugin para o Firefox que funciona como uma ferramenta de gravação e reprodução. Ele foi criado para agilizar a criação de scripts de automação.

O que é um Selenium Grid?

Essa ferramenta permite aos usuários distribuir a execução de testes em vários ambientes e plataformas simultaneamente, otimizando o tempo e recursos.

O que é Selenium RC (Controle Remoto)?

O RC é uma ferramenta que possibilita a criação de scripts de teste na linguagem de programação desejada, além de permitir a execução desses scripts em diversos navegadores.

O que significa Selenese?

O Selenium IDE utiliza uma linguagem chamada Selenese, usada para escrever comandos do Selenium. Esses comandos informam ao Selenium quais ações devem ser executadas.

Quais são os tipos de Selenese?

  • Ações: Comandos que manipulam o estado do aplicativo, como “digitar neste campo” ou “clicar neste link”.
  • Acessores: Comandos que determinam o estado do aplicativo e armazenam os resultados em variáveis.
  • Afirmações: Comandos que verificam o estado do aplicativo.

Quais são as abordagens para localizar um elemento no Selenium?

  • ID
  • Nome da classe
  • Nome
  • TagName
  • Texto do link
  • PartialLinkText
  • XPath
  • Seletor CSS
  • DOM

O que é um XPath?

XPath é uma forma de localizar elementos da web com base em seu caminho na Extensible Markup Language (XML). XML é usado para organizar e transportar dados.

“/” e “//” em XPath. Qual é a diferença?

“/” (barra simples) cria um XPath com um caminho absoluto, começando do nó raiz do documento.

“//” (barra dupla) cria um XPath com um caminho relativo, permitindo que a seleção comece de qualquer ponto do documento.

O que é um XPath absoluto?

Um XPath absoluto começa com uma única barra “/”. Esse tipo de caminho segue uma estrutura completa desde a raiz até o elemento desejado.

Diferencie entre findElement() e findElements()

  • findElements(): Localiza todos os elementos correspondentes na página atual e retorna uma lista com esses elementos.
  • findElement(): Encontra o primeiro elemento correspondente na página atual e retorna somente esse elemento.

Quais tipos de anotações são usadas no Selenium?

  • @BeforeSuite
  • @BeforeTest
  • @BeforeClass
  • @BeforeMethod
  • @Test
  • @AfterMethod
  • @AfterClass
  • @AfterTest
  • @AfterSuite

O que são asserções no Selenium?

As asserções verificam se o aplicativo está funcionando conforme o esperado. Se uma asserção falhar, o teste é interrompido e considerado falho.

O que são os comandos Assert e Verify?

  • Assert: Se a condição for verdadeira, o teste continua. Se a condição for falsa, a execução é interrompida.
  • Verify: A execução continua, independentemente de a condição ser verdadeira ou falsa.

O que é a política de mesma origem e como o Selenium lida com isso?

A política de mesma origem é um mecanismo de segurança que restringe como um script ou documento carregado por uma origem interage com recursos de outra origem, ajudando a isolar scripts maliciosos.

O Selenium utiliza um método de injeção de proxy para lidar com essa política. O Selenium Server atua como um proxy HTTP configurado entre o aplicativo em teste e o navegador, mascarando o AUT através de uma URL fictícia.

Qual é o recurso de pausa no Selenium IDE?

A pausa é um comando de espera no Selenium IDE que retarda a execução dos testes automatizados por um tempo especificado, geralmente em milissegundos. Por exemplo, 3000 representa uma espera de 3 segundos.

Por que os testes do Selenium IDE falham?

  • Sites assíncronos: Testes do Selenium são executados em uma ordem específica, mas sites com arquitetura assíncrona podem apresentar respostas fora de ordem.
  • Tempo limite: O Selenium pode falhar se o carregamento de um componente demorar mais do que o esperado. Essa questão pode ser tratada com “esperas”.
  • Bugs: Apesar de o Selenium estar em constante melhoria, podem ocorrer bugs que causam falhas nos testes.
  • Pequenas alterações no código: Modificações em um localizador podem levar à falha dos testes que o utilizam.

O que é o TestNG e quais são alguns de seus recursos?

TestNG é um framework de automação de testes inspirado no JUnit e NUnit. É uma ferramenta de código aberto e gratuita.

Alguns dos recursos do TestNG incluem:

  • Suporte a diferentes tipos de asserções.
  • Possibilidade de executar testes em paralelo.
  • Criação de dependências entre testes usando atributos como ‘dependsOnMethods’ e ‘dependsOnGroups’.
  • Realização de testes baseados em dados.
  • Agrupamento de múltiplos testes.

Qual é a diferença entre Espera Implícita e Espera Explícita?

  • Espera Implícita: Diz ao WebDriver para esperar por um determinado tempo antes de lançar uma exceção. O valor padrão é 0, e após definido, o WebDriver aguarda até que o tempo expire antes de lançar uma exceção.
  • Espera Explícita: Diz ao WebDriver para esperar por certas condições ou ExpectedConditions antes de lançar uma exceção “ElementNotVisibleException”. A Espera Explícita é uma espera “inteligente” que se aplica apenas a elementos específicos.

O que é um repositório de objetos?

Um repositório de objetos é uma coleção de pares chave-valor utilizada em scripts de teste de GUI automatizados, facilitando a manutenção do script. A chave é um nome lógico que identifica os objetos, enquanto o valor contém propriedades que identificam os objetos em uma tela. É também um local central para armazenar e gerenciar dados.

Quais exceções diferentes você pode encontrar em um driver da web Selenium?

Uma exceção é um evento inesperado ou incomum que pode ocorrer durante a execução de um programa, como um erro em tempo de execução que interrompe ou influencia o fluxo normal do programa.

As principais exceções no Selenium Web Driver são:

  • NoSuchWindowException: O WebDriver está tentando mudar para uma janela inválida.
  • NoSuchElementException: Ocorre quando um elemento não pode ser localizado.
  • NoAlertPresentException: Ocorre quando se tenta interagir com um alerta que não está presente.
  • TimeoutException: O comando não foi concluído dentro do tempo especificado.
  • ElementNotVisibleException: Ocorre quando o elemento não está visível na página.
  • ElementNotSelectableException: Ocorre quando um elemento está desabilitado e não pode ser selecionado.
  • SessionNotFoundException: Ocorre quando o WebDriver tenta interagir com um navegador que já foi fechado.

Listar diferentes tipos de localizadores

  • ID
  • Nome
  • Nome da classe
  • TagName
  • Texto do link
  • PartialLinkText
  • Seletor CSS
  • XPath

O que são Breakpoints e Start Points?

  • Start Points (Pontos de Início): Indicam o ponto onde a execução de um código deve começar. Podem ser usados para iniciar um script de teste no meio do código ou em um ponto de interrupção.
  • Breakpoints (Pontos de Interrupção): São usados para interromper a execução do código e verificar se o comportamento está correto.

Finalizando

As perguntas acima são algumas das questões que você pode encontrar em sua próxima entrevista para uma posição de engenheiro de automação de testes. É importante possuir as habilidades necessárias antes de se candidatar para essa função.

Gostou de ler este artigo? Compartilhe com seus colegas e amigos!