Buscar

TODAS AULAS QUALIDADE SOFTWARE - RESPOSTAS PARA PROVAS

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 120 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 120 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 120 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 
 
 
 
 
 
 
 
 
 
 
 
QUALIDADE DE SOFTWARE 
AULA 1 
 
 
 
 
 
 
 
 
 
 
 
 
Prof.a Maristela Regina Weinfurter Teixeira 
 
2 
 
CONVERSA INICIAL 
Olá, seja bem-vindo. Assista ao primeiro vídeo da professora Maristela 
Regina Weinfurter Teixeira, que irá apresentar e contextualizar esta disciplina, 
bem como os assuntos que serão estudados nesta primeira aula. 
CONTEXTUALIZANDO 
Vamos trabalhar um conceito importantíssimo dentro da Engenharia de 
Software: A Qualidade de Software. É inevitável não associarmos engenharia 
de software e qualidade de software, pois quando retomamos o histórico da 
engenharia de software percebemos que está se originou devido à terrível crise 
do software. E o que teria sido então esta crise? Justamente problemas que 
deixaram desenvolvedores noites e noites sem dormir para refazerem milhares 
de linhas de código. Segundo Pressman, na década de 90, grandes empresas 
falavam em bilhões de dólares por ano que eram desperdiçados em software 
que não apresentava as características e as funcionalidades prometidas. 
(PRESSMAN, 2011). 
São décadas que falamos em engenharia e qualidade de software, porém 
continuamos com códigos mal feitos nesse mercado. Estamos falando de 45% 
de tempo de inatividade dos sistemas e 100 bilhões de dólares em 2010. 
(PRESSMAN, 2011). Alguns especialistas apontam que 3 ou 4 defeitos a cada 
1.000 linhas de código são suficientes para que o programa execute de forma 
inadequada. Agora, multiplique isto a milhões de linhas de código em vários 
produtos comerciais pelo mundo. Sim, é assustador! E como isto reflete nos 
custos? Precisamos consertar aquilo que não foi feito corretamente, bem como 
aquilo que não passou por bons TESTES! Logo, estamos falando de 
RETRABALHO! E as pessoas trabalham e necessitam receber sua 
remuneração, logo, quando falamos em códigos mal escritos e ineficientemente 
testados, estamos falando que alguém terá que pagar esta conta! 
 
3 
 
Muito bem, falamos dos custos para escrevermos e mantermos 
funcionalidades de software, porém, os custos, gastos e investimentos vão além 
dos funcionários da área de TI. Quando um software está inativo, são clientes e 
mais clientes que são prejudicados, por meio de notas fiscais que não são 
emitidas, empresas que deixam de faturar, bancos que deixam de fazer 
operações com milhões de correntistas, pedidos que não são recebidos, entre 
tantas outras funcionalidades automatizadas que deixam de executar! 
Mas não paramos apenas nos problemas de funcionalidades por conta de 
erros nos códigos dos programas. São requisitos mal elaborados e validados 
com clientes, são aspectos da interação humano-computador que geram 
problemas (usabilidade e acessibilidade), são bancos de dados e classes mal 
projetados! Se começássemos uma lista de todos os problemas que levam um 
software a parar, falhar ou funcionar parcialmente, teríamos algumas páginas 
para escrever sobre a ausência da qualidade do software. 
Enfim, não obstante, podemos ainda falar sobre os problemas inerentes 
ao processo de desenvolvimento de software. Quando pensamos na qualidade 
de um produto genérico, logo somos remetidos ao processo pelo qual este 
passou para ser fabricado. Software, apesar de não ser um produto, também 
caminha dentro de um ciclo de desenvolvimento. Se este ciclo não possuir 
processos, atividades e tarefas consolidadas e em conformidade com normas, 
metodologias, regras e outras formas de garantia da qualidade, a possibilidade 
de nosso produto não atingir a qualidade desejada pelos clientes é grande. 
Então, estamos falando da qualidade do software e também do seu processo de 
desenvolvimento! Qualidade aplicada a processos e produtos! 
Leitura obrigatória 
Uma Introdução à Qualidade de Software: 
https://www.infoq.com/br/news/2012/05/An-Introduction-Software-Quality 
 
4 
 
Saiba mais 
O mercado de software brasileiro conta com o Simpósio Brasileiro de 
Qualidade de Software. É um evento anual da Comissão Especial de 
Engenharia de Software da Sociedade Brasileira de Computação (SBC) e do 
Comitê do Programa Brasileiro da Qualidade e Produtividade em Software 
(PBQP-SW), tem como objetivo reunir empresários, profissionais, professores, 
pesquisadores e estudantes de diversas áreas, interessados em questões 
relativas à qualidade de software, em um evento de divulgação e troca de 
experiências, promovendo a integração Universidade – Empresa. 
O simpósio está em sua 16.ª edição. Informações, artigos e dissertações 
de mestrado sobre a 15.ª edição podem ser encontrados em: 
http://sbqs2015.com.br/apresentacao/ 
Pesquise 
Utilize o link abaixo e identifique os temas que mais foram discutidos em 
2015. Você verificará várias linhas de atuação da qualidade de software 
aplicadas em situações de testes, de requisitos, de melhorias de processos. 
Tente encontrar temas que lhe despertem mais interesse, pois a área de 
qualidade de software é bastante extensa. 
http://sbqs2015.com.br 
Leitura obrigatória 
 http://sbqs2015.com.br/apresentacao 
 Temas como automatização de testes são discutidos? 
 O que fazer para aplicarmos testes a todo o processo de desenvolvimento 
de software? 
 Quais são as tendências na área de qualidade e testes de software? 
 
5 
 
TEMA 1 - CONCEITOS SOBRE QUALIDADE 
Como definirmos o que é qualidade, como saber o que ela representa ou 
compreendermos quando ela não existe? 
Definir qualidade é algo complexo à primeira vista, porém, com um 
exemplo mais prático ficará um pouco mais tangível para você. Vamos 
ao exemplo: 
Imagine-se em um restaurante, para o qual, em especial hoje, você pagou 
mais caro que o seu hábito. Se alguém lhe perguntar se a comida tinha 
qualidade, você certamente saberá responder com rapidez, sim, não ou se faltou 
algo para que ficasse melhor ainda. Em todos os momentos estamos falando 
sobre qualidade de algo, seja do transporte público, demora no atendimento em 
alguma loja ou banco. Estamos envoltos com este conceito a todo momento em 
nossas vidas, porém, se eu lhe pedir para definir qualidade, você pensará um 
pouco para tentar colocar em palavras aquilo que lhe é familiar e ao mesmo 
tempo tão subjetivo! 
Subjetivo? Sim, porém se você estiver neste mesmo restaurante que lhe 
propus anteriormente com outra pessoa, esta poderá ter outra visão sobre a 
qualidade da mesma comida! Isso não quer dizer que ela invalidará a sua 
avaliação sobre a refeição. Isso nos mostra que precisamos analisar melhor o 
que esperamos da qualidade, seja de produtos ou de serviços. 
Qualidade, segundo o INMETRO, “é uma variável precisa e mensurável, 
oriunda do grau de conformidade do planejado com o executado. Esta 
abordagem dá ênfase a ferramentas estatísticas.”. (INMETRO, 2015). 
Já para Shigunov Neto (2016), qualidade 
é uma filosofia de gestão empresarial ou um modelo de gestão 
administrativa que visa atingir permanentemente a melhoria de 
produtos ou serviços oferecidos, por meio da mudança dos processos 
 
6 
 
produtivos, da redução de custos, de uma transformação cultural e do 
envolvimento e do comprometimento dos trabalhadores. 
 
Alguns nomes são importantes para a área de qualidade, e cada qual tem 
um enfoque (SHIGUNOV, 2016). Dentre eles temos: 
1. Deming (1950) – Máxima utilidade para o consumidor; 
2. Feigenbaum (1951) – Perfeita satisfação do usuário; 
3. Juran (1954-1964) – Satisfação das aspirações do usuário. Maximização 
das aspirações do usuário e adequação ao uso; 
4. Crosby (1979) – Conformidade com os requisitos do cliente. 
Quando olhamos pela ótica da Engenhariade Software, podemos dizer 
que as palavras-chave para qualidade, em se tratando de software, segue o que 
ilustra a Figura 1. 
Figura 1: Qualidade de Software 
 
Fonte: Pressman, 2011. 
A qualidade de software pode ser definida, segundo Pressman, como 
“uma gestão de qualidade efetiva aplicada de modo a criar um produto útil que 
forneça valor mensurável para aqueles que o produzem e para aqueles que o 
utilizam.” Para que isso ocorra, precisamos garantir uma boa gestão de 
qualidade, um produto útil e valor agregado tanto para o desenvolvedor quanto 
para os stakeholders de um produto de software. Assim como para fabricação 
satisfação do 
usuário
produto 
compatível
boa 
qualidade
entrega 
dentro do 
orçamento
entrega 
dentro prazo
 
7 
 
de qualquer produto ou prestação de serviços, precisamos ter foco na qualidade 
tanto de processos quanto de produtos (resultados). 
Leitura obrigatória 
http://www.inmetro.gov.br/qualidade/iaac/pdf/fundamentos-qualidade.pdf 
Saiba mais 
Qualidade, qualidade de software e garantia da qualidade de software são as 
mesmas coisas? 
Quais suas diferenças e complementaridades. 
http://www.linhadecodigo.com.br/artigo/1712/qualidade-qualidade-de-software-
e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx 
 
TEMA 2: DIMENSÕES DA QUALIDADE DE SOFTWARE 
Sabemos então que qualidade se aplica tanto a produtos/serviços quanto 
aos processos e, em complemento a tudo isto, podemos ainda visualizar a 
qualidade sob algumas dimensões (PRESSMAN, 2011): 
1. Qualidade do desempenho: funcionalidades e recursos especificados 
devem estar de acordo com o produto/serviço entregue; 
2. Qualidade dos recursos: o software deve fornecer recursos que 
surpreendam e encantem os stakeholders; 
3. Confiabilidade: o software deve funcionar sem falhas, erros e disponível 
a qualquer momento; 
4. Conformidade: o software deve estar de acordo com padrões locais e 
externos; 
 
