Figura - Como implantar um Processo de Teste de Software (básico) eficiente do inícioAdequação e padronização dos testes

Os esforços na execução e aplicação da disciplina de teste de software devem, e a tendência tem se mostrado estar bastante inclinada a isso, começar juntamente, senão antes, do desenvolvimento de qualquer aplicação.

Obedecer, analisar e aplicar as regras funcionais e não-funcionais na construção dos produtos sempre foram os pilares para o sucesso de qualquer organização de tecnologia, e o empenho só pode ser garantido se a formalidade e a constante averiguação estejam alinhadas.

Checklist

Alinhamento e cumprimento dos itens mais conhecidos e comuns

Ao manter uma lista dos itens comuns a serem testados e mantidos garante-se que nada escape ao olhar do testador, da gestão e do cliente.

Garantia de que todos os itens são testados em cada bateria de teste

A utilização de um checklist, manual ou automatizado, deve garantir que a bateria de testes, execute o máximo possível dos steps em seu conteúdo.

Incremento da lista com os itens encontrado e selecionados como necessários

Steps que sejam descobertos tardiamente devem ser incluídos no checklist a fim de demonstrar a preocupação com a qualidade dos testes e do software como um todo.

Aplicação de métodos assertivos

Foco nas regras de negócio como teste secundário, após o checklist ser finalizado

Os testes de regras de negócio, de comportamento ou chamados de funcionais, devem ter um escopo específico dentro da estratégia de testes, visto que podem ser automatizados para futuras baterias de testes funcionais simples, testes funcionais de integração, testes funcionais de regressão e testes unitários de performance, deixando os detalhes não-funcionais somente para os checklists sem onerar tempo ou sobrecarregar os profissionais no momento de cada bateria de teste.

Eficácia, eficiência e satisfação

Conversa alinhada entre os times e principalmente dentro do time de testes

Os times de teste devem ser compostos de pessoas críticas, de pessoas com capacidade de empatia, que conseguem “se colocar no lugar” de outras, de enxergar o mundo sob outra perspectiva, pessoas com o perfil flexível o bastante para questionar, averiguar, pensar como o usuário de software que não possui conhecimento nenhum sobre sistemas computacionais, mas entende muito do seu negócio e sabe exatamente o que quer como resultado na utilização deste software, e por outro lado, ser um especialista em buscar, encontrar e relatar problemas computacionais, visuais, calculados, ortográficos, culturais e psicológicos no software.

Com isso percebemos que as pessoas ideais para pertencerem a um time de testes deve ter um perfil bastante completo e não simplesmente alguém com capacidade de apertar botões de um mouse.

Menores cobrança e retrabalho do time de desenvolvimento

Percepção do retrabalho

Antecipação e eliminação dos problemas/erros mais conhecidos e comuns

A simples utilização de um checklist cria uma empatia entre os times de tal forma que o time de desenvolvimento solicitará em algum momento uma “cópia” do checklist para que possa antecipar e discutir os steps deste, antecipando assim os erros/problemas comuns e executar as atividades de forma a evitá-los, entregando assim novas funcionalidades com mais qualidade e menos passível de retrabalho.

Engajamento

Atenção aos detalhes

A utilização destas ferramentas e artifícios faz com que os detalhes se tornem “amigos” íntimos tanto dos times de teste bem como dos outros times da organização, tornando natural o entendimento de como os serviços de software devem se comportar.

Antecipação de problemas/erros

Devido a toda essa estratégia de execução, gera-se na organização como um todo uma atmosfera de confiança e pró-atividade em cada integrante, fazendo da qualidade um objetivo mais próximo a cada nova tarefa.

Produtividade e maior valor agregado aos produtos entregues

Percepção do valor agregado

Redução do estresse entre os times

A principal melhora percebida imediatamente nos times e nas pessoas é a redução do estresse, visto que a comunicação eficiente se torna um meio muito mais utilizado, todos os times buscam a redução do retrabalho e qualquer “vai-e-volta” de atividades para correção de apenas um item testado em cada bateria de teste.

Testando todos os itens já pensados desde os requisitos como um todo faz com que os testes denotem quase a totalidade os detalhes a serem corrigidos e/ou revisados, evitando situações estressantes de revisar diversas vezes o mesmo serviço (tela ou funcionalidade).

Aumento significativo na produtividade e qualidade dos entregáveis

Contar com a colaboração proativa de praticamente todos os envolvidos cria um ambiente muito propicio à qualidade, pois este comprometimento gera uma significativa otimização do tempo e esforço: fazer mais, com mais atenção em um menor tempo.

Confiança

Simpatia e empatia entre os times

Conforme mencionado anteriormente, se o time de teste busca deixar claro o que será testado, baseado nos requisitos, e apoiando o time de requisitos, fica muito mais claro ao time de desenvolvimento o que se espera dele, ocasionando um ambiente harmonioso, desde a primeira reunião com o cliente até o final do ciclo de vida de qualquer software.

Cumplicidade e relacionamento

Pró-atividade visando a qualidade

Com todas estas iniciativas e a orquestração levada de uma forma natural, contando com o comprometimento de todos, o resultado é com muita certeza um software de qualidade, que agrada ao investidor e à todos os envolvidos (stakeholders).

[Crédito da Imagem: Teste de Software – ShutterStock]