Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

introdução
Introdução
Aqui estamos em nosso primeiro encontro! Como de costume nestas ocasiões, na unidade que agora
iniciamos, serão desenvolvidos temas introdutórios relacionados à qualidade de um produto de software,
incluindo conceitos e processos afins. Devido o caráter estritamente objetivo da qualidade, deveremos
abordar também seus padrões mais importantes e seus meios de gerenciamento e manutenção. Por fim
trataremos das métricas aplicadas à qualidade, como meios de avaliar sua efetividade no processo de
criação de um software.
Esperamos que o domínio deste conteúdo funcione como boa base para seu aprofundamento nos assuntos
relacionados ao tema e que lhe sirva como meio de alcançar seu sucesso profissional. Caro aluno, prezada
QUALIDADE EQUALIDADE E
TESTE DE SOFTWARETESTE DE SOFTWARE
Me. Roque Mai t ino Neto
IN IC IAR
aluna, aceite nossas boas-vindas ao curso de Qualidade e Teste de Software!
É provável que você já tenha ouvido elogios bastante calorosos dirigidos a produtos mais antigos,
construídos há algumas décadas e que, por algum motivo, ainda estão em operação. Tomemos como
exemplo uma máquina de lavar roupas: seu material de construção resistente, seus comandos mais simples
e a sensação de robustez que se associa à suas formas são motivos suficientes para que alguns atribuam a
ela maior qualidade do que atribuem às atuais. Hoje, no entanto, sabemos que fatores como consumo de
energia elétrica, oferta de funções mais convenientes, baixo custo de manutenção e eletrônica confiável são
bastante importantes na composição daquilo que se considera uma boa máquina de lavar roupas.
Justamente pela transitoriedade do que se entende como um produto de qualidade (o que é bom hoje pode
não ser bom amanhã) e pela subjetividade envolvida nas avaliações (minha opinião sobre um produto pode
não ser a mesma que a sua) é que se procura padronizar conceitos, métodos e formas de avaliação da
qualidade, sempre visando dar feição objetiva àquilo que pode sofrer tanta influência de fatores subjetivos.
Com qualidade de software não é diferente. Pessoas e organizações que se importam com a excelência
dos produtos que fabricam e/ou usam devem se orientar por parâmetros objetivos em suas comparações e
medições de qualidade, o que certamente mitigará a interferência de fatores meramente subjetivos na difícil
tarefa de imprimir o rótulo de “Produto de Qualidade” em um software.
Antes de abordarmos algumas das boas definições de qualidade de software que a literatura nos oferece,
vale a colocação, desde já, da seguinte questão: o que é um software de qualidade? Shaffer (2013)
considera esta uma pergunta difícil de ser respondida de uma única maneira. Uma possível medida seria a
adequação do produto ao seu propósito, o que significa que o software funciona de acordo com o que foi
projetado para fazer.
A expressão "adequação ao propósito" pressupõe a existência de um registro da descrição das
funcionalidades do produto. No caso de um software, seu propósito está refletido em suas funções, que, por
sua vez, estão descritas na especificação de requisitos.
Uma outra medida é a qualidade do processo que gerou o software, item que abordaremos com mais
detalhes adiante. Numa relação direta entre valores, muitos creem que um bom procedimento de criação é
capaz de gerar um bom produto. Por fim, pessoas com raciocínio voltado à Engenharia de Software podem
considerar que ter qualidade é simplesmente estar em conformidade com as especificações previamente
definidas.
Entender qualidade, seus padrões e suas medições são os desafios centrais deste nosso encontro e
começaremos a superá-los pela abordagem de alguns conceitos básicos relacionados ao tema.
1.1 Qualidade do produto de software
Definir qualidade de um produto de software de forma universal e irretocável e ainda alcançar unanimidade
na comunidade de observadores é tarefa difícil. Muitos autores lançaram conceitos que, com o passar do
tempo, tornaram-se superados ou mostraram-se incompletos. De acordo com IEEE (2014), autores e
organizações já definiram, de formas diferentes, o termo qualidade. “Conformidade com os requisitos” e
“atingimento de excelentes níveis de adequação para o uso” foram definições comuns no passado. Uma
grande desenvolvedora relacionou qualidade como um valor de mercado, em que “o cliente é o árbitro final”.
tópico 1
tópico 1
Fundamentos da Qualidade de SoftwareFundamentos da Qualidade de Software
Mais recentemente a qualidade foi definida como a capacidade do produto de satisfazer requisitos explícitos
e implícitos, mediante condições específicas e como o grau em que um produto de software atende aos
requisitos estabelecidos, desde que tais requisitos representem com precisão as necessidades, desejos e
expectativas das partes interessadas (IEEE, 2014).
De qualquer forma, já podemos extrair dois fatos deste contexto: (i) as definições de qualidade baseiam-se
na premissa da conformidade com os requisitos. Em outras palavras, a qualidade é dependente das
necessidades que um software deve atender a fim de resolver algum problema no mundo real e (ii)
qualidade não significa perfeição, pois sempre será possível observar itens a serem melhorados em algo
que se reconhece como de boa qualidade.
Já que a perfeição em nossos produtos não é, via de regra, um estado atingível, uma boa ideia para se
atingir boa qualidade é o estabelecimento de níveis aceitáveis de excelência em características do nosso
software. Embora possam ser desdobradas em outros tantos, quesitos como a corretude, a eficiência e a
usabilidade são tidos como indicadores amplamente aceitos da qualidade do produto. Vejamos alguns deles
(MAITINO NETO, 2016):
#PraCegoVer: Apresenta quatro setas. Cada seta é composta por uma imagem à sua esquerda, um texto
centralizado e um número à sua direita. Estão dispostas de cima para baixo: a primeira seta possui como
cor de fundo o vermelho, na sua extremidade esquerda temos a imagem de um celular, no centro temos a
palavra corretude e à direita o número um. A segunda seta possui tom alaranjado como cor de fundo, na
sua extremidade esquerda a imagem de uma lâmpada, no centro a palavra eficiência e à direita o número
dois. A terceira seta tem tom verde água, na sua extremidade esquerda a imagem de um gráfico, no centro
a palavra usabilidade e à sua direita o número três. A quarta e última seta tem tom azul escuro, na sua
extremidade esquerda a imagem de uma seta acertando o centro de um alvo, no centro a palavra
Portabilidade e à sua direita o número quatro.
Conforme a figura 1.1 observa-se os seguintes indicadores: Corretude , trata-se da capacidade do software
em executar suas funcionalidades conforme elas foram definidas. Se pudéssemos resumir este item em
uma pergunta, ela seria próxima de: “o software faz aquilo que eu quero?”; Eficiência , relaciona-se com o
grau de adequação do programa aos recursos de hardware, tais como processador e memória. Com a
queda no custo do hardware, este quesito tem merecido menos atenção do que no passado, já que as
máquinas podem ser dimensionadas com mais recursos sem a necessidade de grandes investimentos
financeiros. Usabilidade , este fator está relacionado com a facilidade de uso do produto. Em outras
palavras, trata-se da medida da capacidade do público-alvo em obter valor do software por meio da sua
interface; e Portabilidad e, é possível usar o produto em outra plataforma? Trata-se da medida de
facilidade em mudar o software de uma plataforma para outra. A portabilidade entre Windows e Mac pode
ser usada como exemplo.
Para que nossa noção de qualidade de um produto de software esteja consolidada, falta-nos contato com
alguns conceitos mais objetivos. Observe o primeiro: “Qualidade é a totalidade das características de um
produto de software que lhe confere a capacidade de satisfazer necessidades implícitas e explícitas”
(ISO/IEC 9126-1, 2003, p. 17).
Observe que o autor relaciona qualidade às características do produto e à sua capacidade de desempenhar
o que se esperadele. Necessidades explícitas são aquelas objetivamente expostas por quem demandou o
produto. Por exemplo, o cliente determina que o sistema deverá ser capaz de emitir relatório de vendas por
região e por cliente. Já as necessidades implícitas são aquelas não ditas e que devem ser previstas pelo
profissional responsável pelo processamento dos requisitos. A compatibilidade do sistema ao hardware
disponível pode ser um exemplo neste caso.
Outra definição importante sobre qualidade de Software “é um 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” (BARTIÉ, 2002, p. 16). Nesta definição o autor relaciona qualidade a um
processo e não a uma providência ou ação isolada. Esta particularidade prepara nosso caminho para a
abordagem do processo de desenvolvimento de software. Sigamos adiante.
1.2 Qualidade do Processo de Desenvolvimento de Software
Relacionar diretamente a qualidade do produto à qualidade do processo que o criou é prática constante no
contexto da qualidade de software. Não é exagerada a afirmação de que apenas um bom processo de
desenvolvimento irá gerar bons produtos, tampouco é a ideia de que assegurar a qualidade de todas as
etapas da construção de um produto irá garantir sua qualidade global.
Neste sentido, a divisão da Engenharia de Software voltada à qualidade do produto criou uma série de
providências tomadas pela equipe durante o processo de desenvolvimento para assegurar a qualidade do
seu produto, de maneira vinculada ao processo que o cria. A estas providências foi dado o nome de SQA
(Garantia da Qualidade do Software, ou do inglês Software Quality Assurance ) e uma das suas definições
mais objetivas é expressa como "padrão planejado e sistemático de ações que são exigidas para garantir a
qualidade do software” (PRESSMAN, 1995, p. 733).
A garantia da qualidade não elege um único momento no processo de desenvolvimento para atuar. Ao
contrário, as atividades de SQA começam nas fases iniciais do projeto e seguem até a finalização do
software, o que nos faz supor que a responsabilidade das equipes do projeto e demais stakeholders
 também seja extensa.
