Buscar

Qualidade de Software: Definições e Garantia

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 47 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 47 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 47 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

Profa. MSc. Gislaine Stachissini
UNIDADE II
Qualidade de Software
 O que é qualidade de software.
 Garantia de produto de software.
 Diferenças entre produto de software e outros produtos.
 Garantia da qualidade de software.
 As sete grandes atividades da SQA.
 Revisões técnicas para haver qualidade em software.
 Fatores de qualidade de software.
 Controle da qualidade de software.
 Técnicas da qualidade de software.
Agenda 
 De acordo com a norma ISO NBR 9126, qualidade de software é a totalidade 
de características de um produto de software que lhe confere a capacidade de satisfazer 
necessidades explícitas e implícitas.
O que é qualidade de software?
 Necessidades explícitas
 São as condições e objetivos propostos por aqueles que desenvolvem ou produzem o 
software. 
 São, portanto, fatores relativos à qualidade do processo de desenvolvimento e são 
percebidos somente pelas pessoas que trabalham no seu desenvolvimento.
 Necessidades implícitas
 São necessidades dos usuários ou clientes (destinatários dos resultados do software).
 São chamadas também de fatores externos e podem ser percebidas tanto pelos 
desenvolvedores quanto pelos usuários.
 São conhecidas como qualidade em uso e devem levar os 
usuários a atingirem efetividade, produtividade, segurança e 
satisfação.
Qualidade de Software
Definições comuns da QS, de acordo com Côrtes e Chiossi (2001):
 Qualidade de software é software sem defeitos;
 Qualidade de software é software adequado ao uso (Juran);
 Qualidade de software é software que atende às especificações (Crosby);
 Qualidade de software é software que possui confiabilidade, usabilidade e manutenibilidade.
Qualidade de Software
 É o diferencial para a competitividade.
 Essencial para a sobrevivência.
 Os clientes estão exigindo qualidade.
 Em um mercado maduro, os clientes não querem apenas que a empresa fale que tem 
qualidade, mas que ela mostre qualidade.
 As certificações são uma forma de comprovar a qualidade no mercado. 
 Qualidade é custo/benefício. Um sistema de qualidade direciona para o aumento da 
produtividade e redução da correção de defeitos.
 Sabe-se que corrigir defeitos após o desenvolvimento do 
software é mais dispendioso do que corrigi-los antes.
 Retém consumidores e aumenta os lucros.
 Deve vir desde a definição dos requisitos até a entrega do 
produto ao cliente.
 Não pode depender somente dos testes, apesar de os testes 
serem essenciais no processo de desenvolvimento.
Razões para a qualidade de software
Pode-se definir qualidade de produto de software como:
 Conformidade a requisitos funcionais e de desempenho declarados explicitamente;
 Padrões de desenvolvimento claramente documentados; e
 Características implícitas que são esperadas de todo software desenvolvido profissionalmente.
Garantia de produto de software
 Diferenças importantes entre produtos de software e manufaturados que não podem 
ser esquecidas: complexidade, invisibilidade, intangibilidade, conformidade, produção 
sob medida, validade e desgaste
Complexidade:
 Um produto de software tem muitas regras a serem cumpridas. 
 Muitas linhas de código a serem implementadas.
 Diversos desenvolvedores com ideias diferentes e às vezes divergentes envolvidos no 
seu desenvolvimento.
Diferenças entre produtos de software e outros produtos
Invisibilidade e intangibilidade:
 O software é invisível para o usuário ou cliente. 
 O que se vê são as consequências da execução, diferentemente de um produto 
manufaturado. 
 Usam-se modelos para representar o software, e essa intangibilidade causa grandes 
dificuldades de comunicação.
 Não se desgasta com o uso
 No software, os componentes lógicos são duráveis e não 
se desgastam. 
 A falha do software resulta de erros humanos cometidos 
durante o processo de desenvolvimento.
Diferenças entre produtos de software e outros produtos
Conformidade:
 O software é a interface entre diversas entidades do meio no qual é utilizado.
Produção sob medida (taylor made):
 Para o software, não existe produção em série. 
 Cada usuário é um cliente que usa o software à sua maneira, com ênfase em partes 
