• Nenhum resultado encontrado

Noções de TesteGerenciamento

N/A
N/A
Protected

Academic year: 2021

Share "Noções de TesteGerenciamento"

Copied!
147
0
0

Texto

(1)

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

(2)

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

(3)

Alinhar os conceitos e boas práticas da engenharia de software;

Apresentar os conceitos e métodos da Qualidade de Software;

 Objetivos

(4)

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,

(5)

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:

(6)

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

(7)

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

(8)

Engenharia de Software

Metodologia e Processos de Testes

Negócio Requisitos

Modelos

(9)

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.

(10)

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

(11)

Pessoas Habilidades

PROCESSO

PROCESSO

Ferramentas e Equipamento B A D C

Métodos, Técnicas e Padrões

Metodologia e Processos de Testes

Processo de Software

(12)

Ent.

Saída

Ent.

Saída

Metodologia e Processos de Testes

Processo de Software

(13)

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

(14)

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

(15)

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

(16)

Metodologia e Processos de Testes

Processo de Software

Necessidades Análise Projeto Construção Teste Implantação

(17)

Metodologia 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

(18)

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

(19)

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

(20)

Metodologia e Processos de Testes

Incremental

(21)

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

(22)

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;

(23)

Entregar um software de qualidade no tempo, custo e escopo para valor de negócio e satisfação de seus clientes.

Qualidade

de

Software

(24)

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

(25)

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

(26)

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

(27)

Qualidade de Software

(28)

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

(29)

Custo do Erro

!”

Custo

Qualidade de Software

(30)

Qualidade de Software

(31)

Metodologia e Processos de Testes

(32)

• 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

(33)

• 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

(34)

Metodologia e Processos de Testes

(35)

Metodologia e Processos de Testes

(36)

Metodologia e Processos de Testes

(37)

Metodologia e Processos de Testes

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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

(44)

Representação

Metodologia e Processos de Testes

(45)

• 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

(46)

Estágios da Maturiudade

Metodologia e Processos de Testes

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

– 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

(53)

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

(54)

• 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

(55)

• 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

(56)

• 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

(57)

• 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

(58)

Metodologia e Processos de Testes

(59)

Metodologia e Processos de Testes

(60)

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

(61)

Metodologia e Processos de Testes

(62)

Metodologia e Processos de Testes

(63)

“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

(64)

• É 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

(65)

Metodologia e Processos de Testes

(66)

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

(67)

• 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

(68)

• 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

(69)

• 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

(70)

• 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

(71)

• 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

(72)

Metodologia e Processos de Testes

(73)

- 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

(74)

• 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

(75)

• 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

(76)

• 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

(77)

Metodologia e Processos de Testes

Melhoria Contínua do Processo

(78)

Metodologia e Processos de Testes

Melhoria Contínua do Processo

(79)

Metodologia e Processos de Testes

Melhoria Contínua do Processo

(80)

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

(81)

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

(82)

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

(83)

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

(84)

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

(85)

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

(86)

• 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

(87)

• 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

(88)

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

(89)

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

(90)

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

(91)

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

(92)

Metodologia e Processos de Testes

SKILL - Papéis

(93)

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

(94)

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

(95)

 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.

(96)

Regras de Negócio Negócio Requisitos Processos Conceitos Projeto Software Conhecimento Dados Funcionalidades Regras

Análise e Procedimento de Testes

(97)

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

(98)

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

(99)

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

(100)

Stakeholder = Todos os clientes interessados no contexto de requisitos

Análise e Procedimento de Testes

Requisitos de Sistema

(101)

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

(102)

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

(103)

• 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

(104)

• 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

(105)

• 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

(106)

• 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

(107)

• 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

(108)

• 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

(109)

• 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

(110)

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

(111)

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

(112)

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

(113)

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

(114)

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

(115)

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

(116)

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

(117)

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

(118)

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

(119)

Análise e Procedimento de Testes

Fluxo de Eventos

(120)

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

(121)

Análise e Procedimento de Testes

Análise de Requisitos

(122)

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

(123)

Análise e Procedimento de Testes

Foco do Teste

(124)

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.

(125)

Análise e Procedimento de Testes

Ciclo

(126)

Análise e Procedimento de Testes

Nível

(127)

Local físico onde existe uma infra-estrutura de hardware e software adequada para os Testes”

Análise e Procedimento de Testes

Ambientes

(128)

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

(129)

“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

(130)

Análise e Procedimento de Testes

Caixa Branca

Estratégias de Testes

(131)

Análise e Procedimento de Testes

Caixa Preta

Estratégias de Testes

(132)

Análise e Procedimento de Testes

Plano de Testes

(133)

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

(134)

• 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

(135)

• 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

(136)

• 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

(137)

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

(138)

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.

Caso de Testes

Análise e Procedimento de Testes

(139)

O Caso de Teste é o centro motivador do teste.

Análise e Procedimento de Testes

Escopo

Referências

Documentos relacionados

Em números absolutos, os resultados mostraram que as regiões médio-norte e nordeste apresentaram a maior amostragem de produtores rurais que expandiram a sua área agrícola através

[Informar a data, o nome e a assinatura do dirigente máximo que aprovou o documento Termo de Abertura do Projeto antes deste projeto ser solicitado ao Governador pelo

Para atingir este fim, foram adotados diversos métodos: busca bibliográfica sobre os conceitos envolvidos na relação do desenvolvimento de software com

Quando os dados são analisados categorizando as respostas por tempo de trabalho no SERPRO, é possível observar que os respondentes com menor tempo de trabalho concordam menos que

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para

A tabela 25 apresenta os resultados brutos desta avaliação em relação à característica busca e a tabela 26 exibe o resultado ponderado para esta característica.. A tabela 27

(2006) a auditoria de sistemas em desenvolvimento deve compreender atividades de revisão e avaliação do processo de desenvolvimento de sistemas de informação em todo o

Este trabalho teve por objetivo o estudo da dimensão das doenças crônicas, especificamente o diabetes mellitus, visando à elaboração de um modelo de processo