Teste de Sistemas de Software
description
Transcript of Teste de Sistemas de Software
![Page 1: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/1.jpg)
1
Teste de Sistemas de Software
Alexandre Monteiro
![Page 2: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/2.jpg)
2
Motivação Ocorrência de falhas humanas no
processo de desenvolvimento de software é considerável
Processo de testes é indispensável na garantia de qualidade de software
Custos associados às falhas de software justificam um processo de testes cuidadoso e bem planejado
![Page 3: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/3.jpg)
3
Conceitos Básicos
![Page 4: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/4.jpg)
4
Falha, Falta e Erro Falha
Incapacidade do software de realizar a função requisitada (aspecto externo)
Exemplo Terminação anormal, restrição temporal
violada
![Page 5: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/5.jpg)
5
Falha, Falta e Erro Falta
Causa de uma falha Exemplo
Código incorreto ou faltando
![Page 6: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/6.jpg)
6
Falha, Falta e Erro Erro
Estado intermediário (instabilidade) Provém de uma falta Pode resultar em falha, se propagado
até a saída
![Page 7: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/7.jpg)
7
Falta, erro e falha
Falta Erro Falha
Pode iteragir…
![Page 8: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/8.jpg)
8
Noção de confiabilidade Algumas faltas escaparão
inevitavelmente Tanto dos testes Quanto da depuração
Falta pode ser mais ou menos perturbadora Dependendo do que se trate e em qual
freqüência irá surgir para o usuário final
![Page 9: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/9.jpg)
9
Noção de confiabilidade Assim, precisamos de uma referência
para decidir Quando liberar ou não sistema para uso
Confiabilidade de software É uma estimativa probabilística Mede a freqüência com que um software
irá executar sem falha Em dado ambiente E por determinado período de tempo
![Page 10: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/10.jpg)
10
Noção de confiabilidade Assim, entradas para testes devem
se aproximar do ambiente do usuário final
![Page 11: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/11.jpg)
11
Dados e Casos de Teste Dados de Teste
Entradas selecionadas para testar o software
Casos de Teste Dados de teste, bem como saídas
esperadas de acordo com a especificação (Veredicto)
Cenários específicos de execução
![Page 12: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/12.jpg)
12
Finalidade dos testes Averiguar se todos os requisitos do
sistema foram corretamente implementados
Assegurar, na medida do possível, a qualidade e a corretude do software produzido
Reduzir custos de manutenção corretiva e re-trabalho
![Page 13: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/13.jpg)
13
Finalidade dos testes Assegurar a satisfação do cliente com
o produto desenvolvido Identificar casos de teste de elevada
probabilidade para revelar erros ainda não descobertos (com quantidade mínima de tempo e esforço)
Verificar a correta integração entre todos os componentes de software
![Page 14: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/14.jpg)
14
Eficácia de Testes A atividade de teste é o processo de
executar um programa com a intenção de descobrir um erro
Um bom caso de teste é aquele que apresenta uma elevada probabilidade de revelar um erro ainda não descoberto
Um teste bem sucedido é aquele que revela um erro ainda não descoberto
![Page 15: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/15.jpg)
15
Padronização de Testes Sistemático
Testes aleatórios não são suficientes Testes devem cobrir todos os fluxos
possíveis do software Testes devem representar situações de uso
reais Documentado
Que testes foram feitos, resultados, etc. Repetível
Se encontrou ou não erro em determinada situação, deve-se poder repeti-lo
![Page 16: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/16.jpg)
16
Abordagens de teste Abordagem funcional (“caixa preta”)
Os testes são gerados a partir de uma análise dos relacionamentos entre os dados de entrada e saída, com base nos requisitos levantados com os usuários
Especificação (pré e pós-condições) Geralmente é aplicado durante as
últimas etapas do processo de teste
![Page 17: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/17.jpg)
17
Abordagens de teste Abordagem funcional (“caixa
preta”) Objetivo
Erros associados a não satisfação da especificação
Erros na GUI Erros nas estruturas de dados ou acesso
ao banco de dados Problemas de integração
![Page 18: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/18.jpg)
18
Abordagens de teste Abordagem estrutural (“caixa
branca”) Os testes são gerados a partir de uma
análise dos caminhos lógicos possíveis de serem executados
Conhecimento do funcionamento interno dos componentes do software é usado
![Page 19: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/19.jpg)
19
Abordagens de teste Abordagem estrutural
Objetivo Garantir que todos os caminhos
independentes dentro de um módulo tenham sido exercitados pelo menos uma vez
Realizar todas as decisões lógicas para valores falsos e verdadeiros
Executar laços dentro dos valores limites Executar as estruturas de dados internas
![Page 20: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/20.jpg)
20
Abordagens de teste Abordagem estrutural
Programador Testa o programa em pedaços Encontra quais as partes do programa que
já foram testadas Conhece quais partes do programa serão
modificadas Verifica os limites internos no código que
são invisíveis ao testador externo
“É parte da atividade de codificação”
![Page 21: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/21.jpg)
21
Estágios de Teste Teste de Unidade Teste de Aspectos OO Teste de Integração Teste de Sistema Teste de Aceitação
![Page 22: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/22.jpg)
22
Estágios de teste Teste de unidade
Componentes individuais (ex.: métodos, classes) são testados para assegurar que os mesmos operam de forma correta
Teste de aspectos OO Teste de Iteradores Teste de Abstrações de Dados Teste de Hierarquia de Tipos
![Page 23: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/23.jpg)
23
Estágios de teste Teste de integração
A interface entre as unidades integradas é testada
Teste de sistema Os elementos de software integrados
com o ambiente operacional (hardware, pessoas, etc.) são testados como um todo
![Page 24: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/24.jpg)
24
Estágios de teste Testes de aceitação (“caixa preta”) são
realizados pelo usuário Finalidade é demonstrar a conformidade com os
requisitos do software Envolve treinamento, documentação e
empacotamento Podem ser de duas categorias:
Testes alfa Feitos pelo usuário, geralmente nas
instalações do desenvolvedor, que observa e registra erros e/ou problemas
![Page 25: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/25.jpg)
25
Estágios de teste Testes de aceitação (“caixa preta”) são
realizados pelo usuário Testes beta
Feitos pelo usuário, geralmente em suas próprias instalações, sem a supervisão do desenvolvedor. Os problemas detectados são então relatados para o desenvolvedor
![Page 26: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/26.jpg)
26
Tipos de Teste São definidos em relação aos diversos
tipos de requisitos descritos no documento de requisitos
Alguns exemplos são: Teste funcional Teste de recuperação de falhas Teste de segurança Teste de performance Teste de carga
![Page 27: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/27.jpg)
27
Tipos de teste Teste funcional (regras de negócio)
A funcionalidade geral do sistema em termos de regras de negócio (fluxo de trabalho) é testada
Condições válidas e inválidas
![Page 28: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/28.jpg)
28
Tipos de teste Teste de recuperação de falhas
O software é forçado a falhar de diversas maneiras para que seja verificado o seu comportamento
Bem como a adequação dos procedimentos de recuperação
A recuperação pode ser automática ou exigir intervenção humana
![Page 29: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/29.jpg)
29
Tipos de teste Teste de segurança e controle de
acesso Verifica se todos os mecanismos de
proteção de acesso estão funcionando satisfatoriamente
Teste de integridade de dados Verifica a corretude dos métodos de
acesso à base de dados e a garantia das informações armazenadas
![Page 30: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/30.jpg)
30
Tipos de teste Teste de performance
Verifica tempo de resposta e processamento (para diferentes configurações, número de usuários, tamanho do BD, etc.)
Exemplo Recuperar conta de usuário em x segundos
São necessários definir Servidores e clientes, sistemas operacionais e
protocolos utilizados
![Page 31: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/31.jpg)
31
Tipos de teste Teste de volume (carga)
Foca em transações do BD Verifica se o sistema suporta altos
volumes de dados em uma única transação
Verifica o número de terminais, modems e bytes de memória que é possível gerenciar
![Page 32: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/32.jpg)
32
Tipos de teste Teste de estresse
Verifica a funcionalidade do sistema em situações limite
Pouca memória ou área em disco, alta competição por recursos compartilhados (ex: vários acessos/transações no BD ou rede)
Exemplo: pode-se desejar saber se um sistema de transações bancárias suporta uma carga de mais de 100 transações por segundo ou se um sistema operacional pode manipular mais de 200 terminais remotos
![Page 33: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/33.jpg)
33
Tipos de teste Teste de configuração ou portabilidade
Verifica o funcionamento adequado do sistema em diferentes configurações de hardware/software
O que testar Compatibilidade do software/hardware Configuração do servidor Tipos de conexões com a Internet Compatibilidade com o browser
![Page 34: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/34.jpg)
34
Tipos de teste Teste de instalação e desinstalação
Verifica a correta instalação e desinstalação do sistema para diferentes plataformas de hardware/software e opções de instalação
O que testar Compatibilidade do hardware e software Funcionalidade do instalador/desinstalador sob
múltiplas opções/condições de instalação GUI do programa instalador/desinstalador
![Page 35: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/35.jpg)
35
Tipos de teste Teste da GUI (usuário)
Aparência e comportamento da GUI Navegação Consistência Aderência a padrões Tempo de aprendizagem Funcionalidade
![Page 36: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/36.jpg)
36
Tipos de teste Teste de documentação
Verifica se a documentação corresponde à informação correta e apropriada:
online escrita help sensível ao contexto
Teste de ciclo de negócios Garante que o sistema funciona
adequadamente durante um ciclo de atividades relativas ao negócio
![Page 37: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/37.jpg)
37
Teste de regressão Re-execução de testes feitos após
uma manutenção corretiva ou evolutiva
Em processos de desenvolvimento iterativos, muitos dos artefatos produzidos nas primeiras iterações são usados em iterações posteriores
![Page 38: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/38.jpg)
38
Teste de unidade
![Page 39: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/39.jpg)
39
Teste de unidade Investigar a qualidade de
componentes individuais (ex: métodos, classes)
Objetivo: Testar comportamento
(especificação) e estrutura interna (lógica e fluxo de dados)
![Page 40: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/40.jpg)
40
Estratégia para Teste de unidade
Driver de teste – programa que executa o módulo a ser testado usando os dados do caso de teste e verifica o veredicto
Este será o propósito de uso do JUnit
Driver
Módulo a ser testado
Casos de teste
InterfaceEstrutura de dados localCondições limiteCaminhos independentesCaminhos de tratamento de erros
Resultados
![Page 41: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/41.jpg)
41
Teste de Caixa Preta Casos de teste são gerados usando
somente a especificação Vantagens:
Procedimento de teste não é influenciado pela implementação
Resultados dos testes podem ser avaliados por pessoas sem conhecimento da linguagem de programação
Robusto em relação a mudanças na implementação (Abordagem XP...)
![Page 42: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/42.jpg)
42
Teste de Caixa Preta Deve-se analisar a relação entre a
pré e a pós-condição Tentar cobrir todas as combinações
lógicas existentes entre essas partes Dada a relação pré => pós, tem-se
pré=true => pós=true pré=false => exceção
![Page 43: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/43.jpg)
43
Seleção de Dados de Teste Há várias técnicas para seleção de
dados de teste Particionamento Fronteiras Pares ortogonais Etc.
{
![Page 44: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/44.jpg)
44
Particionamento
Determinando partições
Selecionando representantes
![Page 45: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/45.jpg)
45
Fronteiras Estatísticas indicam que há uma maior
suscetibilidade a erros nas fronteiras de partições (limites dos tipos)
Tanto em dados válidos quanto inválidos Assim, para x > 0, não bastaria usar
qualquer x > 0 (particionamento) Mas sim x = 1 (válido no limite) e x = 0
(inválido no limite)
![Page 46: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/46.jpg)
46
Fronteiras A técnica da seleção de dados
pelas fronteiras é muito indicada para investigar bom funcionamento de Arrays Vetores Algoritmos de busca/ordenação Etc.
![Page 47: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/47.jpg)
47
Teste de Caixa Branca Casos de teste são gerados a partir
da implementação Não se pode avaliar o grau de
cobertura de uma funcionalidade pelo teste de caixa preta
A idéia é gerar dados de teste que permitam exercitar algum critério em relação ao código (cobertura)
![Page 48: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/48.jpg)
48
Grafo de fluxo de controlenó = bloco de comandos seqüenciaisaresta ou ramo = transferência de controle
11
2 3
4
1
2 3 m
n
...1
2
3
1
2
3blocoseqüencial
seleçãoif-then-else case
repetição
while repeat-until
![Page 49: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/49.jpg)
49
Grafo de fluxo de controle: ExemploCálculo de xy
1. read x, y;2. if y < 03. then p := 0 - y4. else p := y;5. z := 1.0;6. while p 0 do7. begin z := z * x; p := p - 1; end;8. if y < 0 9. then z := 1 / z;10. write z; end;
1
2
3 45
67
8
9
10
y < 0 y 0
p 0
y < 0y 0
![Page 50: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/50.jpg)
50
Critérios de cobertura Tipos
Cobertura de instruções Cobertura de decisões Cobertura de condições Cobertura de caminhos
![Page 51: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/51.jpg)
51
Cobertura de instruções1
2
3 45
67
8
9
10
y < 0 y 0
p 0
y < 0y 0
Critério: cada instrução deve ser executada pelo menos 1 vez
nós predicados dados
{1,2,3,5,6,7,6, 8,9,10} x, y < 0 (4, -1)
{1,2,4,5,6,8,10} x, y = 0 (4, 0)
![Page 52: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/52.jpg)
52
Cobertura de decisões1
2
3 45
67
8
9
10
y < 0 y 0
p 0
y < 0y 0
Critério: cada ramo deve ser percorrido pelo menos 1 vez
ramos predicados dados
{(1,2), (2,3), (3,5), (5,6) x, y < 0 (4, -1)
(6,7), (7,6), (6,8), (8,9), (9,10)}
{(1,2), (2,4), (4,5), (5,6), x, y = 0 (4, 0)
(6,7), (7,6), (6,8), (8, 10)}
![Page 53: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/53.jpg)
53
Cobertura de decisões1. if a >= 0 and a <= 2002. then m := 13. else m := 34. “Dep. em a...”
c1
2 3
4
c c
ramos dados
{(1,2), (2,4)} a = 5
{(1,3), (3,4)} a = -5
![Page 54: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/54.jpg)
54
Cobertura de decisões/condições
1. if a >= 0 and a <= 200
2. then m := 13. else m := 34. “Dep. em a...”
c 1
2 3
4
ramos dados
{(1,1A), (1A, 2), (2,4)} a = 5
{(1,1A), (1A,3), (3,4)} a = 500
{(1,3), (3,4)} a = -5
Critério: todas as condições devem ser avaliadas para valores V/F em cada (sub)decisão
1A
a 0 a < 0
a 200 a > 200
![Page 55: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/55.jpg)
55
Aproximação do Fluxo Completo
j = k;for(int i=1; i<=100; i++)
if(Tests.pred(i*j)) j++;
Quem são os casos de testes para o fragmento de código acima?
![Page 56: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/56.jpg)
56
Aproximação do Fluxo Completo Laços com iterações fixas
Considerar 2 iterações e situações de terminação do laço
Laços com iterações variáveis Considerar 0, 1 e 2 iterações, bem como
casos de terminação Recursão
Considerar situações onde não haverá chamada recursiva e com apenas 1 chamada
![Page 57: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/57.jpg)
57
Iteração Fixaj = k;for(int i=1; i<=100; i++)
if(i==j) break;else if(Tests.pred(i*j)) j++;
1 i 2 e (j=1 ou j=2)
![Page 58: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/58.jpg)
58
Iteração Variávelwhile( x<y || x>z ) {
...
}
1. x < y || x > z (1 e
2 iterações)2. x y && x z
Condições de terminação+
![Page 59: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/59.jpg)
59
Recursãostatic int fat(int i) {
int res;if(i==0) res = 1;else res = i * fat( i – 1 );return res;
}
1. i = 02. i = 1
![Page 60: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/60.jpg)
60
Teste de Abstrações de Dados Testar os métodos de maneira
conjugada Testes devem explorar
propriedades esperadas para a composição de métodos
Seqüências de testes devem ser originadas tanto pelo teste de caixa preta quanto o de caixa branca
![Page 61: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/61.jpg)
61
Exemplo Suponha uma classe com métodos
inserir, remover, consultar, etc. Então, seqüências como:
consultar(x) -> inserir(x) -> remover(x)
inserir(x) -> inserir(x) inserir(x) -> consultar(x) remover(x) -> consultar(x)
![Page 62: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/62.jpg)
62
Automação de Testes Integrada Testar é essencial como referencial
de qualidade Falhas humanas são comuns Realizar todos os testes,
associados a artefatos modificados, é imprescindível
![Page 63: Teste de Sistemas de Software](https://reader035.fdocument.pub/reader035/viewer/2022062222/56815cc0550346895dcac669/html5/thumbnails/63.jpg)
63
Bibliografia Liskov, B. et al. Program
Development in Java (Cap. 10) Sommerville, I. Software
Engineering (Cap. 20)