Teste de Software -...

Post on 22-Nov-2018

215 views 0 download

Transcript of Teste de Software -...

Teste de Software

Roberta Coelho

Agenda

Desafios do Teste de Software

Atividades Realizadas em 2014

Atividades Planejadas

Agenda

Desafios do Teste de Software

Atividades Realizadas em 2014

Atividades Planejadas

Teste de Software

Uma das técnicas mais utilizadas para garantia

da qualidade pela indústria de SOFTWARE.

Teste de Software

Uma das técnicas mais utilizadas para garantia

da qualidade pela indústria de SOFTWARE.

A falta de entendimento sobre a atividade de

testes pode trazer vários problemas...

Diálogo entre desenvolvedor e testador

1 dia antes do fechamento da release ...

Ei cara, dá uma passada geral no

SIGAA. Precisei alterar várias

coisas!! Ok…Pra dar uma

“passada geral” vou

precisar de no mínimo

1 ano.

?!

Garantindo ausência de defeitos

func(int a, int b, int c)

int: -2.147.483.648 a 2.147.483.647

número de entradas possíveis:

9.903.520.314.283.042.199.192.993.792

Como garantir que esta função

não contém defeitos???

No contexto dos SIGs

Um caso de uso possuir geralmente várias telas...

SIGAA - 1858

SIPAC - 1775

SIGRH - 675

No contexto dos SIGs

Cada caso de uso possui vários fluxos...

SIGAA - 1858

SIPAC - 1775

SIGRH - 675

10

O número de casos de testes possíveis é

ASTRONÔMICO!!!

Já que não podemos testar para todas as

entradas possíveis...

Precisamos de dados de teste que aumentem

as chances de revelar defeitos…

Incompletude dos Testes

Utilizamos: Testes Exploratórios

Enfrentando o desafio

- Guias para TESTE EXPLORATÓRIO

- Critérios de Teste (Treinamento)

- Logs de Erro padronizados

Agenda

Desafios do Teste de Software

Atividades Realizadas em 2014

Atividades Planejadas

Desafio 1: Impossível testar todas as entradas

Desafio 2: Testes de Regressão

Desafio 2: Teste de Regressão

A alteração em um caso de uso

pode afetar outros que dependem dele...

Desafio 2: Teste de Regressão

Corrigir um Bug pode introduzir vários outros...

Desafio 2: Testes de Regressão

Ou seja... não é suficiente testar somente

as funcionalidades adicionadas e alteradas...

Desafio 2: Testes de Regressão

Enfrentando o desafio:

- Automação de testes

- Análise de dependência entre

os casos de uso.

Benefícios da Automação

Tornar testes de REGRESSÃO mais rápidos.

Reduzir o custo da atividade de testes??

Facilita o teste multi-plataforma.

Falsas expectativas sobre

automação de testes

Falsas Expectativas

Redução imediata no esforço dedicado testes.

Redução imediata no cronograma.

Ferramentas fáceis de usar.

Testes são fáceis de manter.

Uma única ferramenta pode automatizar todos

tipos de teste.

Falsas Expectativas

"NÃO espere que a equipe seja

mais produtiva a CURTO PRAZO!!!"

Falsas Expectativas

"NÃO espere que a equipe seja

mais produtiva a CURTO PRAZO!!!"

A maioria dos benefícios da automação não

aparece antes do segundo release.

Falsas Expectativas

"NÃO espere que a equipe seja

mais produtiva a CURTO PRAZO!!!"

criação de testes automatizados

X

execução de testes manuais

Esforço de 3 a 10 maior!!

Projeto: SIGAutomação

Testes automatizados usando Selenium

SIGAA - 304 classes - 287 classes de teste.

SIGRH - 24 classes - 15 classes de testes

SIGADmin - 45 classes - 42 classes de teste.

Cuidados com Testes Automatizados

Um esforço adicional ainda é requerido

para dar manutenção nas classes de teste.

Cuidados com Testes Automatizados

Um esforço adicional ainda é requerido

para dar manutenção nas classes de teste.

Módulo EAD

Sucesso: 57

Skip: 27 / Falha: 23

Módulo Lato Sensu:

Sucesso: 40

Skip: 12 / Falha: 15

Cuidados com Testes Automatizados

Um esforço adicional ainda é requerido

para dar manutenção nas classes de teste.

• Mudanças nos casos de uso

• Links alterados:

• "Consultar Histórico” "Emitir Histórico".

• Erro na implementação do teste.

• Erro no sistema.

• Falta de dados de teste.

Cuidados com Testes Automatizados

Utilizamos práticas de programação para evitar:

- Código macarrônico

- Sem modularidade

- Sem controle de versões

- Sem documentação

Pois, isto pode levar ao fracasso da automação!!!

Exemplo Win NT4: 6 milhões de linhas de código e 12 milhões de

