Procurando um testador de emprego? Prepare-se para demonstrar as habilidades do desenvolvedor

Olá novamente. Antecipando o início do curso Java QA Engineer, preparamos um pouco de material que será útil para aqueles que estão apenas começando uma carreira nessa direção.




Testador - quem é?


O engenheiro de garantia de qualidade de software (QA) defende os interesses do usuário final. Ele está desenvolvendo um processo de teste de software que garante qualidade - para que o produto não apenas satisfaça, mas também exceda as expectativas do cliente.

Os seguintes tipos de teste são distintos:

  1. Manual Envolve a familiarização com o produto usando as ferramentas que o consumidor utilizará: teclado, mouse, dedos na tela sensível ao toque.
  2. Regressão. Após adicionar novas funções, o testador deve verificar se o aplicativo manteve suas propriedades operacionais, do ponto de vista do usuário final.
  3. Automatizado. Fornece gravação de código para verificar se o comportamento esperado e real do aplicativo corresponde.

O teste automatizado não é um conceito novo para a indústria de software. O fornecimento gratuito de ferramentas de teste automatizadas para criar um software melhor também não é um conceito novo. O novo é que, graças ao Selenium WebDriver, desenvolvido pela ThoughtWorks e suportado pelo Google, as soluções de código aberto se tornaram aceitáveis, mesmo para empresas acostumadas a trabalhar apenas com software certificado padrão.

O Selenium WebDriver, combinado com o CI / CD, criou um aumento tão grande na demanda por codificadores que a frase "teste manual" desapareceu na maioria das vezes da lista de requisitos para os candidatos. O que tomou o lugar dela? Desenvolvimento de ferramentas de automação.

O testador escreve, de fato, esses testes e cria um ambiente automatizado para suportar a execução de testes e suas análises. Ao fazer isso, ele tenta responder às seguintes perguntas:

  • Que tipos de testes realizamos? Vamos nos concentrar na automatização do conjunto de testes de regressão do navegador através do Selenium WebDriver? Ou também automatizaremos novas funcionalidades?
  • Se usarmos o Selenium WebDriver para automatizar os testes do navegador, vincularemos a Java, Python, C #, JavaScript ou Ruby, por exemplo?
  • Podemos avançar um nível mais adiante na pirâmide de testar Mike Cohen e testar os serviços da web que fornecem ao aplicativo de navegador funcionalidades básicas?
  • Quais soluções de teste se encaixam melhor na linguagem de programação de aplicativos?

Como são realizadas as entrevistas de emprego dos testadores hoje?


Quando cheguei à primeira entrevista após um intervalo de dois anos, tudo estava indo bem ... até o momento em que me pediram para fazer parte do conselho.

"Usando sua linguagem de programação favorita, escreva um método para testar se uma determinada palavra é um palíndromo."

Se eles tivessem me dado essa lição de casa, eu teria sido capaz de descobrir. Mas quando me encontrei na frente do quadro e dois desenvolvedores com rostos de pedra me avaliaram, minha mente se transformou em uma tela em branco.

Depois de lidar com metade da tarefa, comecei a brincar:

  • Se ao menos eu tivesse um laptop com o IntelliJ!
  • Se eu escrevesse o código para um teste automatizado, teria feito muito melhor.

A resposta foi: "Todos os funcionários devem ter programação em um determinado nível mínimo - mesmo para postos de controle de qualidade".

Depois disso, tive que me preparar para uma entrevista para outro emprego ...



Entrevista de redação de código: não apenas para engenheiros de software


Quando fui entrevistado há três anos, só encontrei uma vez escrevendo código. E desta vez incluiu 5 de 7 vagas adequadas para mim. Por que os candidatos à posição de testador estão sujeitos à mesma verificação que os próprios desenvolvedores? A resposta me pareceu estranha:

Porque os testadores hoje são desenvolvedores.

Nos últimos anos, a função de automação passou de testadores que podem escrever código para desenvolvedores que podem testar.

Os desenvolvedores não acham difícil as perguntas feitas pelos testadores na entrevista. Eles não pedem aos candidatos que resolvam a Torre de Hanói ou resolvam equações matemáticas do segundo ano de uma boa universidade técnica.

A maioria dos exemplos de código que eles pedem para escrever estão relacionados a loops, matemática básica, string e manipulações simbólicas.

Por que as entrevistas de escrita de código são tão complicadas?