8 
 
5. Durabilidade: o software pode ser mantido ou corrigido sem a geração de 
efeitos colaterais; 
6. Facilidade de manutenção: o software pode ser mantido ou corrigido por 
período de tempo aceitável; 
7. Estética: elegância com um fluir único e uma presença difíceis de 
quantificar; 
8. Percepção: pode ser maculada por produtos anteriores entregues sem 
qualidade ou pode ser superestimada por produtos anteriores entregues 
com sucesso. 
Já segundo o INMETRO (2015), estas dimensões ou categorias da 
qualidade podem ser catalogadas da seguinte forma: 
1. Desempenho 
2. Características 
3. Confiabilidade 
4. Durabilidade 
5. Atendimento 
6. Estética 
7. Qualidade percebida 
8. Conformidade 
Podemos observar que mesmo autores diferentes possuem compreensão 
muito similar quanto aos quesitos que compõem as dimensões da qualidade de 
um produto/serviço. 
Leitura obrigatória 
http://www.inmetro.gov.br/qualidade/iaac/pdf/fundamentos-qualidade.pdf 
Saiba mais 
O que é o INMETRO? 
 
9 
 
O INMETRO é um instituto nacional de metrologia, qualidade e tecnologia. À 
primeira vista, muitos imaginam que ele atende à indústria, porém com a 
necessidade cada vez maior por questões relacionadas à qualidade de software, 
o mesmo vem atendendo também a esta área que cresce a cada dia no país. 
 http://www.inmetro.gov.br/inmetro/oque.asp 
Caminhamos mais um pouco no conhecimento da qualidade de software 
e de processo de software. Pudemos observar alguns pontos importantes para 
compreendermos melhor o trabalho que teremos pela frente para garantirmos 
todo o processo e atingirmos os melhores resultados na construção de software. 
TEMA 3: FATORES DE QUALIDADE 
Até o momento falamos sobre conceitos e definições importantes para a 
compreensão da qualidade e qualidade de software. Visualizamos que qualidade 
não é um conceito novo, mas quando falamos de desenvolvimento de software 
ainda temo um caminho longo a trilhar para atingirmos os melhores resultados, 
visto que partimos sempre do subjetivo para o objetivo. Partimos de ideias e as 
transformamos em códigos que resultam em produtos capazes de agilizar 
atividades tanto operacionais quanto estratégicas de nossos stakeholders. 
Agora vamos compreender um pouco sobre os fatores de qualidade 
atrelados ao software. Observando que teremos três importantes aspectos em 
um produto de software (PRESSMAN, 2011): 
1. Características operacionais; 
2. Habilidade de suportar mudanças; 
3. Adaptabilidade a novos ambientes. 
 
 
10 
 
A figura 2 relaciona estes três aspectos subdivididos em outras 
abordagens importantes para considerarmos a qualidade de software. 
Figura 2: Fatores de qualidade de software 
 
Fonte: Pressman, 2011. 
Começando pelo grupo Revisão do Produto dos fatores de qualidade de 
software, teremos as seguintes definições dos subgrupos (PRESSMAN, 2011): 
1. Facilidade de manutenção: é o esforço necessário para localização e 
correção de um erro dentro de um programa. 
2. Flexibilidade: é o esforço necessário para modificação de um programa 
que já esteja em operação. 
3. Testabilidade: é o esforço necessário para o teste de um programa para 
garantia de seu desempenho e função destinada. 
 
Revisão do 
Produto
• Facilidade de manutenção
• Flexibilidade
•Testabilidade
Transição do 
Produto
•Portabilidade
•Reusabilidade
• Interoperabilidade
Operação do 
Produto
•Correção
•Confiabilidade
•Usabilidade
•Integridade
•Eficiência
 
11 
 
O próximo grupo, Transição do Produto, possui as seguintes 
competências: 
1. Portabilidade: é o esforço necessário para transferência de um programa 
em um ambiente de hardware/software para outro. 
2. Reusabilidade: é o quanto o programa pode ser reutilizado em outras 
aplicações, ou partes deste. 
3. Interoperabilidade: é o esforço necessário para integração de um 
sistema ao outro. 
 
E finalmente, o último grupo, Operação do Produto, possui as seguintes 
atribuições: 
1. Correção: é o quanto o programa satisfaz a sua especificação e atende 
objetivos dos stakeholders. 
2. Confiabilidade: é o quanto se pode esperar que um programa realize a 
função pretendida com a precisão exigida. 
3. Usabilidade: é o esforço necessário para aprender, operar, preparar a 
entrada de dados e interpretar a saída de um programa. 
4. Integridade: é o quanto o acesso ao software ou dados por pessoas não 
autorizadas pode ser controlado. 
5. Eficiência: é a quantidade de recursos computacionais e código exigidos 
por um programa para desempenhar sua função. 
Temos também a versão dos fatores de qualidade segundo a ISO 9126, 
que é um padrão desenvolvido para identificação dos atributos fundamentais de 
qualidade para software de computador. Segundo esta versão de fatores, 
possuímos seis aspectos diferentes (PRESSMAN, 2011): 
 
 
12 
 
1. Funcionalidade: que corresponde ao grau de satisfação das 
necessidades elicitadas. 
2. Confiabilidade: é a quantidade de tempo que o software fica disponível 
para uso, bem como sua maturidade, tolerância a falhas e facilidade de 
recuperação. 
3. Usabilidade: diz respeito ao grau de facilidade de utilização do software 
(compreensão, aprendizagem e operabilidade). 
4. Eficiência: é o grau de otimização do uso dos recursos do sistema 
(comportamento em relação a tempo e recursos). 
5. Facilidade de manutenção: corresponde à facilidade de correção do 
software (facilidade de análise, mudanças, estabilidade e testabilidade). 
6. Portabilidade: quão ágil é passar o software de um ambiente 
(plataforma) para outro (adaptabilidade, facilidade de instalação, conformidadee facilidade de substituição). 
De acordo com esta visão sobre os fatores de qualidade, é fácil concluir 
que teremos um longo caminho a percorrer para construirmos um software com 
qualidade, bem como propor um processo capaz de agregar tais requisitos de 
qualidade em seu ciclo de vida. 
Leitura obrigatória 
http://www.linhadecodigo.com.br/artigo/1712/qualidade-qualidade-de-software-
e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx 
 
 
 
 
13 
 
TEMA 4: DILEMAS DA QUALIDADE 
Estudamos anteriormente o que seriam os princípios básicos da 
Qualidade de Software. Agora precisamos mergulhar em um mundo de dilemas 
em relação à qualidade do processo de desenvolvimento e do software. 
Considere a seguinte entrevista à Bertrand Meyer (VENNERS, 2003 apud 
PRESSMAN, 2011): 
Se produzirmos um sistema de software de péssima qualidade, 
perdemos porque ninguém irá querer comprá-lo. Se, por outro lado, 
gastamos um tempo infinito, um esforço extremamente grande e 
grandes somas de dinheiro para construir um software absolutamente 
perfeito, então isso levará muito tempo para ser completado, e o custo 
de produção será tão alto que iremos à falência. Ou perdemos a 
oportunidade de mercado ou então simplesmente esgotamos todos os 
nossos recursos. Dessa maneira, os profissionais desta área tentam 
encontrar aquele meio-termo mágico onde o produto é suficientemente 
bom para não ser rejeitado logo de cara, como, por exemplo, durante 
uma avaliação, mas também não é o objeto de tamanho 
perfeccionismo e trabalho que levaria muito tempo ou que custaria 
demasiadamente para será finalizado. 
A grande questão encontra-se em um esforço racional e objetivo para 
atingirmos a melhor qualidade possível, porém dentro de prazos e custos 
tangíveis. Então surge a questão: O que é um software bom o suficiente? 
Ele deverá fornecer funções e características de alta qualidade que os 
usuários desejam, porém dentro de um tempo e custo dentro do estabelecido 
para o projeto do software. (PRESSMAN, 2011). 
Agora precisamos olhar para os custos. Qualidade é importante, mas 
sempre terá um custo (tempo e dinheiro). 
 
 
14 
 
Figura 3: Custos da Qualidade 
 
Quando falamos em custos da qualidade precisamos incluir todos os 
custos necessários para a busca de qualidade e para a execução de atividades 
relacionadas à qualidade ou pela falta de qualidade. Isso é possível quando 
reunimos métricas para promoção de uma base de custo corrente da qualidade, 
identificando-se oportunidades para redução. Este é dividido em custos de 
prevenção, avaliação e falhas (Figura 3). 
Os Custos de Prevenção contêm os seguintes itens: 
1. Custos de atividades de gerenciamento (planejamento, coordenação, 
controle e garantia de qualidade). 
2. Custos de atividades técnicas adicionais (requisitos e projeto). 
3. Custos de planejamento de testes. 
4. Custos de treinamento para todas as atividades anteriores. 
Já os Custos de Avaliação incluem custos: 
1. Para a execução de revisões técnicas. 
Custos de Qualidade
Falhas
Avaliação
Prevenção
 
15 
 
2. Que abordem a coleta de dados, bem como a avaliação por meio 
de métricas. 
3. Para testes e depuração dos programas (PRESSMAN, 2011). 
Finalmente, os Custos de Falhas comportam: 
1. A percepção da necessidade de retrabalhos e correção de erros. 
2. Valores relacionados ao efeito colateral no caso dos retrabalhos. 
3. Tudo que esteja associado às reuniões para aplicação das métricas de 
qualidade. (PRESSMAN, 2011). 
 
