Você está na página 1de 53

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
O número de casos de testes possíveis é
ASTRONÔMICO!!!

10
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


Desafio 1: Impossível testar todas as entradas

Desafio 2: Testes de Regressão

Atividades Realizadas em 2014

Atividades Planejadas
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.

Facilita o teste multi-plataforma.

Reduzir o custo da atividade de testes??


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


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

Atividades Planejadas
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

Especificação de Testes
Requisitos de Aceitação Equipe de
Controle de
Testes de Qualidade
Arquitetura
Sistema

Testes de
Projeto
Integração
Equipe de
Testes de Desenvol-
Implementação
Unidade vimento

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

Especificação de Testes
Requisitos de Aceitação Equipe de
Controle de
Testes de Qualidade
Arquitetura
Sistema

Testes de
Projeto
Integração
Equipe de
Testes de Desenvol-
Implementação
Unidade vimento

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

Especificação de Testes
Requisitos de Aceitação Equipe de
Controle de
Testes de Qualidade
Arquitetura
Sistema

Testes de
Projeto
Integração
Equipe de
Testes de Desenvol-
Implementação
Unidade vimento

Modelo V
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
Um paralelo...

Testar a procura de defeitos é como


procurar agulhas num palheiro...

Definindo estratégias para aumentar as


chances de encontrar as agulhas...
Incompletude dos Testes

Mesmo utilizando critérios e ferramentas


na fase de testes e desenvolvimento...

Se encontrarmos
agulhas não
podemos garantir
que não sobraram
outras...
Equipe de Suporte

O Suporte também participa do controle de


qualidade - ponto de contato com o usuário

CI!! Sugestão
CI!!

Dúvida Dúvida
Dúvida
Não está Não está
Não está
funcionando funcionando
funcionando
Equipe de Suporte na Garantia da Qualidade

CI!! Sugestão
CI!!

Dúvida Dúvida
Dúvida
Não está Não está
Não está
funcionando funcionando
funcionando

Padronizamos logs de falhas reportadas

Permite:
- analisar mensamente as causas
- atacar pontualmente as causas
Agenda

Desafios do Teste de Software


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

Atividades Planejadas
Atividades Realizadas em 2014

Automação de Testes com Selenium


Migração do Selenium RC para WebDriver

Manutenção dos Casos de Teste

Novos Casos de Teste

Testes de Desempenho com JMeter

Iniciativa da Equipe de Desenvolvimento:


JUnit + Power Mock
Atividades Realizadas em 2014

Estudo: Análise das principais causas de CI


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

Guias de Desenvolvimento: Como tratar


exceções nos SIGs?

Ferramenta implementada: Identificar exceções


não documentadas lançadas por bibliotecas
Agenda

Desafios do Teste de Software


Desafio 1: Incompletude dos Testes

Desafio 2: Testes de Regressão

Desafio 3: Testes ao longo do processo de desenvolvimento

Atividades Realizadas em 2014

Atividades Planejadas
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

Dalton Dantas (Coordenador)


dalton@info.ufrn.br

Roberta Coelho (Profa. Colaboradora)


roberta@dimap.ufrn.br
Referências

52
Teste de Software
Roberta Coelho

Você também pode gostar