Buscar

Verificação e Validação de Software

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 5 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

Prévia do material em texto

6ºAula
VERIFICAÇÃO E VALIDAÇÃO DE 
SOFTWARE
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de: 
• entender o que é verificação e a validação de Software;
• conceituar o que é qualidade de Software;
• entender o que são revisões;
• conhecer o que são testes.
Olá pessoal, como estão?
Agora, vamos estudar mais um aspecto da Engenharia 
de Software: a verificação e a validação de software. Esses 
processos tratam da forma que o software é verificado, em 
busca de problemas e erros, com o objetivo de entregar um 
software de qualidade aos interessados por ele.
Lembre-se de ler atentamente esta aula. Se tiver qualquer 
dúvida, nos avise por meio das ferramentas da área do aluno.
Bons estudos!
Introdução à Engenharia de Software 40
Seções de estudo
1. O que é verificação e validação de software?
2. Qualidade de software
3. Revisões
4. Testes
1 - o que é verifi cação e validação de 
software?
Para começar, vamos ver o que Sommerville fala a 
respeito da Verifi cação e Validação de Software:
Os processos de verifi cação e validação objetivam 
verifi car se o software em desenvolvimento 
satisfaz suas especifi cações e oferece a 
funcionalidade esperada pelas pessoas que estão 
pagando pelo software. Esses processos de 
verifi cação iniciam-se assim que os requisitos 
estão disponíveis e continuam em todas as fases 
do processo de desenvolvimento.
O objetivo da verifi cação é checar se o software 
atende a seus requisitos funcionais e não 
funcionais. Validação, no entanto, é um processo 
mais geral. O objetivo da validação é garantir que 
o software atenda às expectativas do cliente. Ele 
vai além da simples verifi cação de conformidade 
com as especifi cações, pois tenta demonstrar que 
o software faz o que o cliente espera que ele faça. 
A validação é essencial porque [...], especifi cações 
de requisitos nem sempre refl etem os desejos ou 
necessidades dos clientes e usuários do sistema.
O objetivo fi nal dos processos de verifi cação 
e validação é estabelecer a confi ança de que o 
software está ‘pronto para seu propósito’. Isso 
signifi ca que o sistema deve ser bom o sufi ciente 
para seu intuito (SOMMERVILLE, 2011, p. 
145).
 
Muitos desenvolvedores de software ignoram a verifi cação 
e a validação de software, afi rmando que é um tempo gasto de 
maneira desnecessária. Mas, precisamos, de alguma maneira, 
saber se o sistema atende perfeitamente aos seus requisitos, 
satisfazendo às necessidades dos stakeholders.
À medida que os computadores se tornaram mais 
necessários nas sociedades, a necessidade de verifi car se os 
sistemas estão atendendo o que foi acertado entre stakeholders 
e projetistas se tornou mais contundente. Cada vez mais, as 
nossas vidas dependem dos computadores, e um erro pode 
causar prejuízos ou problemas irreversíveis.
Assim, Barry Boehm (apud SOMMERVILLE, 2011) 
afi rma sobre esses dois processos:
• Validação: estamos construindo o produto certo?
• ‘Verifi cação: estamos construindo o produto da 
maneira certa?’
Assim, podemos entender a Verifi cação e a Validação de 
Software como sendo um conjunto de processos práticos que 
procuram atestar e manter a premissa de que o sistema está 
sendo desenvolvido no caminho certo.
A Verifi cação e Validação de Software coloca várias 
técnicas que podemos usar para atestar o que nós queremos. 
São as Revisões e os Testes. Nesta aula, vamos abordar de uma 
forma sucinta essas técnicas e defi nir a qualidade de software. 
Mais detalhes serão discutidos na disciplina de Verifi cação e 
Validação de Software.
A seguir, vamos ver o que signifi ca qualidade de software.
2 - Qualidade de software
Para começar, vamos ver o que o dicionário afi rma sobre 
o que é Qualidade:
Qualidade, segundo o dicionário
qualidade
qua·li·da·de
sf
1 Atributo, condição natural, propriedade pela qual algo ou alguém se 
individualiza; maneira de ser, essência, natureza: “Que qualidade de 
homem é esse sobrinho?” (MA1).
2 Traço positivo inerente que faz alguém ou algo se sobressair em 
relação aos demais; excelência, talento, virtude: “D. Fernanda possuía, 
em larga escala, a qualidade da simpatia” (MA4).
3 Conjunto de características que fazem parte da personalidade 
de um indivíduo e que o diferenciam de todos os outros; caráter, 
índole, temperamento: Suas principais qualidades são a paciência e a 
generosidade. Faltam-lhe as qualidades de um líder.
4 Grau de perfeição, de precisão ou de conformidade a certo padrão: 
“Falta uma outra espécie de parâmetro que defi na qualidade, no 
universo musical. Uns fazem canções, outros fazem som, alguns 
fazem barulho” (AAn).
5 Um tipo ou uma variedade particular; categoria, espécie, tipo: A 
fábrica produz apenas uma qualidade deste artigo.
6 Cargo ou função que se ocupa na sociedade, na política, numa 
empresa etc. de que resultam direitos e obrigações; posição: Ele não 
falou na qualidade de ministro, mas na de cidadão comum.
7 Título de habilitação profi ssional.
8 PEJ Conjunto de características de caráter negativo; espécie, laia: 
Não entendo o seu amor por uma pessoa dessa qualidade.
9 FON Conjunto de traços distintivos dos fonemas vocálicos (zona de 
articulação, timbre, intensidade, papel da cavidade nasal e bucal etc.).
10 FILOS Acidente que modifi ca a substância, sem lhe alterar a 
essência.
11 FILOS Conjunto de aspectos sensíveis da percepção resultantes 
de uma síntese efetuada pelo espírito.
12 FILOS Propriedade do juízo que percebe a conveniência ou 
desconveniência entre sujeito e predicado.
Fonte: QUALIDADE. In: Dicionário Michaelis On-line. s.d. Disponível em: < https://
michaelis.uol.com.br/moderno-portugues/busca/portugues-brasileiro/qualidade/ 
>. Acesso em: 24 out. 2018.
 A defi nição mostrada aqui tem muitos conceitos. 