A definição de SQA inclui a expressão “padrão planejado e sistemático de ações”, não é mesmo? Pois bem,
vamos então às ações (MAITINO NETO, 2016).
Assegurar a qualidade de um software envolve algumas tarefas e as três das mais importantes estão
descritas na sequência (PRESSMAN, 1995):
Aplicação de métodos técnicos: as providências associadas à SQA começam a ser aplicadas a
partir da especificação e do projeto do sistema. Uma especificação de requisitos imprecisa
certamente irá comprometer a qualidade do produto final. Tão logo uma especificação, um
protótipo ou um lançamento preliminar de um sistema tiver sido criado, será necessário avaliar
sua qualidade.
Realização de revisões técnicas formais: esta é a atividade central da avaliação da qualidade
de um produto. Uma revisão técnica formal é um encontro previsto na SQA no qual uma equipe
(de 3 a 5 pessoas, normalmente) destacada para o trabalho concentra-se na busca por
problemas de qualidade no produto ou, mais comumente, numa parte específica dele. Elas são
aplicadas em vários momentos do processo e são também, usualmente, referenciadas
como walkthrough (passo a passo) (MAITINO NETO, 2016).
Atividades de teste de software: embora seja tema a ser abordado adiante, vale registrar,
desde já, a criticidade da atividade de teste no contexto da qualidade. A técnica de criação de
software apurada, o talento da equipe e a precisão do método não são capazes de garantir a
ausência total de defeitos no código.
O teste é uma atividade desempenhada para avaliar a qualidade do produto e para sua melhoria, por meio
da identificação de defeitos e problemas. O teste de software consiste na verificação dinâmica do
comportamento de um programa em um conjunto finito de casos de teste, adequadamente selecionado a
partir de um número geralmente infinito de execuções do programa (IEEE, 2014).
Nas próximas unidades trataremos de teste de software de modo mais bem detalhado. Por ora,
abordaremos padrões de qualidade.
atividades
atividades
Embora possa não haver aceitação universal de uma única definição de software de
qualidade, existem algumas medidas que são geralmente aceitas. A exatidão é uma
delas; se um programa não conseguir adicionar uma coluna de números corretamente,
por exemplo, geralmente não é considerado de alta qualidade. Em relação às atividades
que compõem a garantia da qualidade de software (SQA), analise as afirmações que
seguem:
I – Para justificar sua aplicação, as atividades de SQA devem focar o sistema a partir do
momento em que ele for declarado implementado.
II – O teste de software integra as atividades de SQA e só pode ser aplicado se o
programa (ou parte dele) puder ser executado.
III - Uma revisão técnica formal integra as atividades de SQA e ocorre quando uma
equipe busca não-conformidades na qualidade do produto.
É verdadeiro o que se afirma apenas em:
a) Afirmativas I e II.
b) Afirmativas II e III.
c) Afirmativa III.
d) Afirmativa I.
e) Afirmativas II.
Em quais parâmetros podemos confiar na hora de escolhermos um modelo de qualidade? Existem
instituições que criam padrões de qualidade e os atualizam com regularidade? Há um padrão melhor que o
outro? Este segundo tópico da primeira unidade aborda essas questões e alguns dos mais bem-
conceituados modelos de qualidade, com destaque para seus pontos fortes e aplicações. Antes de nos
debruçarmos sobre eles, vale a pena sabermos um pouco mais sobre a organização que os cria e mantém.
A cidade de Genebra, na Suíça, abriga a sede da ISO, sigla da International Organization for
Standardization , órgão não vinculado ao governo e que, desde 1947, já publicou mais de 20.000 normas
internacionais que servem como padrão para atividades relacionadas à tecnologia, manufatura, agricultura,
saúde e outras tantas atividades humanas.
Devido a proliferação de diferentes siglas em línguas diferentes para o órgão, os fundadores resolveram
adotar ISO mundialmente, por se tratar de palavra derivada do grego isos , que significa igual (ISO, s.d.)
Dois dos principais padrões de qualidade utilizados mundo afora são:
2.1 ISO 9001 – Sistema de Gestão da Qualidade
Certamente que você já conhecia a norma 9001 da ISO por nome. Trata-se de um dos mais utilizados
padrões de qualidade do mundo. Ele fornece especificação para sistemas de gestão de qualidade, com
vistas às demandas do cliente em relação ao produto (SEAR, 2015).
Por ser tão conhecido e bem referenciado, sua implantação sinaliza que a organização é capaz de fornecer
produtos em consonância com os requisitos do cliente. Embora seja aplicável no processo de software, este
padrão pode ser implantado em qualquer organização, a despeito de seu tamanho e finalidade.
A ISO 9001:2015 (2015 indica o ano em que foi atualizada) adota uma abordagem de processo para
desenvolvimento, implementação e melhoria da eficácia de um sistema de gestão da qualidade, com o
objetivo de aumentar a satisfação do cliente com o produto. Ela se baseia em 7 princípios de gerenciamento
de qualidade: Foco no Cliente, Liderança, Engajamento de Pessoas, Abordagem de Processo, Melhoria,
Tomada de Decisão Baseada em Evidências, Gestão de Relacionamento (MAITINO NETO, 2016).
2.2 ISO/IEC 90003 – Orientações para Qualidade de Processo
de Software
Se a ISO 9001 aborda aspectos gerais da qualidade, falta-nos uma norma que forneça parâmetros para as
atividades relacionadas à qualidade de software. Esta norma existe e é conhecida por ISO/IEC
90003:2014. Ela endereça orientações para aplicação da ISO 9001 nos processos de aquisição,
fornecimento, desenvolvimento, operação e manutenção de um programa de computador e serviços de
suporte relacionados.
Sua aplicação é indicada em sentido amplo para transações de produtos de software entre organizações.
Especificamente é usada em processosde aquisição de produtos que darão suporte a um processo em
tópico 2
tópico 2
Padrões Relacionados com Qualidade dePadrões Relacionados com Qualidade de
SoftwareSoftware
uma empresa, produtos relacionados à um equipamento específico de hardware ou produtos relacionados à
um serviço de software.
atividades
atividades
Em quais parâmetros podemos confiar na hora de escolhermos um modelo de
qualidade? Existem instituições que criam padrões de qualidade e os atualizam com
regularidade? Há um padrão melhor que o outro? Considerando as características
gerais dos padrões de qualidade de software, analise as afirmativas a seguir:
I – Um padrão de qualidade sempre deve ser criado e mantido pela desenvolvedora do
software.
II – A adoção de um padrão de qualidade pode contribuir para que a desenvolvedora
que o adotou seja reconhecida como organização preocupada com a qualidade.
III – Os padrões de qualidade disponíveis referem-se apenas à qualidade do processo,
já que a qualidade do produto pode ser padronizada apenas pela sua desenvolvedora.
É verdadeiro o que se afirma apenas em:
a) Afirmativas I e II.
b) Afirmativas II e III.
c) Afirmativa III.
d) Afirmativa I.
e) Afirmativa II.
A gerência da qualidade de um software pode e deve ser entendida como um procedimento sistêmico,
idealmente, já incorporado na organização e que inclua processos, pessoas e ferramentas dirigidas à
obtenção da qualidade do produto.
Quando tomamos como exemplos ferramentas computacionais de gerenciamento financeiro ou de
gerenciamento de pessoas, espera-se que tais sistemas sejam partes integrantes da organização,
alinhados com necessidades particulares de finanças ou de gestão de pessoas.
De acordo com Moorthy (2013), um sistema de gestão de qualidade de software deve possuir 4 níveis: o
nível 1 é composto pelo manual de qualidade da empresa; o nível 2 refere-se aos métodos e processos
usados pela equipe para entregar suas tarefas; o nível 3 contém as linhas principais, os checklists e os
modelos, usados com bastante frequência no dia a dia e importantes na manutenção da consistência das
informações e, por fim, o nível 4 refere-se aos registros e documentos usados para fins de validação de um
produto, usados como evidências de uma atividade e úteis para referência futura. A figura a seguir mostra a
organização dos níveis de um sistema de gestão de qualidade.
#PraCegoVer: Apresenta uma pirâmide, dividida em quatro partes, cada uma com uma cor e uma
descrição. A base da pirâmide possui cor verde com a descrição: Registros e documentos que servem para
validar que os requisitos foram atendidos. O segundo nível da pirâmide, de baixo para cima possui a cor
azul claro com a descrição: Linhas principais, checklists e modelos. O terceiro nível da pirâmide, de baixo
para cima possui a cor azul escuro com a descrição: Métodos e processos. O topo da pirâmide, possui a cor
vermelha e a descrição: Manual de qualidade.
Nunca é demais ressaltar que, se quisermos conferir à qualidade o lugar que lhe é devido no processo de
criação de um produto de software, então também devemos tratá-la como a um processo, que deve
permear a criação. A busca pela qualidade deve definir os requisitos, os responsáveis por cada etapa, as
medições incluídas e o feedback. Em poucas linhas, o planejamento da qualidade envolve a definição do
produto no que se refere às suas características de qualidade e o planejamento dos recursos e atividades
para se obter o produto desejado.
tópico 3
tópico 3
Gerência de Qualidade de SoftwareGerência de Qualidade de Software
Pois bem, um processo específico de gestão de software é definido no padrão IEEE 12207.0-96 e inclui o
processo de garantia da qualidade, mais conhecido pela abreviatura SQA ( Software Quality Assurance ou
Garantia da Qualidade do Software). Como você bem se lembra, este processo foi abordado em nosso item
1.
Outro processo que visa conferir qualidade ao produto é o que chamamos de Verificação e Validação. Para
facilitar as referências ao tema, os termos verificação e validação são tratados como apenas um. De acordo
com IEEE (2014), trata-se de um processo bem estruturado para avaliar os produtos de software em todo o
seu ciclo de vida, do planejamento até sua efetiva entrega. Em resumo, retrata o esforço da equipe para
garantir que a qualidade está embutida no software e que ele reflete o desejo do usuário. A Verificação e
Validação (V&V), como também é conhecido esse processo, está interessada diretamente na qualidade do
produto.
O grupo revisões e auditorias inclui dois principais procedimentos (MAITINO NETO, 2016):
Revisões técnicas: o objetivo de uma revisão (ou análise) técnica é o de avaliar um produto de
software para determinar a sua adequação para a sua utilização pretendida. O objetivo é o de
identificar discrepâncias a partir das especificações e dos padrões aprovados. Os resultados
devem fornecer evidências que confirmem (ou não) que o produto atende às especificações;
Inspeções: o propósito de uma inspeção é detectar e identificar anomalias no software. Esta
prática se diferencia das revisões em dois aspectos: alguém que exerça cargo de gestão sobre
qualquer membro da equipe de inspeção não deverá participar desse processo, e uma inspeção
deve ser conduzida por um facilitador imparcial, treinado em técnicas de inspeção. As inspeções
incluem também um líder, um responsável pelos registros da seção e um número reduzido de
inspetores, comumente de 2 a 5 pessoas.
Abordados itens fundamentais da gestão da qualidade de um software, avançamos agora rumo aos meios
de se medir o produto.
atividades
atividades
A Inspeção de Software é um processo formal de verificação do software, que pode ser
aplicado para, praticamente, todos os artefatos gerados durante o ciclo de
desenvolvimento e que tem o custo mais alto de aplicar, mas também é o que produz o
melhor resultado. Considerando conteúdo relacionado à inspeção de software, assinale
a alternativa que contém a correta caracterização deste procedimento.
a) As inspeções não preveem a escolha de um líder para o procedimento.
b) Inspeções e revisões técnicas diferenciam-se apenas pela fase do processo
em que são executadas.
c) Numa inspeção não se admite a participação de alguém que exerça cargo de
gestão sobre qualquer membro da equipe de inspeção.
d) Nas inspeções, a quantidade de participantes varia de acordo com a
quantidade de defeitos que aqui imagina que o produto tenha.
e) É durante o processo de inspeção que a quantidade de participantes da
equipe de qualidade é discutida e revista.
É muito difícil concebermos uma atividade desempenhada profissionalmente que não inclua maneiras de se
medir o que é produzido. Essas medidas, sejam relacionadas ao tamanho físico, à complexidade funcional
ou ao desempenho, visam assegurar algo indispensável em um ambiente produtivo: o controle. Neste tópico
você terá contato com o conceito de métrica e medição, com algumas formas de medições de um produto
de software, além de revisões e inspeções. Com essas providências a equipe deverá garantir e manter a
qualidade de um software. Em frente!
4.1 Métrica e Medição
A medição é o processo pelo qual os números são atribuídos aos atributos de entidades do mundo real. Na
medição, atribui-se um valor numérico a uma grandeza física. Por exemplo, quando medimos a distância
entre dois pontos e obtemos 5 metros, estamos atribuindo o valor 5 à grandeza física chamada distância.
Usaremos o termo medição tanto para descrever um processo quanto um valor de atributo. A medição é
tipicamente uma quantificação direta, que envolve um único valor, ao passo que métrica é uma
quantificação indireta, que envolve o cálculo e o uso de mais de uma medida. Vamos a um exemplo de
métrica: considerando a medida de número de linhas de código de um programa e a medida de número de
defeitos encontrados em todo o programa, podemos estabelecer a métrica de quantidade de defeitos por
linha de código.
É desejável que as métricas sejam capazes de fornecer informação relevantepara a tomada de decisão e
para a comparação de desempenhos. É necessário que você tenha em mente um fato importante: existem
métricas referenciais, usadas normalmente de forma padronizada pelos desenvolvedores. No entanto, uma
métrica pode ser baseada no objetivo da organização e na sua necessidade de informação para a tomada
de uma decisão.
Devemos considerar também que uma métrica deve ser calculada com facilidade, que ela tenha condições
de ser repetida quantas vezes forem necessárias, que sua unidade seja compreensível e universal e que,
por fim, seu processamento possa ser automatizado.
Imagine que dois projetos de software – com alguma similaridade funcional entre eles – estejam em
construção. Se você quiser saber qual dos dois projetos está sendo mais produtivo, você deve realizar a
medição do tamanho do projeto e do esforço para produzi-lo. Contudo, sem uma métrica, a comparação
não seria viável, tampouco útil (MOORTHY, 2013).
Já sabemos que, feitas as medições, podemos (e devemos) utilizá-las para gerar as métricas. Para fins de
classificação, algumas métricas são geradas a partir de medidas obtidas diretamente, geralmente, por
contagem do atributo observado. Às métricas geradas damos o nome de métricas diretas. Outras métricas,
porém, são obtidas indiretamente. A elas damos o nome de métricas indiretas.
Para fins de averiguação da qualidade de um software é comum a aplicação de medidas em fatores que
caracterizam este software. Para isso, nada mais apropriado do que a busca por um modelo de qualidade
consagrado para definirmos as características desejáveis em um programa. O modelo de qualidade
ISO/IEC 25010:2011 estabelece um conjunto de oito características internas e externas de um software,
divididas em outras tantas subcaracterísticas. Para facilitar a compreensão global da norma e facilitar sua
síntese, o quadro 1.1 apresenta tais características de qualidade, separadas entre próprias do produto e
próprias do uso, conforme será́ explicado na sequência.
tópico 4
tópico 4
Métricas de Qualidade de SoftwareMétricas de Qualidade de Software
Quadro 1.1 - Modelo de qualidade da ISO 25010:2011.
Fonte: WAZLAWICK (2013, p. 233).
#PraCegoVer: Apresenta um quadro com fundo na cor cinza com três colunas, onde a primeira linha está
na cor azul-escuro contendo o título de cada coluna. As demais linhas alternam em tons de cinza-claro e
cinza-escuro.
A primeira coluna representa o tipo de característica de qualidade, sendo listados os seguintes tipos:
Características de Produto e Característica de Uso. Na segunda coluna são apresentadas as características
de cada tipo apresentado e na terceira coluna são apresentadas as subcaracterísticas de cada
característica.
No tipo características do produto, na primeira linha, temos como característica Adequação funcional e
como subcaracterística: Completude funcional, corretude funcional (acurácia) e funcionalidade apropriada.
Na segunda linha temos como característica Usabilidade e como subcaracterísticas: Maturidade,
disponibilidade, tolerância à falhas e recuperabilidade.
Na terceira linha temos como característica Usabilidade e como subcaracterísticas: Apropriação
reconhecível, inteligibilidade, operabilidade, proteção contra erro do usuário, estética de interface com o
usuário e acessibilidade.
Na quarta linha temos como característica Eficiência de desempenho e como subcaracterísticas:
Comportamento em relação ao tempo, utilização de recursos, capacidade.
Na quinta linha temos como característica Segurança e como subcaracterísticas: Confidencialidade,
integridade, não repúdio, rastreabilidade de uso e autenticidade.
Na sexta linha temos como característica Compatibilidade e como subcaracterísticas: Coexistência e
Interoperabilidade.
Na sétima linha temos como característica Capacidade de Manutenção e como subcaracterísticas:
Modularidade, reusabilidade, analisabilidade, modificabilidade, testabilidade.
Na oitava linha temos como característica Portabilidade e como subcaracterísticas: Adaptabilidade,
instalabilidade e substituibilidade.
Na nona linha temos como característica Efetividade e como subcaracterística: Efetividade.
Na décima linha temos como característica Eficiência como subcaracterística: Eficiência.
No tipo características de uso, na primeira linha temos como característica Satisfação e como
subcaracterísticas Utilidade, prazer, conforto e confiança.
Na segunda linha temos como característica Uso sem riscos e como subcaracterísticas: Mitigação de risco
econômico, mitigação de risco à saúde e segurança e mitigação de risco ambiental.
Na terceira linha temos como característica Cobertura de contexto e como subcaracterísticas: Completude
de contexto e flexibilidade.
Os parâmetros de qualidade, normalmente, são segmentados entre os que possuem mais afinidade com o
processo, com o produto percebido pelo usuário ou com o produto sob o ponto de vista da equipe. As
medidas de qualidade internas, por exemplo, servem para avaliar aspectos que usualmente são percebidos
apenas pelos desenvolvedores. A capacidade de manutenção e a facilidade em se aplicar testes são bons
exemplos dessas medidas.
As medidas de qualidade externa alcançam características avaliadas pela equipe do ponto de vista do
usuário. Por exemplo, a eficiência e capacidade de operação de um programa.
O modelo ISO/IEC 25010:2011, cujas características foram resumidas na tabela acima, agregou as
características internas e externas num único grupo e o chamou de características do produto. Elas podem
ser avaliadas no ambiente de desenvolvimento, ao passo que as características do software em uso podem
apenas ser avaliadas durante o efetivo uso do sistema.
Parece-nos bastante desafiador construir um produto que tenha boa adequação à todas essas
características e, por isso, vale conhecer melhor algumas das características de qualidade mencionadas no
quadro 1.1.
4.1.1 Adequação funcional
Antes conhecida como funcionalidade apenas; ela se refere à existência de um conjunto de funções que
satisfazem às necessidades previamente estabelecidas, quando o produto é usado sob condições
especificas. Duas de suas subcaracterísticas são a Completude Funcional (o software apresenta todas as
funções necessárias ao usuário?) e a Corretude Funcional ou Acurácia (o software gera dados e consultas
corretos segundo o que foi definido?) (WAZLAWICK, 2013).
4.1.2 Confiabilidade
Se um software é capaz de manter comportamento consistente com o que se espera dele ao longo do
tempo, então ele pode ser considerado confiável. A confiabilidade tem a ver com o funcionamento do
programa em situações incomuns. Ela pode ser medida diretamente e estimada usando-se dados históricos
e de desenvolvimento, ou seja, um computador poderá́ ser considerado livre de falhas quando não tiver
alguma incidência em um determinado ambiente e num determinado período (PRESSMAN, 1995). Desta
definição, o que ainda não temos claro é o que significa falha. Quando tratarmos de teste de software com
mais detalhes, esse conceito será abordado.
Vale aqui também destacar duas de suas subcaracterísticas: a Disponibilidade (avalia o quanto o software
está operacional e livre para uso quando necessário) e a Tolerância à Falhas (avalia a forma como o
software reage em situação anormal).
4.1.3 Usabilidade
De forma simplificada, podemos entender essa característica como a facilidade em se usar um programa,
do ponto de vista do usuário. Em linhas gerais, o programa é fácil de usar se ele é (REISS, 2012): Funcional
– ele realmente funciona?; Responsivo – ele me fornece respostas adequadas?; Ergonômico – eu posso
facilmente ver, clicar, arrastar e girar as coisas?; Conveniente – tudo está bem onde eu preciso que esteja?
“À prova de tolos” – o projetista me ajuda a não cometer erros ou quebrar coisas?
A usabilidade também apresenta subcaracterísticas, incluindo (WAZLAWICK, 2005): Operabilidade – o
produto é fácil de usar e controlar?; Proteção contra erro do usuário – o programa consegue evitar que o
usuário cometa erros?;e Acessibilidade – avalia o grau em que o produto foi projetado para atender
usuários com necessidades especiais.
4.1.4 Segurança
Se um programa consegue proteger os dados e as funções de acessos não autorizados, então ele tem um
bom nível de segurança. Algumas de suas subcaracterísticas devem ser destacadas. Entre elas:
Confidencialidade – mede o grau em que os dados e funções ficam disponíveis para quem, de fato, tem
autorização para acessá-los; Rastreabilidade de uso – mede o grau em que as ações realizadas por uma
pessoa ou por um sistema podem ser rastreadas de forma a ser efetivamente comprovado que, de fato, foi
essa pessoa ou sistema que realizou tais ações.
4.1.5 Capacidade de manutenção
Trata de uma característica que atrai interesse direto apenas da equipe de desenvolvimento, já que não
afeta a percepção do usuário em relação ao sistema. Como você certamente já inferiu, trata-se da
capacidade do sistema em passar por manutenção. Assim como todas as outras características
apresentadas, essa também conta com divisões. Vamos a elas: Modularidade – o sistema é bem dividido
em módulos? Mudanças em um dos módulos devem causar mínimo impacto nos outros; Reusabilidade – há
partes do sistema que podem ser usadas na construção de outro sistema?; Analisabilidade – o sistema
permite que se faça depuração com facilidade?
No âmbito das características de qualidade do software em uso, vale destacar (WAZLAWICK, 2013):
4.1.6 Efetividade
Capacidade que o produto tem de proporcionar ao cliente o atingimento de seus objetivos de negócio.
4.1.7 Satisfação
Capacidade que o produto tem de satisfazer o cliente em ambiente de uso. Pode ser dividida em Utilidade,
Prazer, Conforto e Confiança.
4.1.8 Uso sem riscos
O uso do software não pode implicar riscos para pessoas, negócios ou ambiente. Divide-se em mitigação do
risco econômico, mitigação do risco ambiental e mitigação do risco à saúde e segurança.
Outros parâmetros têm sua descrição disponível na literatura e podem ser usados como medidas para a
qualidade de um software. Como marco introdutório trataremos neste tópico apenas da ISO/IEC
25010:2011.
atividades
atividades
O modelo ISO/IEC 25010:2011, cujas características foram resumidas no Quadro 1.1 -
Modelo de qualidade da ISO 25010:2011, agregou as características internas e externas
num único grupo e o chamou de características do produto. Elas podem ser avaliadas
no ambiente de desenvolvimento, ao passo que as características do software em uso
podem apenas ser avaliadas durante o efetivo uso do sistema. Tendo como base os
parâmetros de qualidade considerados na avaliação de um produto, analise as
afirmações que seguem:
I) A confiabilidade de um software está relacionada ao grau de adequação da
metodologia que o criou às habilidades da equipe de qualidade.
II) A rastreabilidade de uso é uma subcaracterística da usabilidade e refere-se ao grau
em que as ações realizadas por uma pessoa ou por um sistema podem ser rastreadas.
III) A adequação funcional está relacionada ao grau em que as funções do sistema
satisfazem os requisitos previamente especificados.
É correto apenas o que se afirma em:
a) Afirmativa III.
b) Afirmativas II e III.
c) Afirmativas I e III.
d) Afirmativas I, II e III.
e) Afirmativa II.
indicações
Material Complementar
LIVRO
Engenharia de Software: Conceitos e Práticas
Raul Sidnei Wazlawick
Editora: Campus
ISBN: 978-85-352-6120-2
Comentário: O livro indicado trata a Engenharia da
Qualidade sob a ótica da qualidade, mesmo quando
aborda questões meramente procedimentais. Embora
tenha caráter genérico, o livro dedica três capítulos
exclusivamente para processos de qualidade, incluindo
ótimo tratamento para testes de software.
FILME
O Jogo da Imitação
Ano: 2014
 Comentário: O filme está ambientado na Segunda
