Universidade TESTE Estadual DE SOFTWARE Vale do Acaraú O que são testes? INTRODUÇÃO A ENGENHARIA DE SOFTWARE Teste é um processo de avaliar um sistema ou um componente de um sistema para verificar se ele satisfaz os requisitos especificados ou identificar diferenças entre resultados esperados e obtidos. [ANSI/IEEE Standard 729,1983] Processo de executar um programa com objetivo de encontrar erros. [Myers, 1979] Prof. Raquel Silveira 1 2 São pontuais; Antigamente... São previsíveis; São finitos; Testes não verificam completamente a saída de um programa, pois as entradas são infinitas. No passado, a tarefa de efetuar testes em software era considerada secundária. Os testes eram feitos por desenvolvedores. Os usuários eram envolvidos para aprovar o resultado dos testes ou para gerar massa de dados. 3 4 Atualmente... Naturalmente o assunto não é tão simples Empresas tem visto a atividade de teste como prioritária para a maior qualidade de suas aplicações. Não testar o software pode gerar perdas financeiras e de imagem irreparáveis. Complexidade das aplicações que estão cada vez mais distribuídas. 5 Erros nem sempre são óbvios; Erros diferentes podem ter a mesma manifestação; Saber que um programa não está correto não necessariamente é saber como corrigir o erro. 6 1
Falhas no Software 1/3 das falhas de software poderiam ser evitadas com teste; Aproximadamente 50% das falhas só são encontradas em produção. Falhas custam caro - Segundo uma pesquisa do Departamento de Comércio dos EUA, publicada em 2002, falhas de software são tão comuns e tão danosas que se estima que causem prejuízo anual de mais de 60 bilhões de dólares para a economia americana. 7 8 Qual é o custo de encontrar falhas posteriormente? O custo de correção dos defeitos encontrados durante a produção tende a aumentar quanto mais tarde o defeito é detectado. 12000 10000 8000 6000 4000 2000 0 Regra 10 de Myers Designer Implementação Teste Produção Você confia no que faz? Cliente: Isso aqui não está funcionando! Programador: Mas como?! Na minha máquina estava funcionando até ontem. 9 10 Garanta o seu trabalho, seja profissional Pré-Conceitos Errado -Num mundo capitalizado não há tempo para teste; -O cliente não quer saber como é feito, ele quer que funcione. Realidade -O cliente não quer saber se X virou Y. Ele quer que o problema não aconteça e se acontecer seja corrigido rapidamente. -Não se consegue qualidade e confiabilidade sem teste. 11 O testador é um inimigo do desenvolvedor; A equipe de teste pode ser montada com os desenvolvedores menos qualificados, pois qualquer um pode testar sistemas; 12 2
= Validação? Processo de avaliação de um sistema ou componente para determinar se os artefatos produzidos satisfazem determinadas. às especificações Estamos construindo o produto corretamente? Validação Processo de avaliação para determinar se o sistema atende as necessidades e requisitos dos usuários. Estamos construindo o produto certo? 13 14 Aceitação Revisão técnica Aceitação Teste Teste Componente Componente (Garantia de Qualidade) Unidade Validação (Controle de Qualidade) (Garantia de Qualidade) Unidade Validação (Controle de Qualidade) 15 16 de Aceitação Projeto Prematuro de Testes de Integração de Unidade 17 18 3
de Aceitação Aceitação Teste Modelo de integração entre os processos de desenvolvimento e teste TESTE Especificação DESENVOLVIMENTO Desenho lógico e físico de Integração de Unidade Componente Unidade Execução (1) Execução (2) Teste unitário integração e sistema Implantação Entrega aceitação Entrega 19 20 PROFISSIONAIS TESTE EM DE TESTE SOFTWARE DE SOFTWARE Geralmente temos as seguintes situações: Depois eu escrevo o plano de testes... Vamos deixar os testes para a próxima fase... Na minha máquina funcionou... Temos que entregar o produto na semana que vem... 21 TESTADOR Execução dos testes funcionais no sistema guiado pelo caso de teste. AUTOMATIZADOR DE TESTE Criação dos scripts de automação do sistema guiado pelo caso de teste. ANALISTA DE TESTE Criação do Plano de Teste e casos de teste. ENGENHEIRO / ARQUITETO DE TESTE Criação e execução de testes não funcionais, criação do ambiente de teste e automação. LÍDER / COORDENADOR DE TESTE Acompanhamento dos testes e criação de relatórios de teste. Apoio ao time de teste. 22 Categorias de teste Caixa Branca caixa branca (White box) Testes de unidade de código; Testam parte da solução; caixa preta (Black box) São escritos e mantidos pelo programador e devem estar sempre atualizados. 23 24 4
Caixa Branca Cobertura dos testes Quando construímos um teste de unidade, o principal desafio é isolar a classe ou trecho de código que está sendo testado, para que nenhuma outra classe do sistema seja envolvida no teste e influencie no resultado esperado. Dificilmente consegue-se 100% de cobertura de testes. Quanto maior cobertura dos testes na aplicação, maior a confiabilidade nas alterações e novos recursos. 25 26 Cobertura dos testes Aplicações cobertas por bons testes propiciam: -Facilidade de manutenção; - Menos problemas e relação de custos em manutenção. Testes de caixa preta Testes funcionais e de aceitação; Testes de integração; Testam a solução completa. 27 28 Ciclo de TESTE Vida do DE Processo SOFTWARE de Teste Dimensões do teste Tipo de teste (O que testar) 2ª funcionalidade interface desempenho usabilidade volume... Técnica de Teste (Como testar) 3ª Funcional Estrutural 1ª unidade Estágio ou níveis de teste integração (Quando testar) sistema aceitação 29 30 5
Exercício rápido Como você testaria uma calculadora? -Um dos documentos contidos na fase de Elaboração é a Especificação de Caso de Teste. Este documento deve conter: Identificação das condições do teste (pré e pós condições) Identificação dos casos de teste (o que testar) Detalhamento da massa de entrada Especificação das configurações de ambiente Definir o tipo de implementação (automática ou manual) 31 32 TESTE Elaboração DE SOFTWARE Exemplo de elaboração de caso de teste Especificação do sistema: Autenticação de Usuário. Autenticação Login Senha TESTE Elaboração DE SOFTWARE Exemplo de elaboração de caso de teste Do requisito do cliente, podemos criar as seguintes idéias de teste: OK Esqueceu a senha? LIMPAR Efetuar o login na aplicação com um login válido e senha de, no mínimo 6 (seis) caracteres. 33 34 TESTE Elaboração DE SOFTWARE Exemplo de elaboração de caso de teste Título: Senha Inválida Ambiente: Windows XP Pré-Condições: - Possuir um usuário válido. Passo 1. O usuário inicia a aplicação. 2. O usuário preenche os campos Login e Senha conforme as idéias de teste. Resultado Esperado Verificar se os campos são preenchidos corretamente. 3. O usuário seleciona Efetuar Login. Verificar se quando o usuário informa uma senha menor que 6 caracteres, o sistema exibe a mensagem: Senha inválida.. 4. O usuário confirma a mensagem. 35 6