Figura 4: Custos da Qualidade de Software X Ciclo de Vida dos Sistemas 
 
Fonte: Pressman, 2011. 
Segundo Pressman (2011): “O custo médio da indústria de software para 
correção de um defeito durante a geração de código é de aproximadamente 977 
dólares por erro. Para correção do mesmo erro na fase de testes é de 7136 por 
erro”. Ou seja, à medida que avançamos no projeto, encontrar e corrigir um erro 
torna-se cada vez mais caro. A Figura 4 nos demonstra graficamente, em 
milhares de dólares, o quanto encontrar erros e falhas em um projeto de software 
torna-se drasticamente mais caro à medida que evoluímos nas etapas do projeto. 
 
16 
 
Além de todos estes custos, ainda entramos nos quesitos riscos, 
responsabilidade civil, segurança e o impacto das ações administrativas sobre o 
processo de desenvolvimento de software, considerando-se aspectos de 
qualidade. Quanto aos riscos, encontramos pessoas que entregam seus 
empregos, segurança, entretenimento, decisões e a vida em software. Com isso, 
precisamos avaliar os riscos envolvidos quando um software possui falhas e 
erros. Isso deve ser muito bem pensado ao se desenvolver um software que 
envolva altos riscos. 
Outro aspecto fica por conta de sistemas que se tornam lentos, com 
recursos e funções suscetíveis a erros sem a aprovação dos usuários, tornando 
o pagamento pelo software algo que entra na esfera judicial. Usuários dizem que 
os desenvolvedores foram negligentes, ocasionando um problema sério de fluxo 
de caixa para a empresa desenvolvedora. 
A segurança é um requisito extremamente importante atualmente, visto a 
quantidade de sistemas via Web e aparelhos móveis. A segurança implica 
diretamente em questões de falhas arquiteturais. E, finalmente, quanto às 
questões administrativas, encontramos problemas relacionados a estimativas, 
cronogramas e riscos que acabam por interferir em todo o processo de 
desenvolvimento e qualidade do processo. 
Terminamos com o seguinte pensamento de Meskimen 
(PRESSMAN, 2011): “Nunca há tempo para fazer a coisa certa, mas sempre há 
tempo para fazê-la de novo. Meu conselho: tomar o tempo necessário para fazer 
certo da primeira vez quase nunca é uma decisão errada.” 
Leitura obrigatória 
http://www.linhadecodigo.com.br/artigo/1712/qualidade-qualidade-de-software-
e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx 
 
 
17 
 
TEMA 5: ALCANÇANDO A QUALIDADE DE SOFTWARE 
Chegamos até aqui com muitas definições, conceitos e filosofando sobre 
o que é e o que não é qualidade. Como pensarmos em todas as questões 
relacionadas à qualidade do processo e do software. Realmente, a qualidade de 
software é uma área extensa e que merece um esforço reflexivo bastante 
grande, porque depois que estivermos inseridos em um projeto e este estiver no 
ar, não há mais tempo para refletirmos. A reflexão fica por conta primeiramente 
de nossa visão bastante clara sobre os problemas futuros que podemos ter e 
que, por meio de algumas iniciativas relacionadas à qualidade, poderemos evitar 
em nossos projetos e em nossa vida profissional. 
Vamos então listar algumas ações de controle de qualidade e garantia da 
qualidade que poderão salvar nossos projetos e nossas noites e finais de 
semana de trabalho ou retrabalho (PRESSMAN, 2011): 
1. Métodos de engenharia de software: primeiro passo, compreender com 
clareza qual é o problema a ser resolvido. Sermos capazes de criar um 
projeto adequado ao problema. 
2. Técnicas de gerenciamento de software: Estimativas de datas plausíveis, 
cronogramas sem atalhos e planejamento de riscos orientado a 
problemas e não ao caos. 
3. Controle de qualidade: Conjunto de ações de engenharia de software para 
auxiliar na garantia de que cada produto atinja suas metas de qualidade. 
Modelos revistos e códigos inspecionados, corrigidos antes dos testes. 
Testes para descoberta de erros na lógica, na manipulação dos dados e 
na comunicação da interface. Feedbacks com a equipe de software. 
4. Garantia da qualidade: infraestrutura com métodos sólidos de engenharia 
de software, gerenciamento racional de projeto e açõesde controle 
de qualidade 
 
 
18 
 
Conforme os anos passam na história da engenharia de software, nossos 
critérios de qualidade de software crescem, tornando-os cada vez mais efetivos. 
Utilizarmos, por exemplo, a ISO 9126 estabelecerá características de 
confiabilidade, usabilidade, facilidade de manutenção, funcionalidade e 
possibilidade como indicadores da existência da qualidade de software. 
(PRESSMAN, 2011). 
E não temos como fugir, a qualidade de software só existe quando 
olharmos para os métodos da engenharia de software, práticas administrativas 
consistentes e controle de qualidade completo. Não podemos esquecer que os 
custos e desastres em relação à falta de qualidade, tanto do processo quanto do 
software, serão substanciais e muitas vezes insolúveis. 
Leitura obrigatória 
http://www.linhadecodigo.com.br/artigo/1712/qualidade-qualidade-de-software-
e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx 
 
TROCANDO IDEIAS 
Que tal analisarmos, diante de nossa pouca ou muita experiência e de 
exemplos de outros, qual a real importância da qualidade de software e quão 
extensa esta área pode ser dentro da área de desenvolvimento de software? 
SÍNTESE 
 Quando falamos de qualidade de sistemas ou processos de 
desenvolvimento, não estamos querendo discutir metodologias, técnicas e 
ferramentas para colocarmos em nosso currículo. A qualidade vai além da sala 
de aula. Ela é um elemento fundamental para o sucesso ou a sua ausência para 
o fracasso de um software. Vimos que quando pensamos em qualidade não 
 
19 
 
estamos falando apenas em tirarmos os erros de código, não que isto não seja 
importante, mas estamos vislumbrando o software como um conjunto não só de 
códigos que seguem uma determinada lógica, mas um software que manipule 
dados e se comunica com pessoas. Usuários estão cada vez mais exigentes e 
querem respostas rápidas, eficientes, confiáveis, por meio de interfaces simples. 
Nosso desafio então é aplicarmos a qualidade de software, observando-se 
obviamente o escopo de nosso projeto diante de seus custos. Não temos como 
fazer milagres, mas podemos nos cercar de pontos importantes a serem 
analisados diante de todo o processo de software, vislumbrando um software e 
um processo de desenvolvimento de software que busque sua excelência 
em qualidade. 
REFERÊNCIAS 
INMETRO. Fundamentos da Qualidade. Disponível em: 
<http://www.inmetro.gov.br/qualidade/iaac/pdf/fundamentos-qualidade.pdf>. 
Acesso em: maio de 2016. 
LÉLIS, E. C. Gestão da qualidade. São Paulo: Pearson Prentice Hall, 2012. 
PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. 7. 
ed. Porto Alegre: AMGH, 2011. 
SOMMERVILLE, I. Engenharia de software. 9. ed. São Paulo: Pearson 
Prentice Hall, 2011. 
SHIGUNOV NETO, A. Introdução à gestão da qualidade e produtividade: 
conceitos, história e ferramentas. Curitiba: InterSaberes, 2016. 
VENNERS, B. Design by contract: a conversation with Bertrand Meyer. Artima 
Developer, December 8, 2003. Disponível em: 
<www.artima.com/intv/contracts.html>. 
 
20 
 
XIV Simpósio Brasileiro de Qualidade de Software. Anais. 17-21 de agosto de 
2015. Manaus. Disponível em: 
<https://drive.google.com/file/d/0B4ZBCAydIkutSUFuVVhCdXVnbDA/view>. 
Acesso em: maio de 2016. 
 
 
1 
 
 
 
 
 
 
 
 
 
 
 
 
QUALIDADE DE SOFTWARE 
AULA 2 
 
 
 
 
 
 
 
 
 
 
 
Prof.a Maristela Regina Weinfurter Teixeira 
 
2 
 
CONVERSA INICIAL 
Olá, seja bem-vindo. Assista ao segundo vídeo da professora Maristela 
Regina Weinfurter Teixeira, que irá apresentar e contextualizar esta disciplina, 
bem como os assuntos que serão estudados nesta aula. 
 
CONTEXTUALIZANDO 
Após conhecermos um pouco sobre a qualidade de software, vamos 
estudar sua amplitude por meio de conceitos da garantia da qualidade 
de software. A garantia da qualidade de software (SQA), segundo 
Pressman (2011), contém as seguintes etapas: 
1. Um processo de SQA. 
2. Tarefas específicas e controle da qualidade (revisões técnicas e 
estratégia de testes multiescalonados). 
3. Prática efetiva de engenharia de software (métodos e ferramentas). 
4. Controle de todos os artefatos de software e as mudanças feitas nesses 
produtos. 
5. Um procedimento para garantir a conformidade com os padrões de 
desenvolvimento de software. 
6. Mecanismos de medição e de relatórios. 
 
A garantia da qualidade pode-se dizer que é um conjunto de atividades 
essenciais para qualquer empresa de produtos a serem usados por terceiros, 
isso falando em termos gerais. Agora, focando na área de desenvolvimento de 
software, até os anos 60 a qualidade no desenvolvimento de software era de 
responsabilidade exclusiva de cada programador. Nos anos 70, as coisas 
começam a mudar e surge então a preocupação na criação de padrões para 
garantia da qualidade no desenvolvimento de software, em especial pela 
indústria militar dos Estados Unidos, o que rapidamente foi absorvido por todo o 
mercado de software. (PRESSMAN, 2011). E tal preocupação cresceu à medida 
que o software passou a ser integrado em cada aspecto da vida cotidiana. 
 
3 
 
