SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Fundamentos de
Testes de Software
Novembro 2013
Quem Sou Eu?
● Aline Zanin;
● Graduada em Análise e Desenvolvimento de
Sistemas - UPF 2011;
● Especialista em Qualidade de Software Unisinos 2013;
● Mestranda PUCRS - Ciência da Computação
● Pesquisadora - Centro de Pesquisa em
Engenharia de Sistemas PUCRS -DELL
Agenda
●
●
●
●
●
●
●
●

Porque Testar;
Tipos de Testes;
Metodologia de Testes;
7 Fundamentos de Testes;
Processo de Testes;
Casos de Teste;
Cenários de Testes;
Conclusão.
Oque são testes?

Teste é o processo de executar um programa
com o objetivo de verificar sua conformidade
em relação aos requisitos
especificados.
Porque Testar seu Software?
● Você voltaria a comprar um produto de um
fornecedor que em sua última compra,
entregou-lhe um produto defeituoso?
● Quando você adquire um produto o que você
espera dele?
● O software pode parar em ambiente produtivo?
● Qualidade de software, não é mais um
diferencial é um requisito.
Porque Testar Seu Software?
● De acordo com estatísticas um cliente
insatisfeito comenta com outras cinco pessoas
no mínimo que está insatisfeito enquanto um
cliente satisfeito elogia a apenas uma pessoa.
● O desenvolvedor, é o responsável pela criação
do software sendo assim se realizar testes irá
seguir o “caminho feliz”
Porque Testar Seu Software?
● Quando cliente se depara com uma falha
em seu sistema ocorre uma quebra de
confiança.
● Uma falha que atinge o cliente pode causar
danos financeiros milhares de vezes maior
que o custo de teste*
*Segundo o National Institute of Standards and Technology (NIST), dos EUA, os custos
diretos dos erros de software representam 0,6 % do PIB americano, o equivalente a
US$ 293 bilhões.
Regra10 de Myers
Defeito
Qualquer condição que causa um desvio de um
resultado baseado no que diz um requisito, um
documento de especificação, um documento do
usuário, um padrão, ou conforme a experiência ou
percepção do técnico, que requeira investigação.
Obs.: Defeitos podem ser encontrados em
produtos de software ou artefatos de software.
Fonte ISO 29.119
Erro

O Erro pode ser um resultado de um defeito ou
uma falha, como um retorno esperado, que por
causa de uma falha teve um valor diferente do que
esperado.
Falha

Esta mais ligada ao hardware, como uma rede
inacessível, queda de energia. Uma falha pode
ocorrer por causa de um erro, ou não.
Princípios Fundamentais
Princípio 1 – 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.
Princípios Fundamentais
Princípio 2 – 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,
riscos e prioridades são levados em
consideração para dar foco aos esforços de
teste.
Princípios Fundamentais
Princípio 4 – 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.
Princípios Fundamentais
Princípio 5 – Paradoxo do Pesticida

Pode ocorrer de um mesmo conjunto de testes
que são repetidos várias vezes não
encontrarem novos defeitos após um
determinado momento.
Princípios Fundamentais
Princípio 6 – Teste depende do contexto
Testes são realizados de forma
conforme o contexto. Por exemplo,
de
segurança
crítica
são
diferentemente de um software de
eletrônico.

diferente
softwares
testados
comércio
Princípios Fundamentais
Princípio 7 – 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.
Processo de Testes
●
●
●
●
●

Planejamento e controle;
Análise e modelagem;
Implementação e execução;
Avaliação dos critérios de saída e relatórios;
Atividades de encerramento de teste
Planejamento e Controle
O planejamento de teste é a atividade que
consiste em definir os objetivos e especificar as
atividades de forma a alcançá-los.
O controle do teste é a constante atividade que
consiste em comparar o progresso atual contra
o que foi planejado, reportando o status e os
desvios do plano.
Análise e modelagem do Teste
A análise e a modelagem de teste são atividades onde
os objetivos gerais do teste são transformados em
condições e modelos de teste.
1. Revisar a base de testes (como requisitos, nível de
integridade do software1 (nível de risco), arquitetura,
modelagem, interfaces).
2. Avaliar a testabilidade dos requisitos e do sistema.
3. Identificar e priorizar as condições ou requisitos de
testes;
Análise e modelagem do Teste

