Saltar para o conteúdo
Recrutamento em TI
os testes de garantia de qualidade estão mortos e são necessárias competências de garantia de qualidade?

Os engenheiros de garantia de qualidade ainda são necessários?

Recrutamento em TI
os testes de garantia de qualidade estão mortos e são necessárias competências de garantia de qualidade?

Não há como negar que o mundo está em constante mudança. Graças à Web, à automatização e às capacidades de processamento de dados dos computadores modernos, a fronteira entre humanos e máquinas tornou-se difusa. Como é que isso afecta as TI e os testes de garantia de qualidade em particular? E, finalmente, que competências de garantia de qualidade fazem com que os grandes testadores de garantia de qualidade sejam, bem, grandes?

O conjunto ideal de competências de GQ

À medida que nos tornamos mais dependentes da IA e da automação, o papel dos testadores de QA também mudou. Será que existe um testador de controlo de qualidade ideal? Provavelmente não. No entanto, aqui estão as competências de GQ normalmente partilhadas por grandes testadores de GQ:

  • Competências em matéria de bases de dados - capacidade de verificar ou extrair dados de bases de dados sem a ajuda de ninguém
  • Competências de codificação - compreender o código-fonte e procurar casos extremos de forma mais eficiente
  • Capacidade de escrever testes de automatização utilizando o Geb ou o RestAssured, que permitem ao testador avaliar a interface do utilizador e a API
  • A capacidade de analisar os registos, ou mesmo utilizar o SSH para iniciar sessão num servidor, analisar alterações no código e encontrar a razão pela qual o erro ocorre. Isto não quer dizer que os testadores devam ser capazes de analisar problemas com transacções ou condições de corrida. Ainda assim, ser capaz de encontrar um ponto de exclamação ausente na instrução if é definitivamente um benefício
  • Capacidade de efetuar uma análise comercial dos requisitos ou mesmo de assumir a responsabilidade pelos mesmos

Os macacos têm competências de controlo de qualidade?

Tenho ouvido opiniões contraditórias sobre o papel dos testadores manuais. Algumas pessoas acreditam que o papel poderia ser facilmente preenchido por macacos treinados. Outros pensam que o trabalho requer um conjunto específico de competências.

Onde está a verdade?

Como de costume, como em todas as coisas relacionadas com as TI, no meio.

Algumas pessoas pensam que os testes podem ser realizados por utilizadores comuns de aplicações. Acreditam que contratar 20 testadores juniores é tão bom como utilizar o Amazon Mechanical Turk. A questão é: será que clicar "ao acaso" numa aplicação para encontrar problemas pode ser eficaz? Duvido muito. Embora possa cobrir caminhos positivos (uma vez que é assim que a maioria das pessoas utiliza as aplicações), é provável que alguns erros graves não sejam detectados. Podemos muito bem pedir aos nossos filhos que façam isso, certo?

as crianças têm competências de garantia da qualidade

Competências de garantia da qualidade em ação

Um bom verificador de controlo de qualidade tem excelentes capacidades analíticas muito específicas. Os bons testadores são inquisitivos e procuram problemas, ou fazem "nitpick", se preferir.

Atualmente, os analistas não costumam envolver-se em projectos de TI. Por esse motivo, algumas das suas responsabilidades foram assumidas pelos testadores. Isto deve-se ao facto de as competências de QA implicarem ser curioso em relação aos requisitos e questioná-los a todo o momento.

Deixe-me explicar isto utilizando uma conversa hipotética entre um testador de controlo de qualidade, um cliente e um programador de software. Ao olhar para um requisito simples, digamos "entrega gratuita ao encomendar 5 livros", o programador de software vê uma simples declaração "se". Se o número de livros for igual ou superior a 5, o custo de entrega é definido como 0. Fim da história.

Um bom testador é suscetível de dizer: "Esse é um requisito muito curto. Nem sequer cobre a maioria dos cenários". E depois começam a fazer perguntas incómodas.

TESTADOR: "E se apenas 2 dos livros encomendados estiverem em stock? E os restantes três forem enviados numa segunda encomenda? Ambas as encomendas são elegíveis para entrega gratuita?"

CLIENTE: "Erm, não. Um total de cinco livros tem de ser entregue numa só encomenda."

DESENVOLVEDOR DE SOFTWARE: "Isso é outro "se".

