Papéis e Atividades >
Conjunto de Papéis do Testador >
Testador >
Implementar Conjunto de Testes
Atividade:
| ||||||||||||||||||||||||||||||||||||||||||||
| Detalhamentos do Fluxo de Trabalho: |
| Finalidade: | Compreender os Conjuntos de Testes e selecionar as sugestões a serem implementadas. |
Comece revendo as descrições existentes para os Conjuntos de Testes e determine quais Conjuntos de Testes são boas sugestões para a implementação no momento atual. Use o Plano de Teste de Iteração, as Listas de Idéias de Teste e os Casos de Teste como base de sua decisão.
| Finalidade: | Compreender os relacionamentos entre os Itens de Teste-Alvo e os Scripts de Teste disponíveis. |
Para cada Conjunto de Testes selecionado, identifique quais Itens de Teste-Alvo e Scripts de Teste associados são sugestões para o Conjunto de Testes.
| Finalidade: | Identificar todas as dependências dos Scripts de Teste, em termos de estado do sistema e em termos de outros Scripts de Teste. |
Comece considerando a Configuração do Ambiente de Teste e o estado inicial específico do sistema. Considere quais requisitos específicos de configuração serão definidos, como o conjunto de dados inicial para bancos de dados dependentes. Quando uma Configuração de Ambiente-Alvo for usada para vários Conjuntos de Testes, identifique as configurações que talvez precisem ser gerenciadas por cada Conjunto de Testes, como configurações da Resolução de Vídeo ou Configurações Regionais.
Agora, determine qualquer relacionamento específico entre os Scripts de Teste. Procure por dependências em que a execução de um Script de Teste incluído no Conjunto de Testes resultará em uma mudança no estado do sistema necessária como precondição de um outro Script de Teste.
Após identificar todas essas dependências, determine a seqüência correta de execução para os Scripts de Teste dependentes.
| Finalidade: | Aumentar a manutenibilidade do Conjunto de Testes, reutilizando componentes existentes e consolidando novos componentes. |
Um dos principais desafios para manter um Conjunto de Testes principalmente em um conjunto automatizado é garantir que as mudanças contínuas sejam fáceis de serem efetuadas. Recomenda-se que, sempre que possível e conveniente, você mantenha um ponto central de modificação para os elementos usados em vários locais. Faça isso especialmente se esses mesmos elementos provavelmente forem alterados.
Embora os Scripts de Teste formem unidades naturais de modularidade, seu agrupamento em um Conjunto de Testes geralmente identifica elementos de procedimento duplicados em vários Scripts de Teste que poderiam ser mantidos de forma mais eficaz se fossem consolidados. Aproveite para identificar qualquer possível Script de Teste que possa ser refatorado para ajudar na manutenção contínua.
| Finalidade: | Fatorar um comportamento complexo de suporte de implementação de teste como funções de utilitário simplificadas. |
A maioria dos esforços de teste requer o uso de um ou mais "utilitários" que geram, reúnem, fazem o diagnóstico, convertem e comparam as informações usadas durante a implementação e a execução dos testes. Esses utilitários normalmente simplificam tarefas complexas e trabalhosas que estariam propensas a erros se fossem executadas manualmente. Este passo é relativo à aplicação de funções de utilitário existentes dentro do Conjunto de Testes e à identificação de novos utilitários necessários.
Recomenda-se simplificar as interfaces com esses utilitários, encapsulando todas as complexidades possíveis dentro da implementação privada do utilitário. Também convém desenvolver o utilitário de modo que ele possa ser reutilizado onde for necessário para esforços de teste manuais e automatizados.
Recomenda-se que você não oculte as informações que caracterizam um teste individual dentro desses utilitários: em vez disso, limite o utilitário à mecânica complexa de reunir informações ou comparar valores reais com os resultados esperados etc., mas, sempre que possível, passe as características específicas de cada teste individual como input de e retorne os resultados reais individuais como saída para um Script de Teste ou Conjunto de Testes de controle.
| Finalidade: | Permitir que Conjuntos de Testes sejam recuperados sem requisitar uma nova execução completa do Conjunto de Testes. |
Determine os pontos apropriados no Conjunto de Testes para recuperação em caso de falha do Conjunto de Testes durante uma execução. Este passo é considerado importante quando o Conjunto de Testes contém um grande número de Scripts de Teste ou quando ele é executado por um longo período de tempo normalmente de forma autônoma. Embora geralmente sejam identificados como requisitos para os Conjuntos de Testes automatizados, os pontos de recuperação também devem ser considerados para os Conjuntos de Testes executados manualmente.
Além dos pontos de recuperação ou reinício, você talvez também deseje no caso de Conjuntos de Testes automatizados considerar a recuperação do Conjunto de Testes automatizado. Estas são as duas abordagens para a recuperação automática: 1) recuperação básica quando o Conjunto de Testes existente puder se recuperar automaticamente de um erro secundário ocorrido em um de seus Scripts de Teste, normalmente aplicando a execução de recuperação no próximo Script de Teste do Conjunto de Testes ou 2) recuperação sofisticada que sofrerá uma limpeza após a execução do Script de Teste que falhou, com a redefinição do estado de sistema apropriado, incluindo reinicialização do sistema operacional e restauração de dados, se necessário. Como na primeira abordagem, o Conjunto de Testes determina, em seguida, o script que falhou e seleciona o próximo Script de Teste a ser executado.
| Finalidade: | Implementar e verificar se o processo de recuperação funciona conforme necessário. |
Dependendo do nível de sofisticação exigido, será necessário um esforço para implementar e estabilizar o processamento de recuperação. Reserve um tempo para simular algumas falhas prováveis (e algumas improváveis) a fim de testar o funcionamento do processamento de recuperação.
No caso de uma recuperação automatizada, as duas abordagens descritas no passo anterior apresentam pontos positivos e negativos. Considere com cuidado o custo de uma recuperação automatizada sofisticada em termos de desenvolvimento inicial e em termos de esforço de manutenção contínua. Algumas vezes, a recuperação manual já é suficiente.
| Finalidade: | Resolver qualquer problema de dependência em termos de Estado do Sistema e seqüências de execução de Scripts de Teste. |
Reserve um tempo para estabilizar o Conjunto de Testes através de uma ou mais execuções de teste de avaliação, sempre que possível. A dificuldade em atingir a estabilidade aumenta de forma proporcional na complexidade do Conjunto de Testes e, ainda, quando há um acoplamento muito grande entre Scripts de Teste não relacionados e pouca coesão entre Scripts de Teste relacionados.
É possível que ocorram erros quando Scripts de Teste forem executados juntos em um determinado Conjunto de Testes, o que não ocorre quando Scripts de Teste individuais são executados de forma independente. Esses erros geralmente são os mais difíceis de serem controlados e diagnosticados, principalmente quando são encontrados no meio de um longo processo de execução de um teste automatizado. Sempre que for conveniente, recomenda-se executar novamente o Conjunto de Testes regularmente quando forem incluídos Scripts de Teste adicionais. Isso o ajudará a isolar um pequeno número de possíveis sugestões de Scripts de Teste que serão diagnosticadas para a identificação do problema.
| Finalidade: | Permitir a análise do impacto e a geração de um relatório de avaliação dos itens rastreados. |
Usando os requisitos de Rastreabilidade descritos no Plano de Teste, atualize os relacionamentos de rastreabilidade conforme necessário. Os Conjuntos de Testes podem ser rastreados até os Casos de Teste ou até as Idéias de Teste definidas. Opcionalmente, eles podem ser rastreados até os Casos de Uso, os elementos de especificação de software, os elementos do Modelo de Implementação e até uma ou mais medidas da Cobertura de Teste.
| Finalidade: | Verificar se a atividade foi concluída corretamente e se os artefatos resultantes são aceitáveis. |
Agora que você concluiu o trabalho, convém verificar se ele foi proveitoso e garantir que você não apenas consumiu uma grande quantidade de papel. Avalie se a qualidade de seu trabalho é apropriada e se ele está completo o suficiente para ser útil aos membros da equipe que o utilizarão depois como entrada em seu próprio trabalho. Sempre que possível, use as listas de verificação fornecidas no RUP para verificar se a qualidade e a abrangência estão satisfatórias.
Faça com que as pessoas que executam as atividades subordinadas e que dependem de seu trabalho como input participem revisando o seu trabalho provisório. Faça isso enquanto ainda dispõe de tempo para executar algum tipo de ação em relação às questões levantadas por elas. Avalie também seu trabalho, comparando-o com os principais artefatos informados para verificar se eles foram representados de forma precisa e satisfatória. Talvez seja útil solicitar ao autor do artefato informado para rever seu trabalho baseado nisso.
Lembre-se de que o RUP é um processo iterativo e de que, em muitos casos, os artefatos evoluem com o tempo. Portanto, normalmente não é necessário e, em geral, é improdutivo formar um artefato completo que será usado apenas parcialmente ou que nem será usado no trabalho imediatamente subseqüente. Isso porque há uma grande probabilidade de a situação que envolve o artefato ser alterada e as suposições feitas no momento de criação do artefato acabarem sendo incorretas antes de o artefato ser usado, resultando em desperdício de esforço e em um dispendioso retrabalho. Evite também a armadilha de ficar perdendo tempo com inúmeros ciclos de apresentação em detrimento do valor do conteúdo. Em ambientes de projeto em que apresentações têm grande importância e são considerados produtos liberados, utilize um recurso administrativo para tarefas de apresentação.
|
Rational Unified Process |