diferentes.
 Mesmo os famosos ERPs normalmente precisam ser customizados.
Diferenças entre produtos de software e outros produtos
Não tem prazo de validade:
 O software não é sensível a problemas ambientais e nem sofre qualquer tipo de 
defeito devido ao uso cumulativo.
 O custo final do software é basicamente o custo do projeto e do desenvolvimento.
 O software é o único produto que, quando apresenta defeito, é o cliente que paga 
para corrigir.
Diferenças entre produtos de software e outros produtos
Qual dos itens abaixo não é considerado diferenças importantes entre produtos de software e 
manufaturados?
a) Complexidade.
b) Prazo de validade.
c) Não se desgasta com o uso.
d) Conformidade.
e) Invisibilidade e intangibilidade.
Interatividade
Resposta
Qual dos itens abaixo não é considerado diferenças importantes entre produtos de software e 
manufaturados?
a) Complexidade.
b) Prazo de validade.
c) Não se desgasta com o uso.
d) Conformidade.
e) Invisibilidade e intangibilidade.
 A garantia de qualidade de software (SQA) é um conjunto de atividades que assegura que 
todo os esforços serão feitos para garantir que os produtos de software tenham a qualidade 
desejada. 
Essas atividades devem:
 Minimizar o número de defeitos; 
 Criar mecanismos para preservar prazos e custo; 
 Garantir que o produto possa ser usado no mercado; 
 Melhorar qualidade de versões futuras do produto.
Garantia da qualidade de software – Software Quality Assurance (SQA)
A SQA abrange:
 Métodos e ferramentas para execução do processo de software;
 Revisões técnicas formais que são aplicadas durante as fases do processo;
 Uma estratégia de testes de múltiplas fases;
 Controle da documentação de software e das mudanças efetuadas;
 Um procedimento para garantir a adequação aos padrões adotados; 
 Mecanismos de medição e divulgação.
Garantia da qualidade de software
A garantia da qualidade enfatiza três pontos importantes a serem seguidos:
1. Requisitos – são a base a partir da qual a qualidade é medida. 
2. Padrões – definem um conjunto de critérios que orientam o trabalho de engenharia.
3. Requisitos implícitos – conjunto de requisitos que nem sempre são mencionados. 
Garantia da qualidade de software
 A comunicação entre o desenvolvedor e o cliente/usuário é a chave para a definição correta 
dos requisitos. 
 O desenvolvedor deverá trabalhar em conjunto com o cliente/usuário para definir 
corretamente as especificações do software, isto é, a definição precisa do escopo do sistema.
O desenvolvimento de software deve:
 Utilizar as melhores práticas da engenharia de software na elicitação dos requisitos;
 Ser executado por pessoal qualificado; 
 Dar ênfase na prevenção de defeitos e não só corrigi-los;
 Gerar registros para demonstrar efetividade e eficiência 
(lições aprendidas); 
 Utilizar as bases históricas na melhoria contínua 
dos processos.
Garantia da qualidade de software e os requisitos de software
1. Aplicação de práticas e métodos técnicos comprovados pelas normas ISO e modelos 
de qualidade;
2. Realizações de revisões técnicas formais utilizando técnicas de reunião, revisão 
por pares, inspeção, walkthroughs etc.;
3. Aplicação das atividades de testes de software;
4. Uso de padrões e normas preestabelecidas pela organização e com aderência a 
padrões reconhecidos no mercado;
5. Controle de mudanças com práticas bem-sucedidas na gestão de mudanças –
manutenção evolutiva;
6. Medição do processo e da qualidade do produto, 
métricas e processo de medição;
7. Manutenção de registros e relatórios para feedback
superior (feedback e rastreabilidade).
Atividades da SQA
 SQA é um grupo de especialistas em qualidade de software com o objetivo de monitoraros 
métodos e padrões utilizados pelos desenvolvedores.
 Uma equipe estruturada em qualidade consegue prever grande parte dos defeitos nas 
revisões técnicas formais.
Revisões técnicas para haver qualidade em software
 O grau de aplicação dos padrões e procedimentos de qualidade varia de empresa para 
