Surgimento do conceito de Programação orientada a testes
Qualidade de Software
Verificação de erros
Métodos automáticos(computador
executando as operações)
Verificação de irregularidades
Reuso de código
Documentação
Interpretação contextual
Reestruturação de código
Falta de conhecimento do testador
sobre o software é indicada
Realizada por testadores
Análise do sistema como um todo
Debugging
Estrutura da linguagem deve
facilitar o desenvolvimento
Métodos de análise
Após a execução
Durante a execução
Realizada pelo programador
Análise em módulos
Reunião de Garmish
Questões acerca dos erros
Taxa de erros não é constante, mas crescente
Por quanto tempo os erros permanecem no sistema?
Quem gera mais erros?
Programadores experientes
Programadores inexperientes
Qual a frequência dos erros?
A frequência é maior em módulos supervisores?
Que tipo de erros?
Relação entre o número de erros e as atualizações
Logo antes de uma atualização,
poucos erros são reportados
Logo após uma atualização
muitos erros são reportados
Grande número de erros = sistema problemático?
Qual o porque dos erros?
Softwares grandes, muitos erros
Produzir softwares de alta qualidade
Problemas técnicos de software
Personalidades
Bernard Galler
Ministrou o primeiro
curso de programação
1928 - 2006
Niklaus Wirth
Desenvolvimento de
linguagens de programação
Pascal
1934 - Presente
Edsger Dijkstra
Teoria da Ciência da Computação
Sistemas Operacionais
Algoritmos de grafos
Construção de
compiladores
1930 - 2002
Prevenção de erros
Aprendizado da programação
Reeducação de programadores mal habituados
Lógica de programação > Linguagens de programação
Testes
Certos tipos de erro não podiam ser identificados
Métodos não-práticos
Aplicados somente a alguns trechos do código
Métodos existentes são exaustivos
Formalidade no desenvolvimento
Funções mais sofisticadas
Causam os problemas de software mais graves
Mais difíceis de avaliar
Necessária para o desenvolvimento
de novas técnicas de verificação
Técnicas existentes inadequadas
Semelhanças com a matemática