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!