empresa.
 Mas, às vezes, são impostos pelos clientes ou até por imposições de órgãos reguladores.
 Uma grande ameaça à qualidade de software vem das mudanças que são efetuadas nos 
softwares em produção.
 A aplicação de modelos de gestão de serviços, como o ITIL, contribui para organizar as 
mudanças e evitar a propagação de erros.
Padrões e procedimentos em qualidade de software
 Um objetivo importante da SQA é rastrear a qualidade de software e avaliar o impacto das 
mudanças metodológicas e de procedimentos sobre a qualidade do software. 
 Para realizar isso, uma métrica de software no uso dos procedimentos deve ser coletada.
 O registro e a disseminação de informações de SQA com os resultados de revisões, 
auditorias, controle de mudanças e testes. 
 Todos esses resultados devem fazer parte de um registro histórico e devem ser levados ao 
conhecimento do pessoal envolvido com o desenvolvimento.
 Os modelos de qualidade de software, tais como o CMMI, a ISO 15504 e MPS.BR, possuem 
processos específicos e práticas para atender a essas demandas pela qualidade.
Rastreamento da qualidade de software
 No início, o software era produzido de maneira que ninguém tinha compromisso com o que 
estava sendo feito.
 Iniciativas isoladas procuravam melhorar o produto final.
 A qualidade não era uma preocupação e dependia totalmente das pessoas envolvidas. 
 Na década de 1990, o enfoque voltou-se para os negócios: O software deveria suportar o 
negócio, isto é, se o caminho usado sempre funcionasse, as exceções eram desprezadas.
 Na década de 2000: A qualidade de software passa por um processo de evolução.
 Busca-se tornar o desenvolvimento de software coberto, garantido e assistido em todas as 
etapas do processo.
Evolução da qualidade de software
A SQA não é responsável por:
a) Monitorar o uso dos métodos e ferramentas de análise, projeto, codificação e teste.
b) Aplicar revisões técnicas formais que garantam a aplicação da engenharia de software em 
cada fase do desenvolvimento.
c) Garantir uma estratégia de testes de múltiplas fases.
d) Desenvolver o sistema em análise.
e) Garantir o controle da documentação de software e das mudanças feitas ao longo do ciclo 
de vida do produto.
Interatividade
Resposta
A SQA não é responsável por:
a) Monitorar o uso dos métodos e ferramentas de análise, projeto, codificação e teste.
b) Aplicar revisões técnicas formais que garantam a aplicação da engenharia de software em 
cada fase do desenvolvimento.
c) Garantir uma estratégia de testes de múltiplas fases.
d) Desenvolver o sistema em análise.
e) Garantir o controle da documentação de software e das mudanças feitas ao longo do ciclo 
de vida do produto.
 Os testes de software são uma parte importante do processo de software e muitas empresas 
estão descobrindo na prática que testar é fundamental.
A atividade de teste de software combina:
 Uma estratégia de múltiplos passos
 Com uma série de métodos de projeto de casos de testes que ajudam a garantir a detecção 
de erros e defeitos de forma efetiva.
Evolução da qualidade de software: como estamos?
Os fatores que afetam a qualidade de software podem ser categorizados em dois 
amplos grupos:
 Fatores que podem ser medidos diretamente
 (por ex.: número de erros /KLOC – linhas de código/unidade de tempo)
 Fatores que podem ser medidos apenas de forma indireta
 (por ex.: usabilidade ou manutenibilidade)
Fatores de qualidade de software
Os fatores que afetam a qualidade de um software podem ser descritos da seguinte forma:
 Corretude – medida de quanto o sistema satisfaz sua especificação e cumpre os objetivos do 
cliente.
 Confiabilidade – medida de quanto o sistema executa sua função com a precisão exigida.
 Eficiência – medida da quantidade de recursos exigidos pelo sistema na sua execução.
 Integridade – medida de controle no acesso de pessoas não autorizadas.
 Usabilidade – medida de quanto o sistema é fácil de ser usado.
 Manutenibilidade – medida do esforço exigido para reparar erros do sistema.
 Reusabilidade – o esforço para reusar componentes do 
software.
 Interoperabilidade – o esforço exigido para acoplar o sistema a 
