370 likes | 577 Views
Metodologia de Desenvolvimento de Software – RUP 5. Testes. Márcio Aurélio Ribeiro Moreira marcio.moreira@pitagoras.com.br http:// si.lopesgazzani.com.br/docentes/marcio /. Conceitos de testes. Teste: É a execução controlada do software visando revelar falhas Falha: Desvio de comportamento
E N D
Metodologia de Desenvolvimento de Software – RUP5. Testes Márcio Aurélio Ribeiro Moreira marcio.moreira@pitagoras.com.br http://si.lopesgazzani.com.br/docentes/marcio/
Conceitos de testes • Teste: • É a execução controlada do software visando revelar falhas • Falha: Desvio de comportamento • Erro: Origem da falha (bug) • Teste de Regressão: • Execução repetida dos Casos de Testes que falharam, bem como dos Casos de Testes impactados por eles, após a correção dos erros (bugs) que causaram as falhas • Importância: • Testes não provam que o software está livre de falhas. Eles minimizam este risco, aumentam a confiança e agregam valor ao produto • São partes integrantes da qualidade
Elementos de testes • De Planejamento: • Estratégia de Teste: Define como o esforço de teste será conduzido • Plano de Testes: Define objetivos, metas, abordagem e recursos testes de cada iteração • Idéias de Teste: Lista de idéias a serem utilizadas nos testes • De Desenvolvimento: • Casos de Testes: Entradas, passos e saídas esperadas de cada teste • Scripts de Testes: Códigos executados durante (preparação, execução, passos e geração de resultados) os Casos de Teste • Dados de Teste: Massa de dados usada para realização dos testes • Cenários de Teste: Variações que um mesmo Caso de Teste pode ter • De Execução: • Registro de Testes: Saída bruta da execução dos testes • Resultados de Testes: Avaliação dos resultados dos registros de testes
Níveis de testes • Quanto às pessoas: • Desenvolvedores • Testes independentes: • Entidades verificadoras (certificadoras) ou Usuários chaves do cliente • Quanto a granularidade: • Testes de unidade (desenvolvedores) • Testes de integração (desenv.) (subsistemas) • Testes de sistema (ambos) • [Testes Integrados (ambos) (outros sistemas) ausente no RUP] • Testes de aceitação (cliente) (UAT: User Acceptance Test) • Quanto à forma: • Formal: Seguem os casos de testes • Informal: Não seguem roteiro (exploratórios, ad hoc ou aleatórios)
Stubs Testes de Sistema Testes Integrados e UAT Sistema D Sistema D Stub Stub Stub Sistema A Sistema B Sistema A Sistema B Sistema C Sistema C
Visões de testes • Quanto à visão do sistema: • Caixa preta (fora do sistema, sem visão interna) • Caixa branca (dentro do sistema) • Uso de testes nas dimensões da qualidade:
Modelo V de testes Validação Verificação Modelagem de Negócio Teste de Aceitação Requisitos Teste Integrado Arquitetura Teste de Sistema Análise Teste de Integração Projeto Teste Unitário Implementação
Tipos de testes • Funcionalidade: • Função: A parte testável funciona como foi projetada? • Segurança: Somente usuários autorizados têm acesso à funcionalidade? • Volume: A funcionalidade suporta o volume de dados especificado? • Utilidade: • Usabilidade: O software tem a usabilidade que é esperada dele? • Confiabilidade: • Integridade: O software tem a robustez (resistência a defeitos) esperada? • Estrutura: Os links, botões e opções de navegação funcionam corretamente? • Estresse: Como o software lidas com muitos dados, pouca memória, etc.? • Desempenho: • Tamanho real: O software tem o desempenho esperado quando com volume real? • Contenção: Como o software lida com solicitação excessiva de um recurso? • Carga: Aumentando o volume de transações, até onde o software suporta? • Perfil de desempenho: O software possui gargalos ou processos ineficientes? • Suportabilidade: • Configuração: Nosso software funciona em diferentes configurações (hw/sw)? • Instalação: O processo de instalação funciona em diferentes configurações?
Objetivos dos testes • Localizar e documentar defeitos na qualidade do software • Dar sugestões sobre a qualidade do software • Validar e provar as suposições feitas nas especificações de projeto e requisitos através de demonstração concreta • Validar se o software funciona conforme o projeto • Validar se os requisitos estão implementados adequadamente
Objetivos das atividades • Definir missão de avaliação: • Identificar o foco apropriado do esforço de teste para a iteração e estabelecer consenso com os envolvidos sobre as metas que conduzirão o esforço de teste • Validar abordagem do teste: • Verificar por meio da demonstração que a abordagem de testes funcionará, produz resultados precisos e é apropriada para os recursos disponíveis • Validar a estabilidade da construção: • Validar que a construção esteja estável o suficiente, para que sejam iniciados o teste detalhado e o esforço de avaliação • Testar e avaliar: • Executar os testes e verificar se eles tem a amplitude e o detalhamento necessários para garantir que os testes atinjam seus propósitos • Realizar a missão aceitável (atingimos a missão de aceitação?): • Garantir a aceitação do produto através das avaliações dos testes • Aprimorar vantagens dos testes: • Manter e aprimorar os recursos de testes
P: Estratégia de testes • Seções típicas do documento: • Contexto: • Missão de Avaliação (foco dos testes) e Motivadores de Testes (razões de existir dos testes) • Abordagem: • Extensão: Cobertura que será utilizada • Medição: Como serão medidos os testes • Técnicas: Quais técnicas serão utilizadas • Ambiente: • Hardware: Hardwares necessários aos testes • Software: Softwares necessários aos testes • Ferramentas: Utilizadas na medição e avaliação • Configuração: Configuração final do ambiente • Responsabilidades: • Funções: Papéis necessários aos testes • Pessoal: Pessoas necessárias para realizar os testes • Responsabilidades: Que pessoa é responsável por qual papel • Outros: • Riscos, dependências, premissas, restrições, processo e procedimento de gestão dos testes
P: Plano de testes • 2. Requisitos de Testes: • Quais tipos de testes serão utilizados • ... • 2.6. Teste de carga 2.7. Teste de estresse 2.8. Teste de volume • ... • 3. Estratégia de testes: • 3.1. Descrever para cada tipo de teste: objetivo, técnica, critérios e detalhes • ... • 2.6. Teste de carga: • Objetivo: Verificar o tempo de resposta do sistema para alguns casos de negócio • Técnica: Utilizar Casos de Testes prontos, com variações que simulem o volume real de dados • Critérios: Metas de transações e acessos concorrentes atingidos • Detalhes: Para medição exata, utilizar máquina dedicada por um tempo dedicado • 3.2. Ferramentas utilizadas • Outros: funções x recursos x responsabilidades, marcos, datas, etc.
P: Idéias de teste • Exemplo 1: • Exemplo 2:
P: Caso de teste • Fase: GL1 Build: 1 • Ciclo: Catálogo de Produtos ID do TC: 149 • Nome TC: Criação de Produtos Simples Prioridade: Baixa • Passos:
P: Avaliação dos testes 1 % de Sucesso Densidades Resultado EstratégiaX Legenda: Exec = Execução Suc = Sucesso CT = Caso de Teste PT = Passos de CT Falhas / C.T.Executado Bugs / C.T.Executado
P: Avaliação dos testes 2 Severidade final Severidade Média Severidade
P: Avaliação dos testes 3 100% em 7/7/2010
Exercício 3: Contexto • Considerando o mesmo projeto dos exercícios 1 e 2, e além disto: • A empresa de consultoria tem fábricas de software em: • São Paulo no Brasil: que fará a interface com o cliente • A língua utilizada para fazer modelagem, análise e projeto é o português • 2 cidades na Índia: que farão a maior parte do desenvolvimento • A língua oficial da consultoria na Índia é o inglês • A empresa de consultoria é parceira da Oracle e participou das validações das customizações propostas feita com a Oracle • A empresa de consultoria utilizará uma unidade deles especializada em testes, que fica em Brasília • As responsabilidades de testes ficaram combinadas da seguinte forma: • Testes Unitários e Testes de Integração (internos): Responsabilidade da consultoria • Testes de Sistema e Testes Integrados (externo, ou seja, com outros sistemas): • A consultoria: Desenvolve os Casos de Teste • A empresa: Valida os Casos de Teste • A consultoria: Executa os Casos de Teste e fornece evidências da execução • A empresa: Verifica as evidências e registra as rejeições • A consultoria: Corrige as rejeições e fornece novamente para a empresa • Teste de Aceitação: Responsabilidade integral da empresa
Exercício 3: Questões • Que Atividades e Tarefas de Implementação & Testes do RUP vocês recomendam que sejam utilizadas neste caso? • Justifique porque vocês incluíram ou excluíram cada Atividade e Tarefa. • Vocês recomendam alguma tarefa adicional para as Atividades selecionadas? Quais e por que? • A Construção está prevista para 4 meses e a consultoria tomou algumas decisões não muito assertivas nas etapas anteriores. O que você pode fazer para: • Ter maior assertividade na entrega da Construção? • Ter mais confiança no software nos Testes de Sistema?