4. Projetar e priorizar os casos de testes de alto nível.
5.
Identificar as necessidades de dados para teste
suportando as condições e casos de teste
6.
Planejar a preparação do ambiente de teste e
identificar a infraestrutura e ferramentas necessárias.
7.
Criar uma rastreabilidade bidirecional entre os
requisitos e os casos de teste.
Implementação e execução de teste
Etapa onde os últimos ajustes de configuração e
ambiente são feitos e os testes são executados.
1. Criar suítes de teste a partir dos casos de teste para
uma execução de teste eficiente.
2. Verificar se o ambiente está preparado corretamente.
3. Executar os casos de teste manualmente ou
utilizando ferramentas de acordo com a sequência
planejada.
Implementação e execução de teste
4. Registrar os resultados da execução do teste e
anotar as características e versões do software em teste,
ferramenta de teste e testware.
5. Comparar resultados obtidos com os resultados
esperados.
6. Relatar as não conformidades localizadas;
7. Refazer os testes se necessário.
Avaliação do critério de saída e
relatório
Atividade onde a execução do teste é avaliada mediante
os objetivos definidos.
1. Checar os registros de teste (logs) mediante o critério
de encerramento especificado no planejamento de
teste;
2. Avaliar se são necessários testes adicionais ou se o
critério de saída especificado deve ser alterado;
3. Elaborar um relatório de teste resumido para os
interessados (stakeholders).
Atividades de encerramento de teste

Nesta etapa são recolhidos os materiais de
testes e armazenado todo tesware para um
uso posterior.
Tipos de Testes de Software.

- Caixa Branca
Feito junto ao código durante o processo de
desenvolvimento.
- Caixa Preta
Executado a nível de aplicação, sem contato com código.
Tipo de Testes de Software.

Teste de Unidade

Teste em um nível de componente ou classe. É o teste
cujo objetivo é um “pedaço do código”.

Teste de Integração

Garante que um ou mais componentes combinados (ou
unidades) funcionam. Podemos dizer que um teste de
integração é composto por diversos testes de unidade*1

Teste Operacional

Garante que a aplicação pode rodar muito tempo sem
falhar.

Teste Positivo-

Garante que a aplicação vai funcionar no “caminho feliz” de

negativo

sua execução e vai funcionar no seu fluxo de exceção. *2
Tipo de Testes de Software.
Teste Funcional

Teste de Interface

Teste de Performance

Teste de Volume

Testar as funcionalidades, requerimentos, regras de
negócio presentes na documentação. Validar as
funcionalidades descritas na documentação (pode
acontecer de a documentação estar inválida)
Verifica se a navegabilidade e os objetivos da tela
funcionam como especificados e se atendem da
melhor forma ao usuário.
Verifica se o tempo de resposta é o desejado para o
momento de utilização da aplicação.

Testar a quantidade de dados envolvidos (pode ser
pouca, normal, grande, ou além de grande).
Tipo de Testes de Software.
Teste de regressão

Toda vez que algo for mudado, deve ser
testada toda a aplicação novamente.

Teste de aceitação do
usuário

Testes de stress

Testes de Configuração

Testa se a solução será bem vista pelo
usuário. Ex: caso exista um botão pequeno
demais para executar uma função, isso deve
ser criticado em fase de testes. (aqui, cabem
quesitos fora da interface, também).
Testar a aplicação sem situações inesperadas.
Testar caminhos, às vezes, antes não previstos
no desenvolvimento/documentação.
Testar se a aplicação funciona corretamente
em diferentes ambientes de hardware ou de
software.
Tipo de Testes de Software.
Testes de Instalação

Teste de carga

Testes de Segurança

Testar se a instalação da aplicação
foi OK.
Verifica o funcionamento da
aplicação com a utilização de uma
quantidade grande de usuários
simultâneos.
Testar a segurança da aplicação das
mais diversas formas. Utilizar os
diversos papéis, perfis, permissões,
para navegar no sistema.
Técnicas de Testes de Software
●
●
●
●
●
●

Partição de Equivalência;
Análise do Valor Limite;
Tabela de Decisão;
Teste de transição de estados;
Teste de Caso de Uso;
Técnicas baseadas na experiência;
Por onde Começar