outro sistema.
Fatores de qualidade de software
Os indicadores de qualidade levam à garantia estatística da qualidade. Implicam os 
seguintes passos:
 Coleta das informações sobre defeitos de software;
 Rastreamento de cada defeito;
 Aplicação do princípio de Pareto (80 – 20);
 Tomada de providências para corrigir os problemas que causam os defeitos.
Garantia estatística da qualidade
 A confiabilidade é um elemento fundamental na qualidade de um software.
 Se um sistema deixar de funcionar com frequência, pouco importa para os usuários se outros 
fatores da qualidade são aceitáveis.
 A confiabilidade é definida em termos estatísticos como a probabilidade do software não 
falhar em um determinado período de tempo.
 A confiabilidade é uma medida da probabilidade de funcionamento correto em alguma 
unidade de comportamento em um período de tempo.
 De acordo com a NBR ISO 9126, confiabilidade significa basicamente um software imune a 
falhas durante sua execução.
Confiabilidade de software
De acordo com Molinari (2003):
 O CQ é definido como os processos e métodos usados para monitorar o trabalho e os 
requisitos envolvidos no projeto. 
 É focado nas revisões e na remoção de erros antes da entrega do produto.
 Deve ser responsabilidade da unidade de produção dentro da organização.
 Quem deve fazer o controle da qualidade?
 A empresa deve decidir se é por quem produz o software ou se é por um grupo 
independente.
Controle da qualidade de software
 Consiste em verificações do produto bem definidas e que sejam especificadas dentro do 
plano de garantia de qualidade.
Para produtos de software:
 São as revisões de especificação;
 Inspeções de códigos; e
 Validações de entrega ao usuário/cliente.
Controle da qualidade de software
Qual dos itens abaixo não são passos que implicam na garantia estatística da qualidade?
a) Abandonar os fatores de defeitos de software.
b) Rastreamento de cada defeito.
c) Aplicação do princípio de Pareto (80 – 20).
d) Coleta das informações sobre defeitos de software.
e) Tomada de providências para corrigir os problemas que causam os defeitos.
Interatividade
Resposta
Qual dos itens abaixo não são passos que implicam na garantia estatística da qualidade?
a) Abandonar os fatores de defeitos de software.
b) Rastreamento de cada defeito.
c) Aplicação do princípio de Pareto (80 – 20).
d) Coleta das informações sobre defeitos de software.
e) Tomada de providências para corrigir os problemas que causam os defeitos.
Segundo Molinari (2003):
 A qualidade não pode ser alcançada pelo acesso a um produto já pronto e completo. 
 A solução é prevenir contra as deficiências e fazer com que o produto possa ter uma garantia 
de qualidade por meio de medições.
 Somente se pode gerenciar aquilo que se consegue medir e vice-versa.
Prevenção x detecção
A organização deve implementar um programa de gerência de qualidade com:
 Documentação de padrões de códigos;
 Descrição de uso desses padrões;
 Métodos e ferramentas; 
 Procedimentos de recuperação de dados; 
 Gerência de mudanças/configuração;
 Documentação dos defeitos; 
 Rastreabilidade.
Prevenção x detecção: gerência da qualidade
Prevenir custos consiste no conjunto de ações tomadas para prevenir os defeitos antes que 
eles apareçam por meio de inspeção e testes:
 Custos de falhas externas consistem nos custos envolvidos com retrabalho depois que os 
produtos foram entreguese liberados. 
 As falhas afetam a reputação da organização ou resultarão em perda de faturamento. 
 A prevenção reduz o número de defeitos, melhora a qualidade e reduz o custo do software.
Prevenção x detecção: custos dos defeitos
Conceitos:
 Verificação garante que o produto está sendo construído de acordo com os requisitos 
especificados; 
 Validação garante que o sistema vai ao encontro dos requisitos do 
consumidor/cliente/usuário.
 O teste de um produto está muito mais perto da validação do que da verificação.
 Depois que o sistema é terminado, ele é testado para determinar sua funcionalidade e sua 
performance.
 É uma prática combinar verificação com validação no processo de testes.
Técnicas da qualidade de software: verificação e validação
 A verificação inclui procedimentos sistemáticos de revisão, análise e testes empregados 
