A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Teste de Sistemas de Software

Apresentações semelhantes


Apresentação em tema: "Teste de Sistemas de Software"— Transcrição da apresentação:

1 Teste de Sistemas de Software
Alexandre Mota/Alexandre Vasconcelos ({acm,

2 Motivação Ocorrência de falhas humanas no processo de desenvolvimento de software é considerável Processo de testes é indispensável na garantia de qualidade de software Custos associados às falhas de software justificam um processo de testes cuidadoso e bem planejado

3 Conceitos Básicos

4 Falha, Falta e Erro Falha
Incapacidade do software de realizar a função requisitada (aspecto externo) Exemplo Terminação anormal, restrição temporal violada

5 Falha, Falta e Erro Falta Causa de uma falha Exemplo
Código incorreto ou faltando

6 Falha, Falta e Erro Erro Estado intermediário (instabilidade)
Provém de uma falta Pode resultar em falha, se propagado até a saída

7 Falta, erro e falha Falta Erro Falha

8 Noção de confiabilidade
Algumas faltas escaparão inevitavelmente Tanto dos testes Quanto da depuração Falta pode ser mais ou menos perturbadora Dependendo do que se trate e em qual freqüência irá surgir para o usuário final

9 Noção de confiabilidade
Assim, precisamos de uma referência para decidir Quando liberar ou não sistema para uso Confiabilidade de software É uma estimativa probabilística Mede a freqüência com que um software irá executar sem falha Em dado ambiente E por determinado período de tempo

10 Noção de confiabilidade
Assim, entradas para testes devem se aproximar do ambiente do usuário final

11 Dados e Casos de Teste Dados de Teste Casos de Teste
Entradas selecionadas para testar o software Casos de Teste Dados de teste, bem como saídas esperadas de acordo com a especificação (Veredicto) Cenários específicos de execução

12 Finalidade dos testes Averiguar se todos os requisitos do sistema foram corretamente implementados Assegurar, na medida do possível, a qualidade e a corretude do software produzido Reduzir custos de manutenção corretiva e re-trabalho

13 Finalidade dos testes Assegurar a satisfação do cliente com o produto desenvolvido Identificar casos de teste com elevada probabilidade para revelar erros ainda não descobertos (com quantidade mínima de tempo e esforço) Verificar a correta integração entre todos os componentes de software

14 Eficácia de Testes A atividade de teste é o processo de executar um programa com a intenção de descobrir um erro Um bom caso de teste é aquele que apresenta uma elevada probabilidade de revelar um erro ainda não descoberto Um teste bem sucedido é aquele que revela um erro ainda não descoberto

15 Padronização de Testes
Sistemático Testes aleatórios não são suficientes Testes devem cobrir todos os fluxos possíveis do software Testes devem representar situações de uso reais Documentado Que testes foram feitos, resultados, etc. Repetível Se encontrou ou não erro em determinada situação, deve-se poder repeti-lo

16 Abordagens de teste Abordagem funcional (“caixa preta”)
Os testes são gerados a partir de uma análise dos relacionamentos entre os dados de entrada e saída, com base nos requisitos levantados com os usuários Especificação (pré e pós-condições) Geralmente é aplicado durante as últimas etapas do processo de teste

17 Abordagens de teste Abordagem funcional (“caixa preta”)
Tem o objetivo de encontrar Erros associados a não satisfação da especificação Erros na GUI Erros nas estruturas de dados ou acesso ao banco de dados Problemas de integração

18 Abordagens de teste Abordagem estrutural (“caixa branca”)
Os testes são gerados a partir de uma análise dos caminhos lógicos possíveis de serem executados Conhecimento do funcionamento interno dos componentes do software é usado

19 Abordagens de teste Abordagem estrutural Objetivo
Garantir que todos os caminhos independentes dentro de um módulo tenham sido exercitados pelo menos uma vez Realizar todas as decisões lógicas para valores falsos e verdadeiros Executar laços dentro dos valores limites Avaliar as estruturas de dados internas

20 Abordagens de teste Abordagem estrutural Programador
Testa o programa em pedaços Encontra quais as partes do programa que já foram testadas Conhece quais partes do programa serão modificadas Verifica os limites internos no código que são invisíveis ao testador externo “É parte da atividade de codificação”

21 Estágios de Teste Teste de Unidade Teste de Aspectos OO
Teste de Integração Teste de Sistema Teste de Aceitação

22 Estágios de teste Teste de unidade Teste de aspectos OO
Componentes individuais (ex.: métodos, classes) são testados para assegurar que os mesmos operam de forma correta Teste de aspectos OO Teste de Iteradores Teste de Hierarquia de Tipos

23 Estágios de teste Teste de integração Teste de sistema
A interface entre as unidades integradas é testada Teste de sistema Os elementos de software integrados com o ambiente operacional (hardware, pessoas, etc.) são testados como um todo

24 Estágios de teste Testes de aceitação (“caixa preta”) são realizados pelo usuário Finalidade é demonstrar a conformidade com os requisitos do software Envolve treinamento, documentação e empacotamento Podem ser de duas categorias: Testes alfa Feitos pelo usuário, geralmente nas instalações do desenvolvedor, que observa e registra erros e/ou problemas

25 Estágios de teste Testes de aceitação (“caixa preta”) são realizados pelo usuário Testes beta Feitos pelo usuário, geralmente em suas próprias instalações, sem a supervisão do desenvolvedor. Os problemas detectados são então relatados para o desenvolvedor

26 Tipos de Teste São definidos em relação aos diversos tipos de requisitos descritos no documento de requisitos Alguns exemplos são: Teste funcional Teste de recuperação de falhas Teste de segurança Teste de performance Teste de carga

27 Tipos de teste Teste funcional (regras de negócio)
A funcionalidade geral do sistema em termos de regras de negócio (fluxo de trabalho) é testada Condições válidas e inválidas

28 Tipos de teste Teste de recuperação de falhas
O software é forçado a falhar de diversas maneiras para que seja verificado o seu comportamento Bem como a adequação dos procedimentos de recuperação A recuperação pode ser automática ou exigir intervenção humana

29 Tipos de teste Teste de segurança e controle de acesso
Verifica se todos os mecanismos de proteção de acesso estão funcionando satisfatoriamente Teste de integridade de dados Verifica a corretude dos métodos de acesso à base de dados e a garantia das informações armazenadas

30 Tipos de teste Teste de performance
Verifica o tempo de resposta e processamento (para diferentes configurações, número de usuários, tamanho do BD, etc.) Exemplo Recuperar conta de usuário em x segundos São necessários definir Servidores e clientes, sistemas operacionais e protocolos utilizados

31 Tipos de teste Teste de volume (carga) Foca em transações do BD
Verifica se o sistema suporta altos volumes de dados em uma única transação Verifica o número de terminais, modems e bytes de memória que é possível gerenciar

32 Tipos de teste Teste de estresse
Verifica a funcionalidade do sistema em situações limite Pouca memória ou área em disco, alta competição por recursos compartilhados (ex: vários acessos/transações no BD ou rede) Exemplo: pode-se desejar saber se um sistema de transações bancárias suporta uma carga de mais de 100 transações por segundo ou se um sistema operacional pode manipular mais de 200 terminais remotos

33 Tipos de teste Teste de configuração ou portabilidade
Verifica o funcionamento adequado do sistema em diferentes configurações de hardware/software O que testar Compatibilidade do software/hardware Configuração do servidor Tipos de conexões com a Internet Compatibilidade com o browser

34 Tipos de teste Teste de instalação e desinstalação
Verifica a correta instalação e desinstalação do sistema para diferentes plataformas de hardware/software e opções de instalação O que testar Compatibilidade do hardware e software Funcionalidade do instalador/desinstalador sob múltiplas opções/condições de instalação GUI do programa instalador/desinstalador

35 Tipos de teste Teste da GUI (usuário) Aparência e comportamento da GUI
Navegação Consistência Aderência a padrões Tempo de aprendizagem Funcionalidade

36 Tipos de teste Teste de documentação Teste de ciclo de negócios
Verifica se a documentação corresponde à informação correta e apropriada: online escrita help sensível ao contexto Teste de ciclo de negócios Garante que o sistema funciona adequadamente durante um ciclo de atividades relativas ao negócio

37 Teste de regressão Re-execução de testes feitos após uma manutenção corretiva ou evolutiva Em processos de desenvolvimento iterativos, muitos dos artefatos produzidos nas primeiras iterações são usados em iterações posteriores

38 Bibliografia Liskov, B. et al. Program Development in Java (Cap. 10)
Sommerville, I. Software Engineering (Cap. 20)


Carregar ppt "Teste de Sistemas de Software"

Apresentações semelhantes


Anúncios Google