Buscar

Aula 03 - Teste de Software

Prévia do material em texto

2021 | Déborah Moura
Introdução a teste de software – Aula 03
deborahmatematica@gmail.com
@deborahmouras
Agenda
01
02
03
04
05
Porque é necessário testar?
Termologias importantes
Porque defeitos ocorrem?
Custos da correção de um defeito
Quando as falhas ocorrem podem levar a:
2
06
Causa das falhas
07
08
09
10
11
Custo para corrigir falhas
Confiabilidade do software
Termos de teste
Considerações 
Vamos testar?
12
Exercícios
Déborah Moura 2021
3
Exercícios - Gabarito
ode concluir que não existem faltas adicionais no sistema.
Déborah Moura 2021
4
O que é teste de Software?
Normalmente pensamos em teste de software apenas como a execução do software em busca de defeitos.
Encontramos na literatura algumas definições sobre o que é a atividade de testar: 
“Testar é analisar um programa com a intenção de descobrir erros e defeitos.” (Myers)
“O teste de programas pode ser usado para mostrar a presença de defeitos, mas nunca para mostrar a sua ausência.” (Dijkstra)
O teste é destinado a mostrar que um programa faz o que pretende fazer e para descobrir defeitos de programa antes de ser colocado em uso. (Sommerville)
Déborah Moura 2021
5
O que é teste de Software?
Encontramos na literatura algumas definições sobre o que é a atividade de testar: 
Testar é exercitar ou simular a operação de um programa ou sistema.
Testar é confiar que um sistema faz o que se espera que ele faça e não faz o que se espera que não faça.
Testar é medir a qualidade e funcionalidade de um sistema.
Déborah Moura 2021
6
O que é teste de Software?
De acordo com o Glossário de Terminologia de Engenharia de Software do IEEE (Instituto de Engenheiros Eletricistas e Eletrônicos): 
“Teste. É uma atividade no qual um sistema ou componente é executado sob condições especificadas, os resultados são observados ou gravados e uma avaliação é feita sobre algum aspecto do sistema ou componente”.
Déborah Moura 2021
7
Objetivos de teste 
O objetivo principal dos testes é reduzir a probabilidade da ocorrência de um defeito quando o software estiver em produção, minimizando os riscos para o negócio e garantindo que as necessidades do cliente estão sendo atendidas.
Demonstrar para o desenvolvedor e o cliente que o software atenda os seus requisitos.
Para descobrir situações em que o comportamento do software está incorreto, indesejável, ou não estejam em conformidade com as suas especificações. 
Déborah Moura 2021
8
Objetivos de teste 
Resumindo:
Encontrar defeitos.
Ganhar confiança sobre o nível de qualidade.
Prover informações para tomada de decisão.
Prevenir defeitos.
Déborah Moura 2021
9
Objetivos de teste, lembre-se:
Os testes não podem demonstrar que um software é livre de defeitos ou que ele se comportará conforme especificado em todas as circunstancias.
É sempre possível que um teste ignorado possa descobrir mais problemas no Sistema.
Os testes podem somente mostrar a presença de erros, não sua ausencia.
Déborah Moura 2021
Estratégias de teste 
Segundo Pressman, muitas estratégias de teste já foram propostas na literatura, muitas delas apresentam as seguintes características.
Para executar um teste eficaz, proceder a revisões técnicas eficazes. Fazendo isso, muitos erros serão eliminados antes do começo do teste;
O teste começa no nível de componente e progride em direção à integração do Sistema computacional como um todo;
Déborah Moura 2021
10
Estratégias de teste 
O teste é feito pelo desenvolvedor de software e (para grandes projetos) por um grupo independente de teste;
O teste e a depuração são atividades diferentes, mas a depuraçao deve ser associada a alguma estratégia de teste.
Diferentes técnicas de teste são apropriadas para diferentes abordagens de engenharia de software e em diferentes pontos no tempo;
Déborah Moura 2021
11
Estratégias de teste 
O teste é feito pelo desenvolvedor de software e (para grandes projetos) por um grupo independente de teste;
O teste e a depuração são atividades diferentes, mas a depuraçao deve ser associada a alguma estratégia de teste.
Déborah Moura 2021
12
13
Abordagem tradicionais de teste
A abordagem tradicional dos testes consiste em mostrar que o sistema:
Faz o que deve fazer
Não faz o que não deve fazer
Déborah Moura 2021
14
Abordagem tradicionais de teste
A melhor abordagem é mostrar que o sistema não funciona:
Faz o que não deve fazer
Não faz o que deve fazer
Déborah Moura 2021
15
Paradoxo* do teste 
A proposta do teste é encontrar defeitos. Porém, ao encontrar defeitos a confiança do software é destruída.
Não se pode ter confiança em algo que não está funcionando.
Proposta do teste de software
“Destruir a confiança do software”.
Estabelecer confiança. 
Déborah Moura 2021
* Pensamento, proposição ou argumento que contraria os princípios básicos e gerais que costumam orientar o pensamento humano
16
Os sete princípios do teste 
Déborah Moura 2021
Princípio 01 
Teste demonstra a presença de defeitos
O Teste pode demonstrar a presença de defeitos, mas não pode provar que eles não existem.
O Teste reduz a probabilidade que os defeitos permaneçam em um software, mas mesmo se nenhum defeito for encontrado, não prova que ele esteja perfeito.
17
Os sete princípios do teste 
Déborah Moura 2021
Princípio 02 
Teste exaustivo é impossível
Testar tudo (todas as combinações de entradas e pré-condições) não é viável, exceto para casos triviais.
Em vez do teste exaustivo, utilizamos os riscos e prioridades para dar foco aos esforços de teste.
18
Os sete princípios do teste 
Déborah Moura 2021
Princípio 02 
EX:
Imagine um sistema com 20 telas:
Em média 4 menus por tela;
Em média 3 opções por menu;
Em média 10 campos com tela;
2 tipos de entrada por campo;
Aproximadamente 100 valores possíveis
19
Os sete princípios do teste 
Déborah Moura 2021
Princípio 03 
Teste antecipado
A atividade de teste deve começar o mais breve possível no ciclo de desenvolvimento do software e deve manter o foco em objetivos definidos.
20
Os sete princípios do teste 
Déborah Moura 2021
Princípio 04
Agrupamento de defeitos
Um número pequeno de módulos contém a maioria dos defeitos descobertos durante o teste antes de sua entrega ou exibe a maioria das falhas operacionais.
21
Os sete princípios do teste 
Déborah Moura 2021
Princípio 05 
Paradoxo do Pesticida
Testes que são repetidos várias vezes não encontram novos defeitos após um determinado momento.
Para superar este “paradoxo do pesticida”, o caso de teste precisa ser frequentemente revisado e atualizado.
22
Os sete princípios do teste 
Déborah Moura 2021
Princípio 06 
Teste depende do contexto
Testes são realizados de forma diferente conforme o contexto. 
Por exemplo, softwares de segurança crítica são testados diferentemente de um software de comércio eletrônico.
23
Os sete princípios do teste 
Déborah Moura 2021
Princício 07 
A ilusão da ausência de erros
Encontrar e consertar defeitos não ajuda se o sistema construído não atende às expectativas e necessidades dos usuários.
24
O papel do teste de Software 
Déborah Moura 2021
Como o teste de software pode nos ajudar a construir softwares melhores?
Testes rigorosos em documentos e no próprio software podem reduzir os riscos de problemas acontecerem em produção.
Menos defeitos = menor chance do software falhar
Testes propiciam o aumento da qualidade do software à medida que defeitos encontrados são corrigidos.
Teste ajudam a garantir a qualidade.
Ajuda a aumentar receitas das empresas desenvolvedoras de software (redução de retrabalho).
Redução de retrabalho devido a correção de erros (bugs).
25
Teste x Qualidade
Teste é igual a qualidade? 
Se testarmos o software, teremos qualidade?
Qualidade: É o grau até o qual um componente, sistema ou processo atende aos requisitos especificados e/ou às necessidades e expectativas do usuário ou consumidor.
Déborah Moura 2021
26
Teste x Qualidade
Déborah Moura 2021
Se a necessidade é ter um carro para ir ao trabalhodiariamente, qual dos produtos tem a melhor qualidade? 
X
27
Teste x Qualidade
Déborah Moura 2021
Podemos dizer então que:
O teste por si só não constrói a qualidade de software.
O teste pode fornecer confiança na qualidade do software.
Testes bem executados reduzem os riscos de falhas.
28
Teste x Qualidade
Déborah Moura 2021
Podemos dizer então que:
O teste tem a função de ajudar a medir a qualidade:
À medida em que os defeitos encontrados sejam corrigidos;
Avaliando os requisitos funcionais do software;
Avaliando requisitos não-funcionais (exemplo: confiabilidade, usabilidade, portabilidade, etc.).
29
Teste x Qualidade
Déborah Moura 2021
De acordo com a ISO-IEC-Standard 9126-1, os seguintes fatores pertencem a qualidade de software: 
Funcionalidade.
Confiabilidade.
Usabilidade.
Eficiência.
Manutenibilidade.
Portabilidade.
30
Teste x Qualidade
Déborah Moura 2021
Funcionalidade(Functionality)
Contém todas as características que descrevem o sistema.
As características são, geralmente, descritas por um comportamento de entrada e saída 
Ou uma reação a uma dada entrada.
O objetivo do teste é provar que toda característica no sistema foi implementada da maneira especificada.
31
Teste x Qualidade
Déborah Moura 2021
Confiabilidade
Descreve a habilidade de um sistema continuar funcionando sob uso específico num período específico.
Usabilidade
Muito importante para sistemas interativos.
Usuários não aceitarão um sistema que é de difícil manuseio.
Eficiência (Efficiency)
Testes de eficiência medem o tempo necessário e o consumo de recursos para a completude das tarefas.
32
Teste x Qualidade
Déborah Moura 2021
Manutenibilidade (Maintainability)
Conjunto de atributos que evidenciam o esforço necessário para fazer modificações especificadas no software.
Portabilidade(Portability)
Conjunto de atributos que evidenciam a capacidade do software de ser transferido de um ambiente para outro.
Sub-características:
Adaptabilidade
Facilidade de instalação
Conformidade
33
Teste x Qualidade
Déborah Moura 2021
Avaliando a Qualidade do Teste
34
Custo da não qualidade 
Estatísticas de mercado apontam que para cada R$ 1,00 investido no desenvolvimento e manutenção de software, entre R$ 2,00 e R$ 3,00 são gastos com re-trabalho.
Não se sabe o percentual de re-trabalho e quanto isso custa
O software ou parte dele tem de ser refeito
Não se sabe, através de métricas claras e precisas, quais são as principais áreas de produção que geram re-trabalho
A empresa não toma iniciativas para corrigir os problemas nas áreas de produção ineficientes
Déborah Moura 2021
35
Custo da não qualidade 
Existem alguns tipos de sistemas onde:
As falhas causam prejuízos diretos, ou
As falhas causam a perda de confiança do público (usuários)
Déborah Moura 2021
36
Vale a pena investir em testes ?
Reduz em 70% o índice de re-trabalho de correção de falhas em produção;
Reduz em 50% do tempo de homologação de uma nova versão;
Aumenta em 90% o índice de falhas detectadas antes da produção;
Diminui em 95% os Abends* em produção;
Aumenta a abrangência dos testes
Déborah Moura 2021
37
Por que testar é necessário?
ode concluir que não existem faltas adicionais no sistema.
Déborah Moura 2021
38
Por que testar é necessário?
ode concluir que não existem faltas adicionais no sistema.
Déborah Moura 2021
Porque é provável que o software possua defeitos;
Para descobrir a confiabilidade do software;
Porque falhas podem custar muito caro;
Demonstrar as conformidades com os requisitos;
Para assegurar que as necessidades dos usuários estejam sendo atendidas;
Para reduzir custos;
Para avaliar a qualidade do software;
39
Por que testar é necessário?
ode concluir que não existem faltas adicionais no sistema.
Déborah Moura 2021
Não devemos testar:
Para provar que o software não tem defeitos;
Apenas porque os testes estão incluídos no plano de projeto;
Exercício
ode concluir que não existem faltas adicionais no sistema.
Déborah Moura 2021
40
https://quizizz.com/join/quiz/5ffc993f9003d1001b7daa36/start?studentShare=true
 
.MsftOfcThm_Accent2_Fill {
 fill:#7500C0; 
}

Continue navegando