SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Teste de Software X
Métodos Formais
José Amancio
Introdução
 Discussão sobre testes
 Testes formais
 Ferramenta
Introdução
 Teste é uma forma operacional de checar a
corretude de um sistema através de
experimentos
 Realizar execuções de um sistema com base
em determinados critérios
 Linhas de execuções, valores de dados,
funcionalidades, etc.
 Comparar os resultados das execuções com
uma especificação
 Veredito: ok ou não
Introdução
 Discussão: onde está a ligação entre
testes e métodos formais ?
 Alguns autores não consideram o uso
de testes como sendo aplicação de
métodos formais
 Não é uma técnica exaustiva que
garanta cobrir todos os possíveis erros
Introdução
 Provê menos garantias do que
verificação de modelos, por exemplo
 Não é possível testar todas as linhas de
execução
 Com testes é possível detectar a
existência, mas não é possível garantir
a ausência de erros
Vantagens
 Técnicas mais “precisas” custam caro
 Inserção de novas linguagens
 Difícil sincronização de modelos com código
 Requerem mais especialização por parte dos
projetistas/programadores
 Testes são aplicados diretamente sobre o
programa
 Simples e prático: pode-se usar uma
heurística simples para definir o que testar
 Apresenta a melhor relação custo/benefício
na busca pela melhoria da qualidade de um
software
Tipos de Testes
 Existem diferentes formas de classificar
testes
 Considerando características do sistema
 Comportamento, nível de abstração
 Considerando estratégia do teste
 Teste caixa-preta, white-box
Tipos de Testes
 Diferentes níveis de abstração
 Teste de unidade: o mais baixo nível de
teste. Pequenas partes do código são
testadas separadamente
 Teste de integração: testa se diferentes
partes do código trabalham bem juntas
 Teste de sistema: testa o sistema como
um todo
Tipos de Testes
 Diferentes níveis de abstração
 Teste de aceitação: usualmente feito pelo
cliente para checar se o sistema está de
acordo
 Teste de regressão: aplicação de testes
depois de alguma alteração para verificar
se o sistema continua funcionando
corretamente
Tipos de Testes
 Diferentes aspectos do comportamento
 Teste funcional ou de conformidade: o
sistema faz o que deveria fazer ? Ou seja,
está de acordo com a especificação ?
 Teste de performance: o sistema executa
em tempo aceitável ?
Tipos de Testes
 Diferentes aspectos do comportamento
 Teste de robustez: como o sistema reage
se seu ambiente apresentar
comportamento estranho ou indesejado ?
 Teste de stress: como o sistema reage em
condições extremas ? Com um número
grande de usuários ou com grande
quantidade de dados ?
Tipos de Testes
 Diferentes aspectos do comportamento
 Teste de confiabilidade: quanto podemos
contar com o correto funcionamento do
sistema ?
 Teste de disponibilidade: qual a
disponibilidade do sistema ?
Tipos de Testes
 Estratégias de teste
 Caixa-preta
 Apenas a estrutura externa do sistema é
conhecida
 White-box
 A estrutura interna (código) do sistema é
conhecida e usada pelo testador
 Grey-box
 Quando parte do código é conhecido
O Processo de Teste
 Duas fases principais
 Geração de teste
 Envolve análise da especificação e determinação de que
funcionalidade será testada
 Determinação de como será executado o teste
 Especificação de scripts de teste
 Execução de teste
 Desenvolvimento de um ambiente de teste em que o
script pode ser executado
 Execução do script de teste
 Análise dos resultados
O Processo de Teste
 Outras fases
 Gerenciamento e manutenção
 Objetivo de possibilitar aplicação de testes
durante a existência do sistema
 Manter scripts, controle de versões de
especificações de testes, ferramentas para
teste
Automação
 Necessário uso de ferramentas de
suporte
 Tipos de ferramentas de teste
 Record & Play
 Registram ações de usuários na interface
(através de mouse e teclado) e permitem
repetir as operações
 Para testes de aceitação, por exemplo
 Geração de grandes quantidades de
dados
 Para testes de stress
Automação
 Tipos de ferramentas de teste
 Geração de casos de testes baseados em
