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
|
-
Assegurar direito à propriedade, para a equipe, sobre a qualidade do produto.
-
Testar antecipadamente e continuamente na etapa com integração de capacidades
demonstráveis.
-
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 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).
|