Tarefa: Identificar Mecanismos de Testabilidade
Esta tarefa descreve como identificar os mecanismos gerais da solução técnica que são necessários para facilitar a abordagem de teste e como esboçar o escopo geral e as principais características desses mecanismos.
Disciplinas: Teste
Relacionamentos
Etapas
Examinar o Arquitetura de Software e seus Ambientes de Destino
Finalidade:  Compreender a arquitetura de software e seu relacionamento com os ambientes de implementação de destino. 

Para desempenhar essa tarefa dentro do contexto apropriado, é importante ter uma compreensão adequada do software que está sendo desenvolvido, de sua arquitetura e dos principais mecanismos e recursos que ele suportará. Examine a documentação disponível referente à arquitetura do software para obter uma noção inicial e a suplemente com entrevistas e debates com o arquiteto de software, se necessário. Considere o impacto que cada ambiente de destino de implementação pode ter nessas informações e observe novos fatores que possam ser relevantes para o esforço de teste.

Identificar Sugestões de Mecanismos de Teste
Finalidade:  Identificar os possíveis mecanismos de teste necessários para a abordagem de teste.  

Utilizando o conhecimento da arquitetura de software e seus ambientes de destino, examine as informações fornecidas na abordagem e teste. Considere os principais aspectos técnicos da abordagem e crie uma lista de sugestões de mecanismos que serão necessários para suportá-la. Aqui está uma lista parcial dos mecanismos comuns a serem considerados como sugestões: persistência, simultaneidade, distribuição, comunicação, segurança, gerenciamento de transações, recuperação, manipulação e relatório de detecção de erros e controle e sincronização do processo.

Observe que esses mecanismos normalmente se aplicam aos esforços de teste manual e automatizado, embora um mecanismo específico possa ter mais ou menos relevância para o teste manual ou automatizado. Observe também que embora o mesmo mecanismo seja necessário para ambos os esforços de teste, as características da solução implementada geralmente serão diferentes.

Inventariar os Mecanismos de Teste Existentes
Finalidade:  Identificar as oportunidades para reutilizar as implementações existentes para as sugestões de mecanismo e identificar as implementações adicionais que precisarão ser desenvolvidas.  

Examine as ferramentas de teste disponíveis e as implementações de teste existentes e crie um inventário dos mecanismos que têm uma ou mais soluções. Embora esse passo seja mais obviamente relevante em termos do esforço de teste automatizado, há algumas considerações equivalentes para o esforço de teste manual.

Subtópicos:

Mecanismos de Automação de Teste Para o início da página

Comece compilando uma lista das ferramentas disponíveis ou que você planeja adquirir. Lembre-se de que as ferramentas de automatização assumem várias formas e sua lista normalmente incluirá mais do que as ferramentas de implementação e execução de testes automatizados. Para cada ferramenta, examine os mecanismos fornecidos por ela. Por exemplo, a ferramenta de criação de script que você planeja utilizar fornece seu próprio mecanismo de persistência de dados e, neste caso, é apropriado às suas necessidades ou será necessário complementá-la? Outras perguntas podem incluir: a ferramenta de execução permite a execução simultânea de scripts de teste em várias máquinas cliente do host? A ferramenta de execução permite a distribuição de scripts de uma máquina mestre central para várias máquinas cliente do host?

Quando implementações de automatização de teste estiverem disponíveis, haverá outros mecanismos para inventário. Alguns aspectos dessas implementações estenderão ou suplementarão os mecanismos básicos fornecidos pelas ferramentas para torná-los mais úteis. Outros aspectos oferecerão implementações para mecanismos adicionais não fornecidos na ferramenta básica.

Mecanismos de Teste Manuais Para o início da página

Em um nível básico, isso envolverá a revisão da guia de teste existente para a implementação e a execução do teste. Você deve procurar soluções de processo existentes para questões como simultaneidade, como os testadores podem compartilhar conjuntos de dados, principalmente estruturas de dados existentes, sem afetar um ao outro de forma adversa; distribuição, se a equipe de teste está distribuída, quais soluções estão disponíveis para a coordenação dos esforços de teste separados.

Definir os Mecanismos de Teste que Serão Utilizados
Finalidade:  Comunicar as decisões tomadas sobre os mecanismos de teste necessários.  

Agora que você decidiu sobre os mecanismos de teste necessários, precisa comunicar sua escolha à equipe de teste e a outros investidores no esforço de teste. Recomenda-se documentar as decisões sobre os mecanismos de teste necessários para a automatização como parte da documentação Arquitetura de Automatização de Teste, e aquelas relacionadas ao teste manual como parte do Guia de Teste.

Como alternativa à documentação formal, você pode simplesmente registrar essas informações como um conjunto de observações de arquitetura e processo, acompanhadas de alguns diagramas explanatórios, possivelmente mantidos em um quadro branco. Durante a implementação e execução do teste, testadores individuais utilizarão essas informações para tomar decisões táticas.

Quando você identificar o possível requisito de interfaces de teste especiais que precisarão ser criadas no software que está sendo desenvolvido, considere registrar esse requisito criando um ou mais resumos de Especificações de Interface de Teste; esse resumo deve fornecer um nome, uma breve descrição e enumerar os principais requisitos ou características de interface de teste. Evite perder muito tempo com esses esboços; a lista de requisitos e recursos será detalhada subseqüentemente em Tarefa: Definir Elementos de Testabilidade.

Avaliar e Verificar os Resultados
Finalidade:  Verificar se a tarefa foi concluída apropriadamente e se os produtos de trabalho resultantes são aceitáveis. 

Agora que o trabalho foi concluído, convém certificar-se de que o trabalho foi vantajoso e que não foi apenas um grande consumo de papel. Você deve avaliar se o trabalho é de qualidade adequada, e se ele é completo o suficiente para ser útil aos membros da equipe que o utilizarão em seguida como entrada para o trabalho deles. Onde for possível, utilize as listas de verificação fornecidas no RUP para verificar se a qualidade e a integridade estão suficientemente boas.

Faça com que as pessoas que desempenham tarefas posteriores, que dependem do seu trabalho como entrada, participem da revisão do seu trabalho provisório. Faça isso enquanto você tiver tempo disponível para tomar alguma ação para resolver os problemas delas. Você também deve avaliar seu trabalho em relação aos principais produtos de trabalho de entrada para certificar-se de que foram representados de maneira precisa e suficiente. Pode ser útil fazer com que o autor do produto de trabalho de entrada revise seu trabalho nessa base.

Não se esqueça de que o RUP é um processo de entrega interativo e que, em muitos casos, os produtos de trabalho evoluem com o tempo. Dessa formal, nem sempre é necessário (e às vezes é contraproducente) formar completamente um produto de trabalho que será utilizado apenas parcialmente ou que nem será utilizado no trabalho imediato subseqüente. Isso acontece porque há uma grande probabilidade de que a situação em torno do produto de trabalho sofra alterações e de que os pressupostos feitos quando o produto de trabalho foi criado se provem incorretos, antes que o produto de trabalho seja utilizado, resultando em esforço perdido e retrabalho dispendioso. Evite também a armadilha de gastar muitos ciclos na apresentação em detrimento do valor do conteúdo. Nos ambientes de projeto em que a apresentação tem importância e valor econômico como um produto liberado do projeto, convém utilizar um recurso administrativo para executar as tarefas de apresentação.