uma especificação formal
 Para testes funcionais
 Cobertura de código
 Calculam o percentual do código executado
durante o teste com base em critérios
 Caminhos percorridos, variáveis percorridas,
comandos percorridos, etc.
 Para testes white-box
Utilização de Testes
 Em muitos casos, na prática, testes têm
sido utilizados de maneira intuitiva
 Os casos de teste não são definidos com
base em uma metodologia rigorosa
 Programadores definem e executam os
testes
 Porém existem muitas pesquisas na
área a fim de possibilitar o retorno de
resultados mais confiáveis
Utilização de Testes
 Há um custo associado à aplicação de
testes de forma sistemática
 Equipe de testadores
 Utilização de ferramentas
 Tempo para implementação/execução de
testes
Testes X Métodos Formais
 Apesar dos custos, teste é a mais
“barata” e mais utilizada técnica de
validação de sistemas
 “Sempre” é utilizada
 Além disso, a prática de
desenvolvimento de software
atualmente exige processos confiáveis
Testes X Métodos Formais
 É precisamos de melhorar a qualidade
do software
 Isso acontece através da aplicação de
técnicas de validação com certo nível
de rigor
 Testes + base matemática
Testes X Métodos Formais
 Testes formais
 Geração de casos de testes a partir de
especificações formais
 Inserir especificações formais para utilizarmos testes
 Adotar especificações formais utilizadas em outras
técnicas de verificação formal que estejam sendo
aplicadas
 Análise de cobertura de código
 Avaliação do percentual de código executado fornece
maior confiabilidade com base em argumentos formais
Testes Withe-box
 Em testes de unidade, um caso de teste
corresponde a um caminho de execução
 Quase nunca é possível checar todas as
situações com todos os valores possíveis
 Testes são feitos com base em critérios de
cobertura
 Permite executar menos casos de testes com
maior probabilidade de encontrar erros
Testes Withe-box
 Cobertura de statements
 Cada comando executável (atribuição,
entrada, saída, etc) aparece em pelo
menos um caso de teste
 Cobertura de “caminho”
 Cada caminho executável aparece em
algum caso de teste
Testes Withe-box
 Cobertura de condição
 Cada predicado aparece em um caso de
teste avaliado para true
 Cobertura de caminho/condição
 Requer que, tanto os caminhos como a
condição sejam cobertas
Testes Withe-box
 Cobertura de condição múltipla
 Cada combinação de predicados deve
aparecer no conjunto de casos de teste
 Cobertura de caminhos executáveis
 Requer que todos os caminhos
executáveis sejam considerados nos
casos de teste
Testes Withe-box
 Exemplo
y = y + 1
se x = y e z > w
x = x –1
y = y + 1
x = y e z > w
x = x -1
verdade falso
Testes Withe-box
 Cobertura de statements
 {x=2, y=2, z=4, w=3}
 Cobertura de caminho
 {x=2, y=2, z=4, w=3}
 {x=3, y=3, z=5, w=7}
 Cobertura de condição
 {x=3, y=3, z=5, w=7}
 {x=3, y=4, z=7, w=5}
Testes Withe-box
 Cobertura de caminho/condição
 {x=2, y=2, z=4, w=3}
 {x=3, y=3, z=5, w=7}
 {x=3, y=4, z=7, w=5}
 Cobertura de condição múltipla
 {x=2, y=2, z=4, w=3}
 {x=3, y=3, z=5, w=7}
 {x=3, y=4, z=7, w=5}
 {x=3, y=4, z=5, w=6}
Testes Withe-box
 Determinados critérios englobam incorporam
outros
 Cobertura de caminho engloba cobertura de
statements
 Cobertura de caminho/condição engloba
cobertura de caminho
 Temos agora formas de medir cobertura e
inferir confiabilidade dos casos de testes
 Chances de implementar um conjunto menor de
casos de testes com maior probabilidade de
encontrar erros
 Pelo menos temos uma chance de avaliar o nível
de confiabilidade dos casos de teste
Testes Caixa-preta
 Comumente chamado de teste
funcional ou teste de conformidade
 Não há conhecimento da estrutura
