Aula 12 – Teste
Transcrição
Aula 12 – Teste
02/11/2010 TESTES “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] Engenharia de Software “Processo de executar um programa com objetivo de encontrar erros.” [Myers, 1979] Prof. Raquel Silveira TESTES Disciplina: Engenharia de Software / Prof.: Raquel Silveira O que são testes? TESTES São pontuais; Antigamente... Testes não verificam completamente a saída de um programa, pois as entradas são infinitas. Os testes eram feitos por desenvolvedores. Os usuários eram envolvidos para aprovar o resultado dos testes ou para gerar massa de dados. TESTES TESTES Atualmente... Naturalmente o assunto não é tão simples 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. Erros nem sempre são óbvios; Disciplina: Engenharia de Software / Prof.: Raquel Silveira Empresas tem visto a atividade de teste como prioritária para a maior qualidade de suas aplicações. Erros diferentes manifestação; podem ter a mesma Saber que um programa não está correto não necessariamente é saber como corrigir o erro. Disciplina: Engenharia de Software / Prof.: Raquel Silveira São finitos; Disciplina: Engenharia de Software / Prof.: Raquel Silveira No passado, a tarefa de efetuar testes em software era considerada secundária. Disciplina: Engenharia de Software / Prof.: Raquel Silveira São previsíveis; 1 02/11/2010 TESTES TESTES Verificação = Validação? Onde o teste de software influencia no desenvolvimento da aplicação - Nós construímos o sistema correto? VALIDAÇÃO TESTES Disciplina: Engenharia de Software / Prof.: Raquel Silveira - Nós construímos corretamente o sistema? Disciplina: Engenharia de Software / Prof.: Raquel Silveira VERIFICAÇÃO TESTES TESTES Disciplina: Engenharia de Software / Prof.: Raquel Silveira Disciplina: Engenharia de Software / Prof.: Raquel Silveira Onde o teste de software influencia no desenvolvimento da aplicação TESTES Aproximadamente 50% das falhas só são encontradas em produção. Disciplina: Engenharia de Software / Prof.: Raquel Silveira 1/3 das falhas de software poderiam ser evitadas com teste; 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. Disciplina: Engenharia de Software / Prof.: Raquel Silveira Falhas no Software 2 02/11/2010 TESTES TESTES Você confia no que faz? Garanta o seu trabalho, seja profissional -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. TESTES TESTES Pré-Conceitos Geralmente temos as seguintes situações: Disciplina: Engenharia de Software / Prof.: Raquel Silveira Programador: Mas como?! Na minha máquina estava funcionando até ontem. Errado Disciplina: Engenharia de Software / Prof.: Raquel Silveira Cliente: Isso aqui não está funcionando! TESTES Profissionais em teste de software Fases do teste de software Disciplina: Engenharia de Software / Prof.: Raquel Silveira TESTES Disciplina: Engenharia de Software / Prof.: Raquel Silveira “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...” Disciplina: Engenharia de Software / Prof.: Raquel Silveira A equipe de teste pode ser montada com os desenvolvedores menos qualificados, pois qualquer um pode testar sistemas; Disciplina: Engenharia de Software / Prof.: Raquel Silveira O testador é um inimigo do desenvolvedor; 3 02/11/2010 TESTES TESTES Modelo de integração entre os processos de desenvolvimento e teste Categorias de teste TESTES TESTES Teste de Caixa Branca Teste de Caixa Branca Testam parte da solução; São escritos e mantidos pelo programador e devem estar sempre atualizados. Disciplina: Engenharia de Software / Prof.: Raquel Silveira Testes de unidade de código; TESTES TESTES Cobertura dos testes Cobertura dos testes 100% de Quanto maior cobertura dos testes na aplicação, maior a confiabilidade nas alterações e novos recursos. Disciplina: Engenharia de Software / Prof.: Raquel Silveira Dificilmente consegue-se cobertura de testes. Disciplina: Engenharia de Software / Prof.: Raquel Silveira 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. Aplicações cobertas por bons propiciam: -Facilidade de manutenção; Disciplina: Engenharia de Software / Prof.: Raquel Silveira Teste de caixa preta (Black box) testes - Menos problemas e relação de custos em manutenção. Disciplina: Engenharia de Software / Prof.: Raquel Silveira Disciplina: Engenharia de Software / Prof.: Raquel Silveira Teste de caixa branca (White box) 4 02/11/2010 TESTES TESTES Testes de caixa preta TESTES TESTES Princípios de qualidade e controle de qualidade Funcionalidade Funcionalidade Usabilidade Usability FURPS Supportability Confiabilidade Reliability Desempenho Perfomance De acordo com a especificação funcional. - Teste funcional; - Teste de regressão; - Teste de volume; - Teste de segurança. TESTES TESTES Usabilidade Confiabilidade Facilidade de uso do sistema pelos usuários. - Teste de interface; - Teste de usabilidade. Disciplina: Engenharia de Software / Prof.: Raquel Silveira Suportabilidade Disciplina: Engenharia de Software / Prof.: Raquel Silveira Functionality Confiabilidade do sistema, a permanência de operação, a integridade dos dados, a confiabilidade da estrutura e da aplicação. - Teste de integridade; - Teste de estrutura; - Teste de estresse; - Smoke teste. Disciplina: Engenharia de Software / Prof.: Raquel Silveira Testam a solução “completa”. Disciplina: Engenharia de Software / Prof.: Raquel Silveira Disciplina: Engenharia de Software / Prof.: Raquel Silveira Testes de integração; Disciplina: Engenharia de Software / Prof.: Raquel Silveira Testes funcionais e de aceitação; 5 02/11/2010 Suportabilidade Capacidade do programa de diversos ambientes diferentes. - Teste de configuração; - Teste de instalação. funcionar TESTES Exemplo de uma área de teste de software Exemplo de uma área de teste Disciplina: Engenharia de Software / Prof.: Raquel Silveira TESTES TESTES Um cliente de vendas contrata uma empresa de teste para validar seu site, que será lançado ao público. Um dos requisitos é efetuar o login no seu software utilizado usuário e senha. TESTES O cliente especifica o seguinte requisito: Exemplo de uma área de teste Disciplina: Engenharia de Software / Prof.: Raquel Silveira Efetuar o login na aplicação com um login válido e senha de, no mínimo 6 (seis) caracteres. em O primeiro passo da área de teste é criar um Plano de Teste que irá ter, dentre outros, os seguintes itens: - Requisitos que serão testados; - Técnicas utilizadas; - Documentos utilizados; - Cronograma; - Recursos. Disciplina: Engenharia de Software / Prof.: Raquel Silveira Velocidade de processamento da informação. - Teste de avaliação de desempenho; - Teste de contenção; - Teste de carga; - Perfil de desempenho. Disciplina: Engenharia de Software / Prof.: Raquel Silveira Desempenho Disciplina: Engenharia de Software / Prof.: Raquel Silveira TESTES Disciplina: Engenharia de Software / Prof.: Raquel Silveira TESTES 6 02/11/2010 TESTES TESTES Exemplo de uma área de teste Exemplo de uma área de teste TESTES Senha Inválida 1. Este fluxo inicia no passo 3 do sub-fluxo “Efetuar Login”, quando o usuário informa uma senha com a quantidade de caracteres menor que 6. 2. O sistema exibe a seguinte mensagem: “Senha inválida.”. 3. O usuário confirma o recebimento da mensagem. 4. O caso de uso retorna ao passo 2 do Fluxo Básico. Disciplina: Engenharia de Software / Prof.: Raquel Silveira O caso de uso apresenta o seguinte fluxo de exceção: Disciplina: Engenharia de Software / Prof.: Raquel Silveira O passo após criar o Plano de Teste é criar o(s) caso(s) de teste que deve conter: - Passos - Resultados esperados - Ambiente onde será testado - Pré-condições - Massa de dados TESTES Exemplo de uma área de teste Exemplo de uma área de teste Exemplo de um caso de teste: Título: Senha Inválida Resultado Esperado 1. O usuário inicia a aplicação. 2. O usuário preenche os campos Login e Senha conforme as idéias de teste. 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. TESTES Exemplo de uma área de teste Exemplo de uma área de teste • Com os casos de teste criados, podemos executá-los na aplicação. •Após a execução de todos os testes e correção dos defeitos, o sistema pode ser entregue ao cliente. • Caso ocorra algum erro, reportamos um defeito com os seguintes dados: Sumário Passo para reprodução Severidade Ambiente Disciplina: Engenharia de Software / Prof.: Raquel Silveira TESTES Testes são necessários! •É preciso verificar o código, sempre; •É preciso garantir que os requisitos estão implementados (e corretos); •É preciso ter segurança para realizar alterações; •É preciso ser criativo para explorar o máximo possível com os testes. Não é aconselhado usar testes mentirosos. Disciplina: Engenharia de Software / Prof.: Raquel Silveira Passo Disciplina: Engenharia de Software / Prof.: Raquel Silveira Pré-Condições: - Possuir um usuário válido. Disciplina: Engenharia de Software / Prof.: Raquel Silveira Do requisito do cliente, podemos criar as seguintes idéias de teste: Ambiente: Windows XP 7