Académique Documents
Professionnel Documents
Culture Documents
Teste de Software
Testes e outras tcnicas so fundamentais para garantir a qualidade de tais sistemas No entanto, so caros e muitas vezes deixados de lado!
Teste de Software
Teste de Software
Desastre
Chocou-se com o planeta Chocou-
Motivo
Bug no software responsvel pela converso de medidas
Prejuzo
165 milhes de dlares
Teste de Software
Teste de Software
Motivo
Inabilidade em gerenciar certas condies de disputa
Motivo
Bug no software de reconhecimento, confundindo o avio com um F-14 F-
Prejuzo
Morte de 2 pessoas 6 outras lesionadas
Prejuzo
290 mortes
Teste de Software
Teste de Software
Motivo
Foi feita uma investigao e dentre as recomendaes, aconselharam mudanas nos softwares de controle.
Motivo
Tudo indica que o problema estava relacionado a alta carga de emergncias durante o perodo.
Prejuzo
264 mortes
Prejuzo
Morte de 20 pessoas
Teste de Software
Teste de Software
Teste de Software
Teste de Software
Teste de Software
Teste de Software
Teste de Software
Teste de Software
Teste de Software
Teste de Software
Teste de Software
Teste de Software
Garantindo a Qualidade
Fatores de qualidade
correto, confivel completo, consistente, preciso eficiente, factvel
Tempo:
com o tempo os custos da implementao de alteraes aumenta, e a capacidade do sistema em prestar os servios esperados diminui
Complexidade:
difcil de desenvolver: um nico desenvolvedor no capaz de entender o sistema como um todo difcil de usar difcil de entender: cdigo incompreensvel, falta de documentao documentao
Tcnicas de Certificao
Anlise Esttica Anlise Dinmica = Teste ...
Teste de Software
Teste de Software
Garantindo a Qualidade
Aplicao de mtodos e ferramentas tcnicas
uso pelos desenvolvedores de mtodos e ferramentas que ajudem a conseguir especificaes, projetos, etc, de maior qualidade
Garantindo a Qualidade
Verificao e Validao (V&V)
Verificao
o processo de se avaliar um software a cada fase para determinar se o produto dessa fase satisfaz ao que foi requerido no incio da fase Estamos desenvolvendo certo o produto?
Atividades de testes
em complemento s revises e outras tcnicas
V&V
Aplicao de padres
padres podem ser usados: para documentos, documentao do cdigo e estilo de codificao (como usar linguagem de programao) programao) padres podem ser determinados pelo cliente, por normas internacionais ou pela empresa de desenvolvimento.
Validao
o processo de se avaliar um software, durante ou aps o desenvolvimento, para determinar se o produto satisfaz aos requisitos Estamos desenvolvendo o produto certo?
Teste de Software
Teste de Software
Garantindo a Qualidade
Verificao
Estamos desenvolvendo certo o produto?
Garantindo a Qualidade
Validao
Estamos desenvolvendo o produto certo?
Teste de Software
Teste de Software
Garantindo a Qualidade
V&V
Fazer ou no?
Garantindo a Qualidade
V&V
Fazer ou no?
Teste de Software
Teste de Software
Garantindo a Qualidade
V & V, fazer ou no?
Permite encontrar falhas mais cedo Melhora a qualidade dos produtos Torna os requisitos mais estveis Permite acompanhamento contnuo da qualidade e da produtividade Facilita o gerenciamento Aumenta custos
Garantindo a Qualidade
Atividades de V & V
Verificao esttica
no envolve a execuo do produto visa determinar propriedades do produto vlidas para qualquer execuo do produto final Revises, inspees
Verificao dinmica
envolve a execuo do produto (cdigo ou modelo executvel) visa encontrar falhas ou erros no produto Teste
Teste de Software
Teste de Software
Garantindo a Qualidade
Atividades de Garantia da Qualidade
80 70 60 50 40 30 20 10 0 Porcentagem
57 62 67
Garantindo a Qualidade
Teste de Software Teste o processo de executar um programa com o intuito de encontrar erros Glenford J. Myers (1979) Pode mostrar a presena de falhas, mas nunca a sua ausncia - Dijkstra Processo de execuo de um sistema ou componente sob condies especificas para detectar diferenas entre os resultados obtidos e os esperados (IEEE)
48 47 48 17 20 16 19 16 16
47 52 24 23 31 35
10
Inspees Formais
Revises Estruturadas
Atividade
Testes de Aceitao
Testes de Unidade
Teste de Software
Teste de Software
Conceitos Bsicos
Teste consistes na verificao dinmica do funcionamento de um programa em um conjunto finito de casos de teste, cuidadosamente selecionado dentro de um domnio infinito de entradas, contra seu funcionamento esperado. esperado.
Dinmico Execuo Finito Existem muitos casos de teste Selecionado Tcnicas diferem na seleo Esperado Funcionamento deve ser verificado
Teste de Software
Teste de Software
Fases do Teste
Planejamento Desenho Objetivos do Teste O qu testar? Determinao de estratgias para delimitar os objetivos Gerao de Procedimentos e Casos de Teste
Implementao Execuo dos Casos de Teste Determinar se os objetivos foram atendidos Registrar lies aprendidas, gerando um relatrio final Execuo
Teste de Software
Teste de Software
Dificuldades do Teste
Deteco de falhas se d atravs da ocorrncia de defeitos necessria a existncia de uma especificao Falhas nos requisitos podem no ser detectadas Especificao incompleta ou ambgua pode levar a resultados incorretos ou inadequados
Software
Teste de Software
Teste de Software
Dificuldades
Testes no podem ser exaustivos
no servem para demonstrar correo de um sw
Testar No Tudo!
Testar no a nica forma de encontrar falhas em um software
testes devem complementar outras formas de V&V e no substitu-las substitu-
Veredictos de testes dependem das sadas esperadas mas elaborar mecanismo que produza as sadas esperadas (orculo) difcil ou mesmo impossvel
H falhas que dificilmente seriam reveladas atravs de testes As revises e inspees so mais efetivas na descoberta de erros!
Teste de Software
Teste de Software
Testes de Software
Voc tem interesse em ingressar nesse mundo?
Teste de Software
Teste de Software
Estrutura do Curso
Introduo
motivao para teste de software problemas causados por falhas em softwares custos nas atividades de testes
Teste de Software
Teste de Software
Estrutura do Curso
Nveis de Teste
Alvo do teste: teste de unidade, teste de integrao e teste de sistema Objetivos do teste: teste de aceitao; teste de instalao, teste alfa e beta, teste funcional, teste de regresso, teste de desempenho, teste de estresse, teste de usabilidade.
Estrutura do Curso
Tcnicas de Teste
Tcnicas de caixa-preta caixa Particionamento de equivalncia Anlise de valor limite Tabela de deciso Mquina de estados finitos Teste baseado em especificaes UML
Teste de Software
Teste de Software
Estrutura do Curso
Tcnicas de Teste
Tcnicas de caixa-branca caixa Critrios de fluxo controle Critrios de fluxo de dado Critrio baseado em aspectos Tcnicas baseadas em falhas
adivinhao de erros, mutao, tcnicas baseadas no uso do software, tcnica baseada na natureza da aplicao
Estrutura do Curso
Mtricas de Teste
Mtricas relacionadas ao software sob teste
Tamanho Estrutura
Teste de Software
Teste de Software
Estrutura do Curso
Um Exemplo do Fluxo de Teste
Execuo das diversas atividades existentes em um fluxo tcnico de teste de um processo de software, utilizando um exemplo real
Planejamento Desenho Implementao Execuo Verificao do trmino Balano final