Um bom começo seria identificar os cenários
que serão testados nesta aplicação
CENÁRIO DE TESTES ???
Cenário de Teste
Cenário de teste descreve o que deve ser
testado amplamente. O cenário de testes é o
passo inicial para a criação do caso de teste.
Ex: 01 - Cadastro de Clientes

Este cenário tem a cobertura do cadastro de
clientes, aplicação deve permitir cadastrar
clientes entre 18 e 65 anos.
Definir Cenários de Teste
Descrição: O Analista de Teste com base nos requisitos
de teste ou nos casos de uso, e usando o Plano de
Teste como referência, deve definir os Cenários de
Teste e que servirão posteriormente para a elaboração
dos Procedimentos (ou Roteiro) de Teste.
Responsáveis: Analista de Teste
Participantes: Analista de Sistemas, Testador
Artefatos: Plano de Teste, Requisitos, Casos de Uso
(testáveis)
Ferramentas: Precisam ser definidas
·

·

·

·

Fluxo Principal:
o P 1 – Usuário seleciona o menu “Alterar Senha”
o P 2 – O sistema gera um código aleatório
o P 3 – O sistema carrega a tela “Alteração de Senha”
o P 4 – Usuário entra com sua identificação, a senha atual, a nova
senha, a confirmação da nova senha e o valor do código aleatório (A1)
o P 5 – O usuário confirma a alteração (A2)
o P 6 – O sistema valida a senha. (E1) (E2)
o P 7 – O sistema emite a mensagem de indicação de sucesso
o P 8 – O caso de uso é finalizado
Fluxo Alternativo 1: O usuário não visualiza código aleatório
o A 1.1 – O usuário seleciona opção “Não consegui visualizar o código”
o A 1.2 – O sistema retorna ao fluxo principal (P2)
Fluxo Alternativo 2: O usuário cancela a alteração
o A 2.1 – O usuário seleciona a opção cancelar
o A 2.2 – O sistema cancela a operação
o A 2.3 – O caso de uso é finalizado
Fluxo de Exceção 1: Confirmação de senha nova não confere com a
mesma
o E.1.1 – O sistema identifica que a nova senha fornecida e a
confirmação da mesma, não conferem.
o E.1.2 – O sistema emite a mensagem “A confirmação da Nova Senha
não confere.”
o E.1.3 – O sistema retorna ao fluxo principal (P4) para entrada da
confirmação da senha nova do usuário.
Fluxo de Exceção 2: Campo Requerido Não Fornecido ou Inválido
o E.2.1 – Usuário não entra com campo requerido
o E.2.2 – O sistema emite a mensagem “Campo requerido ausente ou
inválido.”
o E.2.3 – O caso de uso é finalizado
Cenário

Fluxo

Cenário 1

P1-P8

Cenário 2

P1-P4 / A1.1

Cenário 3

P1-P5 / A2.1-A2.3

Cenário 4

P1-P4 / E1.1-E1.3

Cenário 5

P1-P4 / E2.1-E2.3
Casos de Testes
Caso de teste é um conjunto de condições usadas para
teste de software. Ele pode ser elaborado para identificar
defeitos na estrutura interna do software, através de
situações que exercitem adequadamente todas as
estruturas utilizadas na codificação; ou ainda, garantir
que os requisitos do software que foi construído sejam
plenamente atendidos.

Fonte: Wikipedia =D
Casos de Teste
Positivos:
Descrevem Operações que devem ser concluidas na
aplicação.
Ex: Efetuar Login com sucesso
Negativos:
Descrevem Operações que não devem ser concluidas
na aplicação.
Ex: Efetuar Login com usuário inválido.
Casos de Testes
É importante que os casos de testes possuam as seguintes
informações:
Identificador: um nome único que permita a identificação
do caso de teste.
Histórico de versões: lista as versões do documento,
identificando o que foi alterado e o responsável por cada
versão.
Descrição: descreve o objetivo e o escopo do caso de
teste.
Casos de Testes.
Comportamento esperado: descreve o comportamento
esperado do sistema durante e após a execução do teste.
Nesta seção devem ser incluídas tanto as condições de
sucesso, quanto as de falha.
Comportamento obtido: descreve o comportamento
obtido através da execução do cenário de teste.
Histórico de execuções: descreve a data na qual o
cenário de teste foi executado, qual foi o resultado do teste
(passou ou falhou) e qual a forma de execução (automático
ou manual).
Conclusão
● Testes de software não garantem a ausência de
defeitos, porém, diminuiem a incidência destes
aumentando a qualidade do software.
● Diversas são as formas de organizar um processo de
testes, a organização por cenários e casos de testes
permite um mapeamento melhor da aplicação
evitando que partes importantes não sejam testadas.
● Manter os artefatos de testes atualizados é vitál para
ter um bom resultado com os testes.
?

