Download - pensando em qualidade de software
Pensando em Qualidade de
Software
Pauta
• Quality Assurance X Quality Control• Um modelo de qualidade• Custos de falhas por fase• Conceitos gerais de teste• Principais tipos de teste• Bug X Defeito• Perfil de um bom testador• Conclusão
Parte 1 – Alinhando Conceitos
Quality Assurance X Quality Control
Garantia da qualidade é baseada na
validação de um processo.
Controle da qualidade focam na descoberta de
defeitos específicos
Quality Assurance X Quality Control
A garantia da qualidade é
orientada a prevenção.
O controle da qualidade é orientado a detecção.
Quality Assurance X Quality Control
As atividades são definidas no
início do ciclo de
desenvolvimento de software
As atividades de teste são iniciadas no final do ciclo de
desenvolvimento de software
Quality Assurance X Quality Control
Garante que você está fazendo
certo e da maneira certa
Garante que o resultado do seu trabalho é o
esperado, conforme os requisitos
GCQ• planejamento do projeto e o acompanhamento
de resultados
• uso dos métodos e ferramentas padronizadas na organização;
• estabelecimento e a monitoração de estratégias de testes
• revisão dos artefatos produzidos pelo processo de desenvolvimento
GCQ
• busca de conformidade com os padrões de desenvolvimento de software
• implantação de medições associadas a projeto, processo e produto
• busca de uma melhoria contínua no processo de desenvolvimento de software
Modelo de Qualidade
• Funcionalidade Adequação ao uso, Conformidade com os
requisitos, Segurança de Acesso, ...
• Confiabilidade Maturidade, Tolerância a falhas, recuperabilidade
• Usabilidade Inteligibilidade, operacionalidade, atratividade, ...
• Eficiência utilização de recursos, comportamento em
relação ao tempo, ...
• Manutenibilidade Modificabilidade, testabilidade,
analisabilidade, estabilidade, ...
• Portabilidade capacidade para substituir, adaptabilidade, …
Modelo de Qualidade
Custos de Falhas por Fase de Desenvolvimento
• Bug encontrado durante o desenvolvimento
• Bug encontrado durante a homologação
• Bug encontrado em produção
Conceitos Gerais de Teste de Software
• O teste de software é a última oportunidade de descoberta de um erro antes da entrega do produto
• O sucesso do teste depende de uma boa definição estratégica
• A etapa de testes é a única que possui a visão destrutiva, para entregar a aplicação construtiva;
Principais Tipos de Teste• Teste unitário• Teste Cruzado• Teste funcional• Teste de Regressão• Sanity Test• Teste Automatizado• Teste de Usabilidade• Teste de Aceitação• Teste de Segurança
Teste Unitário• Testa o menor dos componentes de um
sistema de maneira isolada• Testa uma unidade lógica, por exemplo,
métodos, classes, ou mesmo um objeto• Temos um plugin para o Eclipse chamado
“Cobertura”, que mostra qual a porcentagem de cobertura do seu projeto.
• Atualmente o 8P tem menos de 1% de cobertura
Teste Cruzado
• Um analista testa o código feito por outro analista
• Deve ser feito nas situações: a) Nova funcionalidade b) Manutenção de uma funcionalidade c) Quando um operacional requer teste d) Após a correção de um bug
Teste Funcional
• Verifica a aceitação dos dados, do processamento, a resposta a esse processamento e a implementação apropriada das regras de negócio
• Deve ser feito nas mesmas condições que o teste cruzado
Teste de Regressão
• Garante que não surgiram novos defeitos em componentes já testados
• Atualmente é feito manualmente
• É executado sempre que uma funcionalidade alterada pode gerar riscos para o restante da aplicação
Sanity Test
• É executado sempre em produção após a subida de uma nova versão
• Garante que a nova versão não impactou a versão atual
• Deve ser feito logo após a subida
Teste Automatizado
• É uma ótima ferramenta para facilitar (ou até banir) a regressão
• Hoje em dia temos o Selenium
• Uma vez o esforço gasto com automatização de scripts, reduz o esforço de regressão
Teste de Usabilidade
• Normalmente feito por internautas que não conhecem a aplicação.
• Podemos adaptar o conceito dentro dos nossos sprints
Teste de Aceitação (UAT)
• Executado geralmente pelos clientes
• É importante que o cliente não tenha interferência quando estiver fazendo os testes
Teste de Segurança
• Existe ferramentas para verificar a segurança de um site
• Muito importante para projetos do tipo BBB, que sofrem fraudes
Bug X Defeito
• Bug é todo problema causado por falha na lógica de programação;
• Defeito é todo não-atendimento de um requisito ou de uma expectativa do cliente;
Um bom testador deve ser ...
CriativoCríticoCriteriosoDetalhistaInvestigativo
Bem comunicativoOrganizadoMotivadoPersistenteIntuitivo
E além de tudo ...
Precisa gostar do que faz para encontrar o máximo de bugs possíveis antes de a aplicação ir para produção
Dúvidas, críticas, sugestões ???
Agenda
• Técnicas para cada tipo de teste• Plano de qualidade e sugestões
Obrigada