Escolar Documentos
Profissional Documentos
Cultura Documentos
Motivao
!!
Teste de Software
!!
!!
Ocorrncia de falhas humanas no processo de desenvolvimento de software considervel Processo de testes indispensvel na garantia de qualidade de software Custos associados s falhas de software justificam um processo de testes cuidadoso e bem planejado
Slide 1
Slide 2
Falha
! ! Incapacidade do software de realizar a funo requisitada (aspecto externo) Exemplo
! Terminao anormal, restrio temporal violada
Falta
! ! Causa de uma falha Exemplo
! Cdigo incorreto ou faltando
Slide 3
Slide 4
Erro
! ! ! Estado intermedirio (instabilidade) Provm de uma falta Pode resultar em falha, se propagado at a sada
Falta
Erro
Falha
Slide 5
Slide 6
6/6/11
Noo de confiabilidade
!!
Noo de confiabilidade
!!
!!
!!
Confiabilidade de software
! !
!!
Slide 7
Eficcia de testes
!!
Dados de Teste
! Entradas selecionadas para testar o software Dados de teste, bem como sadas esperadas de acordo com a especificao (Veredicto) Cenrios especficos de execuo
!!
Casos de Teste
! !
!!
!!
A atividade de teste o processo de executar um programa com a inteno de descobrir um erro Um bom caso de teste aquele que apresenta uma elevada probabilidade de revelar um erro ainda no descoberto Um teste bem sucedido aquele que revela um erro ainda no descoberto
Slide 9
Slide 10
O processo de teste
!!
Fases de teste
Teste de componentes
! ! ! Teste de componentes individuais de programa; Geralmente de responsabilidade do desenvolvedor do componente (exceto algumas para sistemas crticos); Os testes so derivados da experincia do desenvolvedor. Teste de grupos de componentes integrados para criar um sistema ou um subsistema; A resposabilidade de uma equipe independente de teste; Os testes so baseados em uma especificao de sistema.
!!
Teste de sistema
! ! !
Slide 11
Slide 12
6/6/11
Teste de defeitos
!!
!!
!!
A meta do teste de defeitos descobrir defeitos em programas. Um teste de defeitos bem sucedido aquele que faz um programa se comportar de uma maneira anmala. Os testes mostram a presena e no a ausncia de defeitos.
Teste de validao
! ! Utilizado para demonstrar ao desenvolvedor e ao cliente do sistema que o software atende aos seus requisitos. Um teste bem sucedido mostra que o sistema opera conforme pretendido. Utilizado para descobrir faltas ou defeitos no software nos locais em que o comportamento no est correto ou no est em conformidade com a sua especificao; Um teste bem sucedido aquele que faz o sistema executar incorretamente e, assim, expor um defeito no sistema.
!!
Teste de defeitos
! !
Slide 13
Slide 14
Polticas de teste
Somente testes exaustivos podem mostrar que um programa est livre de defeitos. Contudo, testes exaustivos so impossveis. As polticas de teste definem a abordagem a ser usada na seleo de testes de sistema:
! ! ! Todas as funes acessadas por meio de menus devem ser testadas; As combinaes de funes acessadas por meio dos mesmos menus devem ser testadas; Onde as entradas de usurio so fornecidas, todas as funes devem ser testadas com entradas corretas e incorretas.
!!
Slide 15
Slide 16
Teste de sistema
!!
Teste de integrao
!!
!!
!!
Envolve a integrao de dois ou mais componentes para criar um sistema ou subsistema. Pode envolver o teste de um incremento para ser entregue ao cliente. Duas fases:
! Teste de integrao a equipe de teste tem acesso ao cdigo fonte do sistema e o sistema testado medida que os componentes so integrados. Teste de releases a equipe de teste testa o sistema completo a ser entregue como uma caixa-preta.
!!
Envolve a construo de um sistema a partir de seus compontes e o teste do sistema resultante dos problemas ocorridos nas interaes entre componentes. Integrao top-down
! Desenvolver o esqueleto do sistema e preench-lo com componentes. Integrar componentes de infra-estrutura e, em seguida, adicionar componentes funcionais.
!!
Integrao bottom-up
!
!!
Slide 17
Slide 18
6/6/11
Abordagens de teste
Validao de arquitetura
!
!!
O teste de integrao top-down melhor para descobrir erros na arquitetura do sistema. O teste de integrao top-down permite uma demonstrao limitada no estgio inicial do desenvolvimento. Freqentemente mais fcil com teste de integrao bottomup. Problemas com ambas as abordagens. Um cdigo extra pode ser necessrio para observar os testes.
Demonstrao de sistema
!
!!
Implementao de teste
!
!!
Observao de teste
!
Slide 19
Slide 20
Teste de releases
!!
Teste caixa-preta
!!
!!
o processo de teste de um release de sistema que ser distribudo aos clientes. A meta primria aumentar a confiana do fornecedor de que o sistema atende aos seus requisitos. Teste de releases , geralmente, um teste caixa-preta ou funcional
! ! baseado somente na especificao de sistema; Os testadores no tm conhecimento da implementao do sistema.
Slide 21
Slide 22
Diretrizes de teste
!!
Cenrio de teste
Diretrizes so recomendaes para a equipe de teste para auxili-los a escolher os testes que revelaro defeitos no sistema
! ! ! ! ! Escolher entradas que forcem o sistema a gerar todas as mensagens de erro; Projetar entradas que causem overflow dos buffers; Repetir a mesma entrada ou srie de entradas vrias vezes; Forar a gerao de sadas invlidas; Forar resultados de clculo a serem muito grandes ou muito pequenos.
Engenharia de Software, 8. edio. Captulo 23 Slide 23 Ian Sommerville 2007 Engenharia de Software, 8. edio. Captulo 23 Slide 24
6/6/11
Testes de sistema
!!
Casos de uso
Casos de uso podem ser uma base para derivar os testes de um sistema. Eles ajudam a identificar as operaes a serem testadas e a projetar os casos de teste necessrios. A partir de um diagrama de seqncia associado, as entradas e sadas a serem criadas para os testes podem ser identificadas.
!!
Slide 25
Slide 26
Teste de desempenho
Parte do teste de releases pode envolver teste de propriedades emergentes de um sistema, tais como desempenho e confiabilidade. Testes de desempenho envolve, geralmente, o planejamento de uma srie de testes onde a carga constantemente aumentada at que o desempenho do sistema se torne inaceitvel.
! ! Transes em BD Terminais
!!
Slide 27
Slide 28
Teste de estresse
!!
Teste de estresse
!!
!!
!!
So exerccios do sistema alm de sua carga mxima de projeto. O estresse de um sistema causa, freqentemente, o surgimento de defeitos. O estresse de sistema testa o comportamento de falha, pois os sistemas no devem falhar catastroficamente. O teste de estresse verifica uma perda inaceitvel de servio ou de dados. O teste de estresse particularmente relevante para sistemas distribudos que podem exibir degradao severa quando uma rede se torna sobrecarregada.
Exemplos Pouca memria ou rea em disco, alta competio por recursos compartilhados (ex: vrios acessos/ transaes no BD ou rede) !! Exemplo: pode-se desejar saber se um sistema de transaes bancrias suporta uma carga de mais de 100 transaes por segundo ou se um sistema operacional pode manipular mais de 200 terminais remotos
!!
Slide 29
Slide 30
6/6/11
Tipos de teste
!!
Tipos de teste
!!
!!
Slide 31
Slide 32
Tipos de teste
!!
Tipos de teste
!!
Teste de documentao
! Verifica se a documentao corresponde informao correta e apropriada:
! online ! escrita ! help sensvel ao contexto
!!
Slide 33
Slide 34
Teste de componentes
!!
!! !!
Teste de componente ou unitrio o processo de teste de componentes individuais isolados. um processo de teste de defeitos. Os componentes podem ser:
! ! ! Funes individuais ou mtodos de um objeto; Classes de objeto com vrios atributos e mtodos; Componentes compostos com interfaces definidas usadas para acessar sua funcionalidade.
!!
A herana torna mais difcil o projeto de testes de classe de objeto quando as informaes a serem testadas no so localizadas.
Slide 35
Slide 36
6/6/11
!!
!!
Slide 37
Slide 38
Teste de interfaces
!!
Teste de interfaces
!!
Os objetivos so detectar defeitos devido a erros de interface ou suposies invlidas sobre interfaces. particularmente importante para o desenvolvimento orientado a objetos quando os objetos so definidos pelas suas interfaces.
Slide 39
Slide 40
Tipos de interfaces
!!
Erros de interface
!!
Interfaces de parmetros
! Os dados so passados de um procedimento para outro. Um bloco de memria compartilhado entre procedimentos ou funes. Um subsistema engloba um conjunto de procedimentos para serem chamados por outros subsistemas.
!!
!!
Interfaces de procedimentos
!
!!
!!
Erros de timing
!
Slide 41
Slide 42
6/6/11
!!
!! !!
!!
Projetar testes de tal modo que os parmetros para um procedimento chamado estejam nos limites extremos de suas faixas. Testar sempre os parmetros de ponteiro com ponteiros nulos. Projetar testes que causem a falha do componente. Usar teste de estresse em sistemas de passagem de mensagem. Em sistemas de memria compartilhada, variar a ordem na qual os componentes so ativados.
!!
!!
Envolve o projeto de casos de teste (entradas e sadas) usados para testar o sistema. A meta do projeto de casos de teste criar um conjunto de testes que sejam eficazes em validao e teste de defeitos. Abordagens de projeto:
! ! ! Teste baseado em requisitos; Teste de parties; Teste estrutural.
Slide 43
Slide 44
Requisitos do LIBSYS
!!
Um princpio geral de engenharia de requisitos que os requisitos devem ser testveis. O teste baseado em requisitos uma tcnica de teste de validao onde voc considera cada requisito e deriva um conjunto de testes para esse requisito.
Slide 45
Slide 46
Testes do LIBSYS
!!
Teste de parties
Dados de entrada e resultados de sada caem freqentemente em classes diferentes, onde todos os membros de uma classe so relacionados. Cada uma dessas classes uma partio de equivalncia ou domnios onde o programa se comporta de maneira equivalente para cada membro da classe. Casos de teste devem ser escolhidos a partir de cada partio.
Ian Sommerville 2007 Engenharia de Software, 8. edio. Captulo 23 Slide 48
!!
!!
Slide 47
6/6/11
Particionamento de equivalncia
Parties de equivalncia
Slide 49
Slide 50
!!
!!
!!
Slide 51
Slide 52
!!
!!
Testar o software com seqncias que tm apenas um valor nico. Usar seqncias de tamanhos diferentes em testes diferentes. Derivar testes de tal modo que o primeiro, o mdio e o ltimo elementos da seqncia sejam acesssados.
Slide 53
Slide 54
6/6/11
Teste estrutural
!! !!
Teste estrutural
!!
Algumas vezes chamado de teste caixa-branca. a derivao de casos de teste de acordo com a estrutura do programa. O conhecimento do programa usado para identificar casos de teste adicionais. O objetivo exercitar todas as declaraes do programa (no todas as combinaes de caminhos).
Slide 55
Slide 56
!!
!!
!! !! !!
Pr-condies satisfeitas, elemento key no vetor. Pr-condies satisfeitas, elemento key no est no vetor. Pr-condies no satisfeitas, elemento key no vetor. Pr-condies no satisfeitas, elemento key no est no vetor. Vetor de entrada tem um valor nico. Vetor de entrada tem um nmero par de valores. Vetor de entrada tem um nmero mpar de valores.
Slide 57
Slide 58
Teste de caminho
O objetivo do teste de caminho assegurar que o conjunto de casos de teste tal que cada caminho pelo programa executado pelo menos uma vez. O ponto de partida do teste de caminho um fluxograma de programa que mostra os ns que representam as decises do programa e arcos que representam o fluxo de controle. Declaraes com condies so, portanto, ns no fluxograma.
!!
!!
Slide 59
Slide 60
10
6/6/11
Caminhos independentes
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14 1, 2, 3, 4, 5, 14 1, 2, 3, 4, 5, 6, 7, 11, 12, 5, 1, 2, 3, 4, 6, 7, 2, 11, 13, 5, Casos de teste devem ser derivados de tal modo que todos os caminhos sejam executados. Um analisador dinmico de programa pode ser usado para verificar se os caminhos foram executados.
!!
Slide 61
Slide 62
Complexidade ciclomtica
CFG1 CFG2 CFG3
!!
!!
Medida do nmero de caminhos independentes em um programa No depende do tamanho do cdigo, mas dos ramos na estrutura de controle medida por e n + 2, onde e a quantidade de arestas do grafo de controle e n a quantidade de ns do grafo
V(g)= 1 2 + 2 = 1
V(g)= 5 6 + 2 = 1
Ian Sommerville 2007 Engenharia de Software, 8. edio. Captulo 23 Slide 63 Ian Sommerville 2007
V(g)= 8 6 + 2 = 4
Slide 64
Complexidade ciclomtica
!!
Complexidade ciclomtica
!!
!!
!!
Baixa a moderada (abaixo de 20) indica um programa simples Alta (acima de 20) indica um programa complexo Muita alta (acima de 50) caracteriza um programa muito difcil de testar
!!
!!
Sinal de estrutura de controle de fluxo complicada No captura outros aspectos da dificuldade lgica que podem levar a dificuldades no teste Poucas evidncias de que uma ferramenta de previso de esforo de teste mais confivel do que linhas de cdigo
Slide 65
Slide 66
11
6/6/11
Automao de teste
!!
Um workbench de testes
!!
!!
!!
Teste uma fase dispendiosa do processo. Os workbenches de teste fornecem uma variedade de ferramentas para reduzir o tempo necessrio e os custos totais de teste. Sistemas tais como o JUnit apiam a execuo automtica de testes. A maioria dos workbenches de teste so sistemas abertos porque as necessidades de teste so especficas da organizao. Eles so, algumas vezes, difceis de integrar com workbenches de projeto e anlise fechados.
Slide 67
Slide 68
!!
!!
Scripts podem ser desenvolvidos para simuladores de interface de usurio e padres para geradores de dados de teste. Sadas de teste podem ser preparadas manualmente para comparao. Comparadores de arquivos para propsitos especficos podem ser desenvolvidos.
Slide 69
12