Conceito: Focalizar Continuamente na Qualidade
Esse princípio introduz qualidade e descreve como conduzi-la através do processo.
Descrição Principal

Introdução

Esse princípio enfatiza que, para obter qualidade, é preciso um acompanhamento por todo o ciclo de vida do processo. Um processo repetitivo é particularmente adaptado, para obter qualidade desde que ofereça muitas oportunidades de medida e correção.

            
Benefícios
  • Maior qualidade 
  • Percepção prévia no progresso e na qualidade
Padrão
  1. Assegurar direito à propriedade, para a equipe, sobre a qualidade do produto.
  2. Testar antecipadamente e continuamente na etapa com integração de capacidades demonstráveis.
  3. Construir incrementalmente a automação do teste.
Antipadrões
  • Revisar previamente todos os artefatos e concluir todos os testes da unidade antes do teste de integração.
  • Conduzir revisões detalhadas de todos os artefatos intermediários, que são contra-produtivos pois atrasam o teste do aplicativo e conseqüentemente a identificação de problemas maiores.
  • Concluir todos os teste da unidade antes de fazer o teste de integração, novamente retarda a identificação de problemas maiores.

Discussão 

Melhorar a qualidade não é simplesmente "atender os requisitos," ou produzir um produto que atenda às necessidade do usuário e suas expectativas. Certamente, a qualidade também inclui identificar as medidas e critérios que demonstram sua realização, assim como a implementação de um processo para garantir que o produto atinja o grau desejado de qualidade, e que isso possa ser repetido e gerenciado.

Assegurar alta qualidade requer mais do que a participação da equipe de teste; requer que toda a equipe aproprie-se da qualidade. Isso envolve todos os membros da equipe e todas as partes no ciclo de vida.

  • Análises são responsáveis por garantir que os requisitos sejam testados, e que tenham sido claramente especificados para que os teste sejam realizados.
  • Desenvolvedores precisam projetar os aplicativos com o teste em mente, e devem ser responsáveis pelo teste de seus códigos.
  • Gerenciadores precisam assegurar que os planos de teste estejam no lugar correto e que os recursos certos estejam no lugar para construir o testware e executar os testes requeridos.
  • Testadores são peritos em qualidade. Orientam o restante da equipe em questões de qualidade do software, e são responsáveis por todo teste do produto (inclusive funcional, sistema e desempenho).

Quando temos um problema de qualidade, todo membro da equipe deve estar envolvido na busca da solução.

Um dos maiores benefícios do Desenvolvimento Repetitivo é o fato de ativar uma abordagem de teste no início e continuamente, conforme ilustrado abaixo. Na medida em que chegamos ao fino de um projeto, e desde que as capacidades mais importantes tenham sido implementadas antecipadamente, o software mais essencial poderá ficar  ficará executando por meses, e, portanto, ele é  será testado por meses. Não é surpresa que muitos projetos adotem o desenvolvimento repetitivo afirmando que seu resultado é um aumento na qualidade, como resultado tangível do processo aprimorado.

O software desenvolvido em cada iteração é testado conforme é desenvolvido. O teste de regressão assegura que novos defeitos não serão introduzidos neste processo.

O Teste é Iniciado Antecipadamente e Expandido para Cada Iteração
O desenvolvimento repetitivo ativa testes no início. O software desenvolvido em cada iteração é testado na medida em que é construído. O teste e regressão assegura que novos defeitos não sejam introduzidos como novas iterações incluídas funcionalmente. Referência: Material de Suporte: Gerenciamento de Qualidade.

Na medida em que construímos incrementalmente nosso aplicativo, devemos também construir incrementalmente automação de teste de build para detectar defeitos antecipadamente, enquanto minimiza os investimentos diretos. Quando projetamos nosso sistema, consideramos como ele deve ser testado. A tomada das decisões corretas sobre o design pode melhorar em muito nossa capacidade de automatizar o teste. Devemos também ser capazes de gerar código de teste diretamente de modelos de design. Isso poupa tempo, cria incentivos para testes antecipados e aumenta a qualidade do teste minimizando o número de erros no software de teste. O teste automatizado tem sido uma área de interesse para, dentro outros, a comunidade ágil, cujo objetivo é automatizar o teste de todo código, e onde os testes são gravados antes da gravação do código (design de teste primeiro).