Mas, o conceito-chave se refere a uma virtude positiva, citado 
na primeira e na segunda defi nição.
Para uma pessoa conceituar a qualidade, dependerá do 
seu senso de opinião próprio. Assim, cada pessoa tem a sua 
noção de qualidade, para fazer os seus julgamentos ou para 
41
defi nir se algo tem qualidade ou não. Ou seja, de acordo com 
seus conceitos, uma pessoa poderá considerar um produto 
como sendo de qualidade, enquanto outra, ao contrário, avaliar 
o mesmo produto como sem qualidade. Isso não ocorre só 
com a qualidade, ele acontece com outras classifi cações.
Na Engenharia de Software usamos os processos de 
Verifi cação e Validação de Software para atingir um nível 
de qualidade no desenvolvimento de software. Aliás, isso é 
um subprocesso, denominado de Garantia de Qualidade de 
Software (SQA). Pressman e Maxim relatam:
A garantia da qualidade de software (SQA) 
abrange: (1) um processo de SQA, (2) tarefas 
específi cas de garantia e controle da qualidade 
(inclusive revisões técnicas e uma estratégia 
de testes multicamadas), (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 
(quando aplicáveis) e (6) mecanismos de medição 
e de geração de relatórios. (PRESSMAN; 
MAXIM, 2016, p. 449)
 Abordaremos com mais detalhes esse gerenciamento 
de qualidade na próxima aula. Agora, vamos começar a ver 
uma das principais técnicas para Verifi cação e Validação de 
Software: as Revisões.
3 - Revisões
Para começar, vamos pensar: quem nunca precisou fazer 
alguma coisa, e depois entregou o que você fez para algum 
terceiro - como o seu colega de sala, por exemplo, para verifi car 
erros que você nunca percebeu? É assim que as revisões 
trabalham.
Assim, podemos convocar uma ou mais pessoas 
envolvidas em nosso projeto, para que o código seja analisado e 
verifi cado. Erros e incoerências podem ser encontradas. Se issoacontecer, esse erro pode ser consertado facilmente.
Figura 1 - As revisões podem ser no formato de reunião, 
como nesta fi gura.
Fonte: Disponível em: < https://pxhere.com/en/photo/790264 >. Acesso em: 28 nov. 
2018.
Vale lembrar que as revisões podem verifi car qualquer 
artefato de software. Assim, podemos convocar reuniões para 
inspecionar diagramas, defi nições ou até documentos inteiros 
de requisitos.
Outra coisa que devemos lembrar é que podemos adotar 
formatos diferentes de reunião, dependendo das necessidades 
do rigor a ser aplicado no projeto. Se o projeto não tiver um 
nível de criticidade elevado e não demandar rigor na execução 
das tarefas, podemos fazer uma inspeção informal. Porém, se o 
sistema for complicado, seu funcionamento é vital. Para evitar 
prejuízos a terceiros, podemos aplicar uma revisão com o maior 
rigor nas cerimônias. Assim, os principais tipos de revisões são:
• Revisões Técnicas Informais: são revisões 
onde o nível de formalidade é reduzido, onde não 
se observa nos processos: papéis, artefatos e etapas 
bem-defi nidas. Podemos classifi car nesse conjunto, 
os testes de mesa de um artefato de software, uma 
reunião informal envolvendo duas ou mais pessoas 
para revisar um artefato de software.
• Revisões Técnicas Formais: é uma 
atividade de controle da qualidade de software 
realizada por engenheiros de software (e outros 
profi ssionais). Seus objetivos são: descobrir erros 
na função, lógica ou implementação para qualquer 
representação do software; verifi car se o software que 
está sendo revisado atende aos requisitos; garantir que 
o software foi representado de acordo com padrões 
predefi nidos; obter software que seja desenvolvido 
de maneira uniforme; e tornar os projetos mais 
gerenciáveis. Consiste em um processo de elaboração 
da reunião, que defi ne o fl uxo e os papéis dessa 
revisão. Ao fi nal da revisão, um documento é gerado, 
resumindo o que aconteceu e os problemas relatados, 
para que seja possível fazer o acompanhamento.
• Revisões Post-Mortem: são avaliações 
que não avaliam um artefato de software, mas sim 
o processo inteiro. Ela consiste em promover uma 
refl exão da equipe sobre o que deu certo e o que deu 
errado no processo de elaboração do sistema, quando 
o processo e a prática de engenharia de software são 
aplicados em um projeto específi co. (PRESSMAN, 
2016)
 
Agora, vamos ver como funcionam os testes.
4 - Testes
 O teste consiste na detecção de erros através da execução 
do programa, seja por via automatizada ou por meio dos 
usuários testadores, que usam o programa para verifi car a 
ocorrência de erros.
Sommerville (2011, p. 144) afi rma que “o teste é 
destinado a mostrar que um programa faz o que é proposto a 
fazer e para descobrir os defeitos do programa antes do uso”. 
Quando se testa o software, o programa é executado usando 
dados fi ctícios. Esses resultados do teste são verifi cados à 
procura de erros, anomalias ou informações sobre os atributos 
não funcionais do programa.
Figura 2 - Os testes podem ser feitos de forma automática, 
através de programas de computador.
Introdução à Engenharia de Software 42
Fonte: Disponível em: < https://www.fl ickr.com/photos/alisdair/135306281 >. 
Acesso em: 28 nov. 2018.
 Ainda sobre o teste, Sommerville destaca os seus 
objetivos:
1. Demonstrar ao desenvolvedor e ao cliente que o 
software atende a seus requisitos. Para softwares 
customizados, isso signifi ca que deve haver pelo 
menos um teste para cada requisito do documento 
de requisitos. Para softwares genéricos, isso signifi ca 
que deve haver testes para todas as características 
do sistema, além de suas combinações, que serão 
incorporadas ao release do produto. Esse objetivo leva 
aos testes de validação, onde é esperado a execução do 
sistema de um determinado conjunto de casos de teste 
que refl etem o uso do sistema.
2. Descobrir situações em que o software se comporta 
de maneira incorreta, indesejável ou de forma 
diferente das especifi cações. Essas são consequências 
de defeitos de software. O teste de defeitos preocupa-
se com a eliminação de comportamentos indesejáveis 
do sistema, tais como panes, interações indesejáveis 
com outros sistemas, processamentos incorretos e 
corrupção de dados. Esse segundo objetivo nos leva 
aos testes de defeitos, onde nós testamos em busca 
de falhas e anomalias no sistema (SOMMERVILLE, 
2011, p. 141).
Em uma rotina típica de desenvolvimento de software, 
temos três estágios de testes:
• Testes de desenvolvimento: o sistema é testado 
em busca de bugs e defeitos. Participam os 
desenvolvedores e projetistas do sistema.
• Testes de release: ocorre quando uma equipe de 
teste independente testa uma versão completa do 
sistema antes que ele seja liberado para os usuários. 
Ele tem a intenção de realizar um teste de validação, 
para verifi car se atende aos requisitos dos stakeholders.
• Testes de usuário: em que os usuários ou potenciais 
usuários de um sistema testam o sistema em seu 
próprio ambiente. Para produtos de software, o 
‘usuário’ pode ser um grupo de marketing interno, 
que decidirá se o software pode ser comercializado, 
liberado e vendido. Os testes de aceitação são um tipo 
de teste de usuário no qual o cliente testa formalmente 
o sistema para decidir se ele deve ser aceito por parte 
do fornecedor do sistema ou se é necessário um 
desenvolvimento adicional (SOMMERVILLE, 2011, 
p. 147).
 Os testes de desenvolvimento, por sua vez, 
são classifi cados como:
• Teste Unitário: é o processo de testar os 
componentes de programa, como métodos ou classes 
de objeto. As funções individuais ou métodos são o 
tipo mais simples de componente. Seus testes devem 
ser chamados para essas rotinas com parâmetros 
diferentes de entrada. Funciona da seguinte maneira: 
Toda vez que você escreve uma classe ou uma 
função no sistema, você faz os testes para verifi car 
se o comportamento está equivalente ao esperado. 
Normalmente, escrevemos um ou mais testes para 
cada método da classe a ser testada.
• Teste de Componentes: são os testes que testam 
um conjunto de unidades do sistema, agrupados em 
um componente. A classifi cação dos componentes 
dependerá das necessidades do sistema. Por exemplo, 
podemos testar uma classe Carro, que confi gura um 
teste unitário. Mas, se agruparmos essa classe com 
outras classes que fazem parte de uma fração lógica 
do sistema, estamos criando um componente. Assim, 
podemos fazer um teste integrando essas classes, 
confi gurando um teste de componente.
• Teste de Sistema: envolve a integração de 
componentes para criação de uma versão do sistema 
e, em seguida, o teste do sistema integrado. O teste de 
sistema verifi ca se os componentes são compatíveis, 
se interagem corretamente e transferem os dados 
certos no momento certo, por suas interfaces. 
Nesse caso, é testando todo o sistema, inclusive a 
sua integração com outros componentes do sistema 
(SOMMERVILLE, 2011, p. 148).
 E com isso, fi nalizamos a sexta aula. Na próxima, 
vamos estudar a respeito do projeto e implementação do 
software. Até lá!
Retomando a aula
Chegamos ao fi m da sexta aula, vamos relembrar?
43
Minhas anotações
1 - O QUE É VERIFICAÇÃO E VALIDAÇÃO DE 
SOFTWARE?
Nesta seção, vimos que a verifi cação e a validação de 
Software pode ser entendida como um conjunto de processos 
práticos que procuram atestar e manter a premissa de que o 
sistema está sendo desenvolvido no caminho certo. Esta 
disciplina coloca várias técnicas que podemos usar para atestar 
o que nós queremos, isto é, as Revisões e os Testes.
2 - QUALIDADE DE SOFTWARE
Nesta seção, vimos algumas refl exões a respeito da 
qualidade de software. Vimos que para uma pessoa conceituar 
a qualidade, dependerá do seu senso de opinião próprio. Assim, 
cada pessoa tem a sua noçãode qualidade, para fazer os seus 
julgamentos ou para defi nir se algo tem qualidade ou não. Ou 
seja, para algum produto, uma pessoa pode defi nir que este tem 
qualidade, enquanto que uma outra pessoa pode conceituar 
como sem qualidade, por seus motivos. Isso não acontece só 
com a qualidade, ocorre também com outras classifi cações.
3 - REVISÕES
Nesta seção, vimos que as revisões são os processos em 
que duas ou mais pessoas verifi cam um ou mais artefatos de 
software em busca de erros ou inconsistências. Essas revisões 
podem verifi car qualquer artefato de software. Assim, podemos 
convocar reuniões para inspecionar diagramas, defi nições ou 
até documentos inteiros de requisitos.
4 - TESTES
Nesta seção, vimos uma defi nição sobre o que são os 
testes. Eles podem ser considerados como um estágio do 
desenvolvimento de software, cujo intuito é mostrar que 
um programa faz o que é proposto a fazer, e para descobrir 
os defeitos do programa antes do uso. Além disso, vimos as 
classifi cações que damos aos diferentes tipos de testes.
Vale a pena
Disponível em: MORENO, Lígia. A Im-
portância da validação e da verificação. Dev-
Media, 2012. Disponível em: < https://www.
devmedia.com.br/a-importancia-da-validacao-e-
da-verificacao/24559 >. Acesso em: 24 out. 2018.
Vale a pena acessar
ENGHOLM JR., Hélio. Engenharia de software na prática. 
São Paulo: Novatec, 2015.
PAULA FILHO, Wilson de Pádua. Engenharia de software: 
fundamentos, métodos e padrões. 3. ed. Rio de Janeiro: LTC, 
2012.
PEDRYCZ, Witold; PETERS, James F.; GARCIA, 
Ana Patrícia Machado de Pinho. Engenharia de software: teoria e 
prática. Rio de Janeiro: Campus, 2001.
PRESSMAN, Roger S.; FECCHIO, Mário Moro; 
GRIESI, Ariovaldo. et al. Engenharia de software: uma 
abordagem profi ssional. 8. ed. São Paulo: McGraw-Hill; 
Porto Alegre: Bookman; Santana: AMGH Editora, 2016.
SOMMERVILLE, Ian. Engenharia de software. 9. ed. São 
Paulo: Pearson Addison Wesley, 2011.
Vale a pena ler

Continue navegando