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)
Dalton Dantas (Coordenador)
52
Referências
Teste de Software
Roberta Coelho