![Page 2: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/2.jpg)
O que é? • “Herrar é Umano!!!” – Mas nossos usuários não tem culpa
– Precisamos fazer o máximo para entregar soJware de qualidade
• ObjeMvos de VV&T – Assegurar que estamos fazendo de forma correta o produto correto
Leonardo Murta Verificação, Validação e Testes 2
![Page 3: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/3.jpg)
Ciclo de propagação
Leonardo Murta Verificação, Validação e Testes 3
1 – Desenvolvedor comete um engano (mistake)
2 – SoJware com defeito (fault)
3 – Defeito é exercitado e gera um erro (error)
001101
2 + 2 = 5
4 – SoJware falha (failure)
5 – Usuário sofre as consequências
001101
max(1, 0) à 0
![Page 4: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/4.jpg)
Teste x Depuração
Leonardo Murta Verificação, Validação e Testes 4
1 – Desenvolvedor comete um engano (mistake)
2 – SoJware com defeito (fault)
3 – Defeito é exercitado e gera um erro (error)
001101
2 + 2 = 5
4 – SoJware falha (failure)
001101
max(1, 0) à 0
Teste busca por falhas ou erros exercitando o soJware como um todo ou partes dele
![Page 5: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/5.jpg)
Teste x Depuração
Leonardo Murta Verificação, Validação e Testes 5
1 – Desenvolvedor comete um engano (mistake)
2 – SoJware com defeito (fault)
3 – Defeito é exercitado e gera um erro (error)
001101
2 + 2 = 5
4 – SoJware falha (failure)
001101
max(1, 0) à 0
Depuração busca e corrige defeitos que são responsáveis por falhas ou erros do soJware
![Page 6: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/6.jpg)
Vamos então fazer testes para todas as possibilidades existentes!
Leonardo Murta Verificação, Validação e Testes 6
![Page 7: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/7.jpg)
Vamos então fazer testes para todas as possibilidades existentes!
• Infelizmente, isso é impossível • Exemplo – Programa simples, com 2 loops aninhados que executam 6 vezes cada e 1 if-‐then-‐else dentro
– Aproximadamente 236 caminhos de execução possíveis – Assumindo que a máquina executa 1 teste por milissegundo
– Seriam necessários 2 anos ininterruptos de processamento • Imagine testar exausMvamente o Debian GNU/LINUX 4, com suas 283 MLOCs!!!
Leonardo Murta Verificação, Validação e Testes 7
![Page 8: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/8.jpg)
Verificação x Validação • Verificação – Estamos fazendo corretamente o soJware? – Aderência aos requisitos especificados
• Validação – Estamos fazendo o soJware correto? – Aderência aos requisitos desejados do usuário
• Não adianta fazer com perfeição um soJware que não seja o que o usuário deseja!
Leonardo Murta Verificação, Validação e Testes 8
![Page 9: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/9.jpg)
Verificação x Validação
Leonardo Murta Verificação, Validação e Testes 9
Requisitos Arquitetura Código
![Page 10: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/10.jpg)
Verificação
Leonardo Murta Verificação, Validação e Testes 10
?
![Page 11: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/11.jpg)
Verificação
Leonardo Murta Verificação, Validação e Testes 11
Desenvolvimento
Requisitos Arquitetura Código
![Page 12: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/12.jpg)
Verificação
Leonardo Murta Verificação, Validação e Testes 12
Desenvolvimento
Verificação
Requisitos Arquitetura Código
Teste de Unidade
Teste de Integração
![Page 13: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/13.jpg)
Validação
Leonardo Murta Verificação, Validação e Testes 13
?
![Page 14: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/14.jpg)
Validação
Leonardo Murta Verificação, Validação e Testes 14
Validação
Requisitos
Especificação
![Page 15: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/15.jpg)
Validação
Leonardo Murta Verificação, Validação e Testes 15
Validação
Requisitos
Teste de Aceitação (homologação)
Especificação
![Page 16: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/16.jpg)
Verificação x Validação
Leonardo Murta Verificação, Validação e Testes 16
Verificação
![Page 17: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/17.jpg)
Anatomia de testes
Leonardo Murta Verificação, Validação e Testes 17
Sistema sendo testado
Caso de teste
Oráculo
Dados estansMcos
Sistemas legados
Valores de exemplo Especialista
Resultado
Dados de teste
![Page 18: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/18.jpg)
Pontos importantes • Verificação não precisa ser feita somente quando existe código – Inspeções são técnicas efeMvas para idenMficação de defeitos, mesmo antes de ter código
• Testes devem ser aplicados nas partes, para só então ser aplicado no todo – Facilita o isolamento e a localização posterior de defeitos
• Quem faz os testes? – O próprio desenvolvedor, em relação às partes (testes de unidade)
– Uma equipe própria e independente de testes, em relação ao todo (testes de integração)
– O usuário (testes de aceitação) Leonardo Murta Verificação, Validação e Testes 18
![Page 19: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/19.jpg)
Pontos importantes • Testes não subsMtuem produtos de qualidade – Produtos de baixa qualidade, ao serem submeMdos a testes, precisarão ser refeitos (retrabalho!!!)
• Para que testes sejam efeMvos, planejamento é fundamental – É necessário estabelecer um obje>vo claro de testes – É importante o alinhamento dos testes com os perfis dos usuários
Leonardo Murta Verificação, Validação e Testes 19
![Page 20: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/20.jpg)
CaracterísMcas de um bom caso de teste
• Ter alta probabilidade de encontrar erros – Conhecer o produto e explorar aspectos diferenciados
• Não ser redundante – Estabelecer claramente o propósito de cada teste (planejamento)
• Não ser demasiadamente complexo – Decompor os testes de forma que cada teste foque em somente um obje>vo
Leonardo Murta Verificação, Validação e Testes 20
![Page 21: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/21.jpg)
Exercício • Etapa 1 – Codifique no papel um algoritmo para ordenação – Defina alguns testes para esse algoritmo
• Etapa 2 – Insira propositalmente um defeito no seu algoritmo
• Etapa 3 – Passe o seu algoritmo para outro grupo e receba o algoritmo de outro grupo
– Aplique seus testes sobre o algoritmo recebido – Seus testes foram capazes de detectar a falha no algoritmo?
Leonardo Murta Verificação, Validação e Testes 21
![Page 22: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/22.jpg)
Teste caixa branca x caixa preta • Duas estratégias disMntas para elaboração de testes • Teste caixa branca – Também conhecido como teste estrutural – Conhece o interior do produto – UMliza esse conhecimento na definição da estratégia de teste
• Teste caixa preta – Também conhecido como teste funcional – Não conhece o interior do produto – UMliza somente os requisitos na definição da estratégia de teste
Leonardo Murta Verificação, Validação e Testes 22
![Page 23: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/23.jpg)
Meta do teste caixa branca • GaranMr que todos os caminhos independentes foram exercitados ao menos uma vez – Um caminho independente é um caminho que exercita alguma nova instrução ou condição do programa
• GaranMr que todas as decisões lógicas foram exercitadas do nos dois senMdos (V/F)
• GaranMr que todos os loops foram exercitados nos seus valores de fronteira
• GaranMr que as estruturas de dados internas foram exercitadas para assegurar a sua integridade
Leonardo Murta Verificação, Validação e Testes 23
![Page 24: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/24.jpg)
Teste de fumaça • Metáfora a fumaça gerada por circuito eletrônico com defeito na sua primeira execução
• Consiste em fazer um teste superficial que indica a viabilidade de rodar os demais testes – Todas as partes são combinadas e é gerado um build do soJware
– Esse build é submeMdo a testes básicos
– Esse processo é repeMdo frequentemente (e.g., diariamente)
Leonardo Murta Verificação, Validação e Testes 24
![Page 25: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/25.jpg)
Testes de unidade • Foco em testar caminhos específicos do produto (caixa branca)
• Visa ter 100% de cobertura – Neste caso, 100% de cobertura representando a execução de todas as linhas do código
– Já vimos que é impossível ter 100% de cobertura para todos os caminhos possíveis de execução!!!
• Normalmente captura erros de cálculos, comparações e fluxo de controle – É fundamental testar as fronteiras – Ex.: valores -‐1, 0, n, (n+1) para um loop de 0 a n
Leonardo Murta Verificação, Validação e Testes 25
![Page 26: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/26.jpg)
Testes de unidade • E se não der tempo para fazer todos os testes de unidade? – Se concentre ao menos nas partes com maior complexidade
– Para isso é necessário calcular a complexidade ciclomá>ca das partes
• Complexidade ciclomáMca é o número de caminhos independentes de um programa
Leonardo Murta Verificação, Validação e Testes 26
![Page 27: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/27.jpg)
Projeto de testes • Método de conjunto básico (basis set) – Visa exercitar ao menos uma vez todas as sentenças
de um programa – Se baseia no grafo de fluxo (flow graph) do programa
e na sua complexidade ciclomáMca – Permite encontrar quantos são os caminhos
independentes de teste – Permite encontrar possíveis conjuntos mínimos de
caminhos independentes de teste
Leonardo Murta Verificação, Validação e Testes 27
![Page 28: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/28.jpg)
Projeto de testes 1. Gerar o grafo de fluxos (flow graph) para cada
parte (método, procedimento, função, etc.) • sentença a; sentença b; sentença c; ... (1)
• if a (1) then b (2) else c (3) endif (4)
Leonardo Murta Verificação, Validação e Testes 28
1 2
3 4
1
![Page 29: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/29.jpg)
Projeto de testes • while a (1) do b (2) endwhile (3) [ou] • for a (1) do b (2) endfor (3)
• do a (1) while b (2) enddo (3) [ou] • repeat a (1) unMl b (2) enddo (3)
Leonardo Murta Verificação, Validação e Testes 29
1 2 3
1 2 3
![Page 30: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/30.jpg)
Projeto de testes • switch a (1) case b (2); case c (3) case d (4) ...
endswitch (5)
• Tratamento especial para expressões booleanas – if a (1) OU b (2) then c (3) else d (4) endif (5)
Leonardo Murta Verificação, Validação e Testes 30
1
2
3 5
4
1 3
2 5
4
![Page 31: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/31.jpg)
Projeto de testes 2. Calcular a complexidade ciclomáMca do grafo de
fluxos
• V(G) = E – N + 2 – G é o grafo de fluxo – V(G) é a complexidade ciclomáMca do grafo de fluxo
G – E é o número de arestas do grafo G – N é o número de vérMces do grafo G
Leonardo Murta Verificação, Validação e Testes 31
![Page 32: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/32.jpg)
Projeto de testes 3. IdenMficar V(G) caminhos independentes que
formem o conjunto básico – Fazer uma busca em profundidade pelos caminhos
possíveis, sempre adicionando alguma aresta nova
4. Elaborar casos de teste com valores de entrada que exercitem cada um dos caminhos independentes do conjunto básico
Leonardo Murta Verificação, Validação e Testes 32
![Page 33: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/33.jpg)
Projeto de testes (outras estratégias)
• Testes baseados em defeitos – Visa idenMficar os Mpos de defeito mais prováveis – Projeta testes que são eficazes na descoberta de erros oriundos desses defeitos
• Testes baseados em cenários – Projeta testes em função dos principais cenários de uso do sistema, e não nas funcionalidades do sistema
– É guiado pelo usuário, e não pela estrutura Leonardo Murta Verificação, Validação e Testes 33
![Page 34: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/34.jpg)
Drivers & stubs • Para viabilizar o teste de unidade, é necessário construir drivers e stubs
Leonardo Murta Verificação, Validação e Testes 34
Parte a ser testada
Driver
Stub 1 Stub 2
Chamada a funcionalidades a serem testadas
Chamadas a funcionalidades que retornam valores predefinidos
![Page 35: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/35.jpg)
Tratamento de exceções • É uma boa práMca construir soJware capaz de tratar as suas próprias exceções (erros)
• Neste caso, o tratamento de exceções precisa também ser testado – A mensagem que descreve a exceção é compreensível? – A mensagem corresponde ao erro? – O mecanismo uMlizado para o tratamento é apropriado? – A mensagem permiMrá que os desenvolvedores localizem o defeito?
Leonardo Murta Verificação, Validação e Testes 35
![Page 36: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/36.jpg)
Exemplo (quicksort) public List<String> ordena(List<String> listaDesordenada) { List<String> listaOrdenada = new ArrayList<String>(); if (listaDesordenada.size() > 1) { String pivo = listaDesordenada.get(0); List<String> listaMenoresDesordenada = new ArrayList<String>(); List<String> listaMaioresDesordenada = new ArrayList<String>(); for (int i = 1; i < listaDesordenada.size(); i++) { String elemento = listaDesordenada.get(i); if (elemento.compareTo(pivo) < 0) { listaMenoresDesordenada.add(elemento); } else { listaMaioresDesordenada.add(elemento); } } listaOrdenada.addAll(ordena(listaMenoresDesordenada)); listaOrdenada.add(pivo); listaOrdenada.addAll(ordena(listaMaioresDesordenada)); } else { listaOrdenada.addAll(listaDesordenada); } return listaOrdenada; }
Leonardo Murta Verificação, Validação e Testes 36
![Page 37: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/37.jpg)
Extração do grafo de fluxo... public List<String> ordena(List<String> listaDesordenada) { List<String> listaOrdenada = new ArrayList<String>(); if (listaDesordenada.size() > 1) { String pivo = listaDesordenada.get(0); List<String> listaMenoresDesordenada = new ArrayList<String>(); List<String> listaMaioresDesordenada = new ArrayList<String>(); for (int i = 1; i < listaDesordenada.size(); i++) { String elemento = listaDesordenada.get(i); if (elemento.compareTo(pivo) < 0) { listaMenoresDesordenada.add(elemento) } else { listaMaioresDesordenada.add(elemento); } } listaOrdenada.addAll(ordena(listaMenoresDesordenada)); listaOrdenada.add(pivo); listaOrdenada.addAll(ordena(listaMaioresDesordenada)); } else { listaOrdenada.addAll(listaDesordenada); } return listaOrdenada; }
Leonardo Murta Verificação, Validação e Testes 37
1
3
4
7 5
9 8 10
12 13
2
6
11
14
![Page 38: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/38.jpg)
Grafo de fluxo e complexidade ciclomáMca
• V(G) = E – N + 2 = 16 – 14 + 2 = 4 – Teste 1: 1, 2, 12, 13, 14 – Teste 2: 1, 2, 3, 4, 10, 11, 13, 14 (impossível) – Teste 3: 1, 2, 3, 4, 5, 6, 7, 9, 4, 10, 11, 13, 14 – Teste 4: 1, 2, 3, 4, 5, 6, 8, 9, 4, 10, 11, 13, 14
Leonardo Murta Verificação, Validação e Testes 38
2
3
1
4 5 10 6 7
8 9 11
12
13 14
![Page 39: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/39.jpg)
Exemplo (teste 1 com JUnit)
@Test public void teste1() { List<String> listaDesordenada = Arrays.asList("abc"); List<String> oraculo = Arrays.asList("abc"); List<String> resultado = quicksort.ordena(listaDesordenada); assertEquals(oraculo, resultado); }
Leonardo Murta Verificação, Validação e Testes 39
![Page 40: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/40.jpg)
Exemplo (teste 2 com JUnit)
@Test public void teste2() { List<String> listaDesordenada = Arrays.asList("def", "abc"); List<String> oraculo = Arrays.asList("abc", "def"); List<String> resultado = quicksort.ordena(listaDesordenada); assertEquals(oraculo, resultado); }
Leonardo Murta Verificação, Validação e Testes 40
![Page 41: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/41.jpg)
Exemplo (teste 3 com JUnit)
@Test public void teste3() { List<String> listaDesordenada = Arrays.asList("abc", "def"); List<String> oraculo = Arrays.asList("abc", "def"); List<String> resultado = quicksort.ordena(listaDesordenada); assertEquals(oraculo, resultado); }
Leonardo Murta Verificação, Validação e Testes 41
![Page 42: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/42.jpg)
Exemplo (resultado no JUnit)
Leonardo Murta Verificação, Validação e Testes 42
![Page 43: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/43.jpg)
Exemplo (quicksort com defeito) public List<String> ordena(List<String> listaDesordenada) { List<String> listaOrdenada = new ArrayList<String>(); if (listaDesordenada.size() > 1) { String pivo = listaDesordenada.get(0); List<String> listaMenoresDesordenada = new ArrayList<String>(); List<String> listaMaioresDesordenada = new ArrayList<String>(); for (int i = 1; i < listaDesordenada.size() -‐ 1; i++) { String elemento = listaDesordenada.get(i); if (elemento.compareTo(pivo) < 0) { listaMenoresDesordenada.add(elemento) } else { listaMaioresDesordenada.add(elemento); } } listaOrdenada.addAll(ordena(listaMenoresDesordenada)); listaOrdenada.add(pivo); listaOrdenada.addAll(ordena(listaMaioresDesordenada)); } else { listaOrdenada.addAll(listaDesordenada); } return listaOrdenada; }
Leonardo Murta Verificação, Validação e Testes 43
![Page 44: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/44.jpg)
Exemplo (resultado no JUnit com defeito)
Leonardo Murta Verificação, Validação e Testes 44
![Page 45: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/45.jpg)
Exemplo (cobertura dos testes com EMMA)
Leonardo Murta Verificação, Validação e Testes 45
![Page 46: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/46.jpg)
Exemplo (cobertura dos testes com EMMA)
Leonardo Murta Verificação, Validação e Testes 46
![Page 47: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/47.jpg)
Exemplo (cobertura do teste 1 com EMMA)
Leonardo Murta Verificação, Validação e Testes 47
![Page 48: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/48.jpg)
Exemplo (cobertura do teste 1 com EMMA)
Leonardo Murta Verificação, Validação e Testes 48
![Page 49: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/49.jpg)
Exercício • Aplique jUnit (ou qualquer outro xUnit) sobre alguma parte do trabalho do curso
• Exiba a cobertura de testes uMlizando EMMA (ou qualquer outra ferramenta)
• Dica: o NetBeans tem ambas as ferramentas – h�p://www.netbeans.org – JUnit já vem na distribuição padrão do NetBeans – EMMA é um plugin -‐ h�p://codecoverage.netbeans.org
Leonardo Murta Verificação, Validação e Testes 49
![Page 50: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/50.jpg)
Exercícios • Traga um exemplo da criação de stubs com a
ferramenta Mockito, EasyMock ou jMock (ou alguma outra que você conheça) – h�p://www.mockito.org – h�p://www.easymock.org – h�p://www.jmock.org
Leonardo Murta Verificação, Validação e Testes 50
![Page 51: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/51.jpg)
Desenvolvimento Dirigido a Testes (TDD – método ágil)
• Inverte a ordem, colocando teste antes da codificação (test first) 1. O teste é construído antes da implementação da
funcionalidade 2. O teste deve falhar nesse momento (vermelho) 3. É feito o código mais simples capaz de atender ao teste
(verde) 4. O código é refatorado com o objeMvo de aumentar a
qualidade do produto 5. Retorna ao passo 1 enquanto Mverem novas
funcionalidades a serem implementadas
Leonardo Murta Verificação, Validação e Testes 51
![Page 52: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/52.jpg)
Testes de integração • Foco em combinar as partes do produto e testar as partes em conjunto
• Visa analisar o produto em termos de entradas e saídas (caixa preta) – Eventualmente testa também caminhos específicos de grande relevância
Leonardo Murta Verificação, Validação e Testes 52
![Page 53: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/53.jpg)
Estratégias para integração • Big bang – Joga fora os drivers e stubs, conecta todas as partes, e executa todos os testes de integração
– Gera normalmente um grande número de erros – Torna di�cil a aMvidade de depuração
• Incremental – Aos poucos, segundo algum critério, drivers e stubs são subsMtuídos por partes reais do soJware, e os testes de integração são executados
– Os erros aparecem gradaMvamente – O espaço de busca para aMvidade de depuração é menor
Leonardo Murta Verificação, Validação e Testes 53
![Page 54: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/54.jpg)
Exercício • Assuma que os vérMces abaixo sejam classes de um sistema
orientado a objetos, e as arestas as suas dependências onde A à B significa A depende de B. – Qual critério de integração incremental você adotaria? – Qual Mpo de busca (largura ou profundidade) implementa esse critério?
– Qual seria uma possível ordem de integração assumindo que a classe A é responsável pela inicialização do sistema (classe raiz)?
F
G
J
H
I
B
A
C
D
E
Leonardo Murta 54 Verificação, Validação e Testes
![Page 55: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/55.jpg)
Integração top-‐down • A parte raiz da árvore de dependências tem seus stubs gradaMvamente subsMtuídos por partes reais do sistema
Leonardo Murta Verificação, Validação e Testes 55
A Driver Stub B
Stub C
B Driver Stub D
C Driver Stub E
Stub F
...
...
A Driver
B Stub D
C Stub E
Stub F
...
![Page 56: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/56.jpg)
Integração bo?om-‐up • As partes folha da árvore de dependências têm seus drivers gradaMvamente subsMtuídos por partes reais do sistema
Leonardo Murta Verificação, Validação e Testes 56
A Driver Stub B
Stub C
B Driver Stub D
C Driver Stub E
Stub F
...
...
A Driver Stub B
Stub C
B Driver
C Driver
... F
E
D
![Page 57: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/57.jpg)
Top-‐down x bo?om-‐up • Integração top-‐down, apesar de fazer senMdo, manterá o uso de stubs por todos os passos de integração incremental, menos o úlMmo
• Integração bo?om-‐up de fato subsMtui gradaMvamente stubs por partes reais – Os testes manipulam dados processados e não construídos por stubs
Leonardo Murta Verificação, Validação e Testes 57
![Page 58: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/58.jpg)
Exercício • Defina a estratégia a ser adotada pelo seu grupo para testes de integração do trabalho do curso
Leonardo Murta Verificação, Validação e Testes 58
![Page 59: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/59.jpg)
Teste de sistema • Transcende o soJware • Ocorre depois dos demais teste
• Visa garanMr que o soJware funciona corretamente com os demais elementos do sistema
• Exemplo – Hardware-‐in-‐the-‐loop
Leonardo Murta Verificação, Validação e Testes 59
![Page 60: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/60.jpg)
Teste de sistema (Mpos)
• Teste de recuperação – Força situações extremas – Verifica como o sistema se comporta posteriormente
• Teste de segurança – Verifica se o sistema tem brechas que possibilitem invasões
– Em alguns casos, hackers são contratados para esse fim • Teste de estresse (carga) – Submete o soJware a uma elevada demanda de uMlização – Verifica como a qualidade de serviço varia em função dessa demanda
Leonardo Murta Verificação, Validação e Testes 60
![Page 61: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/61.jpg)
Exemplo (Selenium – gravação e reprodução)
Leonardo Murta Verificação, Validação e Testes 61
![Page 62: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/62.jpg)
Exemplo (Selenium – exportação)
Leonardo Murta Verificação, Validação e Testes 62
![Page 63: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/63.jpg)
Exemplo (Selenium – exportado para JUnit)
package com.example.tests; import com.thoughtworks.selenium.*; import java.uMl.regex.Pa�ern; public class UnMtled extends SeleneseTestCase {
public void setUp() throws ExcepMon { setUp("h�p://www.google.com.br/", "*chrome"); } public void testUnMtled() throws ExcepMon { selenium.open("/"); selenium.type("q", "Engenharia de SoJware uff"); selenium.click("btnG"); selenium.waitForPageToLoad("30000"); selenium.click("//ol[@id='rso']/li[1]/h3/a/em"); selenium.waitForPageToLoad("30000"); verifyTrue(selenium.isTextPresent("Leonardo Gresta Paulino Murta")); }
}
Leonardo Murta Verificação, Validação e Testes 63
![Page 64: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/64.jpg)
Exemplo (jMeter – configuração da carga)
Leonardo Murta Verificação, Validação e Testes 64
![Page 65: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/65.jpg)
Exemplo (jMeter – adição de testador)
Leonardo Murta Verificação, Validação e Testes 65
![Page 66: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/66.jpg)
Exemplo (jMeter – resultados)
Leonardo Murta Verificação, Validação e Testes 66
![Page 67: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/67.jpg)
Exemplo (profiling de CPU)
Leonardo Murta Verificação, Validação e Testes 67
![Page 68: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/68.jpg)
Exemplo (profiling de memória)
Leonardo Murta Verificação, Validação e Testes 68
![Page 69: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/69.jpg)
Exercício • UMlize Selenium, jMeter ou algum profiler sobre o trabalho do curso e apresente os resultados obMdos
Leonardo Murta Verificação, Validação e Testes 69
![Page 70: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/70.jpg)
Teste de regressão • Não é mais um Mpo de teste, mas sim um papel que pode ser empenhado por diferentes Mpos de teste
• Visa evitar que defeitos já corrigidos retornem ao produto
• Muito usado em testes de integração, onde testes anteriores são aplicados
Leonardo Murta Verificação, Validação e Testes 70
![Page 71: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/71.jpg)
Testes de aceitação • Foco em apresentar o produto ao usuário para que o produto seja homologado
• Visa estabelecer critérios para aceitação – Funcionais – Comportamentais – De desempenho
• Tipos de teste de aceitação – Alfa – Beta
Leonardo Murta Verificação, Validação e Testes 71
![Page 72: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/72.jpg)
Cenário npico de validação
Leonardo Murta Verificação, Validação e Testes 72
Sistema sendo testado
Testes formais (critérios, planos, etc.)
Testes informais (ad hoc) Semanas ou meses
Sistema anMgo (manual ou
automaMzado)
UMlização em paralelo
![Page 73: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/73.jpg)
Testes alfa
Leonardo Murta Verificação, Validação e Testes 73
Sistema sendo testado
Usa
Ambiente controlado (e.g., local do desenvolvimento)
Observa
(numero reduzido)
![Page 74: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/74.jpg)
Testes beta
Leonardo Murta Verificação, Validação e Testes 74
Sistema sendo testado
Usa
Ambiente real (e.g., local de produção)
Reporta problemas
Sistema de Controle de Solicitações
![Page 75: Verificação,,Validação,e, Testes,leomurta/courses/2014.2/es2/aula6.pdfVamos,então,fazer,testes,para, todas,as,possibilidades,existentes!, • Infelizmente,,isso,é,impossível](https://reader033.vdocuments.site/reader033/viewer/2022050501/5f94030f260e4d66906542bd/html5/thumbnails/75.jpg)
Referências • Pilone, D.; Miles, R.; 2008. Head First SoJware Development. O’Reilly Media.
• Pressman, R. S.; 2004. SoJware Engineering: A PracMMoner’s Approach. 6 ed. McGraw-‐Hill.
Leonardo Murta 75 Verificação, Validação e Testes