TESTADOR: "E se eu encomendar uma máquina de lavar loiça e cinco livros? A minha encomenda tem direito a entrega gratuita?"

CLIENTE: "Não, claro que não. A oferta só é válida se estiver a encomendar livros."

DESENVOLVEDOR DE SOFTWARE: "Desculpe, isso é outro 'se'"

TESTADOR: "E se eu receber 4 livros electrónicos e um livro?"

CLIENTE: "A oferta só é válida para livros impressos."

DESENVOLVEDOR DE SOFTWARE: "Acho que precisamos de fazer as estimativas outra vez".

Como vê, os testadores de GQ e os programadores de software têm mentalidades diferentes e conjuntos de competências diferentes. Por essa razão, é impossível para os programadores assumirem a GQ na totalidade.

Os computadores vão assumir o controlo dos testes de garantia de qualidade?

Atualmente, não é preciso quase nenhum tempo para passar da construção de um pacote para a sua produção, apenas 15 a 60 minutos. Isto praticamente exclui uma avaliação manual da qualidade. No passado, testar grandes projectos demorava semanas. Não há maneira de comprimir isso num par de horas, a menos que os testes sejam automatizados.

Como é que os computadores podem ajudar nos testes? Bem, todos os testes de regressão são repetitivos e, quando se trata de tarefas repetitivas, os computadores têm as suas próprias vantagens. São rápidos, fiáveis e consistentes. Não cometem erros. Afinal de contas, errar é ser humano, certo?

As máquinas não têm dias maus. E nunca estão de ressaca. Também é mais fácil calcular o tempo que demoram a concluir uma tarefa.

Quem deve construir testes automatizados?

Automatizar os testes é realmente o caminho a seguir. Portanto, a pergunta certa a ser feita neste momento é quem deve construir testes automatizados? Eu acredito que eles devem ser construídos por testadores que tenham tanto habilidades de QA quanto, pelo menos, habilidades básicas de codificação, com ênfase na primeira.

De facto, este conjunto de competências desejáveis segue normalmente um percurso profissional comum:

Testador manual -> Testador de automatização -> Programador de software

A mudança para o desenvolvimento de software é frequentemente causada por esgotamento ou insatisfação salarial (que está lentamente a tornar-se menos problemática, uma vez que os empregadores estão a começar a valorizar os bons engenheiros de testes). Dito isto, acredito que a primeira transição de testes manuais para testes automatizados é obrigatória.

Muitos testadores são capazes de escrever consultas para bases de dados relacionais e não relacionais. O passo seguinte é aprender competências básicas de codificação. Há uma série de recursos que permitem às pessoas aprender Python, Java ou Groovy. Existem cursos gratuitos e pagos, tutoriais, apresentações em conferências, livros, ebooks... É só escolher.

Criar uma estrutura de testes de aceitação confortável para um projeto requer muito mais competências e muito mais experiência do que é necessário para escrever cenários com ela. Os grandes testadores continuam a aprender para expandir a sua perspetiva e são também naturalmente curiosos. Isso os torna as melhores pessoas para construir os frameworks. É essa combinação única de competências e qualidades que os torna tão valiosos.

Sem dúvida, a automação irá assumir parte do trabalho dos testadores de QA. O importante, porém, é que complementará os humanos, e não se tornará um substituto para eles. Essencialmente, libertará os testadores para que se possam concentrar na parte humana (criativa) do trabalho. Desta forma, podem concentrar-se na qualidade global do produto em vez de "apenas" eliminarem os erros.

Competências de controlo de qualidade

Os testes que avaliam as competências de garantia da qualidade baseiam-se num princípio simples: os candidatos recebem um sistema totalmente funcional com um conjunto de requisitos comerciais. Têm de escrever testes para provar que o sistema cumpre todos esses requisitos. Em seguida, verificamos se esses testes são capazes de detetar todos os potenciais erros introduzidos no sistema.

Se quer começar a testar as competências de GQ, tenho óptimas notícias para si. Acabámos de lançar os nossos testes de avaliação das competências de GQ. Pode encontrá-los abaixo e no nosso catálogo de testes de codificação:

unidade
MEIO
Competências testadas
Duração
85 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de .NET, .NET Core, ML.NET, QA, Ensaios, xUnidade, NUnit

