Professional Documents
Culture Documents
Qualidade de Software
CONTEÚDO
2
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
Qualidade de Software
Introdução
- O principal objetivo da Engenharia de Software (ES) é ajudar a produzir software de
qualidade;
- Empresas que desenvolvem software de qualidade são mais competitivas;
- Empresas que utilizam software de alta qualidade podem, em geral, oferecer um melhor
serviço a um preço mais competitivo.
Conceitos de Qualidade
- Definição genérica:
• “Propriedade, atributo ou condição das coisas ou das pessoas capaz de distingui-
las das outras e de lhes determinar a natureza” (Aurélio).
- Outras definições:
• Qualidade é estar em conformidade com os requisitos dos clientes;
• Qualidade é antecipar e satisfazer os desejos dos clientes;
• Qualidade é escrever tudo o que se deve fazer e fazer tudo o que foi escrito.
- Segundo a atual norma brasileira sobre o assunto (NBR ISO 8402), Qualidade é:
• A totalidade das características de uma entidade que lhe confere a capacidade de
satisfazer as necessidades explícitas e implícitas.
Gestão de Qualidade
Pressman:
- Controle de Qualidade
• O controle de qualidade é feito através de uma série de inspeções, revisões e
testes (V&V), usados através do ciclo de desenvolvimento para garantir que cada
trabalho produzido está de acordo com sua especificação/requisitos.
3
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
- Garantia de Qualidade
• Consiste em um conjunto de funções para auditar e relatar que avalia a efetividade
e completeza das atividades de controle de qualidade.
• A meta da garantia de qualidade é fornecer à gerência os dados necessários para
que fique informada sobre a qualidade do produto por meio do processo,
ganhando assim compreensão e confiança de que a qualidade do produto está
satisfazendo suas metas.
- Gestão da Qualidade
• A gestão da qualidade é geralmente denominada Garantia de Qualidade de
Software
• A gestão da qualidade é uma atividade guarda-chuva que é aplicada ao longo do
processo de software.
- Custo da Qualidade
• Inclui todos os custos decorrentes da busca da qualidade ou da execução das
atividades relacionadas à qualidade.
4
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
FCC
O processo de garantia de qualidade de software também tem como atividade validar os
aspectos de segurança.
Na prática de garantia de qualidade de software, contrapondo com o controle de
qualidade de software, se aplica a atividade: definir métricas e medição.
5
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
CESPE
O controle de qualidade tem como objetivo testar os produtos de software de modo a
identificar, relatar e remover os defeitos encontrados, enquanto a garantia da qualidade
provê a gerência sênior da organização com a visibilidade apropriada sobre o processo de
desenvolvimento.
Os processos no ciclo de vida de um produto de software podem ser classificados como
fundamentais, de apoio ou organizacionais. O processo de garantia da qualidade pode ser
considerado um processo de apoio que define atividades para garantir a conformidade dos
processos e produtos de software com requisitos e planos estabelecidos. Um processo de
garantia da qualidade pode abranger a garantia da qualidade do produto, do processo e
do sistema de qualidade.
O gerenciamento de qualidade de software pode ser estruturado em três atividades
principais: garantia de qualidade, planejamento de qualidade e controle de qualidade. O
objetivo da atividade de garantia da qualidade é assegurar que os processos e os produtos
de software, no ciclo de vida do projeto, estão em conformidade com os padrões, os
procedimentos e as descrições de processos definidos para o projeto submetidos a essa
atividade.
Um processo de gerenciamento da qualidade do projeto tipicamente visa garantir e
controlar a qualidade. Na garantia da qualidade, são executadas atividades planejadas e
sistemáticas visando garantir que o projeto empregará os processos necessários para
atender aos requisitos. Por sua vez, o controle de qualidade, diferentemente da garantia
da qualidade, monitora resultados do projeto a fim de determinar se eles estão de acordo
com os padrões relevantes de qualidade e procura identificar meios para eliminar as causas
de resultados que sejam insatisfatórios.
ESAF
Com o propósito de produzir software com qualidade, segundo o CMM, a Garantia de
Qualidade de Software (SQA) tem o objetivo de fornecer à gerência a visibilidade da
eficácia dos processos utilizados pelo projeto de desenvolvimento de software e da
qualidade dos artefatos que estão sendo criados.
FGV
A SQA (Software Quality Assurance) é um padrão sistemático de ações que são exigidas
para garantir a qualidade de software. Ela compreende uma variedade de tarefas
associadas a grandes atividades. A seguir são apresentadas as atividades da SQA:
- Aplicação de métodos técnicos.
- Atividades de testes de software.
- Realização de revisões técnicas formais.
6
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
OUTRAS
Segundo Pressman, na qualidade do software, as inspeções, revisões e testes utilizados ao
longo do processo de software, para garantir que cada produto de trabalho satisfaça os
requisitos estabelecidos, são conhecidas como: controle de qualidade;
Métricas de Qualidade
Pressman:
- Correção
• Um programa deve operar corretamente ou é de pouco valor para seus usuários.
- Manutenibilidade
• É a facilidade com que um programa pode ser corrigido, se um erro é encontrado,
adaptado, se seu ambiente se modifica ou é aperfeiçoado, se o cliente deseja uma
alteração nos requisitos.
- Integridade
• Mede a capacidade de um sistema resistir a ataques (tanto acidentais quanto
intencionais) à sua segurança.
- Usabilidade
• É a tentativa de quantificar facilidade de uso.
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
- Confiabilidade
• O quanto se pode esperar que um programa realize a função pretendida com a
precisão exigida.
- Eficiência
• A quantidade de recursos computacionais e códigos exigidos por um programa
para desempenha sua função.
- Integridade
• O quanto o acesso ao software ou dados por pessoas não autorizadas pode ser
controlado.
- Usabilidade
• Esforço necessário para aprender, operar, preparar a entrada de dados e
interpretar a saída de um programa.
- Facilidade de manutenção
• Esforço necessário para localizar e corrigir um erro em um programa.
- Flexibilidade
• Esforço necessário para modificar um programa em operação.
- Testabilidade
• Esforço necessário para testar um programa de modo a garantir que ele
desempenhe a função destinada.
8
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
- Portabilidade
• Esforço necessário para transferir o programa de um ambiente de hardware e/ou
software para outro.
- Reusabilidade
• O quanto um programa (ou partes) pode ser reutilizado em outras aplicações –
relacionado com o empacotamento e o escopo das funções que o programa
executa.
- Interoperabilidade
• Esforço necessário para integrar um sistema a outro.
FCC
O fator de qualidade de software em que se mede o esforço exigido para um sistema se
acoplar a outro denomina-se interoperabilidade.
9
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
CESPE
10
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
- V&V não garante que o software está livre de defeitos, mas apenas garante certo nível de
confiabilidade.
- Verificação
• Descobrir defeitos no sistema.
• Se está de acordo com a especificação (elicitada junto com cliente – requisito,
documento técnico, usado mais pelo desenvolvedor) e implementa corretamente
as funções especificadas.
• Refere-se ao conjunto de atividades que garantem que o software implementa
corretamente as funções especificadas.
▪ “Estamos construindo o produto de forma correta?”
▪ “Are we building the Product Right?”
▪ Envolve checar se o software cumpre com suas especificações.
• Principais atividades:
▪ Inspeções e Revisões de Software (verificação estática)
▪ Testes de Software (verificação dinâmica)
- Validação
• Se o sistema é útil e adequado em situações operacionais.
• Garantir que o software está alinhado as reais necessidades do sistema.
• Software construído é rastreável às exigências do cliente, aos requisitos do usuário.
• Põe para rodar e ver realmente se está legal para o usuário.
• Se atende as reais necessidades do cliente.
▪ É isso mesmo que o cliente quer?
• Refere-se ao conjunto de atividades que garantem que o software construído
implementa o que o cliente realmente desejava
▪ “Estamos construindo o produto certo?”
▪ “Are we building the Right Product?”
▪ Envolve checar se o sistema cumpre com seus requisitos funcionais e não
funcionais especificados.
▪ É um processo mais genérico.
11
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
• Principais atividades:
▪ Homologação, Testes de Aceitação (beta).
▪ Revisões com foco no cliente e usuário.
Técnicas de V&V
- Técnica Estática
• São métodos usados para garantir a qualidade do software que não necessita de
uma versão executável do programa.
▪ Por este motivo podem ser utilizadas em todas as fases do desenvolvimento
do software.
▪ Pode verificar tanto o produto quanto o processo de software.
• Porém essa técnica oferece garantia somente a correspondência entre um
programa e sua especificação (verificação).
▪ Não demonstra que o software é útil operacionalmente;
▪ Não pode testar propriedades emergentes do software como desempenho
e confiabilidade [Sommerville 2007].
• Dentre as técnicas de verificação, Revisões são técnicas amplamente difundidas e
que podem ser usadas tanto na análise estática quanto dinâmica.
- Técnica Dinâmica
• Análise dinâmica de software é uma técnica de verificação e validação muito usada,
que consiste em exercitar o programa usando dados reais processados pelo
programa e verificar se as saídas obtidas estão de acordo com as saídas esperadas.
• Uma técnica dinâmica muito utilizada são os Testes de Software que são essenciais
para descoberta de defeitos e garantia de qualidade e confiabilidade que só podem
ser obtidas com a execução do programa.
FCC
O processo de confirmação que um software vai ao encontro das especificações
de software se trata de um conceito chave de qualidade denominado Verificação.
12
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
Os testes são técnicas dinâmicas de verificação e validação, pois trabalham com uma
representação executável do sistema.
Testes: executar um software com o objetivo de revelar falhas, mas que não prova a
exatidão do software.
Verificação: correta construção do produto.
Validação: construção do produto certo.
CESPE
A validação assegura que o produto, como fornecido, irá atender o seu uso pretendido, ou
seja, que se está construindo o produto certo. E a verificação confirma que os produtos de
trabalho refletem de forma apropriada os requisitos que foram especificados, ou seja, que
se está construindo o produto corretamente.
A diferença entre verificação e validação reside no fato de que a primeira se refere ao
conjunto de atividades que garante que o software realiza corretamente uma função
específica, enquanto a segunda refere-se a um conjunto diferente de atividades que
garante que o software que foi construído é rastreável às exigências do cliente.
Entre os principais processos da gestão da qualidade de software, estão a verificação, a
validação, a revisão e a auditoria. Os processos de verificação e validação são processos
mais associados ao controle que à garantia da qualidade.
Considerando-se o programa final como caixa preta, a validação dinâmica, ou teste, pode
ser utilizada para identificar a ocorrência de defeitos.
Manutenção de Software
- Tipos de Manutenção de Software
• Corretiva
▪ Correção de erros encontrados na verificação ou na validação.
• Adaptativa
▪ Adaptação a mudanças externas.
• Melhoria (perfectiva)
▪ Melhorias requeridas pelos usuários.
• Preventiva ou de reengenharia
▪ Abordagem pró-ativa com foco na melhoria da manutibilidade.
13
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
CESPE
Na gestão de configuração de software, a manutenção pode ser feita de maneira proativa,
reativa, preventiva ou corretiva.
Comentário:
Segundo Pressman, a manutenção de software pode ser feita de maneira corretiva,
adaptativa, perfectiva ou preventiva.
- Funcionalidade
• Capacidade do produto de software de prover funções que atendam às
necessidades explícitas e implícitas, quando o software estiver sendo utilizado sob
condições especificadas.
• O grau com que o software satisfaz às necessidades declaradas conforme indicado
pelos seguintes subatributos:
▪ Adequabilidade (Adequação)
o Capacidade do produto de software de prover um conjunto
apropriado de funções para tarefas e objetivos do usuário
especificados.
▪ Exatidão (Acurácia)
o Capacidade do produto de software de prover, com o grau de
precisão necessário, resultados ou efeitos corretos ou conforme
acordados.
14
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
▪ Interoperabilidade
o Capacidade do produto de software de interagir com um ou mais
sistemas especificados.
▪ Conformidade
▪ Segurança
- Confiabilidade
• Capacidade do produto de software de manter um nível de desempenho
especificado, quando usado em condições especificadas.
• A quantidade de tempo que o software fica disponível para uso conforme indicado
pelos seguintes subatributos:
▪ Maturidade
o Capacidade do produto de software de evitar falhas decorrentes de
defeitos no software.
▪ Tolerância a falhas
o Capacidade do produto de software de manter um nível de
desempenho especificado em casos de defeitos no software ou de
violação de sua interface especificada.
▪ Facilidade de recuperação (Recuperabilidade)
FCC
Confiabilidade: A resiliência é a capacidade de o sistema voltar ao nível de desempenho
anterior a falhas ou comportamento imprevisto de usuários, software ou hardware e
recuperar os dados afetados, caso existam.
Há modelos de qualidade de software nos quais os atributos de qualidade são agrupados
em características de qualidade, que, por sua vez, são desdobradas em subcaracterísticas.
Por exemplo, confiabilidade é uma possível característica e refere-se à capacidade de o
software manter seu nível de desempenho, sob condições estabelecidas, por um período
de tempo.
- Usabilidade
• Capacidade do produto de software de ser compreendido, aprendido, operado e
atraente ao usuário, quando usado sob condições especificadas.
• O grau de facilidade de utilização do software conforme indicado pelos seguintes
subatributos:
▪ Facilidade de compreensão (Inteligibilidade)
▪ Facilidade de aprendizagem (Apreensibilidade)
▪ Operacionalidade
15
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
▪ Atratividade
- Eficiência
• O tempo de execução e os recursos envolvidos são compatíveis com o nível de
desempenho do software.
• O grau de otimização do uso, pelo software, dos recursos do sistema conforme
indicado pelos seguintes subatributos:
▪ Comportamento em relação ao tempo
▪ Utilização de recursos.
FCC
Eficiência: O desempenho e uso de recursos referem-se à capacidade do sistema de
alcançar tempos de resposta, latência, tempo de processamento, vazão, etc dentro do
período de tempo especificado e ao fato do software exigir mais ou menos recursos de
acordo com suas condições de uso.
FCC
Manutenibilidade: A analisabilidade é o grau de facilidade, com qual seja possível procurar
por deficiências no software ou por partes que devem ser modificadas para algum fim.
Em relação aos princípios de qualidade em software, no tocante à testabilidade de
software, a sentença "quanto menos modificações, menos interrupções no teste" está
relacionada com uma característica. Essa característica é identificada como: estabilidade;
- Portabilidade
• A capacidade do sistema ser transferido para outro ambiente (condições de infra,
diferentes hardware, so, etc).
16
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Qualidade de Software
FCC
São características dos atributos de qualidade de software categorizados no modelo de
qualidade externa e interna da NBR ISO/IEC 9126: portabilidade, confiabilidade,
funcionalidade, eficiência, manutenibilidade e usabilidade.
São categorias de fatores que afetam diretamente a qualidade dos softwares, somente os
aspectos de operação e manutenção.
CESPE
A norma ISO 9126 apresenta atributos de qualidade de software que são diretamente
mensuráveis em determinado software.
Comentário:
Essas características não são medidas diretamente. Elas fornecem uma base para medidas
indiretas e uma lista de verificação para avaliar a qualidade do software.
Para Pressman, são classificadas como medidas diretas do processo: o custo e o esforço, e
do produto: as linhas de código (LoC) e como medidas indiretas do produto: a
funcionalidade, a qualidade, a complexidade, a eficiência, a confiabilidade, a produtividade
(LoC/pm), etc.
CESGRANRIO
Dentre os atributos de um software de qualidade, incluem-se: eficiência, manutenibilidade
e usabilidade.
17
www.resumosdeti.com.br
O conteúdo deste resumo é de uso exclusivo de Claudia Caetano - E-mail: claudiarc12@hotmail.com - ID: 1395 - Data: 29 de setembro de
2018, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.