interna do sistema
 Temos apenas o sistema
 E esperamos dele um determinado
comportamento
 Como associar estratégias deste tipo a
métodos formais ?
Testes Caixa-preta
 Framework para testes baseado em
especificações formais (Jan Tretmans)
 É apresentado um framework para uso de
métodos formais em testes de conformidade
 Testar o comportamento com relação à
especificação formal do sistema
 O mais importante é que liga o mundo
informal das implementações, testes e
experimentações com o mundo formal das
especificações e modelos
Conceitos abordados no
Framework
 Conformidade
 Observações e testes
 Testes de conformidade
 Suas extensões
Conformidade
Necessitamos de implementações e
especificações
As especificações são formais. Universo
de especificações é denotado por
SPECS
Implementações são os sistemas que
iremos testar. Denotamos por IUT
IMPS é o conjunto de todos os IUTs
Conformidade
conforms-to ⊆ IMPS X SPECS,
assim
IUT conforms-to s expressa que IUT
é uma correta implementação da
especificação s.
Implementações são objetos físicos,
diferente das especificações. Não
possibilitam argumentação formal:
dificulta definir conforms-to
Conformidade
Assumimos que todo IUT ∈ IMPS pode
ser modelado por um objeto formal Iiut
∈ MODS, onde MODS é o universo
de modelos
Isso é chamado como hipóteses de
teste
Observação:a hipótese de teste apenas
assume que um modelo Iiut existe, mas
não que ele é conhecido a priori
Hipóteses de teste
Permite argumentar sobre implementações
como se elas fossem objetos formais
Assim podemos expressar conformidade
através de uma relação formal entre modelos
de implementações e especificações
A relação de implementação será chamada
de imp ⊆ MODS X SPECS
Hipóteses de teste
IUT ∈ IMPS é dita correta com relação
a s ∈ SPECS (IUT conforms-to s),
sss Iiut ∈ MODS de IUT é imp-
relacionada com s
 Iiut imp s
Observações e Testes
 O comportamento de uma IUT é
investigado fazendo experimentos na
implementação e observando as suas
reações
 A especificação do experimento é um
caso de teste e a implementação é
chamada de execução de teste
Casos de Testes e Execução
de Testes
Considere casos de testes formalmente
pertencentes a um domínio TESTS
Requer um procedimento para executar um
caso de teste t a uma IUT
Denotada por EXEC(t,IUT)
Casos de Testes e Execução
de Testes
O que acontece durante a execução ?
A execução de um teste irá levar em um
conjunto de observações, subconjunto de
OBS
Função de observação:
 obs: TESTS X MODS  P(OBS)
 obs(t, Iiut) modela formalmente a execução
do teste real EXEC(t, IUT)
Hipóteses de Testes
Seu significado:
Para todas as implementações reais que
estamos testando, assume-se que existe um
modelo, tal que se colocássemos a
implementação e o modelo em caixas pretas
e fizéssemos todos os experimentos
possíveis em TESTS, não conseguiríamos
distinguir entre a implementação real e o
modelo
Funções de Veredito vt
 Usualmente interpretamos observações de
testes em termos de certo ou errado
vt: P(OBS)  {fail, pass}
 Podemos então introduzir a abreviação
Funções de Veredito vt
 Isso é extendido como uma suíte de testes:
 Uma implementação falha em uma suíte de
testes se ela não passa:
Testes de Conformidade
 Envolve saber se uma implementação
está conforme com respeito a uma
relação de implementação imp com
sua especificação
 Uma suíte de testes com essa
propriedade é chamada completa
Testes de Conformidade
 É possível distinguir entre as implementações
conformes e não-conformes
 É um requerimento muito forte para Testes
práticos
 Precisamos enfraquecer esta declaração
 Sound (parece completa) – toda
implementação correta, e possivelmente
alguma implementação incorreta será aceita
Testes de Conformidade
Testes de Conformidade
 Se a propriedade de completude for
provada no nível dos modelos, e se
assumimos que as hipóteses de testes
valem:
 a conformidade de uma implementação