Guerra Mundial e trata da atuação de Alan Turing na
criação de um artefato eletromecânico capaz de decifrar o
código dos nazistas para troca de mensagens entre o
comando de guerra e seus homens de campo.
conclusão
Conclusão
Chegamos ao final da primeira unidade do nosso curso e a diversidade de assuntos tratados, certamente,
foi uma das suas marcas. Analisamos diversas feições do que se entende por qualidade sob a ótica da
possibilidade de aprimoramento constante dos produtos e processos inseridos no contexto. Registramos
alguns conceitos formais sobre o tema para, então, tratarmos da qualidade do produto e da qualidade do
processo. Como a objetividade deve ser buscada nas avaliações de qualidade, propusemos visão geral de
duas importantes normas de qualidade. Na sequência, buscamos definir meio de se praticar a gerência da
qualidade e, por fim, abordamos algumas características de um software que podem ser usadas como
parâmetro de medição para sua qualidade.
Em nosso próximo encontro daremos mais um passo em busca da qualidade ao tratarmos de teste de
software. Bom estudo e até a próxima!
TRAILER
referências
Referências Bibliográfica
ALL About ISO . International Organization of Standardization. Disponível em:
< http://www.iso.org/iso/home/about.htm >. Acesso em: 14 mar. 2018.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 9126-1 : engenharia de software –
qualidade de produto – parte 1: modelo de qualidade. Rio de Janeiro: ABNT, 2003.
BARTIÉ, A. Garantia da qualidade de software: as melhores práticas de Engenharia de Software
aplicadas à sua empresa. 5. ed. São Paulo: Elsiever, 2002.
IEEE – INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS. SWEBOK: Guide to the Software
Engineering Body of Knowledge. 3. ed. Piscataway: IEEE, 2014. Disponível em: < https://ieeecs-
media.computer.org/media/education/swebok/swebok-v3.pdf >. Acesso em: 03 abr. 2019.
MAITINO NETO, R. Engenharia de software . Londrina: Editora e Distribuidora Educacional S.A., 2016.
224 p.
MOORTHY, V. Jumpstart to software quality assurance. [S.I. : s.n.], 2013.
PRESSMAN, R. S. Engenharia de Software . São Paulo: Makron Books, 1995.
______. São Paulo: Pearson Prentice Hall, 2009. 1056 p.
REISS, E. Usable usability: simple steps for making stuff better. Indianapolis: John Wiley & Sons, 2012.
SEEAR, D. J. ISO 9001: 2015 Back to the future . A review of the new ISO Annex SL structure for
Certification Standards using the draft ISSO 9001: 2015 to explain the changes. USA: AuthorHouse, 2015.
SHAFFER, S. C. A brief introduction to software development and quality assurance
management. [S.l.: s.n.], 2013.
WAZLAWICK, R.S. Engenharia de Software: conceitos e práticas. Rio de Janeiro: Elsevier, 2013.
http://www.iso.org/iso/home/about.htm
https://ieeecs-media.computer.org/media/education/swebok/swebok-v3.pdf

Mais conteúdos dessa disciplina