Buscar

[03] QuaSftw Garantia e Controle de Qualidade

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Rafael Targino
rtargino@unicarioca.edu.br
@rafatargino
QUALIDADE DE SOFTWARE
Unidade I - Garantia e Controle da Qualidade
2
• GARANTIA
• Padrões que garantam a qualidade do software
• CONTROLE
• Assegurar que o desenvolvimento tenha seguido os 
procedimentos e padrões de qualidade do projeto
• Verificação 
• Validação
Gerenciamento da Qualidade 
(Sommerville)
Garantia da Qualidade – QA (Quality
Assurance)
• Qualidade de Software:
– Produtos precisam respeitar um conjunto mínimo 
de requisitos.
– Conformidade com especificações e padrões de 
desenvolvimento documentados.
– Atendimento das necessidades dos usuários.
• Que necessidades? Que usuários?
3
Garantia da Qualidade – QA (Quality
Assurance)
• Mecanismo planejado e sistemático para assegurar que 
padrões definidos, práticas, procedimentos e métodos do 
processo são efetivamente utilizados.
• Conjunto de atividades técnicas aplicadas durante todo o 
processo de desenvolvimento.
• O objetivo é garantir que tanto o processo de 
desenvolvimento quanto o produto de software atinjam 
níveis de qualidade especificados.
• Natureza proativa
• Exemplo
– Definição das normas que serão seguidas e dos controles que 
serão adotados para garantir a qualidade
– Checklist para confirmação do processo de qualidade
Garantia de Qualidade
Norma 1
ISSO/IEC
Norma 2
ISSO/IEC
Norma 3
NBR
Modelo de 
Qualidade da 
Organização
1. Entender as 
Normas e 
Padrões 
Existentes
2. Diagnosticar 
os principais 
problemas da 
organização
3. Definir o Modelo de 
Referência da Organização
Define o Processo de 
Qualidade da Organização
Define Atributos de Qualidade que 
serão utilizados e métricas
Define e Monitora os Controles que 
irão Garantir se o Processo de 
Qualidade está sendo seguido
4
Garantia da Qualidade – QA (Quality
Assurance)
• A Garantia da Qualidade envolve:
– Avaliar a conformidade dos processos e dos produtos.
– Registrar os problemas encontrados.
– Comunicar e acompanhar a resolução desses problemas
– Relatar os resultados destas atividades à alta gerência.
– Apoiar a equipe no seguimento ao processo e aos padrões de 
qualidade da organização.
– Identificar tendências de qualidade nos processos e nos produtos.
– Reajustar o processo de qualidade
• Instrumento: Checklist
Exemplo
5
Controle da Qualidade – QC (Quality
Control)
• É o processo de monitoramento e registro de 
resultados da execução das atividades de qualidade 
para avaliar o desempenho e recomendar as mudanças 
necessárias.
• Evita que produtos defeituosos sejam entregues aos 
clientes
• Natureza reativa
• Exemplos
– Efetuar os controles definidos no Processo de Garantia de 
Qualidade, como por exemplo: 
– Testes e Inspeções
Controle de Qualidade
• Seguimento dos procedimentos e padrões de qualidade do 
projeto
• Normas – Qualidade de Produto
– ISO/IEC 25010 (antiga ISO 9126)
– NBR ISO/IER 12119
• Normas – Qualidade de Processo
– Norma ISO/IEC 12207
– 15504 (SPICE)
– CMMI
– MPS.br
6
Garantia (QA) x Controle da Qualidade (QC)
• Exemplo: Fabricação iPhone
– Você insere QA em todos os processos em andamento para 
garantir que cada iPhone seja fabricado sem defeitos. 
– Isto incluiria os tipos de equipamentos de fabricação 
utilizados, a formação das pessoas e a documentação de 
todos os processos de produção. 
– QC entra em jogo após o fato ou após a produção, por meio 
de testes do produto acabado. Por exemplo, você pode fazer 
um teste por amostragem, para ver se um iPhone, 
aleatoriamente escolhido a partir de sua linha de produção, 
passa ou falha em relação aos padrões estabelecidos.
Garantia de Qualidade
Garantia (QA) x Controle da Qualidade (QC)
Controle de Qualidade
7
Controle de Qualidade
Verificação X Validação
• Verificação
– É o processo de se avaliar um software ou produto de trabalho relacionado a 
cada fase para determinar se o produto dessa fase satisfaz ao que foi 
requerido no início da fase
– Os artefatos construídos devem estar de acordo com a especificação do 
software.
– Estamos desenvolvendo o produto corretamente?
• Validação
– É o processo de se avaliar um software ou produto de trabalho relacionado, 
durante ou após o desenvolvimento, para determinar se o produto satisfaz 
aos requisitos
– O software deve atender às necessidades dos usuários.
– Estamos desenvolvendo o produto correto?
Verificação
8
Validação
Comparativo
Garantia da Qualidade Verificação Validação
• Garantia da qualidade • Controle da qualidade • Controle da qualidade
• Avalia se os processos estão 
sendo seguidos.
• Avalia o formato dos planos e 
demais produtos.
• Avalia o conteúdo dos produtos 
com relação aos requisitos 
especificados.
• Avalia o entendimento/ 
funcionamento do produto com 
relação ao ambiente para o qual 
foi desenvolvido.
• Avaliação de conformidade
• Teste
• Inspeção
• Walkthrough
• Revisão por par
• Aprovação
• Homologação
• Grupo de garantia da qualidade
• Especialista com conhecimento 
específico
• Membro da equipe do projeto 
com perfil semelhante
• Cliente
• Equipe independente do projeto
• Hierarquia adequada
• Equipe do projeto -
9
Verificação e Validação
• Principais Métodos para Validação e Verificação:
– Análise Estática:
• Revisões de Software.
– Análise Dinâmica:
• Testes de Software.
Verificação e Validação
• Análise Estática
– Não envolve a execução do produto
– Visa determinar propriedades do produto válidas para qualquer 
execução do produto final
• Exemplos:
– análise de modelos (model checking)
– análise de segurança (safety analysis)
– revisões técnicas
– prova de correção
10
Análise Estática
• Ferramentas que varrem o código fonte à procura de falhas e 
anomalias
• Fornecem milhares de regras de análise que são checadas no 
código-fonte
– Como são muitas regras, é possível começar com apenas algumas de 
cada vez. 
– É possível desabilitar regras que não façam sentido para os 
programadores.
– Como trabalha com heurísticas, podem existir falsos positivos, ou seja, 
indicam situações que não são sejam um problema.
• São um complemento muito útil para a inspeção
• Tipos de checagem:
– falhas de dados
– falhas de controle
– falhas de E/S
– falhas de interface
– falhas de armazenamento
19
• Falha de dados
– Como são usadas as variáveis do programa?
• variáveis usadas antes de serem inicializadas
• variáveis declaradas mas que nunca são utilizadas
• variáveis definidas duas vezes mas não utilizadas nenhuma vez entre 
as duas definições
• possibilidade de índice fora de limites para arrays
• variáveis não declaradas
Análise Estática
11
Análise Estática
• Falhas de controle
• trechos de código não alcançáveis
• desvio para interior de laços
• Falhas de entradas/saída:
• variáveis são usadas em comandos de saída duas vezes sem que seu 
valor seja alterado entre uma e outra
Análise Estática
• Falhas de interface
– Uso de rotinas é consistente com sua declaração?
• tipos de parâmetros incompatíveis
• número de parâmetros incompatível
• valor de retorno de funções não é utilizado
• funções ou procedimentos não são chamados
• Falhas de armazenamento
– apontadores não inicializados
– aritmética de apontadores
12
Análise Estática – Ferramenta SONAR
• O sonar é um projeto open source que visa avaliar a 
qualidade do código. 
• Para isso ele avalia a arquitetura e design, número de 
comentários, regras do java, alto nível de 
complexidade, código duplicado, cobertura de testes 
no código, etc.
• Além de possuir um número bastante extenso de 
plugins. Ele armazena todas as informações de seu 
código em um bancode dados de sua preferência, 
assim você pode também acompanhar a evolução da 
qualidade do seu projeto.
Exemplo SONAR
13
Verificação e Validação
• Análise Dinâmica
– Envolve a execução do produto (código ou modelo 
executável)
– Visa encontrar falhas ou erros no produto
• Exemplos:
– Simulação
– Execução simbólica
– Testes
Verificação e Validação
• Benefícios:
– Resultados de estudos experimentais evidenciam benefícios
da utilização destes métodos no desenvolvimento de 
software.
– A utilização destes métodos na indústria têm mostrado 
resultados positivos considerando tanto produtividade
quanto qualidade.
14
Revisões de Software
• Processo ou atividade para leitura de um 
artefato de software visando assegurar que ele 
cumpre sua especificação e atende às 
necessidades de seus usuários.
• Objetivo:
– Realizar validação e verificação estática de artefatos 
de software.
• Pode ser aplicada a qualquer artefato produzido 
ao longo do processo de desenvolvimento de 
software.
Revisões de Software
• Revisões por pares (peer-reviews) aumentam a 
probabilidade de defeitos serem encontrados.
• Comumente utilizam:
– Anônimidade;
• Relacionamentos pessoais não afetam a revisão.
– Independência dos revisores em relação ao artefato a ser 
revisado.
• Permite uma avaliação objetiva sem conflitos de interesse.
15
Revisões de Software
• Quando e em que tipos de artefato aplicar revisões de 
software?
Revisões de Software
• Muitas organizações realizam revisões de software.
• Realização pouco sistematizada e potencial raramente 
é explorado.
• Tipos de Revisão de Software:
– 4.1 – Inspeções de Software.
– 4.2 – Walkthroughs.
16
Inspeções
• Em uma Inspeção, os inspetores examinam o produto para 
identificar defeitos e desvios, com o objetivo de:
– Verificar se um produto de trabalho satisfaz as especiações do 
produto de trabalho antecessor, tal como documento de 
requisitos e de projeto
– Identificar quaisquer desvios de padrões
– Sugerir oportunidades de melhoria para o autor
– Promover a troca de experiência entre os participantes
• O objetivo não é corrigir problemas e sim encontra-los para 
que o desenvolvedor corrija depois
Engenharia de Software
Inspeções
• Tipo particular de revisão.
• Tem sido o tipo de revisão de software mais estudado e utilizado
• Processo rigoroso e bem definido.
• Podem utilizar checklists para guiar o processo de revisão
• Evidências Experimentais:
– Redução do Esforço 
– Aumento da Produtividade
– Redução do Tempo
– Redução dos Custos
– Capturam em média 60% dos defeitos
17
Listas de Verificação (Checklists)
• É uma ferramenta estruturada, geralmente específica do artefato 
que está sendo verificado.
• Contém uma série de itens que deverão ser pontos de análise por 
parte do inspetor.
• Também conhecidas como Checklist
• Muitas organizações têm listas de verificação padronizadas 
disponíveis para garantir a consistência em tarefas realizadas com 
frequência.
– Exemplo: Checklist de especificação de casos de uso
Engenharia de Software
Exemplo de uma Checklist usada para 
Inspeção
As entidades que representam o domínio estão representadas no modelo e explicadas
no glossário?*
Foi definido o relacionamento entre as entidades, ou seja, foram dados nomes aos
relacionamentos?*
A semântica do relacionamento entre as entidades está coerente com o domínio?*
A cardinalidade foi descrita e está coerente com o domínio?
É possível entender a responsabilidade de cada entidade?
Para elementos do domínio que tenham uma dinâmica de estados representativa
(máquina de estados) foi elaborado um diagrama de estados?* Todos os estados foram
representados?
Algum termo do negócio foi mencionado no documento e não está descrito no
glossário?*
Se mais de um termo no documento têm o mesmo significado, estes sinonimos estão
definidos no Glossário?*
O documento possui erros de ortografia/gramática?*
18
Walkthrough
• Alternativa com um processo menos rigoroso do que o de 
inspeções de software.
• Papéis sugeridos:
– Líder, Autor, Escrivão e Revisores
• Procedimento:
– Os participantes são guiados através dos artefatos pelo líder (que 
eventualmente é o próprio autor) em uma reunião. Durante esta reunião 
devem interromper a apresentação caso encontrem defeitos. 
– Muitas vezes condições de entrada e saída e decisões são pressupostos 
pelo líder que segue sua linha de raciocínio durante a apresentação.
Walkthrough
• Possuem custo aproximadamente igual ao de 
inspeções mas seus resultados são inferiores:
– Não providenciam resultados mensuráveis;
– Não fornecem base para a aplicação de controle estatístico 
de processos, necessário para evoluir na maturidade de 
processos de software.
• Podem ser utilizados para atividades de brainstorming, 
para explorar alternativas de projeto e resolução de 
problemas. 
– Inspeções são mais focadas em encontrar defeitos.
19
Exercício: Inspeções
• Faça a inspeção dos casos de uso “Manter Alunos” e 
“Gerenciar Inscrições de Disciplinas” utilizando a 
checklist de especificação de casos de uso. 
– Faça um relatório indicando todos os pontos que você 
encontrou discrepâncias
– Use a checklist como orientação para o processo de inspeção, 
mas fique atento por qualquer outra discrepância que possa 
ocorrer no texto e que não necessariamente está apontada 
na checklist.
Engenharia de Requisitos
U t i l i z a n d o M e d i ç õ e s
20
Controle de Qualidade
Medição de Qualidade de Software
• Medir a qualidade de software tem como objetivo 
obter dados caracterizando um produto com relação à 
um modelo proposto. 
• Para isso, é preciso identificar os atributos que 
evidenciam a presença, no software, das características 
de qualidade.
• Atributos de Qualidade
– Evidenciam a característica definida no processo ou na 
norma. Os valores dos atributos serão medidos durante o 
processo de avaliação.
Medida X Medição X Métrica
• Medida
– Variável à qual se atribui um valor como resultado de uma medição.
– Exemplos
• Qual a altura dos clientes que entram na loja?
• Quantos clientes entraram na loja?
• Medição
– Conjunto de operações com o objetivo de determinar o valor de uma 
medida
– Ato de medir
• Métricas
– é o conjunto de medidas tomadas ao longo de um período utilizando a 
mesma metodologia de mediação
– Exemplo
• Ao longo de um dia inteiro, qual a altura e quantos clientes entraram na loja?
– 1 medida pode gerar mais de uma métrica
• Quantas pessoas tiveram a altura medida
• Qual foi a média de altura das pessoas que entraram na loja
• Qual a altura da menor pessoa que entrou na loja no dia de hoje
• Qual a média das pessoas com menores alturas no último mês.
21
Medidas
• Exemplos de Medidas em Desenvolvimento de 
Software
– Número total de tarefas
– Tempo para completar tarefas
– Funções solicitadas pelo usuário
– Mensagens de erro mal compreendidas
– Mensagens analisadas pelo usuário
– Número total de mensagens de erro
• Medidas Derivadas
– Medidas construídas a partir de outras duas ou mais medidas
Medidas Qualitativas x Quantitativas
• A palavra métrica leva naturalmente a pensar em medida e 
em número, mas nem toda informação de avaliação é desta 
maneira.
• Características Quantitativas
– Podem ser expressas a partir de um número 
• Características Qualitativas
– Estão associadas a uma noção de intensidade, como “muito” ou 
“pouco”, ou como um adjetivo, como “agradável”.
– Alguns exemplos deste tipo de características referem-se a 
usabilidade do produto, como por exemplo atratividade de um 
jogo, ou se um sistema operacional é agradável de usar.
• Exemplo: Windows 8 
– É um conceitomuito mais abstrato e por isso difícil de expressar 
com um número.
22
Resultados Estatísticos para Medidas 
Quantitativas
• Em alguns casos, não iremos trabalhar apenas com o 
somatório de determinadas medidas, mas sim, usar ou 
complementar com algumas funções estatísticas
– Médias
– Variância e desvio-padrão
– Histogramas
– Análise de Regressão
Exemplo Medidas Qualitativas x 
Quantitativas
• Quem é melhor, Cristiano Ronaldo ou Messi?
• Quem possui mais gols, mais taças e mais títulos da 
champions?
23
Medidas Qualitativas x Quantitativas
• Trabalhar com números em vez de avaliações qualitativas 
reduz a possibilidade de erros na avaliação
– O software apresentou resultados muito bons nos testes
– O software obteve um valor de 5,3 para a medida número 3 da 
avaliação de qualidade
• Para dados quantitativos é possível estabelecer intervalos e 
domínios para avaliar se o número obtido é bom? 
– 5,3 é bom nesta avaliação? Se a escala for de 0 a 6, é um número 
bom!
– Interpretação da medida: 0 a 2,0 - Ruim
2,1 a 4 - Razoável
4,1 a 6 - Bom
Escolhendo medidas de produto de 
software
• Significância
• Custo e Complexidade
• Repetibilidade
• Reproducibilidade
• Validade
• Objetividade
• Imparcialidade
24
Exemplos de medidas
funcionalidade  adequação
Medida Externa
Nome da medida: completitude das funções
Propósito: determinar a taxa de implementação das funções
definidas na especificação de requisitos
Fórmula: 1 - (# funções faltantes / # funções especificadas)
Interpretação: 0  x  1; quanto mais próximo de 1, melhor
Entradas: relatórios de avaliação, esp. requisitos
confiabilidade  tolerância a falhas
Medida Externa
Nome da medida: capacidade de evitar falhas
Propósito: determinar controle de ocorrência de falhas
Fórmula: (# falhas evitadas / # casos de teste)
Interpretação: 0  x  1; quanto mais próximo de 1, melhor
Entradas: relatórios de teste e de operação
Exemplos de medidas
25
usabilidade  apreensibilidade (learnability)
Medida Interna
Nome da medida: completitude de sistema de ajuda e documentação
Propósito: determinar proporção de funções documentadas ao usuário
Fórmula: (# funções documentadas / # funções)
Interpretação: 0  x  1; quanto mais próximo de 1, melhor
Entradas: Especificação requisitos, projeto, relatório revisão
Exemplos de medidas
eficácia 
Medida Qualidade em uso
Nome da medida: tarefas completadas
Propósito: determinar proporção de tarefas completadas
Fórmula: (# tarefas completadas / # tarefas tentadas
Interpretação: 0  x  1; quanto mais próximo de 1, melhor
Entradas: relatório de operação, registro de histórico de uso.
Exemplos de medidas
26
Referências Bibliográficas
• KOSCIANSKI, A. e SOARES, M. S. 
Qualidade de Software. NOVATEC.
• PRESSMAN, R. S. Engenharia de 
Software. McGraw Hill,
• Notas de Aula do Prof. David 
Zanetti, Qualidade de Software -
Unicarioca

Outros materiais