Escolar Documentos
Profissional Documentos
Cultura Documentos
Inserir Software
Aqui
Inserir Título Aqui
Verificação e Validação de Software
Revisão Textual:
Prof.ª Me Natalia Conti
Verificação e Validação de Software
Objetivos
• Compreender a importância da qualidade no desenvolvimento de sistemas de software;
• Entender os conceitos de qualidade de software e as técnicas de verificação e validação
de software.
Caro Aluno(a)!
Normalmente, com a correria do dia a dia, não nos organizamos e deixamos para o úl-
timo momento o acesso ao estudo, o que implicará o não aprofundamento no material
trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas.
Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você
poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns
dias e determinar como o seu “momento do estudo”.
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de
discussão, pois estes ajudarão a verificar o quanto você absorveu do conteúdo, além de
propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de
troca de ideias e aprendizagem.
Bons Estudos!
UNIDADE
Verificação e Validação de Software
Contextualização
Diversas organizações compromissadas com a busca pela qualidade vêm aplicando
técnicas de Verificação e Validação (V&V) em seus produtos de software, tais como ins-
peção e teste, o que tem aumentado a qualidade dos sistemas de software, contribuindo
para redução de defeitos e diminuição de custos, além de aumentar a confiabilidade do
produto e a satisfação dos usuários que utilizam produtos de software verificados e va-
lidados. No que tange à execução de testes, há quem ainda acredita que essa atividade
pode ser realizada por qualquer pessoa com baixo ou nenhum nível de preparo, não
requerendo conhecimentos específicos sobre tal atividade. Para que o teste de software
alcance seus objetivos e assegure a garantia da qualidade, é necessário planejamento,
conhecimento do domínio de negócio no qual este está inserido; utilização de metodolo-
gias, técnicas e ferramentas de teste, além de características pessoais como criatividade,
dedicação, paciência e potencial investigativo por parte dos profissionais envolvidos com
as atividades de teste de software.
6
Verificação e Validação de Software
Este material teórico apresenta a importância dos processos de Verificação e Vali-
dação (V&V) no desenvolvimento de sistemas de software, enfatizando conceitos de
qualidade e técnicas de verificação e validação, especificamente inspeção e teste.
Qualidade de Software
Ao estudar teste de software, você está tentando assegurar a qualidade de um sistema
(ou produto) de software.
Além do sistema de software funcionar, ele precisa atender diversos atributos de qualidade
(requisitos funcionais), tais como segurança, portabilidade, usabilidade, desempenho,
confiabilidade, manutenibilidade, robustez. É possível garantir que o software contemple
todos esses atributos?
Não é possível qualquer sistema de software ser desenvolvido para atender todos
esses atributos de qualidade, pois existem requisitos não funcionais que são conflitantes,
por exemplo, a melhoria da robustez pode levar à perda de desempenho. Portanto, um
plano de qualidade deve priorizar os atributos de qualidade mais importantes para o
software que está sendo desenvolvido. Além disso, um plano de qualidade deve incluir
uma definição do processo de avaliação de qualidade, uma forma acordada de avaliar
se algum atributo de qualidade, como a de manutenção ou robustez, estão presentes no
sistema de software (SOMMERVILLE, 2011).
7
7
UNIDADE
Verificação e Validação de Software
8
passado. Os padrões são um framework que define o significado da visão de qualidade
de uma organização, já que fornece a continuidade, possibilitando assim que pessoas
novas possam compreender a organização por meio dos padrões adotados (SOMMER-
VILLE, 2011). A tabela 1 apresenta exemplos de padrões de produto e de processo.
IEEE, ISO e outras organizações de padronizações criaram uma ampla relação de pa-
drões para engenharia de software e documentos relacionados. O papel da garantia da
qualidade de software é assegurar que os padrões adotados por uma organização sejam
seguidos e que todos os produtos resultantes estejam em conformidade com os referidos
padrões (PRESSMAN e MAXIM, 2016).
ISO/IEC 9126 é uma norma para qualidade de produto de software que define um conjunto
de parâmetros com o objetivo de padronizar a avaliação da qualidade de software. Ela se
enquadra no modelo de qualidade das normas da família 9000. Maiores informações sobre
essa norma podem ser encontradas em https://goo.gl/FJJxnM
9
9
UNIDADE
Verificação e Validação de Software
Verificação
Ciclo de vida de Ciclo de vida de
DS (FAZ) Validação testes (Confere)
Correções
Completadas
10
Definição dos requisitos Passo 1
do sotfware Acesso ao plano de
desenvolvimento e situação
Passo 2
Desenvolvimento
do planode testes
Passo 3
Testes dos requisitos
Construção do sotfware do sotfware
Passo 4
Testes do desenho
do sotfware
Instalação do sotfware
Passo 5
Teste da construção
do sotfware
Passo 6
Execução e registro
dos testes
Passo 7
Teste de aceitação
Operação e
Manutenção do
sotfware
Passo 8
Informação dos
resultados dos testes
Passo 9
Teste das mudanças
no sotfware
Passo 10
Avaliação da eficácia
dos testes
11
11
UNIDADE
Verificação e Validação de Software
ficados. Os testes de verificação e validação são complementares e não devem ser vistos
como atividades redundantes, pois têm naturezas e objetivos diferentes, fortalecendo
o processo de identificação de defeitos e aumentando a qualidade final do produto de
software (BARTIÉ, 2002).
Modelo de
Negócios
1 Disponibilização
de Solução
8
Verificação Verificação
de Negócios do Aceite
Especificação
de Requisitos
2 Sistema
Especificado ou
Modificado
7
Verificação Clientes Verificação
de Requisitos Patrocinadores de Sistema
Usuários
Análise e
Montagem
3 Implementação 4 Unidade
Especificada ou
Modificada
5 Integração
Especificada ou
Modificada
6
Verificação
Análise e Verificação da Verificação Verificação
Montagem Implementação da U nidade da Integração
12
A figura 4 ainda mostra que os testes de validação também são aplicados de acordo
com as fases de desenvolvimento:
• Validação da unidade: os testes são aplicados em componentes executáveis isolados;
• Validação da integração: os testes são aplicados entre componentes, conforme
eles vão sendo integrados;
• Validação do sistema: os testes são aplicados em sistemas ou módulos completos;
• Validação do aceite: aceitação de um sistema ou módulos por parte dos clientes
e/ou da comunidade usuária (BARTIÉ, 2002).
Vale ressaltar que este material teórico contempla as atividades de inspeção e de teste
de software.
13
13
UNIDADE
Verificação e Validação de Software
Inspeção de Software
A inspeção de software está interessada na análise da representação estática do
sistema de software, visando a identificação de problemas, podendo ser apoiada por
ferramentas baseadas em documentos e análise de código. Essa técnica envolve pessoas
examinando principalmente a representação do código-fonte com o objetivo de desco-
brir anomalias e defeitos, não exigindo a execução do sistema e podendo ser aplicada
antes da implementação. As inspeções podem ser aplicadas em qualquer representação
do sistema, tais como requisitos, dados de projeto (design), configuração, dados de teste,
e assim por diante. Essa técnica tem se mostrado bastante eficaz para descobrir defeitos
em um sistema de software (SOMMERVILLE, 2011).
Inspeções
Protótipo
de sistema Teste
Nós podemos afirmar que as atividades de inspeção e teste são técnicas concorrentes?
Não, muito pelo contrário, essas técnicas são complementares. Ambas devem ser apli-
cadas durante os processos de V&V. De qualquer forma, é importante ressaltar que as
14
inspeções podem verificar a conformidade com uma especificação, mas não a conformi-
dade com os requisitos reais do cliente. As inspeções não podem verificar características
não-funcionais, como desempenho, usabilidade, dentre outras (SOMMERVILLE, 2011).
Teste de Software
O teste está interessado na análise dinâmica do sistema, visando executar o software
com dados de teste a fim de observar o comportamento operacional do produto. Um
bom teste deve revelar a presença de erros, não a sua ausência.
Os testes são destinados a mostrar o que um software faz, o que pretende fazer e
para descobrir os defeitos antes do produto ser colocado em uso. Ao testar o software,
você executa um programa usando dados de teste, permitindo verificar os resultados
para erros, anomalias ou mesmo informações sobre os requisitos não funcionais do
sistema de software. O teste é uma atividade de verificação e validação de software
(SOMMERVILLE, 2011).
De acordo com Sommerville (2011), a atividade de teste tem dois objetivos distintos:
• Demonstrar para o desenvolvedor e o cliente que o software atende aos seus requi-
sitos, configurando testes de validação, pois é esperado que o software seja execu-
tado corretamente usando um determinado conjunto de casos de teste que refletem
o uso esperado do sistema;
• Revelar situações em que o comportamento operacional do software está incor-
reto, indesejável ou em desacordo com sua especificação, configurando testes de
defeito, pois os casos de teste são elaborados para revelarem defeitos; os casos de
teste visando testes de defeito podem ser propositadamente obscuros, não sendo
necessário representar como o sistema de software é usado normalmente.
15
15
UNIDADE
Verificação e Validação de Software
Não há uma classificação universal quanto aos estágios (ou níveis de teste). Os livros
classificam os estágios de teste utilizando terminologias distintas, apesar dos significados
serem semelhantes.
Bastos et al. (2012) consideram que o estágio (ou nível) representa o “quando”, ou
melhor, a fase de desenvolvimento na qual um determinado tipo de teste deve ser apli-
cado. Esses estágios de teste são:
• Teste de unidade: estágio mais baixo da escala de teste, aplicado aos menores ele-
mentos de código desenvolvidos, visando garantir que eles atendam as especifica-
ções funcionais e arquiteturais. Esse teste costuma ser realizado pelo programador
que testa as unidades individuais: funções (ou métodos), classes e componentes;
• Teste de integração: teste do sistema ao término de cada iteração (ciclo de desen-
volvimento ou sprint), a fim de validar a integração dos componentes. Esse teste cos-
tuma ser realizado pelo analista de sistemas que testa um módulo ou conjunto destes;
• Teste de sistema: teste da execução do sistema de software como um todo, para
validar a execução de suas funções a partir de cenários oriundos de casos de uso
ou estórias de usuário. Esse teste costuma ser realizado pelo analista em ambiente
de teste;
• Teste de aceitação: último teste antes da implantação do sistema de software, sendo
sua execução de responsabilidade do cliente. Este visa verificar se o software está pron-
to para ser utilizado pelos usuários para executar as funções para as quais o produto foi
construído. Costuma ser realizado pelo usuário em ambiente de homologação.
O teste de unidade é planejado a partir da fase de construção do software, sendo que esse
estágio geralmente é feito pelo desenvolvedor (programador). Um teste de método de
classe é um teste de unidade.
O teste de integração é planejado a partir da fase de projeto (design) arquitetural, sendo
que esse estágio geralmente é realizado pelo analista de sistemas, arquiteto ou desenvol-
vedor. Um teste de integração de subsistemas é um teste de integração.
O teste de sistema é planejado a partir da fase de especificação (requisitos, casos de uso,
estórias de usuário), sendo que esse estágio de teste geralmente é feito pelo analista de
teste (testador). Um teste de requisito é um teste de sistema.
O teste de aceitação é planejado a partir dos requisitos levantados no domínio de negócio,
sendo que esse estágio geralmente é feito pelo analista (testador) e pelo usuário. Um teste
de liberação do software para ser implantado no ambiente do cliente é um teste de aceitação.
16
Este material teórico apresentou a importância dos processos de Verificação e Va-
lidação (V&V) no desenvolvimento de sistemas de software, enfatizando conceitos de
qualidade de software e as técnicas de verificação e validação de software, especifica-
mente inspeção de software e teste de software. O teste de software será abordado em
maiores detalhes nas próximas unidades desta disciplina.
17
17
UNIDADE
Verificação e Validação de Software
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
ASQ - The Global Voice of Quality
https://goo.gl/F1n1SU
SWEBOK
https://goo.gl/c5ZkLt
Leitura
ISO/IEC 9126
https://goo.gl/FJJxnM
Software Engineering Body of Knowledge
https://goo.gl/351bQA
18
Referências
BARTIE, A. Garantia da qualidade de software. 1.ed. Rio de Janeiro: Campus
Elsevier, 2002.
19
19