O problema fundamental do teste

Introdução

Boa tarde, residentes de Khabrovsk. Agora há pouco eu estava resolvendo uma tarefa de teste para uma vaga de líder de controle de qualidade para uma empresa fintech. A primeira tarefa, criar um plano de teste com uma lista de verificação completa e exemplos de casos de teste para testar uma chaleira elétrica, pode ser resolvida trivialmente:

Mas a segunda parte acabou sendo uma pergunta: “Existe algum problema comum a todos os testadores que os impeça de trabalhar com mais eficiência?”

A primeira coisa que me veio à mente foi listar todos os problemas mais ou menos perceptíveis que encontrei durante os testes, eliminar as pequenas coisas e resumir o resto. Mas rapidamente percebi que o método indutivo responderia a uma questão que não se aplicava a “todos”, mas, na melhor das hipóteses, apenas à “maioria” dos testadores. Portanto, resolvi abordar pelo outro lado, dedutivamente, e foi isso que aconteceu.

Definições

A primeira coisa que costumo fazer ao resolver um novo problema é tentar entender do que se trata, e para isso preciso entender o significado das palavras que o colocam. As palavras-chave a serem compreendidas são as seguintes:

  • problema
  • testador
  • trabalho de testador
  • eficiência do testador

Vamos recorrer à Wikipedia e ao bom senso:
Problema (grego antigo πρόβλημα) em sentido amplo - uma questão teórica ou prática complexa que requer estudo e resolução; na ciência - uma situação contraditória que aparece na forma de posições opostas na explicação de quaisquer fenômenos, objetos, processos e requer uma teoria adequada para resolvê-la; na vida, o problema é formulado de uma forma compreensível para as pessoas: “Eu sei o que, não sei como”, ou seja, sabe-se o que precisa ser obtido, mas não se sabe como fazê-lo . Vem de tarde. lat. problema, do grego. πρόβλημα “lançado para frente, colocado na frente”; de προβάλλω “jogue para frente, coloque na sua frente; culpa".

Na verdade, não faz muito sentido “problema” = “qualquer coisa que precise ser resolvida”.
Testador - um especialista (não vamos dividir em tipos, pois todos os testadores nos interessam) que participa do teste de um componente ou sistema, cujo resultado é:
Trabalho do testador — um conjunto de atividades relacionadas com testes.
Eficiência (lat. effectivus) - a relação entre o resultado alcançado e os recursos utilizados (ISO 9000: 2015).
Resultado - consequência de uma cadeia (série) de ações (resultado) ou eventos, expressas qualitativa ou quantitativamente. Os resultados possíveis incluem vantagem, desvantagem, ganho, perda, valor e vitória.
Tal como acontece com o “problema”, há pouco significado: algo que surgiu como resultado do trabalho.
recurso - a possibilidade quantitativamente mensurável de realizar qualquer atividade de uma pessoa ou pessoas; condições que permitem utilizar certas transformações para obter o resultado desejado. O testador é uma pessoa e, de acordo com a teoria dos recursos vitais, cada pessoa é proprietária de quatro ativos econômicos:
o dinheiro (renda) é um recurso renovável;
a energia (força vital) é um recurso parcialmente renovável;
o tempo é um recurso fixo e fundamentalmente não renovável;
o conhecimento (informação) é um recurso renovável, faz parte do capital humano que pode crescer e ser destruído[1].

Gostaria de salientar que a definição de eficiência no nosso caso não é totalmente correta, pois quanto mais conhecimento utilizamos, menor é a eficiência. Portanto, eu redefiniria eficiência como “a relação entre os resultados alcançados e os recursos despendidos”. Então está tudo correto: o conhecimento não é desperdiçado durante o trabalho, mas reduz os custos do único recurso fundamentalmente não renovável do testador - o seu tempo.

Solução

Portanto, procuramos problemas globais dos testadores que prejudiquem a eficácia do seu trabalho.
O recurso mais significativo que se gasta no trabalho de um testador é o seu tempo (o resto pode ser reduzido a ele de uma forma ou de outra), e para que possamos falar sobre o cálculo correto da eficiência, o resultado também deve ser reduzido ao tempo .
Para isso, considere um sistema cuja viabilidade o testador garanta através do seu trabalho. Tal sistema é um projeto cuja equipe inclui um testador. O ciclo de vida do projeto pode ser representado aproximadamente pelo seguinte algoritmo:

  1. Trabalhando com Requisitos
  2. Formação de especificações técnicas
  3. Desenvolvimento
  4. Teste
  5. Lançamento em produção
  6. Suporte (vá para o item 1)

Neste caso, todo o projeto pode ser dividido recursivamente em subprojetos (features), com o mesmo ciclo de vida.
Do ponto de vista do projeto, quanto menos tempo gasto nele, mais eficaz é a sua implementação.
Assim, chegamos à definição da máxima eficiência possível de um testador do ponto de vista do projeto - este é o estado do projeto quando o tempo de teste é zero. Um problema comum para todos os testadores é a incapacidade de atingir esse tempo.

Como lidar com isso?

As conclusões são bastante óbvias e têm sido utilizadas por muitos há muito tempo:

  1. O desenvolvimento e os testes devem começar e terminar quase simultaneamente (isso geralmente é feito pelo departamento QA). A opção ideal é quando toda a funcionalidade em desenvolvimento já estiver coberta por autotestes no momento em que estiver pronta, organizada em testes de regressão (e, se possível, pré-commit) usando algum tipo de CI.
  2. Quanto mais recursos um projeto tiver (quanto mais complexo ele for), mais tempo terá que ser gasto para verificar se a nova funcionalidade não quebra a antiga. Portanto, quanto mais complexo o projeto, mais automação é necessária teste de regressão.
  3. Cada vez que perdemos um bug na produção e um usuário o encontra, temos que gastar mais tempo percorrendo o ciclo de vida do projeto começando do ponto 1 (Trabalhando com requisitos, neste caso, usuários). Como as razões para a falta de um bug são geralmente desconhecidas, ficamos com apenas um caminho de otimização - cada bug encontrado pelos usuários deve ser incluído no teste de regressão para ter certeza de que não aparecerá novamente.

Fonte: habr.com

Adicionar um comentário