Desenvolver softwares nos dias atuais deixou de ser algo para 
programadores independentes e solitários e se tornou um trabalho que 
experimenta a colaboração e cooperação entre profissionais com 
especializações dentro da engenharia de software e de outras áreas. Assim, 
vamos verificar, claro que cuidando das devidas proporções de tamanhos de 
projetos e empresas desenvolvedoras, profissionais especializados no projeto, 
na codificação, em testes e outras tantas atividades que agregam os cuidados 
que a garantia da qualidade de software nos oferece. 
 
Leitura obrigatória 
SOMMERVILLE, 2011 
Saiba mais 
Este curta metragem é pequeno, mas ao mesmo tempo nos traz uma boa 
percepção do que é desenvolvermos um software apenas por meio da tentativa 
e erro em vez de irmos direto às muitas orientações sobre como podemos ter 
mais produtividade, melhoria de processos e um produto/serviço que de fato 
atenda a nossos usuários. 
https://www.youtube.com/watch?v=LOyX-vgdQGQ 
Consulte também livros da biblioteca virtual ou sites da internet que falem 
sobre garantia da qualidade. 
 
Antes de entrarmos de fato na garantia da qualidade de software, 
pesquise sobre o assunto, focado para produtos e serviços em geral. Você é 
consumidor de algum tipo de produto ou serviço e então liste o que é bom ou 
ruim em algum produto/serviço para que logo após reflita sobre: 
1. O que poderia melhorar neste produto? 
2. Como isto poderia ser feito? 
3. Como será o processo de fabricação/serviço até que eu receba meu 
produto/serviço? 
 
4 
 
Quando fazemos este exercício com algo que nos afeta diretamente, fica 
mais fácil compreendermos e absorvermos todas as preocupações da garantia 
da qualidade de software. 
 
TEMA 1: ELEMENTOS DA GARANTIA DA QUALIDADE DE SOFTWARE 
Para prosseguirmos na nossa trajetória sobre garantia da qualidade, 
vamos compreender a ideia da estrutura de gerenciamento de software segundo 
(HUMPHREY,1989 apud SOMMERVILLE, 2011): 
1. Introdução ao produto. Uma descrição do produto, seu 
mercado pretendido e as expectativas de qualidade do produto. 
2. Planos de produto. As datas críticas de release e 
responsabilidades para o produto, junto com os planos para a 
distribuição e prestação de serviço do produto. 
3. Descrições de processo. Os processos de desenvolvimento e 
serviço são padrões que devem ser usados para o gerenciamento e 
desenvolvimento de produto. 
4. Metasde qualidade. As metas de qualidade e planos para o 
produto, incluindo uma identificação e uma justificativa para os 
atributos críticos de qualidade do produto. 
5. Riscos e gerenciamento de riscos. Os riscos mais importantes 
que podem afetar a qualidade do produto e as ações que devem ser 
tomadas ao lidar com eles. 
Seguindo estas ideias, podemos dividir a garantia da qualidade 
de software em três categorias (CAMPOS, 2016), que podem ser visualizadas 
na Figura 1: 
 
 
 
 
 
 
 
 
5 
 
Figura 1: Elementos da Garantia da Qualidade de Software 
 
 Fonte: adaptado de Campos, 2016. 
1. Teste de Software: Inclui atividades de verificação e validação. É 
importante que o software seja testado para verificação desde o início da 
elicitação dos requisitos funcionais e não funcionais até o momento de 
entrega do software. 
2. Controle da Qualidade: nesta fase se monitora o trabalho, observando 
se os requisitos estão sendo satisfeitos. Revisar e remover defeitos antes 
que o software seja entregue. Cheklists bem definidos e especificados no 
plano de garantia da qualidade. Dentro das revisões, inspeção é 
considerado como um sinal de grande grau de maturidade do processo 
de controle de qualidade. 
3. Gerenciamento de Configuração de Software: fase em que 
se identifica, rastreia e controla mudanças nos elementos do software de 
um sistema. Ele ainda controla a evolução do sistema de 
software, gerenciando versões dos componentes de software e 
seus relacionamentos. 
Caminhando mais um pouco, podemos ampliar nossas preocupações e 
atividades que se concentram na gestão e garantia da qualidade 
(PRESSMAN, 2011): 
Teste de 
Software
Controle de 
Qualidade
Gerenciamento 
de 
Configuração 
de Software
 
6 
 
1. Padrões: IEEE, ISO e outras organizações de padronizações. 
2. Auditorias e Revisões: revisões técnicas são atividade de controle de 
qualidade para revelação de erros. Auditoria é um tipo de revisão para 
nos assegurar de que as diretrizes de qualidade estejam sendo seguidas. 
3. Testes: fazem parte do controle de qualidade com o objetivo principal a 
descoberta de erros. 
4. Coleta e análise de erros/defeitos: melhoria do desempenho das 
melhores práticas para garantia da qualidade por meio de medições. 
5. Gerenciamento de mudanças: são aspectos negativos dentro do 
desenvolvimento de software, porém ocorrem a todo instante. 
6. Educação: aperfeiçoamento dos desenvolvedores e interessados. 
7. Gerência de fornecedores: pacotes comerciais, software sob 
encomenda devem ser avaliados por meio da garantia de qualidade de 
software antes da aquisição. 
8. Administração da segurança: crimes cibernéticos e novas 
regulamentações governamentais quanto à privacidade devem fazer 
parte das políticas de proteção de dados em todos os níveis. 
9. Proteção: o software envolve vidas humanas e o impacto de defeitos e 
falhas pode ser catastrófico. 
10. Administração de riscos: garantir a gestão de riscos de forma 
apropriada em relação aos planos de contingência. 
Com base nestes elementos, sabemos que temos várias subáreas para 
nos preocuparmos e estudarmos até o final deste módulo para conseguirmos 
dimensionar em nosso dia a dia em como garantir a qualidade dos processos de 
desenvolvimento de software e do próprio software resultante. 
Leitura obrigatória 
SOMMERVILLE, 2011 
CAMPOS, 2016 
 
 
7 
 
Saiba mais 
Este artigo nos traz outra forma de visualizar o gerenciamento da qualidade de 
software e assegurar a garantia da mesma: 
 http://tenstep.com.br/blog/?p=839 
 
TEMA 2: TAREFAS, METAS E MÉTRICAS 
Garantir a qualidade de software pressupõe que temos métricas que nos 
auxiliam por meio de estatísticas para acompanhamento dos resultados do 
processo de desenvolvimento de software. E esta é composta por um conjunto 
de tarefas, que tem por responsabilidade o planejamento, supervisão, 
manutenção de registros, análise e relatórios. (PRESSMAN, 2011). O pessoal 
da garantia da qualidade tem por responsabilidade auxiliar a equipe de software 
na obtenção de um produto final com alta qualidade. Essa mesma equipe de 
garantia da qualidade para cada projeto prepara um plano de atividades de 
garantia da qualidade, participa no desenvolvimento da descrição da gestão de 
qualidade do projeto, revisa as atividades de engenharia de software para 
verificação das conformidades, audita produtos de software resultantes para 
verificação de sua conformidade, garante que desvios de trabalho de software e 
produtos resultantes sejam documentados e registra qualquer não aderência, 
bem como relata ao gerenciamento superior do projeto. 
As ações do grupo de garantia da qualidade devem atingir um conjunto 
de metas pragmáticas (PRESSMAN, 2011): 
1. Qualidade dos requisitos: correção, completude e consistência do 
modelo de requisitos. 
2. Qualidade do projeto: avaliação de todo elemento do modelo de projeto 
para garantir que apresente alta qualidade e que o projeto esteja de 
acordo com os requisitos. 
 
8 
 
3. Qualidade do código: tanto o código-fonte quanto os produtos 
relacionados devem estar em conformidade com os padrões locais de 
codificação e apresentar características para facilitar a manutenção. 
4. Eficácia do controle de qualidade: a equipe de software aplica recursos 
limitados para obtenção da maior probabilidade possível de atingir um 
resultado de alta qualidade. Agora vamos detalhar estas metas e 
identificar atributos indicadores de qualidade para cada meta discutida 
(adaptado de HYA, 96 apud PRESSMAN, 2011). Veja a tabela 1 a seguir: 
 
Tabela 1: Metas, atributos e métricas para qualidade de software 
 
Meta Atributo Métrica 
Qualidade das 
necessidades 
Ambiguidade 
 
Número de modificadores ambíguos 
 
Completude 
 
Número de TBA, TBD 
 
Compreensibilidade 
 
Número de seções/subseções 
Volatilidade 
 
Número de mudanças por requisito 
Tempo por atividade quando solicitada a mudança 
Facilidade de atribuição 
 
Número de requisitos não atribuíveis ao projeto/código 
Clareza do modelo Número de modelos UML 
Número de páginas descritivas por modelo 
Número de erros UML 
Qualidade do 
projeto 
Qualidade do 
código 
Integridade da 
arquitetura 
Existência do modelo da arquitetura 
Completude dos 
componentes 
Número de componentes que se atribui ao modelo da 
arquitetura 
Complexidade da 
interface 
Número médio de cliques para chegar a uma função ou 
conteúdo típico 
 Layout apropriado 
Padrões Número de padrões usados 
Complexidade Complexidade ciclométrica 
 
9 
 
Facilidade de 
manutenção 
Fatores de projeto 
Compreensibilidade Porcentagem de comentários internos 
Convenções de atribuição de variáveis 
Reusabilidade Porcentagem de componentes reutilizados 
Documentação Índice de legibilidade 
Eficiência do 
controle de 
qualidade 
Alocação de recursos Porcentagem de horas de pessoa por atividade 
Taxa de completude Tempo de finalização real versus previsto 
Eficácia da revisão Ver métricas de revisão 
Eficácia dos testes Número de erros encontrados 
Esforço exigida para corrigir um erro 
Origem do erro 
Fonte: Pressman, 2011. 
Temos ainda uma longa jornada dentro do incrível mundo da garantia da 
qualidade. Conseguirmos atingir todas as metas expostas na tabela 1 é uma 
tarefa árdua. Caminharemos para o próximo tema com a ideia de tornarmos 
estas metas e métricas em estatísticas eficientes. 
Leitura obrigatória 
SOMMERVILLE, 2011 
CAMPOS, 2016 
 