com respeito a sua especificação pode ser
decidida por meio de um procedimento de
testes
Derivação de testes
Então, uma atividade importante passa
a ser construir algoritmos que produzem
suítes de testes sound e/ou completos a
partir de uma especificação e de uma
relação de implementação
Extensões
 Arquitetura de testes: define o ambiente
no qual uma implementação é testada
 Introdução da técnica de cobertura: a
cada implementação errônea detectada
por uma suíte de testes, é atribuído um
valor e depois esses valores são
integrados

Weitere ähnliche Inhalte

Was ist angesagt?

Introdução a testes unitários com jUnit
Introdução a testes unitários com jUnitIntrodução a testes unitários com jUnit
Introdução a testes unitários com jUnitLeonardo Soares
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Softwaremarthahuback
 
TDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaTDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaChristian Cunha
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Thiago Faria de Andrade
 
Apresentação proposta de padronização da estrutura e escrita dos casos de teste
Apresentação proposta de padronização da estrutura e escrita dos casos de testeApresentação proposta de padronização da estrutura e escrita dos casos de teste
Apresentação proposta de padronização da estrutura e escrita dos casos de testeWilliam Melchior Jablonski, CTFL
 
Testes de software
Testes de softwareTestes de software
Testes de softwareteste
 
Aula 3 técnicas de teste de software1
Aula 3   técnicas de teste de software1Aula 3   técnicas de teste de software1
Aula 3 técnicas de teste de software1Tiago Vizoto
 
Aula12 T EES UFS Testes de SW
Aula12  T EES  UFS  Testes de SWAula12  T EES  UFS  Testes de SW
Aula12 T EES UFS Testes de SWguest8ae21d
 

Was ist angesagt? (20)

Introdução a tdd
Introdução a tddIntrodução a tdd
Introdução a tdd
 
Introdução a testes unitários com jUnit
Introdução a testes unitários com jUnitIntrodução a testes unitários com jUnit
Introdução a testes unitários com jUnit
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
 
Testes Unitários usando TestNG
Testes Unitários usando TestNGTestes Unitários usando TestNG
Testes Unitários usando TestNG
 
Qualidade
QualidadeQualidade
Qualidade
 
Será que testar é simples?
Será que testar é simples?Será que testar é simples?
Será que testar é simples?
 
TDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaTDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian Cunha
 
Testes de Sofware
Testes de SofwareTestes de Sofware
Testes de Sofware
 
1° Madrugada de Testes
1° Madrugada de Testes1° Madrugada de Testes
1° Madrugada de Testes
 
Junit
JunitJunit
Junit
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...
 
Junit 4.0
Junit 4.0Junit 4.0
Junit 4.0
 
Apresentação proposta de padronização da estrutura e escrita dos casos de teste
Apresentação proposta de padronização da estrutura e escrita dos casos de testeApresentação proposta de padronização da estrutura e escrita dos casos de teste
Apresentação proposta de padronização da estrutura e escrita dos casos de teste
 
Plano de teste
Plano de testePlano de teste
Plano de teste
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
JUnit
JUnitJUnit
JUnit
 
Aula 3 técnicas de teste de software1
Aula 3   técnicas de teste de software1Aula 3   técnicas de teste de software1
Aula 3 técnicas de teste de software1
 
Aula12 T EES UFS Testes de SW
Aula12  T EES  UFS  Testes de SWAula12  T EES  UFS  Testes de SW
Aula12 T EES UFS Testes de SW
 
TDD na Prática
TDD na PráticaTDD na Prática
TDD na Prática
 

Andere mochten auch

Introdução a Testes de Software
Introdução a Testes de SoftwareIntrodução a Testes de Software
Introdução a Testes de SoftwareIgor Takenami
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Vanilton Pinheiro
 
Testes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e CoberturaTestes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e CoberturaTiago Antônio da Silva
 
Automatizando testes em 4 passos
Automatizando testes em 4 passosAutomatizando testes em 4 passos
Automatizando testes em 4 passosHélio Medeiros
 
Testes de Software - Módulo 2
Testes de Software - Módulo 2Testes de Software - Módulo 2
Testes de Software - Módulo 2Rodrigo Paes
 