durante o desenvolvimento.
Critérios fundamentais:
 O software tem de executar todas as funções desejadas;
 O software, durante sua execução, não deve passar por nenhum caminho que não tenha 
sido testado.
 A verificação é um “processo de melhoria” que não tem fim.
Técnicas da qualidade de software: verificação
 O objetivo principal das RTFs é achar erros durante o processo de desenvolvimento para 
que eles não se transformem em defeitos depois da entrega do software. 
 O benefício das RTFs é a descoberta antecipada de erros, de forma que eles não se 
propaguem. 
 Estudos da indústria indicam que as atividades de projeto (análise, design, construção e 
testes) introduzem entre 50% e 65% de todos os defeitos durante o processo de software. 
 O estudo mostrou que as RTFs são 75% mais efetivas na descoberta de erros 
de projeto.
Técnicas da qualidade de software: Revisões Técnicas Formais
O funcionamento de uma RTF envolve: 
 Pessoas – o autor do trabalho, um escriba, um especialista do assunto, um desenvolvedor 
mais experiente;
 Preparo do material – máximo de duas horas de trabalho, pequena parte do software, 
restringindo-se o foco.
Como resultado de uma RTF, gera-se um relatório resumido ou ata da revisão que responde a 
três questões: 
 O que foi revisado? 
 Quem fez a revisão?
 Quais foram as descobertas e conclusões?
Técnicas da qualidade de software: Revisões Técnicas Formais
 A atividade de teste continua sendo de importância fundamental para a eliminação dos erros 
que persistem após as RTFs.
 Um bom caso de teste é aquele que tem alta probabilidade de encontrar um erro ainda não 
descoberto. 
Existem muitos tipos de testes: 
 Teste de funcionalidade, de segurança, perfomance, usabilidade etc.
Técnicas da qualidade de software: testes de software
Duas perspectivas diferentes de teste: 
1. A lógica interna do programa é exercitada com casos de testes caixa-branca;
2. Os requisitos de software são exercitados usando técnicas de projeto de casos de 
teste caixa-preta. 
 O objetivo é encontrar o maior número de erros com a menor quantidade de esforço 
e tempo. 
Técnicas da qualidade de software: testes de software
Pressman (2002) apresenta os princípios:
 Os testes devem ser relacionados aos requisitos;
 Os testes devem ser planejados;
 Princípio de Pareto – 80% dos erros encontrados se relacionam a 20% dos 
componentes do software;
 O teste deve começar nos componentes individuais e progredir a todo o sistema;
 Teste completo não é possível – procurar uma cobertura adequada dentro de 
prioridades e custos.
Técnicas da qualidade de software: princípios de testes de software
Qual das afirmações a seguir está incorreta?
a) Testes de software e RTFs têm o mesmo objetivo: achar erros durante o processo de 
desenvolvimento.
b) O teste de software é um elemento crítico para a garantia de qualidade do produto de 
software.
c) O processo de desenvolvimento que inclui revisões e inspeções produz produtos com mais 
qualidade.
d) Os testes de software são mais efetivos que as revisões técnicas formais.
e) Os testes devem ser relacionados aos requisitos.
Interatividade
Resposta
Qual das afirmações a seguir está incorreta?
a) Testes de software e RTFs têm o mesmo objetivo: achar erros durante o processo de 
desenvolvimento.
b) O teste de software é um elemento crítico para a garantia de qualidade do produto de 
software.
c) O processo de desenvolvimento que inclui revisões e inspeções produz produtos com mais 
qualidade.
d) Os testes de software são mais efetivos que as revisões técnicas formais.
e) Os testes devem ser relacionados aos requisitos.
CÔRTES, M. L.; CHIOSSI, T. C. S. Modelos de qualidade de software. Campinas: Editora da 
Unicamp, 2001. 
MOLINARI, L. Testes de software: produzindo sistemas melhores e mais confiáveis. São Paulo: 
Érica, 2003.
PRESSMAN, S. R. Engenharia de software. 6. ed. São Paulo: McGraw-Hill, 2006.
Referências
ATÉ A PRÓXIMA!

Continue navegando