Escolar Documentos
Profissional Documentos
Cultura Documentos
como as estratégias top-down e hottom-up, e outras estratégias no nível da integração. O plano resultante para com-
binar os componentes em um só, algumas vezes, é chamado de plano de integração do sistema.
Para cada estágio de teste, o plano descreve em detalhes os métodos a serem utilizados para realizar cada
teste. Por exemplo, o teste de unidade pode ser composto de walkthroughs informais ou de inspeções formais,
seguidas pela análise da estrutura do código, e então, pela análise do desempenho real do código. O plano identi-
fica qualquer apoio automatizado, incluindo as condições necessárias para a utilização da ferramenta. Essa infor-
mação ajuda a equipe de teste a planejar suas atividades e a agendar os testes.
Uma lista detalhada de casos de teste acompanha cada método ou técnica de teste. O plano também explica
como os dados de teste serão gerados e como quaisquer dados de saída ou informações de estado serão obtidos. Se
um banco de dados for utilizado para acompanhar os testes, os dados e a saída, o banco de dados e seu uso tam-
bém serão descritos.
Consequentemente, à medida que lemos o plano de testes, temos um quadro completo de como e por que os
testes serão realizados. Ao escrevermos os planos de testes à medida que projetamos o sistema, somos obrigados
a entender os objetivos gerais do sistema. Na verdade. algumas vezes, a perspectiva dos testes nos encoraja a ques-
tionar a natureza do problema e se o projeto é apropriado.
Muitos clientes especificam o conteúdo dos planos de testes na documentação de requisitos. Por exemplo,
quando um sistema está sendo construido, o Departamento de Defesa dos EUA fornece os padrões de documenta-
ção de sistemas ao desenvolvedor. Os padrões explicam que o plano de testes:
é uma ferramenta para orientar... O teste, que contém o cronograma dos eventos e a lista de materiais necessários para efetuar
um teste amplo de um sistema de dados automatizado completo. As partes do documento dirigidas ao pessoal de recursos huma-
nos devem ser apresentadas em uma linguagem que não seja técnica, e as partes voltadas ao pessoal de operação deverão ser
apresentadas com terminologia apropriada (Departamento de Defesa dos EUA, 1977).
car comandos que nunca são executados, notar a presença de ramificações do meio de um /o0p, e assim por dian-
te. Um analisador de dados pode notificar quando um denominador pode ter o valor zero, Ele também pode veri-
ficar se os argumentos de uma sub-rotina são fornecidos da maneira conveniente. Os componentes de entrada €
saida de um sistema podem ser submetidos a um verificador de sequência, a fim de determinar se os eventos estão
codificados na sequência apropriada, Por exemplo, um verificador de sequência pode assegurar que todos os arqui-
vos são abertos antes de serem modificados.
Características estruturais e medições estão incluídas na saida de muitas ferramentas de análise estática, de
modo que possamos entender melhor os atributos do programa. Por exemplo, os grafos de fluxo são frequentemen-
te suplementados com uma lista de todos os caminhos possíveis ao longo do programa, permitindo planejar os
casos de teste para o de caminhos. Também recebemos informações sobre o fan-in e fan-out, o número de opera-
dores e operandos em um programa. o número de pontos de decisão c as diversas medidas da complexidade estru-
tural do código. Na Figura 8.18, vemos um exemplo de saída a partir de um programa de análise estática, que com-
para os achados de uma parte especifica do código com as informações históricas contidas em um grande banco
de dados. A comparação envolve não somente as medições, tais como profundidade de aninhamento. acoplamen-
to e número de decisões, mas também informações sobre os potenciais defeitos c variáveis não inicializadas.
Informações como essas alertam sobre a facilidade de realizar testes e sobre possíveis defeitos que podemos que-
rer remover antes que os testes formais sejam iniciados.
Análise dinâmica. Muitas vezes, os sistemas são dificeis de serem testados, porque diversas operações para-
lelas são realizadas simultancamente, Essa situação é especialmente verdadeira para os sistemas de tempo-rcal,
Nesses casos, é dificil prever as condições e gerar casos de teste que sejam representativos. As ferramentas auto-
matizadas possibilitam que a equipe de testes obtenha os estados dos eventos durante a execução do programa, pre-
servando a visualização das condições. Essas ferramentas são, algumas vezes, chamadas de monitores de progra-
ma, porque observam ce relatam o comportamento do programa.
Um monitor pode mostrar o número de vezes que um componente é chamado ou que uma linha de código é
executada. Essas estatísticas informam aos usuários sobre a cobertura de comandos ou de caminhos de seus casos
de teste, De modo semelhante, um monitor pode relatar se um ponto de decisão é ramificado em todas as direções.
fornecendo, assim, informações sobre a cobertura de ramificação, Estatisticas resumo também são relatadas, for-
necendo uma visão de alto nivel da porcentagem de comandos, caminhos e sentenças cobertos pelo conjunto de
casos de teste executados. Essas Informações são importantes quando os objetivos de teste são declarados em ter-
mos de cobertura. Por exemplo, foi exigido, sob contrato, que o sistema de controle de tráfego aéreo de Londres
tivesse 100 por cento de cobertura dos comandos em seus testes (Pfleeger e Hatton, 1997).
Informações adicionais podem ajudar a equipe de testes a avaliar o desempenho do sistema. Estatisticas
podem ser geradas sobre variáveis específicas: por exemplo, seu primeiro valor, último valor, minimo e máximo.
Os pontos de interrupção podem ser definidos no sistema, de modo que quando uma variável se mantém ou exce-
de certo valor, a ferramenta de teste relata a ocorrência. Algumas ferramentas param quando os pontos de interrup-
ção são atingidos, permitindo que o responsável pelo teste examine o conteúdo da memória ou os valores de itens
de dados específicos. Algumas vezes, é possível modificar os valores à medida que o teste progride.
Defeitos em linha |»
o
Defeitos de interface
ooo o
Aninhamento
YW
Decisões
VV
Caminhos
Acoplamento extemo
-
Para sistemas de tempo-real, a obtenção de tantas informações quantas forem possíveis sobre um estado ou
uma condição específica, durante a execução, pode ser utilizada depois da execução, a fim de fomecer mais infor-
mações sobre o teste. O fluxo de controle pode ser rastreado “para trás” ou “para frente”, a partir de pontos de inter-
rupção, e a equipe de testes pode examinar as mudanças de dados que ocorrem.
Ambientes automatizados de teste. As ferramentas para execução de testes podem ser integradas com
outras, a fim de formar um amplo ambiente de testes. Frequentemente, as que descrevemos aqui estão conectadas
a um banco de dados de teste. ferramentas de medição, ferramentas para análise de código, editores de texto e fer-
ramentas de simulação ec modelagem, para automatizar o processo de teste tanto quanto for possível. Por exemplo,
os bancos de dados podem rastrear os casos de teste, armazenando os dados de entrada para cada caso, descreven-
do a saída esperada e registrando a verdadeira saida. Contudo, encontrar evidências de um defeito não é o mesmo
que localizar o defeito. O teste sempre envolverá o esforço manual requerido para rastrear um problema até sua
causa original. A automação auxilia, mas não necessariamente substitui essa função humana,