Brian Mackey está certo sobre o TDD ser útil - e qualquer teste unitário irá melhorar as coisas drasticamente. Como testador, posso dizer a você que um conjunto completo de testes de unidade reduz drasticamente o número de bugs, e limita os bugs funcionais restantes a algumas áreas previsíveis nas quais posso concentrar meus testes (principalmente pontos de integração interações ambientais). Isso simplifica a cobertura de teste e torna os testes mais rápidos.
Outras ideias:
- Envolva o controle de qualidade o mais rápido possível. Se você não tem pelo menos um especialista em controle de qualidade sentado em todas ou quase todas as reuniões, começando com o estágio de design, você está perdendo muito valor. Testadores seniores podem ajudar a encontrar falhas de design, apresentar pequenos recursos que acelerarão muito os testes e podem começar a planejar a estratégia de teste mais cedo quando estiverem envolvidos em reuniões de design.
- Obtenha requisitos bons e sólidos, obtenha-os cedo e faça o controle de qualidade revisá-los. Um bom especialista em controle de qualidade encontrará falhas nos requisitos que ninguém pensou em abordar. Às vezes, coisas que são pequenos detalhes para desenvolvedores são enormes bloqueadores para QA (por exemplo, as especificidades das regras de negócios; dev pode construir o framework para regras e depois adicionar as regras reais com pouco esforço, mas testes não podem ser escritos até os detalhes são conhecidos). Os piores ciclos de teste que vi foram quando o pessoal da BA não obteve requisitos claros, atrasou-os ou comunicou modificações aos requisitos verbalmente aos desenvolvedores sem notificar o QA. Além disso, a automação de testes não pode ser desenvolvida simultaneamente com o desenvolvimento de produtos sem bons requisitos antecipadamente.
- Desenvolva mais incrementalmente . Não deite todo o produto para o controle de qualidade, mas entregue as peças ao longo do ciclo de desenvolvimento à medida que elas forem concluídas para testes de componentes e testes de integração de componentes. Técnicas ágeis de desenvolvimento são ótimas para reduzir os ciclos de testes e distribuí-los de forma mais suave durante todo o projeto, para que você não tenha um grande rosnado no final.
- Se você tiver desenvolvedores ou testadores que leiam código trabalhando em QA, faça-os fazer revisões de código , bem como desenvolvedores (para que um dev e um QA revisem cada mudança de código principal). Isso ajuda o QA a aprender a base de código e o sistema, além de fornecer uma perspectiva focada na qualidade do código.
- Use mais automação no seu processo de controle de qualidade . Limite o teste manual para algumas áreas bem definidas. Testes automatizados podem ser desenvolvidos antes que o desenvolvimento do componente seja concluído, possa ser executado à noite e exija relativamente poucos recursos depois de desenvolvido. Embora você provavelmente invista mais recursos de teste na automação, muito do tempo do testador acontecerá antes do 'gargalo de teste', quando o tempo do testador for barato.
- Assegure-se de que os desenvolvedores tornem os testadores que trabalham e os que desbloqueiam uma prioridade alta durante todo o ciclo de desenvolvimento. Quando você desencoraja um testador de fazer perguntas, aprender o sistema e, geralmente, fazer o seu trabalho, você adquire dívida técnica. Os desenvolvedores podem não perceber isso porque você não paga juros sobre essa dívida até chegar à fase de teste; o custo é externalizado dos desenvolvedores.
- Automatize a configuração do ambiente de teste. É demorado e a maioria dos testadores precisa fazer isso pelo menos diariamente para acompanhar as correções de bugs. Um testador deve poder instalar o (s) produto (s) inteiro (s) com um único comando.