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 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 Requisitos Arquitetura Testes de Aceitação Testes de Sistema Equipe de Controle de Qualidade Projeto Implementação Testes de Integração Testes de Unidade Equipe de Desenvolvimento Modelo V
Desafio 3: Teste não é a cobertura do bolo Especificação de Requisitos Arquitetura Testes de Aceitação Testes de Sistema Equipe de Controle de Qualidade Projeto Implementação Testes de Integração Testes de Unidade Equipe de Desenvolvimento Modelo V
Desafio 3: Teste não é a cobertura do bolo Especificação de Requisitos Arquitetura Testes de Aceitação Testes de Sistema Equipe de Controle de Qualidade Projeto Implementação Testes de Integração Testes de Unidade Equipe de Desenvolvimento 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 Não está funcionando Dúvida Não está funcionando Dúvida Não está funcionando
Equipe de Suporte na Garantia da Qualidade CI!! Sugestão CI!! Dúvida Não está funcionando Dúvida Não está funcionando Dúvida Não está 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