Saiba mais 
Alguns links interessantes que falam sobregestão e garantia da qualidade: 
 www.asq.org/software 
 www.sei.cmu.edu 
 www.isospice.com 
 
TEMA 3: ESTATÍSTICA 
Já conversamos sobre metas e métricas, agora vamos falar a respeito da 
estatística da garantia da qualidade. Esta reflete uma tendência crescente em 
 
10 
 
toda a indústria de software. Segundo Pressman (2011), a estatística da 
qualidade implica nas seguintes etapas: 
1. Informações sobre erros e defeitos coletados e classificados. 
2. Associação de cada erro e defeito a sua causa (erros de projeto, violação 
de padrões, comunicação inadequada com cliente). 
3. Uso do princípio de Pareto (80% dos defeitos podem ser associados a 
20% de suas possíveis causas), isolando 20% a poucas causas vitais. 
4. Correção dos problemas que provocaram os erros e defeitos. 
Aparentemente, pode-se pensar que é tão simplista, mas este tipo de 
conceito já impacta na criação de uma gestão de qualidade adaptativa com 
mudanças feitas e melhorias nos elementos do processo que introduziram 
os erros. 
Vamos listar algumas causas mais comuns encontradas em estatísticas 
deste tipo: 
1. (IES) Especificações incompletas. 
2. (MCC) Problema com interpretação da comunicação com o cliente. 
3. (IDS) Desvio intencional nas especificações. 
4. (VPS) Violação dos padrões de programação. 
5. (EDR) Erro na representação de dados. 
6. (ICI) Interface inconsistente de componentes. 
7. (EDL) Erro na lógica de projeto. 
8. (IET) Testes incompletos ou errados. 
9. (IDD) Documentação incompleta ou sem precisão. 
10. (PLT) Erro na tradução do projeto para linguagem de programação. 
11. (HCI) Interface homem-computador ambígua ou inconsistente. 
12. (MIS) Outros. 
 
É claro que esta lista nos dá uma ideia de algumas causas encontradas e 
não necessariamente serão adotadas dessa forma. Para cada empresa é 
importante observação e experimentos até que se encontrem as causas mais 
 
11 
 
aderentes aos projetos. A Figura 2 reflete a utilização desta lista para 
exemplificação de como coletarmos estes dados. 
 
Figura 2: Coleta de dados para estatística de garantia da qualidade 
 
Fonte: Pressman, 2011. 
 
Uma vez apurada estatisticamente nossos problemas, conseguiremos 
aperfeiçoar substancialmente a qualidade de nossos processos e produtos. Ao 
aplicarmos a estatística e o princípio de Pareto, sintetizaremos em uma única 
sentença, segundo Pressman (2011): “Invista seu tempo concentrando-se em 
coisas que realmente importam, mas, primeiramente, certifique-se de ter 
entendido aquilo que realmente importa!”. 
 
Leitura obrigatória 
SOMMERVILLE, 2011 
CAMPOS, 2016 
 
 
 
 
12 
 
TEMA 4: CONFIABILIDADE DE SOFTWARE 
Agora vamos falar um pouco sobre a confiabilidade do software, 
pensando um pouco nas consequências caso esse falhe frequentemente e 
repetidamente. Não iremos nos importar se os outros fatores de qualidade são 
aceitáveis, o fato é que isto atrapalha em muito a produtividade de quem o 
esteja utilizando. 
Aqui estamos pensando nas falhas de programas de computador em um 
determinado ambiente por um determinado tempo. Podemos estimar que um 
programa, após oito horas em funcionamento, tenha um grau de confiabilidade 
de 0,999, ou seja, é provável que ele opere corretamente e sem falhas por 
999 vezes. 
Para compreendermos o conceito de confiabilidade de software, precisaremos 
refletir sobre o que é falha. Falha é um termo que corresponde à falta de 
conformidade com os requisitos de software. Mesmo essa definição possui 
algumas variações. As falhas podem ser apenas problemáticas ou catastróficas. 
Quando uma falha pode ser corrigida em segundos, outras precisarão até de 
meses para serem corrigidas. E outro perigo é que, após a correção de tal falha, 
esta pode resultar na introdução de outros erros que resultarão em outras falhas. 
E este tema vem de longa data. Já tentaram trabalhar falhas por meio da 
teoria da confiabilidade de hardware para previsão da confiabilidade de software 
— matemática — (PRESSMAN, 2011). Todas as falhas de software podem ser 
associadas a problemas de projeto ou implementação. Uma medida de 
confiabilidade simples pode ser encontrada pelo uso da seguinte fórmula: 
MTBF=MTTF+MTTR, em que MTBF (tempo médio entre falhas), MTTF (tempo 
médio para falhar) e MTTR (tempo médio para reparar). 
Há uma polêmica entre pesquisadores que acreditam que o MTBF é uma 
medida mais útil do que quaisquer outras métricas de software, dentro da 
garantia da qualidade. E tal fato ocorre porque o usuário se preocupa com falhas 
e nunca com o número total de defeitos. Se observarmos, cada defeito em um 
 
13 
 
programa não representa a mesma taxa de falhas, além de como o número total 
de defeitos pode sinalizar indicação da confiabilidade de um sistema. Como 
medida para garantira a confiabilidade, temos a falha ao longo do tempo (FIT), 
que é uma medida estatística para estimar quantas falhas um componente 
poderá ter ao longo de um bilhão de horas de operação. (PRESSMAN, 2011). 
Além da confiabilidade, precisamos nos preocupar com a disponibilidade de 
software, ou seja, a probabilidade de que um programa esteja operando de 
acordo com os requisitos em um dado instante: 
Disponibilidade = (MTTF)/(MTTF+MTTR)*100% 
Para finalizarmos este assunto, vamos trabalhar o conceito de proteção 
de software. Esta atividade, também da garantia da qualidade, concentra-se na 
identificação e avaliação de potenciais problemas que podem afetar 
negativamente o software e provocar falha em todo o sistema. 
Estas são questões que também devem ser tratadas e consideradas em 
um bom planejamento de garantia de qualidade no processo de desenvolvimento 
de um software. 
 
Leitura obrigatória 
SOMMERVILLE, 2011 
CAMPOS, 2016 
 
TEMA 5: PADRÕES DE QUALIDADE 
Chegamos até aqui com muitas definições, conceitos e avaliando os 
detalhes importantes para garantirmos a qualidade do processo de 
desenvolvimento de software. Agora vamos conversar sobre padrões de 
software. Estes padrões desempenham um papel muito importante no 
gerenciamento da qualidade de software segundo (SOMMERVILLE, 2011). 
Precisamos escolher ferramentas e métodos para suportar o uso desses 
 
14 
 
padrões. Após esta escolha, definimos processos específicos para o 
monitoramento do uso dos padrões e verificação se os mesmos estão sendo 
seguidos. A figura 3 demonstra essa qualidade baseada em processos. 
 
Figura 3: Qualidade com base em processos 
 
 
 
 
 
 
 
 
 
 
 
 
 Fonte: Sommerville, 2011. 
 
 
Padrões são importantes por várias razões, entre elas, segundo 
Sommerville (2011): 
1. Capturar conhecimento da organização. 
2. Fornecer um framework para definição do significado de qualidade para a 
organização. 
3. Ajudar na continuidade dos trabalhos realizados por um profissional e 
continuado por outro. 
4. Padrões de produto aplicam-se a produto de software que está em 
desenvolvimento. (Documentação). 
5. Padrões de processo que os definem para serem seguidos durante todo 
o processo de desenvolvimento de software. É importante que 
encapsulem as boas práticas de desenvolvimento. 
Definir processo Desenvolver 
produto 
Melhorar 
processo 
Desenvolver 
produto 
Qualida
de ok? 
Padronizar 
processo 
 
15 
 
 
Os padrões entregam valor sob a forma de maior qualidade de produto. 
Organismos nacionais e internacionais apoiam a produção de padrões. Entre 
eles encontram-se: ANSI, BSI, OTAN e IEEE. Tais padrões estão em linguagens 
de programação como Java e C++, notações, gráficos, símbolos eprocedimentos para derivação e escrita de requisitos de software, procedimentos 
de garantia de qualidade e processos de verificação e validação de software. 
O framework de normas ISO 9001 aplica-se a organizações que projetam, 
desenvolvem e mantêm produtos, inclusive software. Este foi desenvolvido em 
1987, e sua mais nova revisão é de 2008. Este define princípios gerais da 
qualidade, descreve os processos gerais de qualidade e estabelece os padrões 
organizacionais e os procedimentos que devem ser definidos. Estes são 
documentados em um manual de qualidade da organização. Na Figura 4 
encontramos os processos essenciais da ISO 9001. 
 
Figura 4: Processos Essenciais da ISO 9001 
 
Fonte: Sommerville, 2011. 
 
16 
 
 
Além da ISO 9001, temos também a IEEE 829-2008, uma norma 
adequada aos padrões do PMI para gerência de projetos. Neste caso, 
consideramos a fase de testes como um projeto paralelo ao desenvolvimento de 
software, seguindo as abordagens desta norma. Ela trata exclusivamente de 
teste de software, suprindo uma carência dos padrões da PMI. Segundo esta 
norma, a atividade de teste de software deve fornecer informações objetivas 
sobre a qualidade do software que está em desenvolvimento. 
Sabemos que a certificação ISO 9001 não garante completamente que o 
desenvolvimento de software e o produto final de fato estejam de acordo com o 
que nossos usuários precisam e esperam, mas que todos os processos estão 
em conformidade com a norma. É claro que se a empresa é certificada, ela fará 
o possível para garantir tanto processos quanto software de acordo com o 
desejado pelos usuários finais. 
 