aline.zanin@acad.pucrs.br

Weitere ähnliche Inhalte

Was ist angesagt?

Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareCamilo Almendra
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Fernando Palma
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geralpaulo peres
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Camilo Ribeiro
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Vanilton Pinheiro
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de TestesUFPA
 
Planejamento de Testes
Planejamento de TestesPlanejamento de Testes
Planejamento de Testeselliando dias
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Softwaremarthahuback
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtareFernando Palma
 
Verificação e validação de software
Verificação e validação de softwareVerificação e validação de software
Verificação e validação de softwareLeonardo Melo Santos
 

Was ist angesagt? (20)

Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Plano de teste
Plano de testePlano de teste
Plano de teste
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)
 
Ctai Teste De Software Aula 2
Ctai Teste De Software Aula 2Ctai Teste De Software Aula 2
Ctai Teste De Software Aula 2
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
 
Planejamento de Testes
Planejamento de TestesPlanejamento de Testes
Planejamento de Testes
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
 
Plano de testes
Plano de testesPlano de testes
Plano de testes
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtare
 
Verificação e validação de software
Verificação e validação de softwareVerificação e validação de software
Verificação e validação de software
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 

Ähnlich wie Fundamentos Testes Software

Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninDevInPF
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKMário Pravato Junior
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareCloves da Rocha
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 
XII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreXII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreCloves da Rocha
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoJoeldson Costa Damasceno
 
Apresentacao_TestesSW.ppt
Apresentacao_TestesSW.pptApresentacao_TestesSW.ppt
Apresentacao_TestesSW.pptDsAsdasd1
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
Aula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptxAula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptxAlexandreLisboadaSil
 
Aula 3 - Introdução ao Teste.pptx
Aula 3 - Introdução ao Teste.pptxAula 3 - Introdução ao Teste.pptx
Aula 3 - Introdução ao Teste.pptxALEXANDRELISBADASILV
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de softwareFelipe Bugov
 

Ähnlich wie Fundamentos Testes Software (20)

Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
 
Eng de testes
Eng de testesEng de testes
Eng de testes
 
Aula 8 - Plano de Teste.pptx
Aula 8 - Plano de Teste.pptxAula 8 - Plano de Teste.pptx
Aula 8 - Plano de Teste.pptx
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
XII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreXII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do Mestre
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 
Qualidade
QualidadeQualidade
Qualidade
 
Apresentacao_TestesSW.ppt
Apresentacao_TestesSW.pptApresentacao_TestesSW.ppt
Apresentacao_TestesSW.ppt
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Questionario CTFL - Foundation Level
Questionario CTFL - Foundation LevelQuestionario CTFL - Foundation Level
Questionario CTFL - Foundation Level
 
Aula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptxAula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptx
 
Aula 3 - Introdução ao Teste.pptx
Aula 3 - Introdução ao Teste.pptxAula 3 - Introdução ao Teste.pptx
Aula 3 - Introdução ao Teste.pptx
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de software
 

