O software é refinado por meio de iterações no ciclo de vida de desenvolvimento de software do RUP. O ciclo de vida do
teste se beneficia de seguir uma abordagem iterativa equivalente neste ambiente de processo. Em cada iteração, a equipe
de desenvolvimento de software produz uma ou mais construções, com cada construção sendo uma potencial sugestão para
teste.
O foco e os objetivos da equipe de desenvolvimento diferem de uma iteração para outra. Portanto, os membros da equipe
de teste devem estruturar seus esforços de teste apropriadamente. Sugerimos manter a quantidade do planejamento e
design de teste detalhado e direto em um mínimo e, onde precisar fazer isso, tentar produzir este trabalho o mais
próximo possível da hora em que ele será utilizado. Também recomendamos tratar do desenvolvimento de teste detalhado e
direto não mais cedo que uma iteração adiantada.
Inclusões, refinamentos e exclusões são feitos nos testes implementados e executados para cada construção. Alguns
desses testes são retidos e acumulados em um conteúdo de testes, que são utilizados para regressão ao testar
construções subseqüentes utilizadas em cada ciclo de teste futuro. Essa abordagem retrabalha e revisa os testes durante
todo o processo, assim como o software em si é revisado. Não há nenhuma especificação de software congelada e nem
testes congelados. A figura a seguir ilustra como os testes evoluem ao longo do tempo.
Nesta abordagem iterativa, combinada com o uso de arquiteturas de componentes, é necessário considerar o teste para
regressões na qualidade do produto em cada construção subseqüente. Quaisquer testes desenvolvidos na iteração X são
potenciais sugestões para o teste de regressão na iteração X+1, na iteração X+2 e assim por diante. Quando houver
possibilidade de repetição do mesmo teste várias vezes, convém considerar a automatização do teste. A automatização do
teste fornece uma abordagem para o teste repetido de cenários de uso e libera a equipe de teste para explorar o teste
em novas áreas funcionais.
Observe o ciclo de vida do teste sem considerar o restante do projeto. A figura a seguir mostra a divisão dos detalhes
do trabalho para a disciplina Teste em uma determinada iteração.
Este ciclo de vida se alinha com o ciclo de iteração seguido pelo restante da equipe de desenvolvimento. A Iteração
começa com uma investigação pela equipe de teste, que negocia com o Coordenador de Projetos e outros investidores em
relação ao trabalho de teste mais útil que pode ser realizado na próxima iteração. A maioria dos membros da equipe de
teste tem participação nesse esforço de trabalho.
Geralmente cada iteração contém pelo menos um ciclo de teste, conforme mostrado na próxima figura. É uma prática muito
comum de várias construções serem produzidas para cada Iteração e de um ciclo de teste ser alinhado com cada
construção. No entanto, em alguns casos, construções específicas não são testadas.
Com o principal esforço de teste em curso, um subconjunto dos membros da equipe pode estar investigando novas técnicas
de teste. Esse esforço tenta provar que as técnicas funcionam para que a equipe possa contar com elas, especialmente em
iterações subseqüentes.
O ciclo de vida do teste faz parte do ciclo de vida do software; eles devem ser iniciados em um período de tempo
equivalente. O processo de design e desenvolvimento de testes pode ser tão complexo quanto o processo de
desenvolvimento do software em si. Se os testes não forem iniciados juntamente com os primeiros releases executáveis do
software, o esforço de teste retardará a descoberta de muitos problemas no ciclo de desenvolvimento. Em geral, isso
resulta em um longo período de correção de erros após a programação de desenvolvimento, acabando com as metas e as
vantagens do desenvolvimento iterativo.
Embora as tarefas de planejamento e definição de teste com início antecipado possam expor falhas ou imperfeições no
trabalho de especificação inicial, é recomendável escolher o trabalho de teste com cuidado e antecedência. Além da
possibilidade de retrabalho já mencionado, a equipe de teste precisa ter cuidado para manter sua função como
orientadora de qualidade imparcial e não se desviar dos requisitos e das tarefas de design iniciais, atuando como
"guardiã da qualidade". Por sua própria natureza, as tentativas antecipadas da equipe do projeto de compreender os
espaços de problema e solução falharão. Criar demandas insensatas sobre a qualidade desse trabalho inicial põe em risco
a alienação da equipe de teste em relação ao restante do grupo de desenvolvimento.
Os problemas localizados durante uma iteração podem ser resolvidos na mesma iteração ou adiados para a próxima, uma
decisão que fica, em última instância, a critério da função Coordenador de Projeto. Uma das principais tarefas da
equipe de teste e dos coordenadores de projeto consiste em medir a abrangência da iteração, verificando se os objetivos
descritos no Plano de Iteração foram alcançados. Há a "descoberta contínua de requisitos" de uma iteração para outra. É
algo que você precisa estar ciente e preparado para gerenciar.
Como os testes serão executados depende de vários fatores:
-
o domínio do aplicativo
-
o orçamento
-
a política da empresa
-
a tolerância de risco
-
a equipe
Quanto você deve investir em teste depende de como você avalia qualidade e tolera riscos em seu ambiente.
|