Professional Documents
Culture Documents
Ementa da Disciplina
Introduo: princpios, limitaes, conceitos bsicos e terminologia.
Tcnicas de Projeto de Casos de Teste. Teste Funcional. Teste Estrutural.
Teste de Caixa Preta. Automao da Atividades de Testes. Testes de
Software Orientado a Objetos. Testes de Software para internet.
Tcnicas de Depurao de Software. Ferramentas de Suporte ao teste de
software. Exerccios prticos.
Prof. J.E.Deboni 1
Aula 01 Teste de Software
Apresentao da Disciplina
Teste de Software no Garantia de Qualidade:
O Teste verifica a existncia de erros em algo que j est pronto,
A Garantia da Qualidade tenta evitar que os erros aconteam.
O objetivo principal:
Capacitar o aluno na elaborao e execuo de um plano de teste de software
- abordagem terico - prtica
- Boas prticas de Engenharia
- Rigor terico exigido pela Academia
- Focando problemas reais (profissionais)
- recursos disponveis: Opensource, Apache, Java.
Conhecendo o professor
Jos Eduardo Zindel Deboni
Prof. J.E.Deboni 2
Aula 01 Teste de Software
Conhecendo o Aluno
Estrutura do Curso
Aula 1 - Introduo disciplina de Testes de Software
Aula 2 - Descrio do Processo de Teste de Software
Aula 3 - Tipos de teste, teste funcional.
Aula 4 - Teste estrutural esttico.
Aula 5 - Teste de unidade com JUnit.
Aula 6 - Tcnicas especiais para orientados a objeto
Aula 7 - Teste de cobertura / Testes em Banco de Dados
Aula 8 - Testes de Usabilidade / Testes em Aplicaes web
Aula 9 - Testes de Desempenho / Testes de Carga com JMeter
Aula 10 - Seminrio 1
Aula 11 - Seminrio 2
Aula 12 Seminrio 3 / Reviso geral
Aula 13 - Avaliao final
Prof. J.E.Deboni 3
Aula 01 Teste de Software
Calendrio
Prof. J.E.Deboni 4
Aula 01 Teste de Software
Algumas perguntas:
Prof. J.E.Deboni 5
Aula 01 Teste de Software
Software Testing
by Ron Patton
2nd Edio
Prof. J.E.Deboni 6
Aula 01 Teste de Software
Referncias nacionais
Prof. J.E.Deboni 7
Aula 01 Teste de Software
Artigos de Divulgao:
Fonte Secundria, Revistas tcnicas da rea, livros de divulgao, Congressos de
divulgao. Podem ser usados em parte.
? White Papers:
Autores conhecidos, fontes seguras, recuperveis, entidades confiveis
Artigos Ruins:
Autores desconhecidos, fontes inseguras, opinies pessoais, publicidade de produtos,
artigos suspeitos e tendenciosos. Livros ruins.
Termos e Definies I
Software so todos os produtos do processo de desenvolvimento de um programa
de computador, que tem uma finalidade prtica.
Software no s o programa executvel, mas todo o produto gerado no processo
de desenvolvimento.
Software inclui a especificao, a documentao, as mensagens, cones, testes a
interface grfica e tambm o cdigo fonte e o executvel.
Do Aurlio: Verbete: teste
S. m.
1. Exame, verificao ou prova para determinar a qualidade, a natureza ou o
comportamento de alguma coisa, ou de um sistema sob certas condies.
2. Mtodo, processo, procedimento ou meios utilizados para tal exame,
verificao ou prova.
Prof. J.E.Deboni 8
Aula 01 Teste de Software
Termos e Definies II
Dando nomes aos bois
Verbete: erro
()[Dev. de errar.]
1. Ato ou efeito de errar.
2. Juzo falso; desacerto, engano.
3. Incorreo, inexatido.
4. Desvio de bom caminho; desregramento, falta.
A lngua uma arma perigosa, voc pode conseguir muito inimigos com ela.
Erro implica em juzo falso (Algum errou), culpa, no ajuda a resolver o problema.
Falha no traduz a real gravidade apenas uma omisso, uma lacuna.
Nem falha nem erro: vou usar BUG
Prof. J.E.Deboni 9
Aula 01 Teste de Software
Termos e Definio - IV
bug
Termos e Definies
Especificao do Produto
um documento que estabelece o que o software deve fazer.
parte do software e tambm deve ser testado
Pode ser mais ou menos formal
Por definio:
Prof. J.E.Deboni 10
Aula 01 Teste de Software
O que um BUG?
2. Quando o software faz algo que a especificao diz que ele no faz,
Notar que a especificao pode ser explcita (dita) ou implcita (no dita)
Prof. J.E.Deboni 11
Aula 01 Teste de Software
Especificao 50%
Projeto 25%
Cdigo 20%
Outros 5% Ref. Patton, 2001
Prof. J.E.Deboni 12
Aula 01 Teste de Software
Um nova definio:
Teste de software o processo para encontrar falhas no software
Um software falha quando ele no atende sua especificao
A especificao traduz a vontade do usurio do software, assim
Um software falha onde e quando ele no atende a vontade do seu
usurio
Teste de software um processo da engenharia de software para
encontrar onde e quando ele no atende a vontade do seu usurio.
Como o objetivo da engenharia de software produzir software melhor :
dentro da especificao, ou seja atendendo as vontades dos usurios:
Encontrar bugs!
Prof. J.E.Deboni 13
Aula 01 Teste de Software
Termos e Definies V
Escolhendo um nome para o profissional
Programador
Analista de Sistemas
Desenvolvedor
Engenheiro de Software
Testador? Tester
Analista de Teste,
Prof. J.E.Deboni 14
Aula 01 Teste de Software
1976 Michael Fagan publicou um paper sobre Design and Code Inspections
1979 Glenford Myers publicou seu livro (clssico) A Arte do Teste de Software
1987 IEEE publica um padro com uma terminologia para a rea de Engenharia de Software.
1994 - Brian Marick The Craft of Software Testing Inclui elementos e Orientao a Objetos.
1995 - Edward Kit publica Software Testing in The Real World, bom livro mas com os mesmos princpios.
1999 - Kaner, Cem publica Testing Computer Software, 2nd ed. Aborda um ponto de vista prtico
2000 Kent Beck e Erick Gamma publicam o artigo: Test Infected: Programmers Love Writing Tests
onde apresentam o Junit. Ferramenta essencial para o desenvolvimento na filosofia do XP.
2003 Kent Beck e outros Test Driven Development, o teste como mtodo de desenvolvimento
Termos e Definies VI
Alguns termos usados tem uma definio especial.
Preciso [precision]
que fornece resultados com muitas casas decimais, com grandeza de detalhes
Acuracidade [accuracy]
que fornece resultados certos. Com os detalhes corretos.
Verificao [verification]
o processo de confirmao de algo.
Garante que estamos desenvolvendo o sistema corretamente.
Validao [validation]
o processo de confirmar que algo est de acordo com o esperado.
Garante que estamos desenvolvendo o sistema correto.
Reviso [revision]
uma verificao, implica que foi visto uma vez e ser revisto.
Inspeo [inspection]
uma verificao/reviso mais detalhada, feita com uma autoridade (inspetor)
Prof. J.E.Deboni 15
Aula 01 Teste de Software
Termos e Definies V
Definindo alguns termos de qualidade
Garantia da Qualidade [ Quality Assurance]
Garante que o processo vai ter Qualidade, normalmente tomando providncias anteriores ao
processo acontecer. Capacitao, seleo de mtodos e procedimentos.
Teste
O teste uma ferramenta que pode ser usada pela Garantia da Qualidade, pelo Controle de
Qualidade e pelo desenvolvimento.
Qualidade
O que o cliente quer. O que o cliente valoriza. (Viso da qualidade total).
Qualidade[quality]
Um grau de excelncia, um conjunto de propriedades valorizadas pelo cliente.
Medidas da Qualidade I
Eficincia [efficiency]
Em engenharia realizar uma tarefa com uso otimizado de recursos. Um
motor mais eficiente que outro se consome menos combustvel.
Eficcia [efficacy]
Realizar algo com sucesso. A soluo eficaz se realmente consegue
resolver o problema. No est ligada eficincia da soluo.
Confiabilidade [ reliability]
Propriedade de quem se pode confiar. Que d resultados estveis, que se
pode depender. Mas no necessariamente com qualidade.
Prof. J.E.Deboni 16
Aula 01 Teste de Software
Medidas da Qualidade I
Desempenho [performance]
Propriedade ligada ao tempo para se obter um resultado. Quanto maior o
desempenho, mais rpido se obtm o resultado.
Usabilidade [usability]
Propriedade de algo que pode ser usado com facilidade.
Portabilidade [portability]
Que pode ser transportado para outro lugar. Um software que pode ser executado
em outras mquinas. Que pode se portado para outras mquinas.
Completitude [completeness]
Propriedade de quem est completo. Qualidade de quem no necessita de
alteraes.
Corretitude [ correcteness]
Propriedade de quem est certo. Que oferece resultados esperados.
Escalabilidade [scalability]
Propriedade do sistema em mudar a escala de usurios, atendendo a um nmero
maior de usurios.
Medidas da Qualidade I
Ambiquidade [ambiquity]
O contrrio da clareza. Pode criar confuso interpretao.
Clareza [clarity]
O que est claro e no cria confuso na sua interpretao.
Consistncia [consistency]
Que oferece resultados coerentes com os dados fornecidos.
Testabilidade [testability]
Propriedade de quem testvel. Propriedade de quem pode ser testado.
Prof. J.E.Deboni 17
Aula 01 Teste de Software
Qualidade
Independe da Funcionalidade, consome recursos (prazo e custo
deseja-se alta (cliente) e (desenvolvedor)
Prazo de execuo
Tempo para se obter o produto de software.
Deseja-se baixo (cliente).
Funcionalidade (Escopo)
Corresponde s funes de um software.
Deseja-se alta (cliente e desenvolvedor).
Custo (e Preo) do desenvolvimento
Preo:
Interessa ao cliente e ao desenvolvedor. Ligado a quanto o cliente ir
pagar pelo produto de software.
Deseja-se baixo (cliente). Deseja-se alto (desenvolvedor)
Custo do desenvolvimento
Interessa ao desenvolvedor. Ligado aos gastos que se tem com o
desenvolvimento.
Deseja-se baixo (desenvolvedor)
Teste de Software
Prof. J.E.Deboni 18
Aula 01 Teste de Software
Prof. J.E.Deboni 19
Aula 01 Teste de Software
Frase do dia
Se voc no testou,
no pode saber se est funcionando.
Apresentar as definies e os
fundamentos do teste de software.
Analisar alguns axiomas nesta rea.
Prof. J.E.Deboni 20
Aula 01 Teste de Software
O que um Bug?
Informalmente referenciado como:
bug
Prof. J.E.Deboni 21
Aula 01 Teste de Software
Prof. J.E.Deboni 22
Aula 01 Teste de Software
Testes
Testes Superdimensioados
subdimensionados
qtd de testes
Prof. J.E.Deboni 23
Aula 01 Teste de Software
Paradoxo do Pesticida:
Prof. J.E.Deboni 24
Aula 01 Teste de Software
BARATAS
Baratas habitam o planeta h mais de 300 milhes de
anos e tm a maior capacidade de adaptao do
reino animal. H quatro mil espcies no mundo.
Elas transmitem 38 tipos de doenas aos seres
humanos.
Prof. J.E.Deboni 25
Aula 01 Teste de Software
Prof. J.E.Deboni 26
Aula 01 Teste de Software
Prof. J.E.Deboni 27
Aula 01 Teste de Software
Resumo
O objetivo dos testes de software encontrar bugs!
Lembrando que:
1. No possvel se testar um programa completamente
2. O teste de software uma atividade de risco
3. No se pode provar que os bugs no existem
4. Quanto mais bugs encontrar, mais bug existiro
5. Nem todos os bugs sero corrigidos
6. difcil dizer que um bug um bug.
7. A especificao nunca estar completa
8. Os analistas de teste no so muito populares
9. Teste de software uma atividade tcnica que exige disciplina
Prof. J.E.Deboni 28