Leitura obrigatória 
SOMMERVILLE, 2011 
CAMPOS, 2016 
 
TROCANDO IDEIAS 
Refletir sobre a introdução da garantia de qualidade, por meio de metas, 
métricas, estatísticas e padrões em projetos de desenvolvimento de software. 
Quais seriam os custos para introduzirmos tantas avaliações, correções e 
padronizações? Precisaríamos de profissionais habilitados para tais tarefas, ou 
bastaria utilizarmos o próprio pessoal do desenvolvimento? 
 
SÍNTESE 
Estudamos até aqui sobre elementos importantes para garantia da 
qualidade. Tanto o gerenciamento quanto a garantia da qualidade querem 
 
17 
 
assegurar que o software tenha poucos defeitos e esteja em conformidade com 
padrões de manutebilidade, confiabilidade e portabilidade. Os padrões são muito 
importantes para a garantia de qualidade, pois por meio de suas melhores 
práticas oferecem uma base para construção de software de boa qualidade. 
O processo de documentação, que é um elemento bastante importante dentro 
da área de qualidade, pode ser baseado em um conjunto de procedimentos da 
garantia de qualidade sugeridas pela ISO 9001. Optar por revisões e inspeções 
garantirão melhoria no processo e no produto. As revisões dos entregáveis são 
técnicas usadas para avaliação da qualidade, enquanto que inspeção de 
programas ou revisão em pares buscam possíveis erros e omissões. Quando 
falamos em medição de software, usamos coleta de dados quantitativos capazes 
de subsidiarem métricas de software para garantir a qualidade tanto do produto 
quanto do processo. 
 
REFERÊNCIAS 
CAMPOS, F. M. Qualidade, qualidade de software e garantia da qualidade 
de software são as mesmas coisas?. Disponível em: 
http://www.linhadecodigo.com.br/artigo/1712/qualidade-qualidade-de-software-
e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx em maio de 
2016. 
INMETRO. Fundamentos da Qualidade. Disponível em: 
<http://www.inmetro.gov.br/qualidade/iaac/pdf/fundamentos-qualidade.pdf>. 
Acesso em: maio de 2016. 
LÉLIS, E. C. Gestão da qualidade. São Paulo: Pearson Prentice Hall, 2012. 
PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. 7. 
ed. Porto Alegre: AMGH, 2011. 
SOMMERVILLE, I. Engenharia de software. 9. ed. São Paulo: Pearson 
Prentice Hall, 2011. 
 
18 
 
SHIGUNOV NETO, A. Introdução à gestão da qualidade e produtividade: 
conceitos, história e ferramentas. Curitiba: InterSaberes, 2016. 
VENNERS, B. Design by contract: a conversation with Bertrand Meyer. Artima 
Developer, December 8, 2003. Disponível em: 
<www.artima.com/intv/contracts.html>. 
XIV Simpósio Brasileiro de Qualidade de Software. Anais. 17-21 de agosto de 
2015. Manaus. Disponível em: 
<https://drive.google.com/file/d/0B4ZBCAydIkutSUFuVVhCdXVnbDA/view>. 
Acesso em: maio de 2016. 
 
 
1 
 
 
 
 
 
 
 
 
 
 
 
 
QUALIDADE DE SOFTWARE 
AULA 3 
 
 
 
 
 
 
 
 
 
 
Prof.a Maristela Regina Weinfurter Teixeira 
 
2 
 
CONVERSA INICIAL 
Olá, seja bem-vindo. Assista ao terceiro vídeo da professora Maristela 
Regina Weinfurter Teixeira, que irá apresentar e contextualizar esta disciplina, 
bem como os assuntos que serão estudados nesta aula. 
 
CONTEXTUALIZANDO 
Estudamos questões importantes para a garantia da qualidade, e um 
conjunto de atividades de suma importância para a qualidade tanto do software 
quanto de seu processo são os testes. A estratégia de testes de software nos 
oferece roteiros que descrevem passo a passo cada procedimento a ser aplicado 
e em qual momento do processo de desenvolvimento. Sendo assim, toda 
estratégia de teste deve incorporar planejamento de teste, projeto de casos de 
teste, execução dos testes e avaliação dos dados resultantes, segundo 
(PRESSMAN, 2011). 
Historicamente a execução de testes vem se transformando há 
décadas (RIOS, 2008). Nos anos 70, os testes eram feitos pelos próprios 
desenvolvedores, e a nossa garantia era de que o produto funcionasse. Entre os 
anos 80 e 90 já tínhamos testes feitos pelos desenvolvedores e usuários para 
garantia dos requisitos iniciais do projeto. Entre os anos 90 e 2000, a garantia se 
baseava no produto funcionando, atendendo os requisitos e sem defeitos. Estes 
testes eram executados por meio de processos de testes feitos pelos 
desenvolvedores, usuários e testadores. Nos últimos anos, a complexidade tanto 
do desenvolvimento quanto dos testes aumentou significativamente, incluindo 
agora questões de segurança e performance. 
Mas quando olhamos para nosso dia a dia no desenvolvimento de 
software, quase que todos os problemas se tornam um bug. Sim, bug é 
considerado um defeito, uma falta, um problema, um incidente, uma anomalia ou 
qualquer outro problema que ocorra durante a execução de nosso software. 
 
3 
 
(PINHEIRO, 2015). Também temos uma definição mais formal sobre bug 
(PATTON, 2005 apud PINHEIRO, 2015): 
 
Um bug ocorre quando uma ou mais das opções abaixo for verdadeira: 
 O software NÃO faz algo que a especificação diz que ele deveria 
fazer; 
 O software FAZ algo que a especificação diz que ele NÃO 
deveria fazer; 
 O software faz algo que a especificação não menciona; 
 O software NÃO faz algo que a especificação NÃO menciona, 
mas deveria mencionar; e 
 O software é difícil de usar, entender, ou na visão do testador 
pode ser visto pelo usuário final como não estando correto. 
 
E o velho discurso vem à tona novamente: “O custo de um bug está 
diretamente associado à fase do ciclo de desenvolvimento em que o bug é 
encontrado. Um bug encontrado durante a especificação pode custar um dólar. 
O mesmo bug encontrado no release pode custar 100 vezes mais.” (PINHEIRO, 
2015). Quando analisamos os erros, 85% são simples de correção (menos de 1 
hora), 1% dos erros leva mais que alguns dias para correção, 80% do esforço de 
manutenção é gasto com 20% dos erros. (PINHEIRO, 2015). 
Agora falando um pouco mais sobre os famosos bugs, eles podem ser 
classificadosem 3 principais tipos (PINHEIRO, 2015): 
 ERRO, que ocorre devido à ação humana, resultado de um software com 
defeitos; 
 DEFEITO, o qual ocorre devido a problemas de informações, de dados, 
de instruções incorretas; e 
 FALHA, que ocorre quando um programa não se comporta conforme o 
estabelecido ou apresenta resultados inconsistentes. 
 
 
 
 
 
 
 
 
4 
 
Figura 1: Erros, defeitos e falhas 
 
Fonte: Claudio, 2016. 
 
Teremos muito a evoluir para atingirmos níveis de excelência na área de 
testes de software. Uma das grandes consequências da importância desta área 
dentro do desenvolvimento de software encontra-se nos vários cursos de 
pós-graduação espalhados mundo afora para suprir uma grande carência de 
profissionais. Isso porque, normalmente, os estudantes gostam de atuar no 
desenvolvimento dos projetos de software como desenvolvedores ou analistas, 
mas dificilmente gostam de atuar como profissionais da área de testes. É uma 
área que exige um grau de detalhe bastante grande, o que por vezes torna-se 
cansativo e repetitivo para alguns perfis de profissionais. 
 
Leitura obrigatória 
SOMMERVILLE, 2011 
 
Saiba mais 
http://www.linhadecodigo.com.br/artigo/2775/introducao-ao-teste-de-
software.aspx 
 
 
 
 
5 
 
Gostaria que agora você olhasse e refletisse sobre o número de 
oportunidades profissionais que esta área de qualidade de software pode 
oferecer-lhe. Utilize o link: <http://ibqts.com.br/> para compreender e ampliar sua 
visão sobre possibilidades de atuação na área de engenharia de software, 
focando em questões de qualidade e testes de software. Liste as certificações 
existentes, bem como suas finalidades dentro do processo de desenvolvimento 
de software. 
http://ibqts.com.br/ 
 
 
TEMA 1: O QUE É TESTE DE SOFTWARE? 
Nada melhor do que compreendermos sempre as definições e conceitos 
existentes para uma nova área de conhecimento que estejamos estudando. 
Então vamos à pergunta mais simples desde que iniciamos nossos encontros: O 
que é teste de software? “Teste de software é um conjunto de atividades que 
podem ser planejadas com antecedência e executadas sistematicamente. ”, 
segundo Pressman (2011). Todo teste deverá contar com um modelo (template) 
para utilização de técnicas específicas de projeto de caso, de teste e métodos 
de testes. Toda estratégia de testes deve acomodar testes de baixo nível, para 
verificação de um pequeno segmento de código fonte, bem como testes de alto 
nível, que validem funções do sistema de acordo com os requisitos elicitados. 
Cada estratégia fornece diretrizes para que o profissional responsável consiga 
cumprir uma série de metas. Não é novidade que desenvolvemos software 
sempre sob pressão em relação a prazos e custos, então, é importante obtermos 
formas de medição do progresso dos testes bem como dos problemas revelados 
e corrigidos o mais breve possível dentro do processo de desenvolvimento de 
software. 
A triste notícia é que podemos seguir muitos métodos, adotar muitas 
técnicas, adotar certificações de padrões de qualidade, mas mesmo assim ainda 
não ficaremos livres dos bugs. Diríamos que ainda é impossível testarmos todas 
 
6 
 