EMMA - Ferramenta para teste de cobertura
EMMA - Ferramenta para teste de coberturaEMMA - Ferramenta para teste de cobertura
EMMA - Ferramenta para teste de coberturaWallaceRoque
 
Testes de aceitação automatizados evidenciam rastreabilidade, cobertura e des...
Testes de aceitação automatizados evidenciam rastreabilidade, cobertura e des...Testes de aceitação automatizados evidenciam rastreabilidade, cobertura e des...
Testes de aceitação automatizados evidenciam rastreabilidade, cobertura e des...Francisco Edmundo Andrade
 
Técnicas de modelagem de teste (parte 2)
Técnicas de modelagem de teste (parte 2)Técnicas de modelagem de teste (parte 2)
Técnicas de modelagem de teste (parte 2)Fabrício Campos
 
Iterasys - Cobertura de Teste - Pairwise
Iterasys - Cobertura de Teste - PairwiseIterasys - Cobertura de Teste - Pairwise
Iterasys - Cobertura de Teste - PairwiseJosé Correia
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesPaulo César M Jeveaux
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 

Andere mochten auch (14)

Introdução a Testes de Software
Introdução a Testes de SoftwareIntrodução a Testes de Software
Introdução a Testes de Software
 
Modulo 2
Modulo 2Modulo 2
Modulo 2
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)
 
Testes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e CoberturaTestes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
 
Automatizando testes em 4 passos
Automatizando testes em 4 passosAutomatizando testes em 4 passos
Automatizando testes em 4 passos
 
Testes de Software - Módulo 2
Testes de Software - Módulo 2Testes de Software - Módulo 2
Testes de Software - Módulo 2
 
EMMA - Ferramenta para teste de cobertura
EMMA - Ferramenta para teste de coberturaEMMA - Ferramenta para teste de cobertura
EMMA - Ferramenta para teste de cobertura
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Testes de aceitação automatizados evidenciam rastreabilidade, cobertura e des...
Testes de aceitação automatizados evidenciam rastreabilidade, cobertura e des...Testes de aceitação automatizados evidenciam rastreabilidade, cobertura e des...
Testes de aceitação automatizados evidenciam rastreabilidade, cobertura e des...
 
Técnicas de modelagem de teste (parte 2)
Técnicas de modelagem de teste (parte 2)Técnicas de modelagem de teste (parte 2)
Técnicas de modelagem de teste (parte 2)
 
Iterasys - Cobertura de Teste - Pairwise
Iterasys - Cobertura de Teste - PairwiseIterasys - Cobertura de Teste - Pairwise
Iterasys - Cobertura de Teste - Pairwise
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 

Ähnlich wie Apresentacao teste

Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninDevInPF
 
ybr789try
ybr789tryybr789try
ybr789tryteste
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de softwareJoyce Bastos
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netRenato Groff
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareCloves da Rocha
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de TestesUFPA
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 

Ähnlich wie Apresentacao teste (20)

Aula12 TEES UFS Testes de SW
Aula12 TEES UFS Testes de SWAula12 TEES UFS Testes de SW
Aula12 TEES UFS Testes de SW
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
 
Introdução ao design de teste de software
Introdução ao design de teste de softwareIntrodução ao design de teste de software
Introdução ao design de teste de software
 
Fases testes
Fases testesFases testes
Fases testes
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Testes de Software.ppt
Testes de Software.pptTestes de Software.ppt
Testes de Software.ppt
 
ybr789try
ybr789tryybr789try
ybr789try
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.net
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 

Kürzlich hochgeladen

LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLidianePaulaValezi
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Cabiamar
 
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfAPRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfgerathird
 
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptxPoesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptxPabloGabrielKdabra
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...marcelafinkler
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptRogrioGonalves41
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...marcelafinkler
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxMarcosLemes28
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfAutonoma
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralAntonioVieira539017
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedJaquelineBertagliaCe
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptxJssicaCassiano2
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRafaelaMartins72608
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 

Kürzlich hochgeladen (20)

LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfAPRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
 
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptxPoesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDF
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 