Lacunas no código

avaliar o conhecimento de NUnit, QA

Tarefa de programação - Nível: Médio

QA | .NET | NUnit | Testes para a API do sistema de gestão de documentos - Implementar um teste NUnit que verifica os requisitos comerciais para uma API de documentos para um sistema de gestão de documentos

junta
MEIO
Competências testadas
Duração
64 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de JUnit, QA

Lacunas no código

avaliar o conhecimento de JUnit, JUnit4, QA, JUnit 5, Java

Tarefa de programação - Nível: Médio

QA | JUnit | Serviço ATM | Autenticação e validação de depósitos - Escreva casos de teste para verificar o software da Caixa Automática (ATM).

junta
MEIO
Competências testadas
Duração
66 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de QA, Ensaios, Testes unitários, Testes manuais

Lacunas no código

avaliar o conhecimento de JUnit 5, Java, QA

Tarefa de programação - Nível: Médio

QA | JUnit | Serviço ATM | Autenticação e validação de depósitos

.NET
JÚNIOR
Competências testadas
Duração
36 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de .NET, NUnit, QA

Lacunas no código

avaliar o conhecimento de NUnit, QA

Tarefa de programação - Nível: Fácil

QA | .NET, NUnit | Testes unitários de software para máquinas de café - Escreva os testes no formato NUnitExercise.Tests/CandidateTests.cs para verificar a classe Máquina de caféPrincipal classe.

Selénio
MEIO
Competências testadas
Duração
48 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de QA, Selénio, .NET, C#

Lacunas no código

avaliar o conhecimento de Java, QA, Selénio

Tarefa de programação - Nível: Médio

QA | .NET, Selenium | Extração de dados - Implementar métodos na classe SeleniumTask.SeleniumExecutor para passar com êxito todos os testes.

.NET
SENIOR
Competências testadas
Duração
51 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de .NET, NUnit, QA

Lacunas no código

avaliar o conhecimento de NUnit, QA

Tarefa de programação - Nível: Difícil

QA | .NET, NUnit | Testes unitários do serviço de correio eletrónico - Escreva testes na classe NUnitExercise.Tests/CandidateTests.cs para verificar a classe do serviço de correio eletrónico

.net
SENIOR
Competências testadas
Duração
52 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de .NET, QA, NUnit, Ensaios, C#, Selénio

Lacunas no código

avaliar o conhecimento de QA, .NET, NUnit

Tarefa de programação - Nível: Difícil

QA | .NET, NUnit | Interface do gerador de dados comerciais - Implementar os testes NUnit para o IDataProcessing na interface NUnitDataProcessing.Tests.DataProcessingTest projeto que verifica os requisitos comerciais.

junta
MEIO
Competências testadas
Duração
73 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de Java e QA

Lacunas no código

avaliar o conhecimento de Java e QA

Tarefa de programação - Nível: Médio

QA | Java, JUnit | Máquina de venda automática - Escrever testes unitários para a verificação de uma máquina de venda automática.

Java
MEIO
Competências testadas
Duração
39 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de Java

Lacunas no código

avaliar o conhecimento de JUnit 5, Java, QA

Tarefa de programação - Nível: Médio

Java | JUnit | Flight Manager - Implementar as funcionalidades em falta na aplicação responsável pela gestão dos dados dos voos.

Selénio
SENIOR
Competências testadas
Duração
81 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de QA, .NET, C#, Selénio

Lacunas no código

avaliar o conhecimento de QA .NET, C#, Selénio

Tarefa de programação - Nível: Difícil

QA | .NET | Selenium, C#, JavaScript | Teste da página inicial - Implemente soluções com base nos seus conhecimentos de teste de cookies e dos métodos JavaScript do Selenium utilizando C# e verificando os separadores do browser a partir do Selenium.

Quando se reduz o número de candidatos, é possível aprofundar o conjunto de competências de cada um numa entrevista de avaliação de competências.

TLDR

Os testadores de garantia de qualidade estão a extinguir-se? De modo algum.

Precisam de mudar para sobreviver? Sem dúvida que sim.

O programador de software comum pode substituir um verificador de controlo de qualidade? Duvido muito.

Qual é a sua opinião?

Comece a utilizar
DevSkiller hoje

Descubra como o DevSkiller pode ajudá-lo a crescer.