Escolar Documentos
Profissional Documentos
Cultura Documentos
DE SOFTWARE
PROF. WAGNER TOTH
GARANTIA DE QUALIDADE DE SOFTWARE
• Neste conteúdo, estudaremos os aspectos envolvidos na qualidade de um
processo de desenvolvimento de software, as normas envolvidas e as melhores
práticas utilizadas no mercado. Inicialmente, será abordada a ISO/IEC 12207 e
a ISO/IEC 15504, seus aspectos e categorias.
• Para contextualizar um pouco, imagine que você trabalha em uma equipe de
desenvolvimento de software e será responsável pela garantia da qualidade no
processo de desenvolvimento.
• Nesse contexto, é necessário fazer os seguintes questionamentos:
O que preciso saber em relação ao assunto “garantia de qualidade”?
Existe diferença entre qualidade do produto e qualidade do processo?
Existem ferramentas que podem auxiliar o processo de qualidade de software?
GARANTIA DE QUALIDADE DE SOFTWARE
• “Não é possível conceber um processo de garantia da qualidade de software
sem integrá-lo com o ciclo de desenvolvimento de software” (Bartié, 2002).
• As fases de desenvolvimento sempre estão ligadas com as fases de qualidade,
ou seja, para cada fase de desenvolvimento sempre deve existir pelo menos
uma atividade de qualidade envolvida.
• Esse modelo de organização de trabalho reforça o conceito de que a qualidade
é um objetivo comum, tanto da equipe de desenvolvimento quanto da própria
equipe de qualidade, e outras equipes envolvidas no processo.
GARANTIA DE QUALIDADE DE SOFTWARE
A garantia da qualidade de software também é conhecida por SQA (Software
Quality Assurance). Santos e Oliveira (2017) citam algumas atividades
essenciais na garantia de qualidade de software:
Aplicação de métricas adequadas;
Atribuição de ferramentas de especificação e análise do sistema que auxiliarão na
implementação do software e na confecção e execução dos testes de software;
Realização de revisões técnicas formais que devem ser executadas em cada fase do ciclo
de vida do software;
Execução de testes de software em diferentes fases do ciclo de vida do software;
Gerenciamento de mudanças;
Gerenciamento de documentos elaborados durante todas as fases da engenharia de
software;
Utilização de ferramentas que controlam padrões e técnicas.
GARANTIA DE QUALIDADE DE SOFTWARE
• Bartié (2002) propõe um modelo de qualidade em “U”, no qual as fases devem
sem aplicadas em uma sequência preestabelecida.
• O objetivo do processo de qualidade é garantir que durante o ciclo de
desenvolvimento do software produza efetivamente todos os produtos
previstos na metodologia empregada e que o aplicativo que está sendo
construído esteja adequado com os requisitos documentados. (BARTIÉ, 2002)
• Neste contexto, abordaremos os testes de verificação e validação.
• Este é focado na garantia da qualidade do produto, enquanto aquele visa
garantir o processo.
GARANTIA DE QUALIDADE DE SOFTWARE
A figura a seguir exemplifica o funcionamento do modelo de qualidade em “U”.
GARANTIA DE QUALIDADE DE SOFTWARE
• No ciclo de desenvolvimento de software, podemos observar duas macro fases
bem distintas: na primeira, são realizadas atividades de levantamento de
requisitos, informações de negócios e planejamento da arquitetura.
• Nesse momento, o foco principal é o alinhamento entre as necessidades do
negócio e o software que está sendo desenvolvido, os artefatos produzidos são os
documentos com as especificações.
• É nesse momento que os testes de verificação se destacam.
• A segunda fase é o momento no qual a solução é propriamente desenvolvida.
• Nesse momento, os testes devem focar na avaliação do produto em si,
verificando se ele está de acordo com os requisitos do sistema identificados nas
fases anteriores.
• Esses testes são denominados testes de validação.
GARANTIA DE QUALIDADE DE SOFTWARE
PROCESSO DE GARANTIA DE QUALIDADE DO PROCESSO
• Quando abordamos o tema qualidade do processo, devemos ter em mente de que ele está diretamente
relacionado aos testes de verificação.
• “É missão dos testes de verificação avaliar se toda a documentação gerada e todas as atividades que
estão sendo desempenhadas estão sendo conduzidas adequadamente, gerando um modelo de software
aderente às necessidades dos clientes”.
• O objetivo desses testes é avaliar a qualidade de todo o processo que está suportando o desenvolvimento
de software, reduzindo o risco de problemas de interpretação, por exemplo, inserirem falhas nos produtos.
• Algumas características dos testes de verificação:
são sistematizados e planejados;
aplicados na íntegra;
também são baseados em revisões;
realizados de forma estruturada e com objetivos definidos;
devem ser parte do processo de engenharia de software;
normalmente são conduzidos pela área de garantia da qualidade de software ou outra área de qualidade independente;
não deve ser tarefa da equipe de desenvolvimento.
GARANTIA DE QUALIDADE DE SOFTWARE
• Bartié cita algumas boas práticas que podem aumentar ainda mais a eficiência das verificações:
Profundidade das análises e discussões;
Uniformidade das atividades;
Continuidade e frequência;
Revisores experientes;
Presença de um moderador nas reuniões;
Revisões curtas e bem focadas;
Identificar problemas, não resolvê-los;
Concluir as revisões. (Bartié, 2002)
• Também são definidos alguns papéis importantes que podem ser utilizados nas reuniões de
verificação:
moderador;
escrivão;
autor;
revisor.
GARANTIA DE QUALIDADE DE SOFTWARE
PROCESSO DE GARANTIA DE QUALIDADE DO PRODUTO
• A qualidade do produto está relacionada aos testes de validação, os quais têm como
objetivo detectar a maior quantidade possível de erros ou quebras no processo.
• O sucesso da execução desses testes está pautado principalmente em um
planejamento efetivo das atividades de testes.
• Existem duas abordagens de testes para conduzir o processo de validação: testes de
caixa branca ou testes de caixa preta.
• Quando nos referimos aos testes de caixa branca, estamos relacionando os testes
que se baseiam na arquitetura interna do software.
• “Para realizar os testes de caixa branca é necessário que o profissional de testes
conheça a tecnologia empregada pelo software, bem como possua um adequado
conhecimento da arquitetura da solução” (Bartié, 2002).
GARANTIA DE QUALIDADE DE SOFTWARE
• A estratégia de caixa preta “utiliza técnicas para garantir que os requisitos do software são plenamente
atendidos pelo software que foi construído” (Bartié, 2002).
• Essa estratégia não requer conhecimento da tecnologia e arquitetura do sistema por parte do testador.
Esses testes são mais simples que o de caixa branca.
• Além das estratégias de testes citadas, também existem “diversas abordagens para se planejar e aplicar os
testes de validação, porém todo o direcionamento dos testes será baseado em requisitos ou na estrutura
interna do código-fonte” (Bartié, 2002).
• A seguir, serão citadas algumas abordagens propostas por Bartié:
Testes baseados na estrutura interna: requer conhecimento das estruturas internas do projeto, algoritmo e tecnologia
(exemplo: caixa branca);
Testes baseados em requisitos: os requisitos são decompostos e modelados no formato de casos de testes (exemplo:
caixa preta)
Progressividade e Regressividade dos testes: os testes de progressão são elaborados à medida que o software evolui,
enquanto que os de regressão estão relacionados à reexecução de subconjunto (total ou parcial) de testes previamente
executados.