Testes de Software - Fundamentos

16

Click here to load reader

Transcript of Testes de Software - Fundamentos

Page 1: Testes de Software - Fundamentos

Testes de Software

Page 2: Testes de Software - Fundamentos

Testar completude e corretude dos requisitos

Uma vez que os Requisitos levantados, elicitados, especificados como definir se ele foram desenvolvidos

Conceito de “Feito”: se passar por esses testes então foi feito o que foi pedido

Está seguindo funcionalidade (Requisitos Funcionais) e restrições (Requisitos não funcionais)

Se penso em como testar antes de desenvolver, já posso encontrar possíveis problemas futuros

Motivação

Page 3: Testes de Software - Fundamentos

Encontrar Erros no Software

Defeitos (Bugs) causam prejuízos de todos os gêneros

Perdas Financeiras

Desenvolvedor: Retrabalho com correção

Clientes: Paradas, problemas de operação

Perda de Produtividade

Documentações paralelas (cliente)

Retrabalho

Perda de Qualidade

Multas, ações legais,...

Inclusive mortes ou danos físicos (Controle aéreo, por exemplo)

Motivação

Page 4: Testes de Software - Fundamentos

Motivação

A arte do teste de software (MYERS, 1979)

Page 5: Testes de Software - Fundamentos

Motivação

Page 6: Testes de Software - Fundamentos

Erro trata-se de uma ação humana

Defeito Introdução do erro no sistema (Bug)

Falha Aquilo que é observado como divergente do esperado (Execução de uma

função defeituosa)

Definições – Erro, Defeito e Falha

TI Exames

Page 7: Testes de Software - Fundamentos

Pressão dos Stakeholders

Prazos de atendimentos de demandas inadequado

Tecnologia inadequada

Arquiteto de Software, Analistas Seniors, Utilização de soluções de “Parceiros”, Hypeness, recusa/impossibilidade de aquisição de licenças

Pouca compreensão da necessidade do cliente

Falta de capacitação da equipe

Origem de Erros, Defeitos e Falhas

Page 8: Testes de Software - Fundamentos

Pode existir um Software livre de defeitos? Não! Não existem profissionais infalíveis, pois os cenários possíveis são infinitos Confiabilidade = menor número de defeitos

# defeitos/linha # falhas/tempo

Aumentar o tempo e recursos de testes em documentos e software aumentam o custo

Sem Erros, Sem Defeitos, Sem Falhas

“Testes de programas pode ser usado para mostrar a presença de defeitos,

mas nunca para mostrar sua ausência.”(Dijsktra)

Page 9: Testes de Software - Fundamentos

Processo de Testes

TI Exames

Page 10: Testes de Software - Fundamentos

Processo de Testes x Dev

Page 11: Testes de Software - Fundamentos

1 - Caso de Uso

N - Cenários

1 - Caso de Testes

N - Cenários de Teste

1 UC -> 1 TC

Cenário Tradicional

Page 12: Testes de Software - Fundamentos

1 - User Story

N - Cenários (BDD, TDD, ATDD)

Given [Contexto]

When [Ações]

Then [Resultados esperados]

Máximo de automação

Toda a equipe é responsável

Cenário Ágil

Page 13: Testes de Software - Fundamentos

Técnica Caixa-Preta:

Deriva condições e casos de teste de documentações formais

Funcionais e não-funcionais do software

Não considera aspectos internos (código)

Técnica Caixa-Branca:

Considera aspectos internos do software (código)

Foco nas estruturas dos códigos (cobertura)

Deriva condições e casos de testes de forma sistêmica.

Classificação de Teste

Page 14: Testes de Software - Fundamentos

Teste Unitário Nível máximo de granularidade Pequenos trechos de códigos Acesso ao código fonte: Código testando Código

Teste de Integração Testa a integração entre os diversos componentes Funcionais, não-funcionais, desempenho, estruturais

Teste de Sistema Validação do comportamento do sistema Equipe e ambiente de teste independente Testes baseados em documentação, modelos, riscos, negócios, etc Registro de defeitos efetivo

Teste de Aceite Testes Alfa e Beta, validações realizadas por clientes Executado por usuários, fora da empresa (Ambiente de Pré-produção)

Níveis de Teste

Page 15: Testes de Software - Fundamentos

ISO/IEC 9126-1 (2003)

Características de Qualidade do Produto de Software

ISO 12207 (2008)

Processos de Ciclo de Vida de Software

IEEE 829 (2008)

Documentação de Teste de Software e Sistema.

Normas relacionadas a Testes

Page 16: Testes de Software - Fundamentos

ISTQB (istqb.org) CTFL, CTAL, CTEL

IBQTS (ibqts.com.br) ATC: Fundamental, Avançado, Especialista

ALATS (alats.org.br) CBTS

ScrumAlliance CSM, CSD ou CSPO

Scrum.org PSMI, PSMII, PSPO

Certificações em Teste