Os tópicos de atividades podem estar fora da sua área de especialização.

  • Eu costumo trabalhar com a linguagem de programação Java. Ocasionalmente, só tenho que usar uma estrutura de dados mais complexa do que uma tabela de hash.
  • O código que estou escrevendo gira em torno do Selenium WebDriver. Abro o navegador, vou para a página, insiro os dados nos campos de texto, seleciono os botões de opção e funciona!
  • Eu constantemente comparo as strings e verifico se o texto de aviso na tela corresponde ao esperado. No entanto, no meu trabalho diário, eu apenas uso levemente os métodos auxiliares para o método de objeto de string.

Não há IntelliSense para uma entrevista

  • Se eu precisar usar métodos auxiliares em uma string, caractere ou objeto inteiro, basta colocar um ponto após a palavra e os métodos serão exibidos.

Esses testes não permitem o uso de fontes externas de informação.

  • Você não pode usar o fórum especializado ou o StackOverflow.com .

Durante as entrevistas, pode ocorrer um sentimento de isolamento.

  • Quando começo a escrever um teste para um funcional que não conheço, geralmente troco idéias com colegas. Mas durante a entrevista não posso trocar idéias com os entrevistadores. Ou ainda posso? Pareceu-me que eu não podia - às vezes eles não são muito amigáveis.



Como alguém pode se preparar para essas tarefas?


Atualize seu conhecimento

Uma boa opção é fazer alguns cursos de programação online gratuitos.

RTFM


Use o Java Learning Resources da Oracle: “O Guia Java é uma instrução prática para programadores que desejam usar Java para criar aplicativos. O manual inclui dezenas de lições e centenas de exemplos.

Confira a documentação da API


Para trabalhar com uma linguagem de programação, você deve entender os termos básicos listados na documentação da API.

Se a sua principal linguagem de programação é Java, consulte https://docs.oracle.com/javase/8/docs/api/java , concentrando-se nos tópicos de Inteiro , String e Caractere , especialmente:

Funções de string

Precisa encontrar o primeiro caractere em uma string? Use charAt(0) . Descubra se um caractere ou palavra está em uma string? O uso contains . Precisa de um sufixo? Tente endsWith . Você pode verificar se as duas linhas correspondem usando equals e equals equalsIgnoreCase .

Funções de caracteres

As funções booleanas isLetter , isLetterOrDigit , isLowerCase , isUpperCase , isLowerCase , isWhitespace ajudam a familiarizar-se com a natureza dos caracteres. Por exemplo: Character.isLetter('A') será verdadeiro. Ao inserir novos caracteres, coloque-os entre aspas simples, por exemplo: char newCharacter = 'a' .

Funções de número inteiro

Deseja converter um número inteiro? Digite um número inteiro em Integer.toBinaryString(int i) , Integer.toHexString(int i) ou Integer.toOctalString(int i) para convertê-lo no formato desejado.

Prática no papel

Por exemplo, pergunte-se como usar o loop loop para revelar:

  • todos os números inteiros de 1 a 100;
  • todos os números pares (i% 2 == 0) no intervalo de 1 a 100 {1 ... 100}
  • todos os números divisíveis por 3 (i% 3 == 0).

Ou aqui estão os exercícios de corda:

  • escreva um método que pega a string s e retorna o comprimento como um número inteiro s.length ;
  • escreva um método que s.charAt(0) string s e retorne o primeiro caractere s.charAt(0) .

Importante:

  • Tente escrever tudo em letra legível.
  • Não esqueça de abrir e fechar os suportes corretamente.
  • Crie testes de validação para seu código. Funcionará se a string consistir em apenas um caractere? E se fora de 100? E se 0?

Observe o erro da unidade não contabilizada em ciclos:

  • Ao contar caracteres em uma string ou no primeiro índice de uma matriz, o número n é considerado no intervalo de 0 a n-1 . Ou seja, o primeiro caractere é (0) e o último é (comprimento - 1).
  • O loop for (for i = 0; i < 5; i++) termina com o número 5. Se você exibir isso, 0, 1, 2, 3, 4. serão exibidos lá. Para exibir mais 5, insira i <= 5 .

Na segunda parte do artigo, falaremos sobre por que as entrevistas de codificação são tão complicadas. E isso é tudo por hoje. Informações mais interessantes podem ser obtidas no webinar gratuito , que será realizado em 19 de dezembro.

Source: https://habr.com/ru/post/pt480800/


All Articles