Você está na página 1de 20

QUALIDADE E TESTE

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.

•A seguir, serão abordados conceitos relacionados às principais ferramentas utilizadas no apoio ao


processo de qualidade de software.
GARANTIA DE QUALIDADE DE SOFTWARE
FERRAMENTAS DE APOIO AO PROCESSO QUALIDADE
• As sete ferramentas do controle da qualidade são um conjunto de ferramentas
estatísticas de uso consagrado para melhoria da qualidade de produtos,
serviços e processos.
• Tudo nesse mundo varia e obedece a uma distribuição estatística. É necessário,
então, ter um domínio sobre essas variações.
• A estatística oferece o suporte necessário para coletar, tabular, analisar e
apresentar os dados dessas variações
• Dentre as ferramentas mais utilizadas, destacam-se as denominadas
ferramentas básicas da qualidade: “Diagrama de Pareto, Diagrama de Causa e
Efeito, Lista de Verificação, Histograma, Diagrama de Dispersão, Gráfico
Linear e Gráfico de Controle” (Guerreiro, 2012).
GARANTIA DE QUALIDADE DE SOFTWARE
• Apresentam-se, a seguir, algumas das principais ferramentas aplicadas à
qualidade de software:
• Sonar: avalia o código-fonte e aponta uma série de possíveis problemas.
• Possui uma interface gráfica muito rica, com relatórios e gráficos que exibem os
resultados das análises.

• FindBugs: essa ferramenta analisa implementações de maneira estática.


• Ela indica possíveis erros por meio de padrões de implementação.
• Santos e Oliveira (2017) citam alguns padrões que essa ferramenta pode verificar:
"Complexidade das funcionalidades da linguagem; APIs utilizadas de maneira errônea;
Erros do programador (estruturas incorretas ou erro de digitação)".
• A ferramenta também possui uma classificação própria dos erros encontrados, que estão
divididos em: corretude, prática ruim, concorrência, performance e código malicioso.
GARANTIA DE QUALIDADE DE SOFTWARE
• UCDetector: essa ferramenta analisa o código-fonte e tem como objetivo detectar
códigos desnecessários no sistema, por exemplo:
 códigos que nunca serão executados;
 visibilidade de variáveis declarada de maneira incorreta.
• Metrics (Eclipse): esse é um plugin do Eclipse que faz a coleta de diversas
métricas, como:
 número de classes;
 número de classes filhas;
 número de interfaces;
 número de métodos;
 número de métodos sobrescritos;
 número de campos;
 linhas de código;
 complexidade ciclomática.
GARANTIA DE QUALIDADE DE SOFTWARE
• Android Robotium: é um framework de testes automatizados para Android,
que suporta JUnit.
• Ele pode ser utilizado para testar aplicações nativas e também as híbridas. Também pode
ser integrado com ferramentas como Maven, Ant e Gradle.

• Calabash: é uma ferramenta de automatização de testes que pode ser utilizada


para testar aplicações nativas e também as híbridas tanto na plataforma
Android quando para iOS.
• Os seus scripts de testes são criados baseado em BDD (Behavior Driven Development).
GARANTIA DE QUALIDADE DE SOFTWARE
FERRAMENTAS DE APOIO AO PROCESSO DE GESTÃO DE
DEFEITOS
• Além das ferramentas citadas, não podemos deixar de comentar sobre as
ferramentas que fazem a gestão do processo de qualidade no tocante aos
defeitos.
• Além de serem reportados, eles devem ser gerenciados por uma ferramenta
que acompanhe o ciclo de vida de correção dos problemas encontrados no
software. A seguir, são citadas algumas ferramentas com este fim.
• Mantis: ferramenta web, open-source e gratuita, que tem como objetivo
controlar o ciclo de vida dos defeitos, utilizando workflows personalizáveis.
• Bugzilla: ferramenta web, open-source e gratuita, muito semelhante ao Mantis,
porém com uma interface um pouco mais amigável.
GARANTIA DE QUALIDADE DE SOFTWARE
• Lean Testing: ferramenta web, open-source e gratuita, utilizada para o acompanhamento
dos defeitos e também para a gestão dos casos de testes.
• Redmine: além de ser utilizada para controle de projetos, essa ferramenta web e open-
source também é utilizada na gestão de defeitos.
• JIRA: ferramenta licenciada, com vários adicionais e plugins, muito utilizada na gestão
de incidentes e defeitos em geral.
• Possui interface web.
• Fornece um conjunto completo de registro, comunicação, fluxo de trabalho e outros recursos, além de
ser voltada para o mercado em geral, e não somente para a área de engenharia de software.

• HP ALM: ferramenta licenciada e web, muito utilizada na gestão de incidentes e defeitos


em geral e também gerencia os casos de testes, além de apresentar uma série de relatórios
gráficos.
• IBM Rational Clear Quest: ferramenta licenciada e web, muito utilizada na gestão de
defeitos, oferece a possibilidade de integração com ferramentas de automação.
GARANTIA DE QUALIDADE DE SOFTWARE
• Neste conteúdo, foram abordados temas relacionados à qualidade do produto e
qualidade do processo e também as atividades de verificação e validação foram
devidamente classificadas e diferenciadas.
• Foram citadas uma série de ferramentas que podem auxiliar no processo de
gestão de defeitos e do controle de qualidade do código.
• Além disso, são disponibilizadas no mercado inúmeras outras opções de
ferramentas relacionadas à qualidade, além da possibilidade dos profissionais
do time de qualidade se certificarem na área de qualidade de software e testes.
GARANTIA DE QUALIDADE DE SOFTWARE
REFERÊNCIAS
• ALM QC. Disponível em: <https://software.microfocus.com/en-us/products/application-
lifecycle-management/overview#.UofvFMSsjlM>. Acesso em: 26 mar. 2018.
• BARTIÉ, A. Garantia da qualidade de software: as melhores práticas de engenharia de
software aplicadas à sua empresa. Rio de Janeiro: Elsevier, 2002
• BUGZILLA. Disponível em: <http://www.bugzilla.org>. Acesso em: 26 mar. 2018.
• GUERREIRO, K. M. S. Qualidade e produtividade. Curitiba, 2012. Disponível em:
<http://redeetec.mec.gov.br/images/stories/pdf/proeja/qualidade_produt.pdf>. Acesso em:
26 mar. 2018.
• IBM Rational Clear Quest. Disponível em: <http://www-
03.ibm.com/software/products/en/clearquest>. Acesso em: 26 mar. 2018.
• JIRA. Disponível em: <https://www.atlassian.com/software/jira>. Acesso em: 26 mar.
2018.
GARANTIA DE QUALIDADE DE SOFTWARE
• KOSCIANSKI, A.; SOARES, M. S. Qualidade de software: Aprenda as
metodologias e técnicas mais modernas para o desenvolvimento de software.
2. ed. São Paulo: Novatec, 2007.
• LEANTESTING. Disponível em: <https://leantesting.com>. Acesso em: 26
mar. 2018.
• MANTHIS. Disponível em: <http://www.mantisbt.org>. Acesso em: 26 mar.
2018.
• REDMINE. Disponível em: <http://www.redmine.org>. Acesso em: 26 mar.
2018.
• SANTOS, L. D. V. S.; OLIVEIRA, C. V. S. Introdução à garantia de
qualidade de software. São Paulo: Cia do Ebook, 2017.

Você também pode gostar