TESTES DE SOFTWARE Qualidade de software Professores: Juliano Bedin Juliano Bedin Sara Priscila Dutkwicz Leandro Bovi
Todo software tem funcionalidades que devem ser atendidas. Deve suprir o esperado pelo usuário.
Foco na qualidade de software. Está na fase de desenvolvimento do software. Objetivo: encontrar defeitos no software.
Verificação se está de acordo com os padrões e funções estabelecidos. Identificar máximo de erros/falhas com mínimo de esforço.
As falhas indicam que o programa não está de acordo com o esperado pelo usuário final. São resultado de erro em algum ponto no controle da qualidade da aplicação.
60% das falhas estão na concepção do SW. 56% dos erros no SW final derivam dos requisitos iniciais. 50% do tempo de desenvolvedores é usado para corrigir erros. 80% do custo para identificar e corrigir SW. 12 horas para corrigir cada erro de código. 20 a 30 bugs para cada 1000 linhas de código.
ISO/IEC norma ISO para qualidade de software. Regido pelos indicadores: Processo de desenvolvimento; Produto: atributos de qualidade do SW. Internos e externos; Qualidade em uso: Qualidade percebida pelo usuário.
Fiabilidade – satisfaz as necessidades? Confiabilidade – imune a falhas? Funcionabilidade – funcionalidades. Eficiência - tempo e recursos (SW e HW). Estabilidade - reduzir riscos nas modificações.
Portabilidade - transferência de ambientes. Manutenibilidade - modificação para correção de defeitos. Flexibilidade - Esforço para modificar SW operacional. Usabilidade – fácil de usar?
Técnicas estruturadas para encontrar defeitos nos softwares.
Teste funcional. Baseado nos requisitos funcionais. Avalia o comportamento externo do software. O testador não tem acesso aos códigos fonte dos softwares. O testador conhece as entradas e saídas sem conhecer o que é feito com a entrada.
Realizado antes da disponibilização do sistema. Confere requisitos originais x necessidades do usuário. Feito por grupo restrito de usuários finais / testadores.
Teste estrutural / orientado à lógica. Avalia o comportamento interno do componente de software. Trabalha diretamente no código fonte. Permite o isolamento de funções para testes.
Feito pelo desenvolvedor em testes unitários. Consiste em validar dados válidos e inválidos via I/O.
Teste de integração. Mescla das técnicas caixa branca e caixa preta. Permite o uso de engenharia reversa. Pouco utilizado.
Usado em novas versões de SW. Evita defeitos em componentes já analisados. Erros: indicam que o software regrediu.
Rational functional tester - IBM Mercury Quick Teste Professional - HP JUnit - Java NUnit -.NET
Certificações: CSTE (QAI/USA) CSQA (QAI/USA) CBTS (ALATS/BRZ)
MYERS, Glenford J. The art of software testing - New York: John Wiley & Sons, PRESSMAN, Roger S. Engenharia de Software. Rio de Janeiro: McGraw-Hill, 2002.