3CON Consultoria e Sistemas Ltda. Rua Jundiaí, 50 - Térreo - São Paulo - SP
Tel: 11-3509-1900 - Fax:11-3509- 1901
www.trescon.com.br www.qualifiq.com.br
e-mail:[email protected] e-mail: [email protected]
Módulo 1
Metodologia e Processos de Testes
Curso
Qualidade de Software
Processo de Desenvolvimento de Software
TÓPICOS
Garantia da Qualidade: Processo e Produto Processo de Qualidade de Software - CMMI Processo de Teste
Métricas de Testes e melhoria contínua Skill e Papéis no processo de Teste
Módulo 1
Metodologia e Processos de Testes
Processo de Qualidade de Software - MPS-Br
Alinhar os conceitos e boas práticas da engenharia de software;
Apresentar os conceitos e métodos da Qualidade de Software;
Objetivos
Fonte: http://pt.wikipedia.org/wiki/Engenharia_de_software
É uma área do conhecimento da computação voltada para a especificação,
desenvolvimento e manutenção de sistemas de software aplicando tecnologias e práticas de gerência de projetos e outras disciplinas, objetivando organização,
produtividade e qualidade.
Engenharia de Software
Metodologia e Processos de Testes
Os fundamentos científicos para a engenharia de software envolvem o uso de
modelos abstratos e precisos que permitem ao engenheiro especificar, projetar,
implementar e manter sistemas de software, avaliando e garantindo suas qualidades. Além disso, a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento de um sistema de informação,
Engenharia de Software
Metodologia e Processos de Testes
Análise:
Exame de cada parte de um todo.
Objetivo de conhecer a natureza do problema e as funções que este venha a executar.
Sistema:
Engenharia de Software
Metodologia e Processos de Testes
Identificação Análise Proposição
Situação Atual Situação Proposta
Implementação Problema Necessidades Problema Contexto Desenvolver Desenho da Solução
Engenharia de Software
Metodologia e Processos de Testes
Fases da Engenharia de Produto
Estudo Preliminar Projeto Arquitetura Construção Utilização Engenharia Projeto Testes Projeto Estudo Análise Desen-volvimento Testes Implantação
Engenharia
Sistemas
Engenharia de Software
Metodologia e Processos de Testes
Negócio Requisitos
Modelos
Engenharia de Software
Metodologia e Processos de Testes
Modelos:
O mundo real é complexo e dinâmico;
Um modelo é uma abstração ou uma aproximação que é usada para simular a realidade;
Usamos modelos para representar o comportamento estático e dinâmico de sistemas.
Engenharia de Software
Metodologia e Processos de Testes
Requisitos Funcionais Requisitos Não Funcionais Plano Teste Documento de Necessidades
Caso de Uso Interfaces Documento
de
Análise / Projeto
Pessoas Habilidades
PROCESSO
PROCESSO
Ferramentas e Equipamento B A D CMétodos, Técnicas e Padrões
Metodologia e Processos de Testes
Processo de Software
Ent.
Saída
Ent.
Saída
Metodologia e Processos de Testes
Processo de Software
•
Processo
–
“É uma seqüência de passos executados para um determinado
propósito” (IEEE). Exemplo: o processo de desenvolvimento de
software.
•
Processo de Software
–
É um conjunto de atividades, métodos, práticas e transformações que
profissionais de informática utilizam para desenvolver e manter
software e os produtos associados (CMMI®)
Metodologia e Processos de Testes
Qualidade:
No caso do desenvolvimento de software, a qualidade do software está intrinsecamente ligada à qualidade do processo utilizado em sua elaboração,
logo, se quisermos entregar um produto de software com qualidade ao nosso cliente, temos que definir um processo de desenvolvimento de software eficiente.
Metodologia e Processos de Testes
Processo de Software
Processo
Tecnologia
Problemas:
• Processo improvisado por profissionais e gerências.
• Não é rigorosamente seguido e o cumprimento não é controlado. • Altamente dependente dos profissionais atuais.
• Baixa visão do progresso e da qualidade.
• A qualidade do produto pode ficar comprometida para que prazos sejam cumpridos. • Arriscado do ponto de vista do uso de nova tecnologia.
• Qualidade difícil de se prever.
Metodologia e Processos de Testes
Metodologia e Processos de Testes
Processo de Software
Necessidades Análise Projeto Construção Teste ImplantaçãoMetodologia e Processos de Testes
Processo de Software
Projetos reais não seguem um fluxo seqüencial: dificuldade de acomodar mudanças depois de iniciado.
Dificuldade de declaração de todas as exigências pelo cliente.
• É fácil de gerenciar
• Independência entre as fases
• Não flexível as mudanças de requisitos
• Geralmente este modelo é aplicado a projetos longos, que dificulta o envolvimento dos usuários
• Não permite o desenvolvimento em paralelo
Vantagens
Desvantagens
Metodologia e Processos de Testes
Necessidades não atendidas
Requisitos confusos Módulos não integram Manutenção difícil Erros tardios
Baixa qualidade Performance ruim Confusão entre progs. Implantação atropelada Requisitos insuficientes Comunic. ambígua Arquitetura frágil Complexidade excessiva Inconsistências n. identif. Teste inadequado Avaliação subjetiva
Ciclo de vida em cascata
Mudanças não controladas Automação insuficiente
Sintomas Causas Raízes Boas Práticas
Desenvolver Iterativamente Gerenciar Requisitos Integração sistemas Modelar Visualmente Qualidade Contínua Gerenciar Mudança
x
x
Processo de Software
Metodologia e Processos de Testes
Planejamento
( como )( como )
Requisitos Análise & design
implementação Implantação Teste Avaliação Cada iteração resulta em um executável Iterativo
Processo de Software
Metodologia e Processos de Testes
Incremental
Definição formal da Norma ISO 8402
A totalidade das características de uma entidade
que lhe confere a capacidade de satisfazer às
necessidades explícitas e implícitas
Requisitos Explícitos
3 vagas na garagem 3 quartos
2 banheiros
Instalação elétrica e hidráulica
Requisitos Implícitos
Atende aos códigos de construção Segura
Cabeamento para TV
Requisitos implícitos e explícitos na especificação de uma casa
Qualidade
Fonte: http://pt.wikipedia.org/wiki/Qualidade_de_Software
Qualidade de Software
Metodologia e Processos de Testes
A qualidade de software é uma área de conhecimento da engenharia de software que objetiva garantir a qualidade do software através da definição e normatização de processos de
desenvolvimento.
Apesar dos modelos aplicados na garantia da qualidade de software atuarem principalmente no processo, o principal objetivo é garantir um produto final que satisfaça às expectativas do cliente, dentro daquilo que foi acordado inicialmente.
Segundo a norma ISO 9000 (versão 2000), a qualidade é o grau em que um conjunto de
características inerentes a um produto, processo ou sistema cumpre os requisitos inicialmente estipulados para estes.
No desenvolvimento de software, a qualidade do produto está diretamente relacionada à qualidade do processo de desenvolvimento[, desta forma, é comum que a busca por um software de maior
qualidade passe necessariamente por uma melhoria no processo de desenvolvimento.
Rodney Brooks, diretor do Laboratório de Inteligência Artificial e Ciência da Computação do MIT, define qualidade como a conformidade aos requisitos. Essa definição exige determinar dois pontos: I) o que se entende por conformidade;
Entregar um software de qualidade no tempo, custo e escopo para valor de negócio e satisfação de seus clientes.
Qualidade
de
Software
Qualidade de Software
Metodologia e Processos de Testes
Processo sistemático que focaliza todas as etapas e artefatos produzidos com o objetivo de garantir a conformidade de processos e produtos, prevenindo e eliminando defeitos. “... Em conformidade com os requisitos dos usuários” (Watts Humphrey – fundador do programa de processo de software do SEI)
Escopo
Custo
Prazo
Qualidade
Premissas da Qualidade:
• Qualidade requer comprometimento. Cooperação entre gerência e equipe. • Não existe ”Zero-Defeito”
• Para a qualidade acontecer, padrões e procedimentos devem ser seguidos. • A falsa idéia de associar a qualidade a custo (alta qualidade = alto custo)
• Qualidade demanda especificação de requisitos consistente e suficientemente detalhada
• Falsa noção que padrões “inibem” criatividade • Prevenir e não consertar
• Corrigir defeitos o quanto antes
• Eliminar causas dos defeitos, bem como os sintomas
Qualidade de Software
• Primórdios do Desenvolvimento – Navegação pelo código;
– Correção de erros conhecidos; • 1957
– Processo de Detecção de Erros; – Produto Acabado;
• Anos 70
– Engenharia de Software;
– Não existe consenso sobre testes; • 1979
– Myers – Objetivo é encontrar erros ; – Produto Acabado;
• Anos 80
– Qualidade de Software;
– Surgem os 1o.s Padrões Mundiais; • Anos 90
– Ferramentas de Testes; – Bug Ano 2000;
Qualidade de Software
Qualidade de Software
Incidência de defeitos nas etapas de
Desenvolvimento
Requisitos 56% Implementação 7% Análise e Modelagem 27% Outros 10%Metodologia e Processos de Testes
“
Custo do Erro
!”
Custo
Qualidade de Software
Qualidade de Software
Metodologia e Processos de Testes
• Garantia da Qualidade
É um conjunto sistemático e planejado de atividades necessárias, para
prover confiança adequada que produtos e serviços estarão em
conformidade com requisitos especificados e atenderão as necessidades do
usuário. É uma função do pessoal da empresa responsável pela
implementação da política de qualidade.
• Controle da Qualidade
É um processo pelo qual a qualidade do produto é comparada com os
padrões aplicáveis e a ação tomada quando uma não conformidade é
detectada.
Metodologia e Processos de Testes
• Qualidade do Processo
– Aplica-se testes (inspeções / revisões) em artefatos gerados em cada fase do desenvolvimento.
– Processos são estruturados para que possuam impedimento e inibição de falhas
– Verificação
• Qualidade do Produto
– Aplica-se testes no produto em vários estágios do desenvolvimento da aplicação.
– Validação
Metodologia e Processos de Testes
Metodologia e Processos de Testes
Metodologia e Processos de Testes
Metodologia e Processos de Testes
Metodologia e Processos de Testes
•
Um aspecto interessante da qualidade é que não basta que ela exista.
•
A qualidade deve ser reconhecida pelo cliente.
•
Por causa disso, é necessário que exista algum tipo de certificação oficial,
emitida com base em um padrão.
•
Alguns tipos de certificados são bastante conhecidos, como:
– O selo do SIF de inspeção da carne
– O selo da ABIC nos pacotes de café
– O certificado da Secretaria de Saúde para restaurantes (classe "A" são os
melhores)
– A classificação em estrelas dos hotéis (hotéis com cinco estrelas são ótimos)
Certificações
Metodologia e Processos de Testes
•
Os Modelos são representações simplificadas do mundo real.
•
Os Modelos provêem elementos para subsidiar a construção de um
processo.
•
O modelo indica o quê fazer e não como fazer.
•
O modelo é um “Repositório” de boas (ou melhores) práticas
•
Independente da tecnologia a ser utilizada
Modelos de Referências
Metodologia e Processos de Testes
•
Para a empresa:
• Visibilidade sobre os resultados • Controle de desvios do projeto
• Melhoria da imagem perante o cliente
•
Para os profissionais:
• Aumento da capacitação técnica e gerencial • Maior flexibilidade de alocação
• Melhor qualidade de vida, com redução de carga de trabalho.
Modelos de Referências - Benefícios
Metodologia e Processos de Testes
Atualmente, muitas instituições se preocupam em criar normas para permitir a
correta avaliação de qualidade, tanto em produtos de softwares quanto de
processos de desenvolvimento de softwares.
Certificações - Software
Metodologia e Processos de Testes
•
CMMI – Capability Maturity Modelo Integration
•
Organizado e mantido pelo SEI – Software Engineering Institute
– Fundado em 1984
– Dirigido pela Carnegie-Mellon University ( SEI )
•
Lançado em agosto de 2000
Metodologia e Processos de Testes
•
Serve como guia para melhorar o processo organizacional e
melhorar a habilidade para gerenciar o desenvolvimento, aquisição e
manutenção de produtos ou serviços.
– Diminuir o custo dos projetos de melhoria de processos
– Garantir a consistência com a ISO 15504
– Garantir a migração em projetos de melhoria já estabelecidos
Metodologia e Processos de Testes
Representação
Metodologia e Processos de Testes
• A divisão em níveis de maturidade parte do princípio que a organizaçào tem melhor resultado na implementação de um processo quando foca em uma quantidade adequada de áreas-chave
• O nível de maturidade permite que uma organização possa esperar melhores resultados dentro das áreas-chave que implementou
• Cada nível de maturidade é um ponto de referência dentro da evolução • A quantidade de áreas-chave e a complexidade das mesmas, aumenta à
medida que a maturidade da organização cresce
Maturidade
Metodologia e Processos de Testes
Estágios da Maturiudade
Metodologia e Processos de Testes
Organizações caóticas
•
Processo de software é caótico, desorganizado e informal
•
Ferramentas são pouco e mal utilizadas
•
Padrões inexistem ou são ignorados
•
Sucesso depende da competência das pessoas
Metodologia e Processos de Testes
Estágio - Nível 1: Inicial
Organizações disciplinadas
• Projetos da organização têm seus requisitos gerenciados
• Processos a serem seguidos pelos projetos são planejados, executados, medidos e controlados
• Requisitos, processos, produtos de trabalho e serviços são gerenciados • Compromissos entre os envolvidos são formalizados e acompanhados
• Disciplina de processo está em repetir sucessos anteriores em projetos com aplicações similares
Metodologia e Processos de Testes
Estágio - Nível 2: Gerenciado
Organizações padronizadas
• Existe um processo padrão mantido para a organização, adaptável aos diversos tipos de projeto
• Processo é documentado e entendido
• Formada por procedimentos, padrões, métodos e ferramentas
• Projetos utilizam o processo padrão com adaptação para cada particularidade
• Lições aprendidas são armazenadas em base histórica e utilizadas pela organização
Metodologia e Processos de Testes
Estágio - Nível 3: Definido
Organizações previsíveis
• Sub-processos são controlados através de técnicas quantitativas
• São definidas metas quantitativas para o desempenho do processo e padrões de qualidade
• Desempenho e padrões de qualidade são controlados através do ciclo de vida do processo
Metodologia e Processos de Testes
Estágio - Nível 4: Quantitativamente Gerenciado
Organizações com melhorias contínuas
• Processos são continuamente melhorados baseados nas causas das variações de sua performance
• Melhoria contínua é feita através de incremento e inovação de tecnologia • Metas para melhoria de performance do processo são estabelecidas de
acordo com custo-benefício pré-avaliado e estão alinhadas às necessidades de negócio
• Resultados das inovações são controlados
Estágio - Nível 5: Otimizado
Metodologia e Processos de Testes
– Gerência de Projetos:
Contém as atividades relacionadas ao planejamento, monitoramento e controle do projeto.
– Gerência de Processos:
Contém as atividades de um projeto relacionadas a medir, controlar, planejar, definir, implementar processos.
– Engenharia:
Contém as atividades relacionadas a engenharia de software e engenharia de sistemas.
– Suporte:
Contém as atividades que suportam o desenvolvimento e manutenção do produto.
Categorias de Processo
Metodologia e Processos de Testes
•
PPQA - Process and Product Quality Assurance - Garantia da
Qualidade do Processo e do Produto
•
Ver – Verification - Verificação
•
Val – Validation - Validação
Processos da Qualidade
Metodologia e Processos de Testes
• A área de processo de Garantia da Qualidade do Processo e do
Produto envolve o seguinte:
–
Avaliar objetivamente os processos, produtos de trabalho e serviços
executados contra as descrições de processo, padrões e procedimentos
definidos
–
Identificar e documentar questões de não conformidades
–
Fornecer feedback para a equipe do projeto e gerentes sobre os
resultados das atividades de garantia da qualidade
–
Assegurar que as questões de não conformidades sejam tratadas
Modelos de Qualidade –
CMMI
Processo - PPQA
• As revisões por pares (Peer reviews) são uma parte importante da
verificação e são um mecanismo comprovado para a eficaz remoção de defeitos.
• As revisões por pares consistem de um exame metódico dos produtos de trabalho por pares dos envolvidos na produção, para identificar defeitos e outras mudanças que sejam necessárias.
Processo - VER
Metodologia e Processos de Testes
• O objetivo da Validação é demonstrar que o produto ou componente do produto atende plenamente seu uso pretendido, quando colocado no seu ambiente
pretendido.
• Freqüentemente, os usuários finais são envolvidos nas atividades de validação.
Processo - VAL
Metodologia e Processos de Testes
• As áreas de processos de Ver e Val são semelhantes, mas tratam de assuntos diferentes.
• A Verificação assegura que você construiu de forma correta. • A Validação assegura que você construiu a coisa certa.
• Ênfase da validação é descobrir se o produto alcança aquilo a que se propôs.
Processo - VER x VAL
Metodologia e Processos de Testes
Metodologia e Processos de Testes
Metodologia e Processos de Testes
• 7 níveis de maturidade (possibilitam uma implantação mais gradual e adequada à micro,
pequena e média empresa; além disto, as avaliações considerando mais níveis permitem uma maior visibilidade dos resultados de melhoria de processo, com prazos mais curtos) • Compatibilidade com CMMI
• ISO/IEC 15504/12207 e CMMI (2 em 1)
• Criado para a realidade da empresa brasileira (foco na micro, pequena e média empresa de software)
• Custo acessível (em R$)
• Avaliação periódica das empresas (de 2 em 2 anos)
• Forte interação Universidade-Empresa (catalisador do desenvolvimento tecnológico e de negócios)
Metodologia e Processos de Testes
Metodologia e Processos de Testes
Metodologia e Processos de Testes
•
“Teste é o processo de demonstrar que os defeitos não estão presentes”• “Teste é o processo de demonstrar que algo funciona corretamente”
• “Teste é o processo de provar que determinadas coisas fazem o que deveriam fazer”
Metodologia e Processos de Testes
• É um processo sistemático e planejado que tem por finalidade única a identificação de defeitos
• Um Teste bem sucedido é aquele que revela um erro ainda não descoberto. • Um teste é tanto mais efetivo quanto mais erros detecta
• Um teste que não detecta nenhum erro não garante que o sistema não contém defeitos
• A mesma pessoa não deve ser responsável simultaneamente pelo desenvolvimento e pelo teste de um produto
Metodologia e Processos de Testes
Metodologia e Processos de Testes
• Erro: Origem do defeito. Engano, alguma coisa feito por humanos.
• Defeito: Desvio do comportamento especificado. Item de informação ou estado de execução inconsistente. Deficiência mecânica ou algorítmica que, se ativada, pode levar a uma falha.
• Falha: Evento notável em que o sistema viola suas especificações. Pode ocorrer ou não devido a existência de um defeito.
Metodologia e Processos de Testes
• Nem todos os requisitos são testados,
• Falta de uma equipe independente de teste, • Informalidade no processo de testes,
• Pouca importância do processo de testes, • Defeitos só encontrados em produção, • Desconhecimento em técnicas de testes, • Falta de métricas e estimativas confiáveis,
• Falta de planejamento e/ou metodologia adequada, • Falta de automação de testes,
• A qualidade do ambiente de teste, inclusive a sua capacidade de simulação do ambiente de produção,
• O grau de envolvimento dos usuários com os testes, • A qualidade da documentação do sistema,
• Pressões de tempo e custo.
Metodologia e Processos de Testes
• Retrabalho,
• Aumento de custos nos projetos, • Dilatação nos prazos de entregas, • Diminuição de produtividade,
• Aumento da insatisfação geral e • Perda da credibilidade do usuário.
Metodologia e Processos de Testes
Processo de Teste
• Todos os testes devem ser relacionados aos requisitos do cliente. • Os testes devem ser planejados muito antes do início do teste. • O princípio de Pareto se aplica ao teste de Software.
• Teste exaustivo é impossível.
• Para ser mais efetivo, o teste deve ser conduzido por terceiros. • Teste depende do contexto.
Metodologia e Processos de Testes
Processo de Teste
• Quantos defeitos foram detectados no sistema X? • Quantos casos de testes foram executados? • Quantas baterias de testes foram realizadas? • Quais defeitos foram corrigidos?
• Quais módulos do sistema possuem maior incidência de falhas?
Metodologia e Processos de Testes
Processo de Teste
• Para cada iteração:
– Identificar os objetivos para o esforço de teste e para os produtos intermediários;
– Identificar uma boa estratégia de utilização para os recursos de teste; – Definir o escopo e os limites dos esforços de teste;
– Delinear a abordagem que será usada;
– Definir como o progresso será monitorado e avaliado.
Metodologia e Processos de Testes
Processo de Teste
Metodologia e Processos de Testes
- Definir o problema - Analisar o problema
- Definir objetivos da melhoria
“Planejar iniciativa de melhoria”
- Determinar efetividade - Implementar sistema de mudança - Coletar dados - Avaliar dados - Desenvolver solução -Planejar implementação da solução - Implementar a solução
“Executar plano de melhoria” “Verificar resultados da melhoria”
“Determinar próximos passos”
Planejar Executar Verificar
Atuar
Metodologia e Processos de Testes
• Minimiza o fator Retrabalho;
• Minimiza o Fator Desorganização; • Evita Propagação de Erros;
• Diminuição de Custos (ao longo do tempo);
• Garante Ações Corretivas no Ciclo de Desenvolvimento; • Evita a Ingerência do Projeto de Software;
• Amplia as Chances de Sucesso do Projeto de Software. • Amplia a Produtividade do Desenvolvimento
Metodologia e Processos de Testes
• Número de defeitos encontrados em produção • Tipos dos defeitos encontrados
• Tempo de resolução de defeitos • Tamanho do sistema
• Número de defeitos encontrados em teste • Tamanho do projeto de teste
• Número de casos de teste
• Densidade do defeito = número de defeitos identificados / tamanho do sistema (LOC, FP)
Indicadores
Metodologia e Processos de Testes
• Percentual de esforço na preparação do caso de teste • Percentual de esforço na preparação do ambiente • Defeitos encontrados X Defeitos corrigidos
• Taxa de reincidência de erros • Custo do teste
• Produtividade Preparação (casos de teste / dia) • Produtividade Execução (casos de teste / dia)
Metodologia e Processos de Testes
Melhoria Contínua do Processo
Metodologia e Processos de Testes
Melhoria Contínua do Processo
Metodologia e Processos de Testes
Melhoria Contínua do Processo
Metodologia e Processos de Testes
Melhoria Contínua do Processo
Considerar os seguintes critérios para a escolha da métrica a ser utilizada:
– Deve ter significância, deve agregar informação útil à avaliação de qualidade; – Deve ter custo e complexidade de aplicação compatíveis com a avaliação a ser
realizada;
– Deve ser reproduzível, dois avaliadores diferentes devem obter o mesmo resultado;
– Deve ser objetiva;
– Deve ser imparcial (forma como a avaliação é realizada);
Metodologia e Processos de Testes
Melhoria Contínua do Processo
•
O custo da qualidade pode ser entendido como todo o investimento realizado
com a finalidade de um produto ou serviço atingir a qualidade desejada. Estes
investimentos alocam todos os esforços relacionados aos:
– Custos das não-conformidades (defeitos e suas correções)
– Custos relacionados à manutenção da conformidade dos produtos e serviços
a serem produzidos (esforço de garantir a qualidade).
Metodologia e Processos de Testes
•
São todos os investimentos realizados para planejar e manter uma
infra-estrutura de pessoas, processos e ferramentas cujo objetivo é
prevenir e detectar erros do processo.
Custos das conformidades
Metodologia e Processos de Testes
•
São todos os custos de atividades ligadas ao esforço de reparar falhas
de produtos originados no decorrer do processo de desenvolvimento.
•
Todas as conseqüências financeiras causadas por estes defeitos,
devem ser computados nos custos da não-conformidade.
Custos das não-conformidades
Metodologia e Processos de Testes
•
CoA (Cost of Appraisal)
– Custos dos testes, revisões e inspeções
•
CoP (Cost of Prevention)
– Custos dos processos, padrões, metodologia, métricas, gerência de
projetos, mudanças, treinamentos
•
CF (Cost of Failures)
– Custos de consertos dos defeitos/retrabalhos + perdas (multas, negócios,
clientes, mercado, imagem...)
•
CoQ (Cost of Quality) = CoA + CoP + CF
Custo da Qualidade
Metodologia e Processos de Testes
•
Normalmente o ROI traz um retorno financeiro com o aumento de um montante. • Em Testes o retorno é obtido com a economia e não com o aumento direto do montante.ROI da Qualidade
Metodologia e Processos de Testes
• Identificar a abordagem de implementação mais apropriada para um dado teste • Implementar testes individuais
• Configurar e executar os testes
• Registrar os resultados e verificar a execução dos testes
•
Analisar erros de execução e recuperar-se deles
Metodologia e Processos de Testes
• Caçador de erros
• Ser “destrutivo” e criativo • Perseguir erros, não pessoas • Tato e diplomático • Investigador • Paciente • Cético
Habilidades - Tester
• Insistente • Detalhista• Conhecer ferramentas de teste
• Conhecer a aplicação e regras de negócio • Conhecer métodos de teste
• Clareza na escrita • Certificações
Metodologia e Processos de Testes
•
Arquitetura para Automatização de Testes
– Especifica vários elementos de design e implementação que englobam características fundamentais da automação dos testes.
•
Caso de Teste
– Define um conjunto de entradas de teste, condições de execução e
resultados esperados, identificados com a finalidade de fazer uma avaliação de algum aspecto específico de um Item alvo de Teste.
•
Configuração do Ambiente de Teste
– Especifica uma disposição de hardware, software, e configurações de ambiente associadas que são necessários para permitir a exatidão na condução dos testes para avaliação de um ou mais itens alvos de testes.
Artefatos
Metodologia e Processos de Testes
•
Dados de Teste
– Define um conjunto de valores de entrada de teste que são usados durante a execução dos testes e os resultados esperados mencionados para
comparação durante a execução de um teste.
•
Estratégia de Teste
– Define o plano estratégico de como o esforço de teste será conduzido em relação a um ou mais aspectos do sistema que será testado.
•
Lista de Idéias de Teste
– Enumera as idéias que identificam possíveis testes úteis a serem conduzidos.
Artefatos
Metodologia e Processos de Testes
•
Log de Teste
– Esse artefato contém a saída capturada durante a execução de um ou mais testes.
•
Plano de Teste
– Define as metas e os objetivos dos testes no escopo da iteração (ou projeto), os itens a serem testados, a abordagem de testes adotada, os recursos necessários e os produtos que serão gerados no processo de testes.
•
Resultados do Teste
– Resume a análise de um ou mais Logs de Teste e Pedidos de Mudança, que permitem uma avaliação relativamente detalhada da qualidade dos Itens
alvos de Teste e do status do esforço de teste.
Artefatos
Metodologia e Processos de Testes
•
Script de Teste
– Esse artefato é a descrição do passo a passo das instruções que
permitem a execução de um teste. Podem assumir a forma de instruções de texto documentadas e executadas manualmente ou de instruções que podem ser lidas pelo computador para ativar a execução do teste de
forma automatizada.
•
Suite de Teste
– Define um conjunto de testes relacionados com a intenção de gerenciar e seqüenciar a execução dos testes.
•
Sumário de Avaliação de Testes
– Coleta, organiza e apresenta os Resultados e as principais estatísticas do teste para permitir uma avaliação objetiva da qualidade.
Metodologia e Processos de Testes
SKILL - Papéis
Metodologia e Processos de Testes
SKILL - Papéis
3CON Consultoria e Sistemas Ltda. Av. Paulista, 967 – 9° - São Paulo - SP
Tel: 11- 5053.9100
www.trescon.com.br www.qualifiq.com.br
e-mail: [email protected]
Módulo 2
Análise e Procedimento de Testes
Curso
Projeto de Software
Escopo de Testes
TÓPICOS
Estratégia de Testes
Módulo 2
Análise e Procedimento de Testes
Requisitos de Sistema Análise de Requisitos
Plano de Testes Case de Testes
Objetivos
Análise e Procedimento de Testes
Realizar um alinhamento dos conceitos de análise de requisitos;
Promover a utilização de técnicas de teste.
Regras de Negócio Negócio Requisitos Processos Conceitos Projeto Software Conhecimento Dados Funcionalidades Regras
Análise e Procedimento de Testes
Eng. de Software Ferramenta S i s t e m a s Requisitos FOCO E m p r e s a T e c n o l o g i a d e I n f o r m a ç ã o P r o d u t o Modelos Custos Produtividade Prazo Qualidade M o d e l o P r o d u t o ( S o f t w a r e ) M o d e l o I m p l e m e n t a ç ã o ( T e c n o l o g i a ) M o d e l o P r o c e s s o ( N e g ó c i o ) Padrões
Análise e Procedimento de Testes
Necessidades Espaço do Domínio Negócio Análise Requisitos Teste Aceitação Construção Construção e e Qualidade Qualidade do do Produto Produto Espaço da Solução Desenvolvimento Sistema
Análise e Procedimento de Testes
Projeto - Produto
Projeto de Software
Análise Funcional
Uma condição ou uma capacidade de que o usuário necessita para solucionar um problema ou alcançar um objetivo.
Uma condição ou uma capacidade que deve ser alcançada ou possuída por um sistema
ou componente do sistema, para satisfazer um contrato, um padrão, uma especificação ou outros documentos impostos formalmente.
Uma representação documentada de uma condição ou capacidade, conforme os itens (1) e (2).
• Negócio:
- Define uma necessidade de negócio: - Aumentar vendas numa região;
- Reduzir a taxa de reclamação de clientes.
• Sistêmico:
- Define uma necessidade funcional sistêmica:
- Registrar o perfil dos usuários que utilizam a loja virtual; - Mostrar vendas num período.
Análise e Procedimento de Testes
Requisitos de Sistema
Stakeholder = Todos os clientes interessados no contexto de requisitos
Análise e Procedimento de Testes
Requisitos de Sistema
Correta: Quando cada requisito expresso nela for encontrado no software; Não Ambígua: Cada requisito deve ter somente uma interpretação;
Completa: Quando incluir todos os requisitos significativos relacionados as
funcionalidades e requisitos relacionados a qualidade do serviço (também conhecidos como requisitos não funcionais)
Consistente: Quando não existir conflito entre os requisitos; Verificável: Quando for possível verificar/validar cada requisito; Modificável: Quando os requisitos podem ser facilmente alterado
s.
Análise e Procedimento de Testes
Qualidade dos Requisitos
Requisitos
Requisitos Não Funcionais
Requisitos Funcionais
Declaram as características que o sistema deve possuir e que estão relacionadas às suas funcionalidades.
São restrições que se coloca sobre como o sistema deve realizar seus requisitos funcionais
Definem as funcionalidades do sistema. O que sistema deve fazer.
Características
Análise e Procedimento de Testes
• Tem por objetivo simular as condições de software sobre a perspectiva do usuário
• Exemplos:
– Avaliar a facilidade de navegação entre as telas – Avaliar mensagens de tela
– Avaliar número de passos para as principais operações – Avaliar a existência de ajuda nas telas
– Avaliar manual x aplicativo – Linguajar da aplicação
Usabilidade
Requisitos Não - Funcional
Análise e Procedimento de Testes
• Tem enfoque nos parâmetros de sobrecarga, ou seja confrontar o programa com situações anormais de funcionamento e avaliar o comportamento de toda a infra-estrutura do software.
• Para isso precisamos definir até que ponto o sistema tem que ir antes de falhar. • Caráter destrutivo - definir valores de carga onde o sistema “quebra”
• Exemplos:
– Elevação e redução sucessiva de transações simultâneas – Aumento e redução de tráfego na rede
– Elevação e redução sucessiva de número de usuários – Aumento das procuras de dados no disco
Stress
Análise e Procedimento de Testes
Requisitos Não - Funcional
• Tem por objetivo determinar se o desempenho, nas situações previstas de pico máximo de acesso e concorrência atende os requisitos definidos • Exemplos:
– Validar todos os requisitos de desempenho identificados
Performance
Análise e Procedimento de Testes
Requisitos Não - Funcional
• Verifica se a aplicação suporta a quantidade de usuários simultâneos requeridos , ou seja verifica o comportamento do sistema para X
usuários.
Carga
Análise e Procedimento de Testes
Requisitos Não - Funcional
• Avalia a capacidade de lidar de forma aceitável com as demandas de acesso simultâneos de vários usuários no mesmo recurso (registros de dados, memória, componente ou módulo).
Concorrência
Análise e Procedimento de Testes
Requisitos Não - Funcional
• Tem por objetivo detectar as falhas de segurança que podem comprometer o sigilo e a fidelidade das informações, bem como provocar perda de dados ou interrupção de processamento
• Tenta garantir que apenas usuários autorizados a terem acesso ao sistema sejam capazes de acessar as aplicações referentes ao mesmo e somente pelos meios apropriados.
• Exemplos:
– Validar todos os requisitos de segurança identificados – Tentar invadir e derrubar o servidor da aplicação
– Tentar quebrar senhas e quebrar protocolos – Tentar obter acesso a dados de cadastro
Segurança
Análise e Procedimento de Testes
Requisitos Não - Funcional
• O teste de controle de acesso assegura que, baseados na segurança desejada, os usuários estejam restritos a funcionalidades ou possuem limites quanto aos dados disponíveis para eles.
• Exemplos:
– O teste assegura que um usuário do “grupo 1” pode ver todas as informações de clientes, incluindo dados financeiros, ao passo que os usuários do “grupo 2”
estariam restritos apenas aos dados cadastrais do mesmo cliente. – Tentar acessar funcionalidades para perfis específicos
Controle de Acesso
Análise e Procedimento de Testes
Requisitos Não - Funcional
Os requisitos funcionais devem ser especificados
Lista de Requisitos funcionais
Nome Descrição
Fazer Reserva Esta funcionalidade deverá permitir o usuário (funcionário) a fazer reserva de apartamentos, as ações que estarão disponíveis são: criar, remover, alterar e consultar reservas. Cada reserva deverá ter um cliente e um apartamento e respectiva período)
RF01R Código
Análise e Procedimento de Testes
Requisitos Funcional
id Nome da Regra
Nome do Projeto Gestão de Hotel
Objetivo Descrever as regras de negócio para para o serviço de reserva de apartamentos.
Descrição da Regra de Negócio
Registrar Reserva
de Apartamento
A confirmação do registro de reserva de apartamento deve ocorrer após o pagamento de 25% do valor da estadia.
Os clientes AA (pessoas que hospedaram no hotel mais de 10 dias por ano) tem preferência de data e tipo de apartamento.
RN01
Análise e Procedimento de Testes
Regras de Negócio
Casos de Uso Requisitos Funcionais
Requisitos Não Funcionais
(Visão de Caso de Uso)
Requisitos
Documento
Regras
Arquitetura
Análise de Requisitos
Análise e Procedimento de Testes
Plano Teste
São diagramas de que permitem visualizar, especificar e documentar oomportamento de uma funcionalidade
.
Esses diagramas fazem com que sistema, subsistemas e classes fiquem acessíveis e compreensíveis, por apresentarem uma visão externa sobre como esses elementos interagem com sistema.
Propósito:
Caso de Uso descreve um conjunto de seqüências de ações, inclusive variantes, que um sistema pode produzir um resultado de valor observável por um ator.
Ator
Caso de Uso
Nome
Usuário
Os nomes de casos de uso são breves expressões verbais ativas.
Emitir NF
Análise e Procedimento de Testes
Análise de Requisitos
Diagrama:
• Identificar os atores;
• Identificar os casos de uso; • Desenhar os casos de uso e • Escrever cenários.
• Casos de uso expressam o diálogo entre os usuários e o sistema
• Casos de uso expressam “o quê” o sistema deverá fazer, não “como” fazer. • Casos de uso formam a base para testes e documentação do sistema
• O modelo de casos de uso expressam todos os casos de uso do sistema e os seus relacionamentos.
• As técnicas para criar e expressar casos de uso em uma aplicação Web são as mesmas para construir outros sistemas de software.
Análise e Procedimento de Testes
É uma seqüência de ações que o sistema executa e produz um resultado de valor observável para um ator.
Análise de Requisitos
Professor
Selecionar curso para ensinar
Pedir lista dos matriculados Gerenciar
Manter informação de aluno
Manter informação de professor
Gerar catalogo
Manter informações dos cursos
Sistema de
cobrança Matrícula nos Cursos
Aluno
Análise e Procedimento de Testes
Análise de Requisitos
Os casos de uso exibem a funcionalidade na perspectiva do usuário.
Entretanto, podemos ter vários caminhos para completar esta função.
Um cenários é como uma “instance” do Caso de uso, isto é, um caminho lógico com início e fim.
Principais características:
- Cenários não contém declarações condicionais; - Pode ter mesmo começo, mas, com final diferente; - Um cenário é narrativa de uma situação e
- Os cenários devem descrever os bons caminhos e maus também.
Análise e Procedimento de Testes
Análise de Requisitos
Este é um dos cenário que pode acontecer.
Se houver algum problema, com a autorização da transação do cartão de crédito teremos um novo cenário.
Loja virtual, podemos ter o seguinte cenário de Compra de um produto:
“O cliente navega no catálogo de itens e adiciona os itens desejado à sua cesta de compra. Quando o cliente deseja pagar, fornece os dados do cartão de crédito e confirma a compra. O sistema solicita o endereço de entrega para o pedido. O sistema verifica a autorização do cartão de crédito e confirma a transação imediatamente enviando um e-mail para o usuário.”
Análise e Procedimento de Testes
Análise de Requisitos
Tipicamente descrevemos um fluxo de eventos para um caso de uso.
Os fluxos de eventos ajudam a compreensão dos requisitos do sistema, entretanto, você desejará utilizar os diagramas de interação para especificar esses fluxos graficamente. além disso, você também utilizará um diagrama de seqüência para especificar o fluxo principal de um caso de uso e variação deste diagrama para especificar os fluxos
excepcionais. Cenário 1 Fluxo alternativo 1 Fluxo alternativo 2 Fluxo alternativo 3 Fluxo Normal
Análise e Procedimento de Testes
Análise de Requisitos
Análise e Procedimento de Testes
Fluxo de Eventos
DIFERENÇA ENTRE CENÁRIO DE CASO DE USO E FLUXO DE CASO DE USO
FLUXO: Um conjunto seqüencial de passos.
CENÁRIO: Um conjunto ordenado de fluxos, desde o ponto inicial do caso de uso até o seu ponto final.
Análise e Procedimento de Testes
Análise de Requisitos
Análise e Procedimento de Testes
Análise de Requisitos
Nome: Fazer Busca Produto
Ponto de ativação: Este caso de uso começa quando entra na página de Busca e seleciona um item da caixa de seleção
Ator: Visitante e Cliente
Objetivo: Fazer busca de produto por categoria Pré-condição: Aplicação Disponível
Fluxo Normal:
1 - O visitante seleciona a página de busca 2 - O visitante seleciona a categoria para busca 3 - O visitante informar o produto
4 - O visitante pressiona o botão buscar 5 - O sistema processa a busca
6 - Retorna as informações sobre o produto Fluxo Alternativo:
1 - O Visitante seleciona a página de busca 2 - O visitante seleciona a categoria para busca 3 - O visitante informar o produto
4 - O visitante pressiona o botão buscar 5 - O sistema processa a busca
6 - Retorna as uma mensagem “produto não encontrado” Pós-condição: Busca realizada
Requisito Não Funcional: ( Lista )
Análise e Procedimento de Testes
Análise de Requisitos
Análise e Procedimento de Testes
Foco do Teste
Análise e Procedimento de Testes
Definição de Teste
Escopo de Testes
http://pt.wikipedia.org/wiki/Teste_de_software#Testes_alfa_e_beta
Não se pode garantir que todo software funcione corretamente, sem a presença de erros,[1] visto que os
mesmos muitas vezes possuem um grande número de estados com fórmulas, atividades e algoritmos complexos. O tamanho do projeto a ser desenvolvido e a quantidade de pessoas envolvidas no processo aumentam ainda mais a complexidade. Idealmente, toda permutação possível do software deveria ser testada. Entretanto, isso se torna impossível para a ampla maioria dos casos devido à quantidade
impraticável de possibilidades. A qualidade do teste acaba se relacionando à qualidade dos profissionais envolvidos em filtrar as permutações relevantes.[2]
Falhas podem ser originadas por diversos motivos.
Por exemplo, a especificação pode estar errada ou incompleta, ou pode conter requisitos impossíveis de serem implementados, devido a limitações de hardware ou software. A implementação também pode estar errada ou incompleta, como um erro de um algoritmo. Portanto, uma falha é o resultado de um ou mais defeitos em algum aspecto do sistema.
O teste de software pode ser visto como uma parcela do processo de qualidade de software. A qualidade da aplicação pode, e normalmente, varia significativamente de sistema para sistema. Os atributos
qualitativos previstos na norma ISO 9126 são funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade. De forma geral, mensurar o bom funcionamento de um software envolve compará-lo com elementos como especificações, outros softwares da mesma linha, versões anteriores do mesmo produto, inferências pessoais, expectativas do cliente, normas relevantes, leis
aplicáveis, entre outros. Enquanto a especificação do software diz respeito ao processo de verificação do software, a expectativa do cliente diz respeito ao processo de validação do software.
Análise e Procedimento de Testes
Ciclo
Análise e Procedimento de Testes
Nível
“
Local físico onde existe uma infra-estrutura de hardware e software adequada para os Testes”Análise e Procedimento de Testes
Ambientes
A escolha da estratégia de testes defini “Como Testar” o produto, identificando quais serão os métodos que serão utilizados para a demanda de teste do projeto em
questão.
ESTRATÉGIA DE TESTES = COMO TESTAR
Nenhum estratégia de teste deve ser aplicada isoladamente, de forma auto-suficiente.
Devem ser aplicados de forma complementar, a fim de constituir uma abordagem de teste mais completa e eficaz.
Análise e Procedimento de Testes
Estratégias de Testes
“método de casos de teste que usa
a estrutura interna do programa
para derivar casos de teste”
“método de casos de teste que usa
especificações funcionais, não
considerando o código da aplicação”
Análise e Procedimento de Testes
Estratégias de Testes
Análise e Procedimento de Testes
Caixa Branca
Estratégias de Testes
Análise e Procedimento de Testes
Caixa Preta
Estratégias de Testes
Análise e Procedimento de Testes
Plano de Testes
•
Starting :
O planejamento de testes deve ser realizado idealmente no inicio do ciclo de desenvolvimento.
•
Objetivo:
Elaboração de um plano com todas as principais atividades que serão
executadas em todo o processo de testes (incluindo a análise de riscos do projeto de testes).
• Planejamento de Testes:
O planejamento de testes é uma atividade que elabora o Plano de Teste
Análise e Procedimento de Testes
Propósito
• Identificar as informações existentes no projeto e os componentes de software que deverão ser testados (escopo do teste)
• Recomendar e descrever as estratégias de teste que serão empregadas
• Identificar os recursos requeridos e fornecer uma estimativa do esforço de teste • Listar os elementos resultantes do projeto de testes
Análise e Procedimento de Testes
• Definir projeto (sistema(s), iteração)
• Definir requisitos do teste: itens (caso de uso, requisitos funcionais, requisitos não – funcionais) que devem ser identificados e testados.
• Identificar as prioridades (essencial, alto impacto, ...)
• Definir a estratégia (verificação de requisitos, progressão, regressão, caixa preta, caixa branca, automação)
Roteiro
• Identificar a(s) pessoa(s) que estão relacionadas ao projeto de testes e as suas responsabilidades
• Definir o escopo dos testes (ou seja, definir a abrangência das fronteiras do trabalho de teste dentro da aplicação que está sendo testada)
• Identificar as ferramentas utilizadas (mais relacionado a utilização de ferramentas de testes automatizados)
• Identificar as necessidades de ambiente (hardware, software, sistema operacional, etc.)
Análise e Procedimento de Testes
Roteiro
• Identificar os conhecimentos / habilidades necessárias • Analisar os riscos do projeto de testes
• Criar o cronograma das atividades do projeto de teste • Definir o critérios de término dos testes
• Definir os Critérios de Aceitação do sistema por parte do Usuário
• Definir as métricas que serão utilizadas para avaliar a eficácia dos testes e do próprio sistema
Análise e Procedimento de Testes
Roteiro
Definir o escopo dos testes
• Testar exaustivamente é impraticável.
• Por isso é necessário uma análise dos riscos do projeto de software para determinar quanto e quais testes devem ser aplicados ao sistema.
Análise e Procedimento de Testes
Definir o critérios de término dos testes
• Pode-se utilizar algumas métricas para poder liberar a aplicação para produção com um “pouco” mais de conforto:
– Tempo médio entre defeitos encontrados.
– Percentagem de cobertura alcançada na aplicação em teste.
Definir os Critérios de Aceitação do sistema por parte do Usuário
• Plano de Aceitação de Produtos.– Este plano tem por objetivo detalhar os critérios de aceitação adotados pelo usuário para aceitar os produtos ou componentes do produto.
• Em algumas Organizações o critério de aceitação é descrito no artefato Plano de Teste, devido a relação com o Teste de Aceitação.
Roteiro
• Starting:
A Especificação dos Casos de Testes é a atividade realizada antes do início da execução dos testes.
• Objetivo:
Identificar e descrever todos os cenários de testes existentes para o projeto.
• Especificar testes:
• É uma atividade e o produto desta atividade é o Artefato Caso de Testes.
• A parte mais importante do caso de uso para a geração de casos de teste é o fluxo de eventos.