Fundamentos Testes Software

  • 1. Fundamentos de Testes de Software Novembro 2013
  • 2. Quem Sou Eu? ● Aline Zanin; ● Graduada em Análise e Desenvolvimento de Sistemas - UPF 2011; ● Especialista em Qualidade de Software Unisinos 2013; ● Mestranda PUCRS - Ciência da Computação ● Pesquisadora - Centro de Pesquisa em Engenharia de Sistemas PUCRS -DELL
  • 3. Agenda ● ● ● ● ● ● ● ● Porque Testar; Tipos de Testes; Metodologia de Testes; 7 Fundamentos de Testes; Processo de Testes; Casos de Teste; Cenários de Testes; Conclusão.
  • 4. Oque são testes? Teste é o processo de executar um programa com o objetivo de verificar sua conformidade em relação aos requisitos especificados.
  • 5. Porque Testar seu Software? ● Você voltaria a comprar um produto de um fornecedor que em sua última compra, entregou-lhe um produto defeituoso? ● Quando você adquire um produto o que você espera dele? ● O software pode parar em ambiente produtivo? ● Qualidade de software, não é mais um diferencial é um requisito.
  • 6. Porque Testar Seu Software? ● De acordo com estatísticas um cliente insatisfeito comenta com outras cinco pessoas no mínimo que está insatisfeito enquanto um cliente satisfeito elogia a apenas uma pessoa. ● O desenvolvedor, é o responsável pela criação do software sendo assim se realizar testes irá seguir o “caminho feliz”
  • 7. Porque Testar Seu Software? ● Quando cliente se depara com uma falha em seu sistema ocorre uma quebra de confiança. ● Uma falha que atinge o cliente pode causar danos financeiros milhares de vezes maior que o custo de teste* *Segundo o National Institute of Standards and Technology (NIST), dos EUA, os custos diretos dos erros de software representam 0,6 % do PIB americano, o equivalente a US$ 293 bilhões.
  • 9. Defeito Qualquer condição que causa um desvio de um resultado baseado no que diz um requisito, um documento de especificação, um documento do usuário, um padrão, ou conforme a experiência ou percepção do técnico, que requeira investigação. Obs.: Defeitos podem ser encontrados em produtos de software ou artefatos de software. Fonte ISO 29.119
  • 10. Erro O Erro pode ser um resultado de um defeito ou uma falha, como um retorno esperado, que por causa de uma falha teve um valor diferente do que esperado.
  • 11. Falha Esta mais ligada ao hardware, como uma rede inacessível, queda de energia. Uma falha pode ocorrer por causa de um erro, ou não.
  • 12. Princípios Fundamentais Princípio 1 – 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.
  • 13. Princípios Fundamentais Princípio 2 – 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, riscos e prioridades são levados em consideração para dar foco aos esforços de teste.
  • 14. Princípios Fundamentais Princípio 4 – 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.
  • 15. Princípios Fundamentais Princípio 5 – Paradoxo do Pesticida Pode ocorrer de um mesmo conjunto de testes que são repetidos várias vezes não encontrarem novos defeitos após um determinado momento.
  • 16. Princípios Fundamentais Princípio 6 – Teste depende do contexto Testes são realizados de forma conforme o contexto. Por exemplo, de segurança crítica são diferentemente de um software de eletrônico. diferente softwares testados comércio
  • 17. Princípios Fundamentais Princípio 7 – 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.
  • 18. Processo de Testes ● ● ● ● ● Planejamento e controle; Análise e modelagem; Implementação e execução; Avaliação dos critérios de saída e relatórios; Atividades de encerramento de teste
  • 19. Planejamento e Controle O planejamento de teste é a atividade que consiste em definir os objetivos e especificar as atividades de forma a alcançá-los. O controle do teste é a constante atividade que consiste em comparar o progresso atual contra o que foi planejado, reportando o status e os desvios do plano.
  • 20. Análise e modelagem do Teste A análise e a modelagem de teste são atividades onde os objetivos gerais do teste são transformados em condições e modelos de teste. 1. Revisar a base de testes (como requisitos, nível de integridade do software1 (nível de risco), arquitetura, modelagem, interfaces). 2. Avaliar a testabilidade dos requisitos e do sistema. 3. Identificar e priorizar as condições ou requisitos de testes;
  • 21. Análise e modelagem do Teste 4. Projetar e priorizar os casos de testes de alto nível. 5. Identificar as necessidades de dados para teste suportando as condições e casos de teste 6. Planejar a preparação do ambiente de teste e identificar a infraestrutura e ferramentas necessárias. 7. Criar uma rastreabilidade bidirecional entre os requisitos e os casos de teste.
  • 22. Implementação e execução de teste Etapa onde os últimos ajustes de configuração e ambiente são feitos e os testes são executados. 1. Criar suítes de teste a partir dos casos de teste para uma execução de teste eficiente. 2. Verificar se o ambiente está preparado corretamente. 3. Executar os casos de teste manualmente ou utilizando ferramentas de acordo com a sequência planejada.
  • 23. Implementação e execução de teste 4. Registrar os resultados da execução do teste e anotar as características e versões do software em teste, ferramenta de teste e testware. 5. Comparar resultados obtidos com os resultados esperados. 6. Relatar as não conformidades localizadas; 7. Refazer os testes se necessário.
  • 24. Avaliação do critério de saída e relatório Atividade onde a execução do teste é avaliada mediante os objetivos definidos. 1. Checar os registros de teste (logs) mediante o critério de encerramento especificado no planejamento de teste; 2. Avaliar se são necessários testes adicionais ou se o critério de saída especificado deve ser alterado; 3. Elaborar um relatório de teste resumido para os interessados (stakeholders).
  • 25. Atividades de encerramento de teste Nesta etapa são recolhidos os materiais de testes e armazenado todo tesware para um uso posterior.
  • 26. Tipos de Testes de Software. - Caixa Branca Feito junto ao código durante o processo de desenvolvimento. - Caixa Preta Executado a nível de aplicação, sem contato com código.
  • 27. Tipo de Testes de Software. Teste de Unidade Teste em um nível de componente ou classe. É o teste cujo objetivo é um “pedaço do código”. Teste de Integração Garante que um ou mais componentes combinados (ou unidades) funcionam. Podemos dizer que um teste de integração é composto por diversos testes de unidade*1 Teste Operacional Garante que a aplicação pode rodar muito tempo sem falhar. Teste Positivo- Garante que a aplicação vai funcionar no “caminho feliz” de negativo sua execução e vai funcionar no seu fluxo de exceção. *2
  • 28. Tipo de Testes de Software. Teste Funcional Teste de Interface Teste de Performance Teste de Volume Testar as funcionalidades, requerimentos, regras de negócio presentes na documentação. Validar as funcionalidades descritas na documentação (pode acontecer de a documentação estar inválida) Verifica se a navegabilidade e os objetivos da tela funcionam como especificados e se atendem da melhor forma ao usuário. Verifica se o tempo de resposta é o desejado para o momento de utilização da aplicação. Testar a quantidade de dados envolvidos (pode ser pouca, normal, grande, ou além de grande).
  • 29. Tipo de Testes de Software. Teste de regressão Toda vez que algo for mudado, deve ser testada toda a aplicação novamente. Teste de aceitação do usuário Testes de stress Testes de Configuração Testa se a solução será bem vista pelo usuário. Ex: caso exista um botão pequeno demais para executar uma função, isso deve ser criticado em fase de testes. (aqui, cabem quesitos fora da interface, também). Testar a aplicação sem situações inesperadas. Testar caminhos, às vezes, antes não previstos no desenvolvimento/documentação. Testar se a aplicação funciona corretamente em diferentes ambientes de hardware ou de software.
  • 30. Tipo de Testes de Software. Testes de Instalação Teste de carga Testes de Segurança Testar se a instalação da aplicação foi OK. Verifica o funcionamento da aplicação com a utilização de uma quantidade grande de usuários simultâneos. Testar a segurança da aplicação das mais diversas formas. Utilizar os diversos papéis, perfis, permissões, para navegar no sistema.
  • 31. Técnicas de Testes de Software ● ● ● ● ● ● Partição de Equivalência; Análise do Valor Limite; Tabela de Decisão; Teste de transição de estados; Teste de Caso de Uso; Técnicas baseadas na experiência;
  • 32. Por onde Começar Um bom começo seria identificar os cenários que serão testados nesta aplicação CENÁRIO DE TESTES ???
  • 33. Cenário de Teste Cenário de teste descreve o que deve ser testado amplamente. O cenário de testes é o passo inicial para a criação do caso de teste. Ex: 01 - Cadastro de Clientes Este cenário tem a cobertura do cadastro de clientes, aplicação deve permitir cadastrar clientes entre 18 e 65 anos.
  • 34. Definir Cenários de Teste Descrição: O Analista de Teste com base nos requisitos de teste ou nos casos de uso, e usando o Plano de Teste como referência, deve definir os Cenários de Teste e que servirão posteriormente para a elaboração dos Procedimentos (ou Roteiro) de Teste. Responsáveis: Analista de Teste Participantes: Analista de Sistemas, Testador Artefatos: Plano de Teste, Requisitos, Casos de Uso (testáveis) Ferramentas: Precisam ser definidas
  • 35. · · · · Fluxo Principal: o P 1 – Usuário seleciona o menu “Alterar Senha” o P 2 – O sistema gera um código aleatório o P 3 – O sistema carrega a tela “Alteração de Senha” o P 4 – Usuário entra com sua identificação, a senha atual, a nova senha, a confirmação da nova senha e o valor do código aleatório (A1) o P 5 – O usuário confirma a alteração (A2) o P 6 – O sistema valida a senha. (E1) (E2) o P 7 – O sistema emite a mensagem de indicação de sucesso o P 8 – O caso de uso é finalizado Fluxo Alternativo 1: O usuário não visualiza código aleatório o A 1.1 – O usuário seleciona opção “Não consegui visualizar o código” o A 1.2 – O sistema retorna ao fluxo principal (P2) Fluxo Alternativo 2: O usuário cancela a alteração o A 2.1 – O usuário seleciona a opção cancelar o A 2.2 – O sistema cancela a operação o A 2.3 – O caso de uso é finalizado
  • 36. Fluxo de Exceção 1: Confirmação de senha nova não confere com a mesma o E.1.1 – O sistema identifica que a nova senha fornecida e a confirmação da mesma, não conferem. o E.1.2 – O sistema emite a mensagem “A confirmação da Nova Senha não confere.” o E.1.3 – O sistema retorna ao fluxo principal (P4) para entrada da confirmação da senha nova do usuário. Fluxo de Exceção 2: Campo Requerido Não Fornecido ou Inválido o E.2.1 – Usuário não entra com campo requerido o E.2.2 – O sistema emite a mensagem “Campo requerido ausente ou inválido.” o E.2.3 – O caso de uso é finalizado
  • 37. Cenário Fluxo Cenário 1 P1-P8 Cenário 2 P1-P4 / A1.1 Cenário 3 P1-P5 / A2.1-A2.3 Cenário 4 P1-P4 / E1.1-E1.3 Cenário 5 P1-P4 / E2.1-E2.3
  • 38. Casos de Testes Caso de teste é um conjunto de condições usadas para teste de software. Ele pode ser elaborado para identificar defeitos na estrutura interna do software, através de situações que exercitem adequadamente todas as estruturas utilizadas na codificação; ou ainda, garantir que os requisitos do software que foi construído sejam plenamente atendidos. Fonte: Wikipedia =D
  • 39. Casos de Teste Positivos: Descrevem Operações que devem ser concluidas na aplicação. Ex: Efetuar Login com sucesso Negativos: Descrevem Operações que não devem ser concluidas na aplicação. Ex: Efetuar Login com usuário inválido.
  • 40. Casos de Testes É importante que os casos de testes possuam as seguintes informações: Identificador: um nome único que permita a identificação do caso de teste. Histórico de versões: lista as versões do documento, identificando o que foi alterado e o responsável por cada versão. Descrição: descreve o objetivo e o escopo do caso de teste.
  • 41. Casos de Testes. Comportamento esperado: descreve o comportamento esperado do sistema durante e após a execução do teste. Nesta seção devem ser incluídas tanto as condições de sucesso, quanto as de falha. Comportamento obtido: descreve o comportamento obtido através da execução do cenário de teste. Histórico de execuções: descreve a data na qual o cenário de teste foi executado, qual foi o resultado do teste (passou ou falhou) e qual a forma de execução (automático ou manual).
  • 42. Conclusão ● Testes de software não garantem a ausência de defeitos, porém, diminuiem a incidência destes aumentando a qualidade do software. ● Diversas são as formas de organizar um processo de testes, a organização por cenários e casos de testes permite um mapeamento melhor da aplicação evitando que partes importantes não sejam testadas. ● Manter os artefatos de testes atualizados é vitál para ter um bom resultado com os testes.