as possibilidades de formas e alternativas de entrada de dados, bem como as 
diversas possibilidades e condições criadas pela lógica de algoritmos de cada 
desenvolvedor. Há estimativas que garantem que a média do número de defeitos 
em programas liberados para testes é de 1 a 3 por 100 instruções executáveis 
(RIOS, 2008). E então você se perguntará: Se não conseguimos atingir 100% de 
excelência na área de testes, por que testar? Teremos que lembrá-lo que o 
propósito dos testes é a descoberta e correção dos problemas com foco na 
melhoria e na qualidade do software. Então, quanto ele deve melhorar? De 
acordo com o que a empresa está consciente em investir numa equipe de testes, 
capaz de tornar a quantidade de defeitos tendendo a zero. Logo, quanto mais 
tempo e recursos financeiros dedicados ao processo de testes, mais perto da 
satisfação do cliente chegaremos. 
Nunca devemos esquecer que o processo de desenvolvimento de 
software é feito por seres humanos, e que, apesar dos melhores métodos ou 
técnicas, profissionais também erram. E alguns problemas, dos quais já 
conversamos, podem advir de uma especificação incompleta ou errada, com 
limitações de hardware ou software, com uma base de dados organizada não da 
melhor forma, além de obviamente erros nos algoritmos. 
Compreendemos que por mais que criemos técnicas, métodos e 
ferramentas que apoiam o teste de software, continuaremos uma longa jornada 
com seres humanos que, em algum momento, podem errar por problemas 
simples, como falha na comunicação com seus stakeholders. Então, quando 
falamos de testes de software, estamos olhando para o produto e para o 
processo como um todo, e acabamos entrando em questões que não são 
meramente técnicas, mas subjetivas em relação à comunicação humana. 
Leitura obrigatória 
SOMMERVILLE, 2011 
 
 
 
 
7 
 
Saiba mais 
O IBQTS, Instituto Brasileiro de Qualidade em Testes de Software, é uma 
entidade de caráter de pesquisa e órgão certificador de profissionais da área 
de Engenharia de Requisitos e Engenharia de Testes de Software, reconhecido 
oficialmente por empresas e instituições de ensino, tanto no Brasil quanto no 
exterior. 
As certificações fornecidas pelo Instituto qualificam analistas de sistemas 
e negócio, desenvolvedores e testadores com interesse em obter um atestado 
de reconhecimento técnico válido para o mercado nacional e internacional, 
e estão aderentes a padrões internacionais de qualidade. 
Fundado em 2006, o IBQTS nasceu com a missão de aprimorar a 
capacidade produtiva dos profissionais de TI, melhorando a qualidade dos 
requisitos, desenvolvimento e testes. Com a necessidade cada vez maior de 
profissionais qualificados, o instituto certifica profissionais para a crescente 
competição internacional nas áreas de Engenharia Testes e Requisitos. Essas 
certificações oferecem a oportunidade de um diferencial competitivo. 
Disponível em: http://ibqts.com.br/ 
 
TEMA 2: PROCESSOS DE TESTES 
Como temos falado ao longo de nossos módulos que envolvem o 
desenvolvimento de software, sempre voltamos ao assunto: processo! 
Sim, processos são responsáveis pela organização de todas as tarefas e 
atividades que sejam necessárias para que atinjamos algum resultado em 
nossos projetos. E com o projeto de testes de software não é diferente! O 
processo de teste deve ter como base uma metodologia que seja aderente à 
metodologia que adotamos para o desenvolvimento do software. Deve possuir 
especialistas qualificados, ambiente e ferramentas adequados para que os 
resultados sejam alcançados. (RIOS, 2008). Uma metodologia de teste está 
descrita em um documento que organiza a atividade de teste dentro do contexto 
 
8 
 
do domínio do problema ou da organização. Esta metodologia deverá conter as 
fases do seu ciclo de vida, como por exemplo na Figura 2. 
 
Figura 2: Fases do ciclo de vida do processo de testes 
 
 
 
 
 
 
 
 
Fonte: Rios, 2008. 
 
Observando cada fase desta proposta de metodologia de testes, podemos 
descrevê-las da seguinte forma: 
Procedimentos Iniciais: consideram a elaboração de um documento chamado 
Guia Operacional de Testes (GOT), que estabelece o acordo entre as partes 
envolvidas no projeto de teste (usuários, desenvolvedores, pessoal de testes 
e de produção). 
Planejamento: consiste na elaboração e revisão da estratégia a ser adotada 
no plano de testes. 
Preparação:consiste no ambiente de teste (equipamentos, rede, pessoal, 
software e ferramentas). 
Especificação: elaboração e revisão dos casos de teste (ou scripts de teste), 
uso de ferramentas de automação e roteiros de teste e execução dos testes de 
verificação da documentação do sistema. Testes estáticos. 
Execução: execução de todo planejamento de testes conforme os casos de 
teste e roteiros de teste, registrando-se os resultados. 
Entrega: entrega do sistema testado e de dos devidos registros. 
Planejamento 
Preparação 
Procedimentos 
iniciais 
Entrega Especificação Execução 
 
9 
 
Na tabela 1 mostramos um detalhamento de cada fase de um processo 
de testes com suas ações requeridas e verificações. 
Processo de 
Teste 
Processo de 
Desenvolvimento 
Ações Requeridas 
Verificação/ 
Validação 
P
la
n
e
ja
m
e
n
to
 
Planejamento do 
projeto de 
desenvolvimento 
Integração dos planos. 
Preparação da estratégia de 
testes e planos de testes. 
Verificação (Revisões 
/ WalkThrough / 
Inspeção) 
E
s
p
e
c
if
ic
a
ç
ã
o
 
Projeto lógico e físico 
Revisão dos planos de 
testes 
Elaboração e revisão dos 
casos de teste e dos roteiros 
de teste 
Atualização do plano de 
projeto de desenvolvimento 
Verificação (Revisões 
/ WalkThrough / 
Inspeção) 
E
x
e
c
u
ç
ã
o
 
Construção 
Busca de defeitos e 
correções 
Verificação (Revisões 
/ WalkThrough / 
Inspeção e testes 
unitário, de 
integração de 
sistema) 
E
x
e
c
u
ç
ã
o
 
Implantação 
Busca de defeitos e 
correções 
Validação (Testes de 
aceitação) e 
Verificação (Revisões 
/ WalkThrough/ 
Inspeção) 
 
É sempre bom lembrarmos que quanto mais tarde um defeito for 
identificado, mais caro ficará para corrigi-lo. O aumento é sempre exponencial 
em relação ao trabalho de testes através das fases do projeto. 
Leitura obrigatória 
SOMMERVILLE, 2011 
 
TEMA 3: TIPOS DE TESTE 
Percebemos que precisamos montar um bom plano de ação e execução 
de testes que seja adequado ao tamanho de nosso projeto de desenvolvimento, 
pois envolverá um valor relativamente alto ao considerarmos o melhor dos 
 
10 
 
mundos. Vamos classificar estes testes existentes e suas características para 
compreendermos o que utilizar e em qual momento do nosso planejamento e 
execução de testes. 
Tipos de teste segundo Rios (2008): 
 Testes de regressão: garantem que o software atenda aos requisitos 
mesmo depois de sofrer manutenções. Um conjunto de dados e scripts 
contém uma baseline e executam para verificação de mudanças 
introduzidas posteriormente. Discrepâncias são resolvidas antes de se 
atingir o próximo nível de testes. 
 Testes de carga: avaliam a resposta de um software com pesada carga 
de dados e/ou grande número de usuários simultaneamente para 
verificação do nível de escalabilidade, confrontando o tempo de 
resposta ou falha. 
 Teste de estresse: simulação de situações que possam ocorrer em 
produção, como falta de memória, falta de espaço em disco. 
 Teste Back-to-back: executado em versões diferentes do software com 
comparação dos resultados. 
 Teste de configuração: verifica a aptidão do software para rodar em 
diferentes versões ou configurações de ambientes (hardware, browsers 
ou versões de browsers). 
 Teste de usabilidade: verificação do nível de facilidade de uso do 
software pelos usuários. Efetuado principalmente em aplicações Web em 
decorrência do grande número de navegações entre páginas. Clareza de 
linguagem, mensagens de erro e links para páginas também são testados. 
 Testes de instalação: verificação da instalação parcial, total ou 
atualização de aplicativo. 
 Testes de Segurança: validação da capacidade e qualidade da 
recuperação do software após crashes, falhas de hardware ou outros 
problemas catastróficos. 
 
11 
 
 Teste de compatibilidade: validação da capacidade do software em 
executar em um ambiente específico (hardware/software/sistema 
operacional/rede). 
 Teste de desempenho: garante que o sistema atenda aos níveis de 
desempenho e tempo de resposta acordados com os usuários e definidos 
nos requisitos. (Performance). 
 Testes funcionais: grupos de testes que avaliam a especificação versus 
a implementação. 
 Testes de qualidade de código: verificação do código fonte dos 
programas em conformidade com padrões, melhores práticas, instruções 
não executadas entre outros. 
 Testes de alterações: rastreiam alterações de programas durante o 
processo de testes. 
 Testes de recuperação de versões: verificação da capacidade de 
retorno a uma versão anterior do sistema. 
 Testes de interoperabilidade: avaliação das condições de integração 
com outros ambientes/sistemas (troca de informações). 
 Testes de sobrevivência (confiabilidade ou disponibilidade): 
avaliação da capacidade do software em continuar operando quando 
algum outro elemento pare de funcionar ou fique inoperante (hardware, 
por exemplo). 
 Testes estáticos: avaliação da documentação do projeto (modelos, 
requisitos). 
 Testes embutidos: avaliação da integração entre hardware e software. 
 Testes de verificação do site Web: verificação de problemas com 
determinados sites Web (links inválidos, arquivos órfãos, páginas lentas). 
 Testes de conferência de arquivos: verificação da alteração de arquivos 