linhas de código de teste.

Automação de Testes

CUIDADOS COM A AUTOMAÇÃO!!!

Código de testes precisa ser mantido assim como código dos sistemas.

Planejar e incorporar custo associado a manutenção.

Executar com frequência.

Não substituem testes manuais.

Agenda

Desafios do Teste de Software

Atividades Realizadas em 2014

Atividades Planejadas

Desafio 1: Impossível testar todas as entradas

Desafio 2: Testes de Regressão

Desafio 3: Testes ao longo do processo de desenvolvimento

Desafio 3: Teste não é a cobertura do bolo

Desafio 3: Teste não é a cobertura do bolo

Se o código não foi projetado pensando em

testes....

Desafio 3: Teste não é a cobertura do bolo

Enfrentando o desafio:

A qualidade é um compromisso de TODOS,

não só da equipe de “Controle de

Qualidade”.

Desafio 3: Teste não é a cobertura do bolo

Implementação Testes de

Unidade

Testes de

Integração

Testes de

Sistema

Testes

de Aceitação

Especificação de

Requisitos

Arquitetura

Projeto

Modelo V

Equipe de

Controle de

Qualidade

Equipe de

Desenvol-

vimento

Desafio 3: Teste não é a cobertura do bolo

Implementação Testes de

Unidade

Testes de

Integração

Testes de

Sistema

Testes

de Aceitação

Especificação de

Requisitos

Arquitetura

Projeto

Modelo V

Equipe de

Controle de

Qualidade

Equipe de

Desenvol-

vimento

Desafio 3: Teste não é a cobertura do bolo

Implementação Testes de

Unidade

Testes de

Integração

Testes de

Sistema

Testes

de Aceitação

Especificação de

Requisitos

Arquitetura

Projeto

Modelo V

Equipe de

Controle de

Qualidade

Equipe de

Desenvol-

vimento

Porém por mais que se teste...

“O teste pode mostrar a presença de

falhas em um software, mas nunca a sua

ausência.”

Dijkstra

Testar a procura de defeitos é como

procurar agulhas num palheiro...

Um paralelo...

Definindo estratégias para aumentar as chances de encontrar as agulhas...

Incompletude dos Testes

Se encontrarmos

agulhas não

podemos garantir

que não sobraram outras...

Mesmo utilizando critérios e ferramentas

na fase de testes e desenvolvimento...

O Suporte também participa do controle de

qualidade - ponto de contato com o usuário

Equipe de Suporte

Não está funcionando

Dúvida

CI!!

Não está funcionando

Dúvida

Sugestão

Não está funcionando

Dúvida

CI!!

Não está funcionando

Dúvida

CI!!

Não está funcionando

Dúvida

Sugestão

Não está funcionando

Dúvida

CI!!

Padronizamos logs de falhas reportadas

Permite:

- analisar mensamente as causas

- atacar pontualmente as causas

Equipe de Suporte na Garantia da Qualidade

Agenda

Desafios do Teste de Software

Atividades Realizadas em 2014

Atividades Planejadas

Desafio 1: Impossível testar todas as entradas

Desafio 2: Testes de Regressão

Desafio 3: Testes ao longo do processo de desenvolvimento

Atividades Realizadas em 2014

Automação de Testes com Selenium

Testes de Desempenho com JMeter

Iniciativa da Equipe de Desenvolvimento:

JUnit + Power Mock

Migração do Selenium RC para WebDriver

Manutenção dos Casos de Teste

Novos Casos de Teste

Atividades Realizadas em 2014

Guias de Desenvolvimento: Como tratar

exceções nos SIGs?

Estudo: Análise das principais causas de CI

Ferramenta implementada: Identificar exceções

não documentadas lançadas por bibliotecas

Exceções não documentadas lançadas por bibliotecas.

Agenda

Desafios do Teste de Software

Atividades Realizadas em 2014

Atividades Planejadas

Desafio 1: Incompletude dos Testes

Desafio 2: Testes de Regressão

Desafio 3: Testes ao longo do processo de desenvolvimento

Atividades Planejadas

Treinamento em Teste de Software

Continuidade das atividades de manutenção

de casos de teste Selenium.

Ferramenta para geração semi-automática de

Casos de Teste Selenium (Mestrado)

Ferramenta para auxiliar o desenvolvimento

do código de Tratamento de Exceções (Mestrado)

Atividades Planejadas

Estudo: Como os defeitos do tipo CI são

solucionados (Mestrado)

Compartilhar desafios, dificuldades e soluções

com os parceiros.

Equipe de Testes

João – Pablo – Dalton (coord.) – Raynison – Márcia – Leandro

Contato

Roberta Coelho (Profa. Colaboradora)

roberta@dimap.ufrn.br

Dalton Dantas (Coordenador)

dalton@info.ufrn.br

52

Referências

Teste de Software

Roberta Coelho