Apresentacao teste

  • 1. Teste de Software X Métodos Formais José Amancio
  • 2. Introdução  Discussão sobre testes  Testes formais  Ferramenta
  • 3. Introdução  Teste é uma forma operacional de checar a corretude de um sistema através de experimentos  Realizar execuções de um sistema com base em determinados critérios  Linhas de execuções, valores de dados, funcionalidades, etc.  Comparar os resultados das execuções com uma especificação  Veredito: ok ou não
  • 4. Introdução  Discussão: onde está a ligação entre testes e métodos formais ?  Alguns autores não consideram o uso de testes como sendo aplicação de métodos formais  Não é uma técnica exaustiva que garanta cobrir todos os possíveis erros
  • 5. Introdução  Provê menos garantias do que verificação de modelos, por exemplo  Não é possível testar todas as linhas de execução  Com testes é possível detectar a existência, mas não é possível garantir a ausência de erros
  • 6. Vantagens  Técnicas mais “precisas” custam caro  Inserção de novas linguagens  Difícil sincronização de modelos com código  Requerem mais especialização por parte dos projetistas/programadores  Testes são aplicados diretamente sobre o programa  Simples e prático: pode-se usar uma heurística simples para definir o que testar  Apresenta a melhor relação custo/benefício na busca pela melhoria da qualidade de um software
  • 7. Tipos de Testes  Existem diferentes formas de classificar testes  Considerando características do sistema  Comportamento, nível de abstração  Considerando estratégia do teste  Teste caixa-preta, white-box
  • 8. Tipos de Testes  Diferentes níveis de abstração  Teste de unidade: o mais baixo nível de teste. Pequenas partes do código são testadas separadamente  Teste de integração: testa se diferentes partes do código trabalham bem juntas  Teste de sistema: testa o sistema como um todo
  • 9. Tipos de Testes  Diferentes níveis de abstração  Teste de aceitação: usualmente feito pelo cliente para checar se o sistema está de acordo  Teste de regressão: aplicação de testes depois de alguma alteração para verificar se o sistema continua funcionando corretamente
  • 10. Tipos de Testes  Diferentes aspectos do comportamento  Teste funcional ou de conformidade: o sistema faz o que deveria fazer ? Ou seja, está de acordo com a especificação ?  Teste de performance: o sistema executa em tempo aceitável ?
  • 11. Tipos de Testes  Diferentes aspectos do comportamento  Teste de robustez: como o sistema reage se seu ambiente apresentar comportamento estranho ou indesejado ?  Teste de stress: como o sistema reage em condições extremas ? Com um número grande de usuários ou com grande quantidade de dados ?
  • 12. Tipos de Testes  Diferentes aspectos do comportamento  Teste de confiabilidade: quanto podemos contar com o correto funcionamento do sistema ?  Teste de disponibilidade: qual a disponibilidade do sistema ?
  • 13. Tipos de Testes  Estratégias de teste  Caixa-preta  Apenas a estrutura externa do sistema é conhecida  White-box  A estrutura interna (código) do sistema é conhecida e usada pelo testador  Grey-box  Quando parte do código é conhecido
  • 14. O Processo de Teste  Duas fases principais  Geração de teste  Envolve análise da especificação e determinação de que funcionalidade será testada  Determinação de como será executado o teste  Especificação de scripts de teste  Execução de teste  Desenvolvimento de um ambiente de teste em que o script pode ser executado  Execução do script de teste  Análise dos resultados
  • 15. O Processo de Teste  Outras fases  Gerenciamento e manutenção  Objetivo de possibilitar aplicação de testes durante a existência do sistema  Manter scripts, controle de versões de especificações de testes, ferramentas para teste
  • 16. Automação  Necessário uso de ferramentas de suporte  Tipos de ferramentas de teste  Record & Play  Registram ações de usuários na interface (através de mouse e teclado) e permitem repetir as operações  Para testes de aceitação, por exemplo  Geração de grandes quantidades de dados  Para testes de stress
  • 17. Automação  Tipos de ferramentas de teste  Geração de casos de testes baseados em uma especificação formal  Para testes funcionais  Cobertura de código  Calculam o percentual do código executado durante o teste com base em critérios  Caminhos percorridos, variáveis percorridas, comandos percorridos, etc.  Para testes white-box
  • 18. Utilização de Testes  Em muitos casos, na prática, testes têm sido utilizados de maneira intuitiva  Os casos de teste não são definidos com base em uma metodologia rigorosa  Programadores definem e executam os testes  Porém existem muitas pesquisas na área a fim de possibilitar o retorno de resultados mais confiáveis
  • 19. Utilização de Testes  Há um custo associado à aplicação de testes de forma sistemática  Equipe de testadores  Utilização de ferramentas  Tempo para implementação/execução de testes
  • 20. Testes X Métodos Formais  Apesar dos custos, teste é a mais “barata” e mais utilizada técnica de validação de sistemas  “Sempre” é utilizada  Além disso, a prática de desenvolvimento de software atualmente exige processos confiáveis
  • 21. Testes X Métodos Formais  É precisamos de melhorar a qualidade do software  Isso acontece através da aplicação de técnicas de validação com certo nível de rigor  Testes + base matemática
  • 22. Testes X Métodos Formais  Testes formais  Geração de casos de testes a partir de especificações formais  Inserir especificações formais para utilizarmos testes  Adotar especificações formais utilizadas em outras técnicas de verificação formal que estejam sendo aplicadas  Análise de cobertura de código  Avaliação do percentual de código executado fornece maior confiabilidade com base em argumentos formais
  • 23. Testes Withe-box  Em testes de unidade, um caso de teste corresponde a um caminho de execução  Quase nunca é possível checar todas as situações com todos os valores possíveis  Testes são feitos com base em critérios de cobertura  Permite executar menos casos de testes com maior probabilidade de encontrar erros
  • 24. Testes Withe-box  Cobertura de statements  Cada comando executável (atribuição, entrada, saída, etc) aparece em pelo menos um caso de teste  Cobertura de “caminho”  Cada caminho executável aparece em algum caso de teste
  • 25. Testes Withe-box  Cobertura de condição  Cada predicado aparece em um caso de teste avaliado para true  Cobertura de caminho/condição  Requer que, tanto os caminhos como a condição sejam cobertas
  • 26. Testes Withe-box  Cobertura de condição múltipla  Cada combinação de predicados deve aparecer no conjunto de casos de teste  Cobertura de caminhos executáveis  Requer que todos os caminhos executáveis sejam considerados nos casos de teste
  • 27. Testes Withe-box  Exemplo y = y + 1 se x = y e z > w x = x –1 y = y + 1 x = y e z > w x = x -1 verdade falso
  • 28. Testes Withe-box  Cobertura de statements  {x=2, y=2, z=4, w=3}  Cobertura de caminho  {x=2, y=2, z=4, w=3}  {x=3, y=3, z=5, w=7}  Cobertura de condição  {x=3, y=3, z=5, w=7}  {x=3, y=4, z=7, w=5}
  • 29. Testes Withe-box  Cobertura de caminho/condição  {x=2, y=2, z=4, w=3}  {x=3, y=3, z=5, w=7}  {x=3, y=4, z=7, w=5}  Cobertura de condição múltipla  {x=2, y=2, z=4, w=3}  {x=3, y=3, z=5, w=7}  {x=3, y=4, z=7, w=5}  {x=3, y=4, z=5, w=6}
  • 30. Testes Withe-box  Determinados critérios englobam incorporam outros  Cobertura de caminho engloba cobertura de statements  Cobertura de caminho/condição engloba cobertura de caminho  Temos agora formas de medir cobertura e inferir confiabilidade dos casos de testes  Chances de implementar um conjunto menor de casos de testes com maior probabilidade de encontrar erros  Pelo menos temos uma chance de avaliar o nível de confiabilidade dos casos de teste
  • 31. Testes Caixa-preta  Comumente chamado de teste funcional ou teste de conformidade  Não há conhecimento da estrutura interna do sistema  Temos apenas o sistema  E esperamos dele um determinado comportamento  Como associar estratégias deste tipo a métodos formais ?
  • 32. Testes Caixa-preta  Framework para testes baseado em especificações formais (Jan Tretmans)  É apresentado um framework para uso de métodos formais em testes de conformidade  Testar o comportamento com relação à especificação formal do sistema  O mais importante é que liga o mundo informal das implementações, testes e experimentações com o mundo formal das especificações e modelos
  • 33. Conceitos abordados no Framework  Conformidade  Observações e testes  Testes de conformidade  Suas extensões
  • 34. Conformidade Necessitamos de implementações e especificações As especificações são formais. Universo de especificações é denotado por SPECS Implementações são os sistemas que iremos testar. Denotamos por IUT IMPS é o conjunto de todos os IUTs
  • 35. Conformidade conforms-to ⊆ IMPS X SPECS, assim IUT conforms-to s expressa que IUT é uma correta implementação da especificação s. Implementações são objetos físicos, diferente das especificações. Não possibilitam argumentação formal: dificulta definir conforms-to
  • 36. Conformidade Assumimos que todo IUT ∈ IMPS pode ser modelado por um objeto formal Iiut ∈ MODS, onde MODS é o universo de modelos Isso é chamado como hipóteses de teste Observação:a hipótese de teste apenas assume que um modelo Iiut existe, mas não que ele é conhecido a priori
  • 37. Hipóteses de teste Permite argumentar sobre implementações como se elas fossem objetos formais Assim podemos expressar conformidade através de uma relação formal entre modelos de implementações e especificações A relação de implementação será chamada de imp ⊆ MODS X SPECS
  • 38. Hipóteses de teste IUT ∈ IMPS é dita correta com relação a s ∈ SPECS (IUT conforms-to s), sss Iiut ∈ MODS de IUT é imp- relacionada com s  Iiut imp s
  • 39. Observações e Testes  O comportamento de uma IUT é investigado fazendo experimentos na implementação e observando as suas reações  A especificação do experimento é um caso de teste e a implementação é chamada de execução de teste
  • 40. Casos de Testes e Execução de Testes Considere casos de testes formalmente pertencentes a um domínio TESTS Requer um procedimento para executar um caso de teste t a uma IUT Denotada por EXEC(t,IUT)
  • 41. Casos de Testes e Execução de Testes O que acontece durante a execução ? A execução de um teste irá levar em um conjunto de observações, subconjunto de OBS Função de observação:  obs: TESTS X MODS  P(OBS)  obs(t, Iiut) modela formalmente a execução do teste real EXEC(t, IUT)
  • 42. Hipóteses de Testes Seu significado: Para todas as implementações reais que estamos testando, assume-se que existe um modelo, tal que se colocássemos a implementação e o modelo em caixas pretas e fizéssemos todos os experimentos possíveis em TESTS, não conseguiríamos distinguir entre a implementação real e o modelo
  • 43. Funções de Veredito vt  Usualmente interpretamos observações de testes em termos de certo ou errado vt: P(OBS)  {fail, pass}  Podemos então introduzir a abreviação
  • 44. Funções de Veredito vt  Isso é extendido como uma suíte de testes:  Uma implementação falha em uma suíte de testes se ela não passa:
  • 45. Testes de Conformidade  Envolve saber se uma implementação está conforme com respeito a uma relação de implementação imp com sua especificação  Uma suíte de testes com essa propriedade é chamada completa
  • 46. Testes de Conformidade  É possível distinguir entre as implementações conformes e não-conformes  É um requerimento muito forte para Testes práticos  Precisamos enfraquecer esta declaração  Sound (parece completa) – toda implementação correta, e possivelmente alguma implementação incorreta será aceita
  • 48. Testes de Conformidade  Se a propriedade de completude for provada no nível dos modelos, e se assumimos que as hipóteses de testes valem:  a conformidade de uma implementação com respeito a sua especificação pode ser decidida por meio de um procedimento de testes
  • 49. Derivação de testes Então, uma atividade importante passa a ser construir algoritmos que produzem suítes de testes sound e/ou completos a partir de uma especificação e de uma relação de implementação
  • 50. Extensões  Arquitetura de testes: define o ambiente no qual uma implementação é testada  Introdução da técnica de cobertura: a cada implementação errônea detectada por uma suíte de testes, é atribuído um valor e depois esses valores são integrados