Vous êtes sur la page 1sur 8

Teste de Software

Teste de Software

Importncia das Atividades de Qualidade

Uma Viso Geral do Teste de Software


Pedro de Alcntara dos Santos Neto pasn@dcc.ufmg.br asn@ dcc.ufmg.br http://www.dcc.ufng.br/~pasn http://www.dcc. ufng. br/~pasn

Dependncia por sistemas 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

Importncia das Atividades de Qualidade


Um dado impressionante do NIST:
U$59.500.000.000,00 o custo das falhas em software nos EUA, apenas em 2002. U$22.200.000.000,00 em economia, caso a infra-estrutura infrapara testes fosse melhor.

Importncia das Atividades de Qualidade Import


Mars Climate Orbiter
Objetivo
Enviar sinais a partir de marte, aps seu pouso no planeta ap

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

Importncia das Import Atividades de Qualidade


Airbus 320
Desastre
USS Vicennes derrubou um airbus 320 em 1988

Importncia das Atividades de Qualidade


Mquina de Terapia Radiotiva
Desastre
Overdose em pacientes sob tratamento

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

Importncia das Atividades de Qualidade


London Ambulance Service
Desastre
Servio auxiliado por computador falhou nos dias 26 e 27 de novembro de 1992, gerando vrias falhas, como o envio de 2 ambulncias para o mesmo destino, envio de uma ambulncia para um local estando outras mais prximas, etc.

Importncia das Atividades de Qualidade


Airbus A300 China Air Lines
Desastre
Avio caiu em 1994

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

Importncia das Atividades de Qualidade


Mais de uma centena de outras falhas ... Como ficar livre disso?

Importncia das Atividades de Qualidade


Expectativa
Podemos esperar que o software funcione corretamente? Programas feitos com bastante cuidado
5 falhas / 1000 LOC Programa com 1 Milho LOC Milh 45 x 5000 = 225.000 5000 falhas

Windows XP tem 45 Milhes de LOC Milh

Teste de Software

Teste de Software

Importncia das Atividades de Qualidade


Piada?
Se a indstria automobilstica tivesse se desenvolvido como a indstria do software, ns teramos carros por U$25, fazendo 5000 milhas com um galo de combustvel. Porm, esse carro iria quebrar duas vezes por dia, sem um motivo aparente, e quando voc solicitasse assistncia junto as concessionrias eles iriam dizer para voc reinstalar o motor! X

Teste de Software

Teste de Software

Importncia das Atividades de Qualidade


Carros so mais confiveis que software?

Importncia das Atividades de Qualidade


Como os carros so desenvolvidos?
Requisitos Motor, rodas, ar-condicionado, som, espao para bagagem ... arDesenho detalhado Projeto arquitetnico, revisado vrias vezes Verificao do desenho Simulao, prottipo Desenvolvimento de componentes Testa-se cada componente Testa Componentes so reusveis Produzidos em massa Montagem do carro Testa-se o carro (teste de batidas, teste de resistncia, teste de Testaestabilidade Teste de usabilidade

Teste de Software

Teste de Software

Importncia das Atividades de Qualidade


Como os carros so desenvolvidos?
Unidades Integrao

Importncia das Atividades de Qualidade


Caractersticas do LEGO
Modularidade Reusabilidade Flexibilidade Compatibilidade

No entanto, tambm existem falhas!


Tudo precisa ter sua qualidade aferida, seja por testes, seja por qualquer outra tcnica!
Integrao Produto Concludo

Teste de Software

Teste de Software

O que Qualidade de Software?


Totalidade de caractersticas de uma entidade que lhe confere a capacidade de satisfazer a necessidades explcitas e implcitas [NBR ISO 1994] Conformidade a:
requisitos funcionais e de desempenho, padres e convenes de desenvolvimento prprestabelecidos, atributos implcitos que todo software desenvolvido profissionalmente deve possuir. [R.S.Pressman]

O que Qualidade de Software?


Cada tipo de software tem seus prprios requisitos de qualidade A importncia de cada caracterstica de qualidade varia conforme o tipo de software

Teste de Software

Teste de Software

Por qu surgem falhas?


Alteraes:
alteraes degradam a estrutura do software, tornando-o cada vez tornandomais difcil de alterar

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?

Realizao de revises tcnicas e inspees


o objetivo avaliar a qualidade do artefato de softwarew (especificao, projeto, ...) produzido ao longo do desenvolvimento desenvolvimento

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

1995 1997 1999 2001

10

Inspees Formais

Testes do Sistema Integrado

Revises Estruturadas

Atividade

PBQ Software - MCT

Testes de Aceitao

Testes de Unidade

Teste de Software

Teste de Software

Esforo por Atividade


Anlise Projeto Command-control SAGE-NTDS Command-control TRW Sapceborne OS/360 Cientfico TRW Comercial Raytheon 35% 46% 34% 33% 44% 44% Codificao e Auditoria 17% 20% 20% 17% 26% 28% Teste e Integraao 48% 34% 46% 50% 30% 28%

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

Quando os testes devem comear?


As atividades de testes devem ser integradas s atividades de desenvolvimento As atividades de teste devem ser iniciadas cedo Procedimentos de teste podem ser descritos desde a fase de especificao

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

Verificao Balano Final

Teste de Software

Teste de Software

Ciclo dos Testes


Especificao

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

Sadas Esperadas Entradas Sadas Obtidas

Passou No passou Inconcludente Erro


Orculo Veredicto

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-

Certas tarefas de testes no podem ser automatizadas


problemas intratveis e indecidveis

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

Como tornar a atividade de teste mais eficiente?


Utilizar outras tcnicas de V&V combinadas ao teste Uso de ferramentas e metodologias Reuso de casos de teste sempre que possvel Integrao das atividades de testes com as atividades de desenvolvimento Uso de estratgias com base em riscos

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

Fundamentos do Teste de Software


terminologia associada questes chaves testabilidade critrios para seleo e adequao efetividade objetivos

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

Mtricas relacionadas aos testes executados


Cobertura Insero de falhas Escore de mutao

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

Uma Viso Geral do Teste de Software


Pedro de Alcntara dos Santos Neto pasn@dcc.ufmg.br asn@ dcc.ufmg.br http://www.dcc.ufng.br/~pasn http://www.dcc. ufng. br/~pasn

Vous aimerez peut-être aussi