Teste de SoftwareAgileTesting
Teste de Software"É de conhecimento geral entre os analistas de software que nunca se elimina o último bug de um programa. Os bugs são aceitos como uma triste realidade. Esperamos eliminá-los todos, um por um, mas nunca conseguiremos nos livrar deles."  DeMarco, Tom , Editora Campus, 91Mas geralmente temos as seguintes situações:“Depois eu escrevo o plano de testes...“"Vamos deixar os testes para a próxima fase...“"Na minha máquina funcionou...“"Temos que entregar o produto na semana que vem..."Então o que é teste de software ?
O que é Teste de Software?Processo que procura garantir que um programa se adapte aos requisitos da especificação e funcione em todos os casos em que se espere que funcioneIdentificação de possíveis defeitos que possam vir a ocorrer após a finalização do software e posterior implantação
Por que Testar?Não existe processo de desenvolvimento que garanta que um programa não tenha defeitos Gasto com retrabalhoGasto de tempo na manutenção do softwareDescontentamento do clienteDivulgação negativa para futuros possíveis clientes
Por que Testar?Usuários: Sempre surpreendendo.Tentamacessar o mesmoaplicativoemdois browsers diferentes
Ignorammensagens de erros
Entram com datasinválidas, executamaçõesfora de ordem
Editam arquivos que não deveriam ser editados
Imprimem páginas que não foram configuradas para serem impressas
Tem idéias “incorretas” sobre o que software deveria ou não fazer.Usuáriosfazemtudoisso, porqueelesqueremusar o software e nãoentendê-lo.
Em todas as fases do desenvolvimento de softwareQuantomaiscedomelhor Hoje de 40 a 70 % do tempo do desenvolvimento do software é dedicado a identificação e remoção dos errosErros que não são detectados e geram falhas no campo geram sérias conseqüências financeiras/legais  e na melhor das hipóteses gera um alto custo de manutenção para o sistemaQuando Testar?
Custo da Identificação do ErroCostInception	Elaboration	Construction	Transition
O que Testar?Erros se escondem não só no código, mas nos requisitos, manuais, data sheets, etcNão podemos testar tudo, por isso precisamos administrar o RISCODevemos testar o que traz maiores conseqüências no caso de falha?Devemos testar o que é mais utilizado?Devemos testar o que já dá mais erro? Ou que foi escrito por programador júnior?Deve ser garantida a qualidade do processo e depois do produto -> Verificação e Validação
O queTestar?
Como Testar?Teste o código em seus limites: tente uma entrada vazia, um único item, um vetor cheio, etc.Teste de pré e pós condições: verifique certas propriedades antes e depois de trechos de código;Programe defensivamente;Sempre verifique se ocorreram erros ao abrir, ler, escrever e principalmente fechar arquivos;Sempre trate as possíveis exceções;
Como Testar?Teste incrementalmente (scrum);Teste primeiro partes simples: tenha certeza que partes básicas funcionam antes de prosseguir;Conheça as saídas esperadas;Tester com grandes quantidades de dados;Teste em várias máquinas e browsers.
Principais Tipos de TestesTesteEstruturalou White box testing: testebaseado no código.
Executa todas as decisões lógicas para valores falsos ou verdadeiros
Executa todos os laços em suas fronteiras
Exercita as estruturas de dados internasTesteFuncionalou black box testing: Simula a experiência do usuário final, semconhecimento do código.Funções incorretas ou ausentes;
Erros de interface;
Acesso a bancos de dados externos;

Teste de Software

  • 1.
  • 2.
    Teste de Software"Éde conhecimento geral entre os analistas de software que nunca se elimina o último bug de um programa. Os bugs são aceitos como uma triste realidade. Esperamos eliminá-los todos, um por um, mas nunca conseguiremos nos livrar deles."  DeMarco, Tom , Editora Campus, 91Mas geralmente temos as seguintes situações:“Depois eu escrevo o plano de testes...“"Vamos deixar os testes para a próxima fase...“"Na minha máquina funcionou...“"Temos que entregar o produto na semana que vem..."Então o que é teste de software ?
  • 3.
    O que éTeste de Software?Processo que procura garantir que um programa se adapte aos requisitos da especificação e funcione em todos os casos em que se espere que funcioneIdentificação de possíveis defeitos que possam vir a ocorrer após a finalização do software e posterior implantação
  • 4.
    Por que Testar?Nãoexiste processo de desenvolvimento que garanta que um programa não tenha defeitos Gasto com retrabalhoGasto de tempo na manutenção do softwareDescontentamento do clienteDivulgação negativa para futuros possíveis clientes
  • 5.
    Por que Testar?Usuários:Sempre surpreendendo.Tentamacessar o mesmoaplicativoemdois browsers diferentes
  • 6.
  • 7.
    Entram com datasinválidas,executamaçõesfora de ordem
  • 8.
    Editam arquivos quenão deveriam ser editados
  • 9.
    Imprimem páginas quenão foram configuradas para serem impressas
  • 10.
    Tem idéias “incorretas”sobre o que software deveria ou não fazer.Usuáriosfazemtudoisso, porqueelesqueremusar o software e nãoentendê-lo.
  • 11.
    Em todas asfases do desenvolvimento de softwareQuantomaiscedomelhor Hoje de 40 a 70 % do tempo do desenvolvimento do software é dedicado a identificação e remoção dos errosErros que não são detectados e geram falhas no campo geram sérias conseqüências financeiras/legais e na melhor das hipóteses gera um alto custo de manutenção para o sistemaQuando Testar?
  • 12.
    Custo da Identificaçãodo ErroCostInception Elaboration Construction Transition
  • 13.
    O que Testar?Errosse escondem não só no código, mas nos requisitos, manuais, data sheets, etcNão podemos testar tudo, por isso precisamos administrar o RISCODevemos testar o que traz maiores conseqüências no caso de falha?Devemos testar o que é mais utilizado?Devemos testar o que já dá mais erro? Ou que foi escrito por programador júnior?Deve ser garantida a qualidade do processo e depois do produto -> Verificação e Validação
  • 14.
  • 15.
    Como Testar?Teste ocódigo em seus limites: tente uma entrada vazia, um único item, um vetor cheio, etc.Teste de pré e pós condições: verifique certas propriedades antes e depois de trechos de código;Programe defensivamente;Sempre verifique se ocorreram erros ao abrir, ler, escrever e principalmente fechar arquivos;Sempre trate as possíveis exceções;
  • 16.
    Como Testar?Teste incrementalmente(scrum);Teste primeiro partes simples: tenha certeza que partes básicas funcionam antes de prosseguir;Conheça as saídas esperadas;Tester com grandes quantidades de dados;Teste em várias máquinas e browsers.
  • 17.
    Principais Tipos deTestesTesteEstruturalou White box testing: testebaseado no código.
  • 18.
    Executa todas asdecisões lógicas para valores falsos ou verdadeiros
  • 19.
    Executa todos oslaços em suas fronteiras
  • 20.
    Exercita as estruturasde dados internasTesteFuncionalou black box testing: Simula a experiência do usuário final, semconhecimento do código.Funções incorretas ou ausentes;
  • 21.
  • 22.
    Acesso a bancosde dados externos;