Minicurso Automação de Testes de Software Ministrantes • Arllen Lira Desenvolvedor Especialista, Fábrica de Software PRODAM, Ex-Trainee Tester INdT; • Edgar Lopes Trainee Tester, Fábrica de Software PRODAM; • Luana Lobão Desenvolvedora, INdT. Roteiro • • • • • • Introdução; Verificação e Validação Processo de Teste Testes Funcionais; Testes Não-funcionais; Conclusão Introdução Por que testar software? A resposta mais simples sobre o porque de se testar software é que os desenvolvedores são incapazes de construir software livre de defeitos. (MAIDASANI 2007). Então... O que é defeito? Por que testar software? ISO 9126 Introdução O que é defeito? •Um defeito é um estado indesejável. Para definir o que é um defeito no sistema, devemos primeiro definir os estados desejáveis. Então... Como definir os estados desejáveis de um sistema? Introdução Análise de requisitos •No âmbito da engenharia, um Requisito consiste da definição documentada de uma propriedade ou comportamento que um produto ou serviço particular deve atender. •Podemos entender requisito como uma função, restrição ou propriedade que deve ser fornecida, encontrada ou atendida para satisfazer às necessidades do usuário do sistema. (Descreve um serviço ou uma limitação) •A especificação de requisitos tem como objetivo obter produtos de software de melhor qualidade que satisfaçam às reais necessidades dos clientes dentro de prazo e orçamento adequados. Introdução Análise de requisitos •Requisitos Funcionais; Descrevem as funcionalidades do sistema desejadas pelos clientes ou seja O QUE se espera que o software faça. •Requisitos Não - Funcionais; São as qualidades e restrições globais do sistema relacionados com manutenção, uso, desempenho, custo, interface, etc... Análise de requisitos Exemplos de Requisitos Funcionais – Grupos de Usuários: ID RF_02 Requisito Post de Arquivo Descrição Arquivos podem ser postados e salvos para que outros usuários possam recuperá-los. Restrições: Somente Material Acadêmico pode ser postados. O post é de responsabilidade do próprio usuário. Proprietário do grupo poderá excluir o arquivo mesmo não sendo responsável pelo POST. Pré-requisito: Usuários precisa ter o cadastro ativo para efetuar postagens de arquivos. Postagem autorizada somente após validação por imagem CAPTCHA. (RNF_SEG_03) Análise de requisitos Exemplos de Requisitos Não Funcionais – Grupos de Usuários Segurança ID RNF_SEG_03 Requisito Usar CAPTCHA para validação de postagem de arquivo. Usabilidade ID RNF_U_01 Requisito As páginas devem ser visualizadas na resolução mínima de 1024 x 768 respeitando as proporções de visualização. ID RNF_U_02 Requisito A Aplicação deve funcionar sem apresentar erros nos navegadores Moozila Firefox e Internet Explorer 7. Análise de requisitos Exemplos de Requisitos Não Funcionais – Grupos de Usuários Performance ID RNF_P_01 Requisito As respostas das requisições efetuadas pelo usuário não podem ultrapassar 10 segundos. Instalação ID RNF_INS_01 Requisito O nome do banco de dados a ser utilizado deverá ser “dbgrupo”. Overview Análise de requisitos Requisitos Casos de Uso Features Produto 1...n 1...n 1...n 1 Verificação x Validação Verificação: Construimos o produto de forma correta? > Garante a qualidade do software na produção e manutenção; Validação: O que foi entregue atende as expectativas? Construimos o produto certo? Processo de Teste • Planejamento; • Ciclo, estratégia, ferramentas, bugtracking; • Especificação; • Suíte de Teste, Casos de Teste; • Execução; • Script de teste; •Análise de resultados • Relatório de execução (bugs); TestLink Bugtracking Mantis Testes Funcionais Caixa Branca •Testes de caixa branca são testes que se executam em um aplicativo com o conhecimento do funcionamento do código; •Podem ser aplicados em testes de; -Testes de Unidade; -Teste de Integração; -Teste de Regressão. Testes Funcionais Automação em testes de Caixa Branca Exemplos: •Testes de funções com JUnit; •Self-test de formulários com Java Script. Testes Funcionais Automação em testes de Caixa Branca Testando uma função com a ferramenta JUnit na IDE Eclipse: Preparando o ambiente... 1. Baixar a versão atual do JUnit disponível em http://www.junit.org/ ; Testes Funcionais – Caixa Branca 2. Adicionar os *.jars do Junit no classpath do Eclipse Testes Funcionais – Caixa Branca 3. Criar um diretório onde serão armazenados os testes automatizados. Testes Funcionais – Caixa Branca 4. Selecione uma classe com o(s) método que será testado Testes Funcionais – Caixa Branca 4. Crie um caso de teste com JUnit na classe selecionada. Testes Funcionais – Caixa Branca 5. Crie um caso de teste com JUnit na classe selecionada. Testes Funcionais – Caixa Branca 6. Selecione os métodos da sua classe que serão testados. Testes Funcionais – Caixa Branca 7. Implementar o script de teste... Testes Funcionais Caixa Preta • O Objetivo é garantir que todos os requerimentos ou comportamentos da aplicação estejam corretos; • Testes se concentram nos requisitos funcionais do software; Testes Funcionais Automação em testes de Caixa Preta Preparando o ambiente... 1. Baixar a versão atual do Selenium Core, RC e IDE disponíveis em http://seleniumhq.org/download/; Testes Não Funcionais Performance O teste de performance é uma classe de testes implementada e executada para caracterizar e avaliar o desempenho relacionado a características do objetivo do teste, como perfis de andamento, fluxo de execução, tempos de resposta, confiabilidade e limites operacionais. Vários tipos de testes de performance, cada um concentrado em um objetivo do teste diferente, são implementados durante todo o ciclo de vida de desenvolvimento do software. São eles: •Teste de Desempenho; •Teste de Carga; •Teste de Stress. Testes Não Funcionais Automação em Testes de Performance com Jmeter Test performance