utilizados. 
 Testes Alfa: executados em ambiente de desenvolvimento na 
proximidade da conclusão. 
 
12 
 
 Testes Beta: executados durante a fase desenvolvimento e testes, mas 
praticamente concluídos, com o maior número possível de defeitos e 
problemas encontrados antes do release final. 
 
Além de toda essa classificação de tipos de testes, temos ainda o que 
chamados de técnicas de testes e níveis de testes. 
Como técnicas de testes, temos testes de caixa preta e de caixa branca. 
Os testes de caixa preta testam a funcionalidade e sua aderência aos requisitos 
sem conhecimento do código e da lógica interna do sistema em teste, enquanto 
que os testes de caixa branca testam cláusulas de 
código, lógica interna e cada componente codificado, além de outros 
elementos técnicos. 
Estágios ou níveis de testes, segundo Rios (2008), consideram os seguintes 
grupos: 
 
 Testes unitários: estágio mais baixo na escala de testes. São testes de 
componentes versus suas especificações para que características e 
funcionalidades sejam verificadas independentemente do sistema total. 
Realizados pelos desenvolvedores. 
 Testes de integração: execução de uma combinação de componentes 
para verificação da execução em conjunto, conforme as especificações. 
Realizados pelos desenvolvedores. 
 Testes de sistema: realizados pela equipe de testes, observando a 
execução completa do sistema e seus subsistemas, dentro de um 
ambiente operacional controlado, para validação das funcionalidades 
do sistema. Uso de dados de teste para validação de situações 
mais próximas da realidade, que ocorrerá no momento do ambiente 
de produção. 
 Testes de aceitação: testes finais de execução do sistema, juntamente 
com usuários, tendo-se em mente que as soluções deverão atender aos 
objetivos do negócio e dos requisitos. Funcionalidade e usabilidade são 
 
13 
 
observadas neste momento. Usuários com suporte da equipe técnica de 
testes são responsáveis por este teste. 
 
Vimos que há uma quantidade razoável de tipos de testes, níveis e 
estágios. Só de observarmos toda esta possibilidade de testes, podemos 
concluir a quão custosa pode ser a tarefa de teste de software. Por isso é 
importante adotarmos um plano aceitável de acordocom o tamanho do projeto 
de software e de sua equipe de desenvolvimento e testes. 
 
Leitura obrigatória 
SOMMERVILLE, 2011 
CAMPOS, 2016 
 
Saiba mais 
Os 13 principais tipos de testes de software: 
http://www.targettrust.com.br/blog/desenvolvimento/testes/os-13-principais-
tipos-de-testes-de-software/ 
 
TEMA 4: REVISÕES E INSPEÇÕES 
Como a área de garantia da qualidade de software é muito abrangente, é 
comum errarmos ao utilizarmos determinados termos técnicos. Os termos 
comumente utilizados erroneamente são: revisões, inspeções, validações 
e verificações. 
Vamos iniciar pelos termos revisões e inspeções. As inspeções e 
revisões de software são atividades e técnicas estáticas que avaliam 
problemas na construção de software sem a necessidade de que o software seja 
executado em um ambiente computacional. 
Encontramos normalmente o processo de revisão estruturado em três 
fases (Sommerville, 2011): 
 
14 
 
1. Atividade de pré-revisão: são atividades preparatórias essenciais para 
a eficácia da revisão. Atividades relacionadas com planejamento e 
preparação da revisão. Envolve uma equipe de revisão, organização de 
tempo e lugar para que ocorram as revisões. Os envolvidos compreendem 
o que o software deverá fazer, bem como os documentos de padrões 
relevantes. Os revisores podem fornecer comentários sobre o software, 
caso não participem de alguma reunião de revisão. 
2. Reunião de revisão: durante a reunião o líder da revisão encaminha um 
documento com todos os problemas e questões de qualidade a serem 
discutidos. Este líder será responsável por garantir que todos os 
comentários escritos sejam considerados no relatório final. Além dos 
comentários, deverão ser registradas todas as ações corretivas 
acordadas durante a reunião. 
3. Atividades pós-revisão: todas as questões e problemas levantados 
devem ser abordados. Esse processo envolve a correção de bugs de 
software, refatoração de software entre outras técnicas para que esteja 
em conformidade com os padrões de qualidade ou necessidade de nova 
redação de documentos. Ao término, o presidente do grupo de revisões 
deve averiguar se todos os comentários foram levados em consideração. 
Dependendo do caso, será necessária nova reunião para apuração da 
conformidade com as reuniões de revisão. 
A Figura 3 nos demonstra de forma objetiva o processo de revisão de 
software, seguindo as atividades tratadas anteriormente. 
 
 
 
 
 
 
15 
 
Figura 3: Processo de revisão de software 
 
Fonte: Sommerville, 2011. 
 
Em um desenvolvimento ágil, o processo de revisão de software 
geralmente é mais informal. Por exemplo, na metodologia de desenvolvimento 
SCRUM, ocorre uma reunião de revisão após a conclusão de cada iteração do 
software (revisão de Sprint), na qual os problemas e as questões de qualidade 
podem ser discutidos. Já na XP (Extreme Programming), a programação em 
pares garante que o código esteja sendo examinado e revisto à medida que esse 
é desenvolvido pela equipe. As reuniões diárias de equipe trabalham as 
questões de qualidade. Normalmente, as abordagens ágeis não adotam 
padrões, logo as questões de conformidade são desconsideradas. 
Sempre é um contraponto a questão do uso de métodos ágeis para 
desenvolvimento quando abordamos questões de qualidade. A essência destes 
métodos encontra-se justamente na desburocratização e em não exagerar na 
documentação de software. Porém, percebemos o quanto é necessária a 
geração de documentos e modelos para efetuarmos a garantia da qualidade por 
meio de testes, inspeções, revisões e conformidade com padrões. 
Tomando o rumo das inspeções de programas, estas são consideradas 
revisões em pares, nas quais membros da equipe colaboram para a descoberta 
de bugs no programa em desenvolvimento. Modelos de UML podem ser 
checados pela utilização de casos de teste. As inspeções auxiliam na descoberta 
de problemas com testes, melhorando a eficácia desses testes ao se detectar 
 
16 
 
bugs no programa. Elas envolvem equipes de diferentes origens, as quais 
revisam linha por linha o código-fonte dos programas, buscando defeitos e 
problemas e os descrevem em relatórios nas reuniões de inspeção. Os defeitos 
podem ser erros lógicos, anomalias no código ou detalhes dos modelos de 
projeto. 
O interessante é lembrarmos que inspeções e revisões são estáticas e 
podem ser aplicadas tanto em código de programas quanto em modelos e 
documentação de projeto de software. Elas podem ser prejudicadas quando 
utilizamos métodos ágeis para o desenvolvimento de software, uma vez que a 
utilização de documentações com modelos do projeto não é comum em 
desenvolvimento ágil. 
Leitura obrigatória 
SOMMERVILLE, 2011 
 
 
TEMA 5: VERIFICAÇÕES E VALIDAÇÕES 
Conversamos sobre inspeções e revisões e agora nos resta 
compreendermos melhor o que são verificações e validações quando falamos 
em garantia da qualidade de software. Teste de software é um elemento muitas 
vezes conhecido como validação e verificação (V&V). Segundo Pressman 
(2011), “verificação refere-se ao conjunto de tarefas que garantem que o 
software implemente corretamente uma função específica. Validação refere-se 
a um conjunto de tarefas que asseguram que o software foi criado e pode ser 
rastreado segundo os requisitos do cliente.” 
Se fôssemos transformar em duas perguntas, teríamos as seguintes 
questões: 
“Verificação: Estamos criando o produto corretamente?” (PRESSMAN, 
2011). 
“Validação: Estamos criando o produto certo?” (PRESSMAN, 2011). 
 
17 
 
Esta definição V&V contém muitas atividades da garantia da qualidade de 
software. Incluem atividades como revisões técnicas, auditorias de qualidade e 
configuração, monitoramento de desempenho, simulação, estudo de viabilidade, 
revisão de documentação, revisão de base de dados, análise de algoritmo, teste 
de desenvolvimento, teste de usabilidade, teste de qualificação, testes de 
aceitação e teste de instalação (PRESSMAN, 2011). A garantia e a qualidade 
utilizam o teste como último elemento para estimar mais pragmaticamente seus 
erros descobertos. Na fase de verificação, utilizamos todos ou alguns dos testes 
que foram classificados no tema “tipos de testes”. Lá pudemos conhecer um 
pouco de cada tipo de teste e sua importância para a qualidade de software. 
Ao terminarmos a fase de verificação com o uso das técnicas escolhidas 
para cada projeto, voltamo-nos para a fase de validação. Agora nos 
preocuparemos com o sistema que é visualizado e reconhecido pelos usuários. 
Seu principal objetivo é apontar o sucesso do funcionamento do software, 
confrontando o esperado com o realizado. Os testes da validação demonstram 
conformidade com os requisitos. Logo, é importante que o plano de testes 
descreva as classes de testes a serem conduzidas e um procedimento de testes 
para definição dos casos de testes específicos que garantam os requisitos 
funcionais de acordo com as expectativas dos clientes. Alguns exemplos de 
requisitos cumpridos estarão em conformidade com transportabilidade, 
compatibilidade, recuperação de erro, manutenibilidade. Caso sejam 
descobertos desvios de especificação, cria-se uma lista de deficiências que 
serão corrigidas conforme um plano com prazos e negociações junto aos 
clientes. 
Percebemos até aqui que o tema sobre garantia da qualidade de processo 
e de software é extenso e carece de adaptação a cada tipo e tamanho de projeto. 
Que há diferenças conceituais entre revisões, inspeções, verificações e 
validações. Que cada uma tem seu grau de importância dentro do nosso 
processo de testes e qualidade de software. Que entraremos

Continue navegando