Buscar

09 Requisitos

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

Engenharia de Software 
Verificação e Validação 
Aula 9 
Verificação e validação 
l  Asseguram que o software cumpra com 
suas especificações e atenda às 
necessidades dos usuários 
Objetivos 
l  Introduzir verificação e validação de 
software. 
l  Descrever o processo de inspeção de 
programa 
l  Explicar análise estática. 
l  Introduzir o processo de 
desenvolvimento de software Cleanroom 
Verificação vs validação 
l  Verificação: 
”Estamos construindo certo o produto?" 
O software cumpre com suas especificações 
l  Validação: 
”Estamos construindo o produto certo?" 
lO software deve estar de acordo com o que o 
usuário deseja. 
O processo V & V 
l  É um processo que engloba todo o ciclo de 
vida 
l  - V & V deve ser aplicado em cada estágio no 
processo de desenvolvimento. 
Tem dois objetivos principais: 
l  a descoberta de defeitos no sistema 
l  Assegurar se o sistema é ou não utilizável em 
uma situação operacional. 
Verificação estática e dinâmica 
l  Inspeções de software - preocupadas com a análise 
estática das representações do sistema para descobrir 
problemas (verificação estática)) 
l  pode ser complementadas por alguma análise automática do 
texto de origem de um sistema ou dos documentos associados. 
l  Teste de software - preocupado com a execução e 
observação do comportamento do produto (verificação 
dinâmica). 
l  • O sistema é executado com dados de teste e o seu 
comportamento operacional é observado. 
Teste de programas 
l  Pode revelar a presença de erros e NÃO a 
ausência 
l  Um teste bem sucedido é um teste que 
descobre um ou mais erros. 
l  É a única técnica de validação para requisitos 
não funcionais (desempenho, confiabilidade) 
l  Deve ser usado em conjunto com a verificação 
estática para uma cobertura total das 
atividades de V&V 
Tipos de teste 
Os testes de defeito 
l  Testes projetados para descobrir defeitos no sistema. 
l  Um teste bem sucedido é aquele que revela a presença 
de defeitos em um sistema. 
Testes estatísticos 
l  Usado para testar o desempenho e a confiabilidade do 
programa. 
l  Confiabilidade: número de falhas no sistema, etc 
l  Desempenho Tempo de execução, tempo de resposta, 
etc. 
Metas de V& V 
l  Verificação e validação deve estabelecer a 
confiança de que o software é “adequado a 
seu propósito”. 
l  Isso NÃO significa que o programa tenha que 
ser livre de defeitos. 
l  Ao invés disso, significa que o sistema deve 
ser suficientemente bom para o uso 
pretendido. O tipo de uso irá determinar o grau 
de confiança que será necessário. 
Confiança de V & V 
l  Depende do propósito do sistema, as expectativas do 
usuário e o ambiente de mercado. 
Função do software 
l  » O nível de confiança depende do tipo de sistema e o 
quanto é importante para a organização. 
Expectativas do usuário 
l  » Usuários podem ter poucas expectativas de certos tipos 
de software 
Ambiente de mercado 
l  » Colocar um produto no mercado pode ser mais 
importante do que encontrar todos os defeitos no 
programa. 
Testes e depuração 
l  Testar e depurar um programa são atividades 
distintas. 
l  Verificação e validação e teste estão 
preocupados em estabelecer a existência de 
defeitos em um programa. 
l  Depuração está preocupada com a localização 
e remoção desses defeitos. 
l  Depuração envolve a formulação de uma 
hipótese sobre o comportamento do programa 
e testar essa hipótese para encontrar o erro no 
sistema. 
O processo de depuração 
Planejamento de V & V 
l  Planejamento cuidadoso é necessário para 
obter sucesso nos processos de inspeção e 
teste. 
l  O planejamento deve iniciar no começo do 
processo de desenvolvimento. 
l  O processo de planejamento deve decidir 
sobre o equilíbrio entre as abordagens 
estáticas e dinâmicas. 
l  O planejamento de testes se ocupa em 
estabelecer os padrões para o processo de 
testes. 
A estrutura de um plano de 
teste 
l  O processo de teste 
l  Facilidade de rastreamento dos requisitos 
l  Itens a serem testados 
l  Cronograma de testes 
l  Procedimentos de registros de testes 
l  Requisitos de hardware e de software 
l  Restrições 
Inspeções de software 
l  Envolve pessoas examinando uma 
representação de software para descobrir 
anomalias e defeitos. 
l  Não há a necessidade de execução do 
sistema, assim pode ser usada antes da 
implementação. 
l  Pode ser aplicada a qualquer representação 
do sistema (requisitos, projeto, dados de teste, 
etc.) 
l  Técnica muito eficaz para a descoberta de 
erros. 
Sucessos da inspeção 
l  Muitos defeitos diferentes podem ser 
descobertos em uma única inspeção. No teste, 
um defeito pode mascarar outros, assim várias 
execuções são necessárias. 
l  A reutilização do conhecimento do domínio e 
da programação é benéfica, uma vez que 
revisores provavelmente já viram os tipos de 
erros que ocorrem com freqüência em 
linguagens de programação específicas e em 
determinados tipos de aplicações. 
Inspeções e testes 
l  Inspeções e testes são técnicas de verificação 
complementares. 
l  Ambas devem ser utilizadas no processo de 
V&V. 
l  Inspeções podem verificar a conformidade 
com uma especificação mas não a 
conformidade com os reais requisitos do 
usuário. 
l  Inspeções não podem verificar as 
características não funcionais tais como 
desempenho, usabilidade, etc. 
Inspeções de programa 
l  Revisão cuidadosa, linha por linha, do código 
fonte do programa. 
l  Objetivo é a DETECÇÃO de defeitos (não 
correção) 
l  Defeitos podem ser erros lógicos, anomalias 
no código que podem indicar uma condição 
errônea (por ex. uma variável não inicializada) 
ou a não conformidade com padrões 
organizacionais. 
Pré-condições para a inspeção 
de programa 
l  Uma especificação precisa deve estar 
disponível. 
l  Os membros da equipe de inspeção devem 
estar familiarizados com os padrões 
organizacionais. 
l  Código sintaticamente correto deve estar 
disponível. 
l  Uma lista de erros deve ser preparada 
l  Gerente deve aceitar que a inspeção 
aumentara os custos no começo do processo 
de software. 
Processo de inspeção de 
programa 
Planejamento e introdução 
l  Visão geral do sistema, apresentado à equipe de inspeção. 
Preparação Individual 
l  Cada membro da equipe estuda a especificação e procura 
defeitos no código. 
Reunião de Inspeção 
l  Durante a inspeção, os erros descobertos são anotados. 
Retrabalho 
l  Modificações são feitas para corrigir os erros descobertos. 
Acompanhamento 
l  Uma nova inspeção pode ser ou não necessária. 
Checklist para inspeção de 
programas 
l  Lista de erros comuns deve ser usada para 
dirigir a inspeção. 
l  Lista de erros são dependentes da linguagem 
de programação 
l  Quanto mais “fraca” é a checagem de tipos 
pela linguagem, maior é a lista de erros mais 
comuns. 
l  Exemplos: inicialização, nomeação de 
constantes, término de laços, limites de 
vetores, etc. 
Taxa de inspeção (IBM) 
l  Cerca de 500 declarações/hora durante 
revisão geral 
l  125 declarações/hora durante preparação 
individual 
l  90-125 declarações/hora podem ser 
inspecionadas durante a reunião 
l  Inspeção é portanto um processo caro 
l  Contudo, o esforço requerido para a inspeção 
é menor do que a metade o esforço de teste 
exigido para defeitos equivalentes. 
Análise estática automatizada 
l  Analisadores estáticos são ferramentas de 
software para o processamento do código 
fonte. 
l  Percorrem o texto do programa e tentam 
descobrir potenciais condições erradas e 
chamar a atenção da equipe de v&v. 
l  São bastanteeficaz como um auxílio às 
inspeções de programas. É um complemento, 
porém não substitui as inspeções. 
Checagem da análise estática 
Uso da Análise Estática 
l  Útil quando a linguagem não faz 
checagem adequada de tipos e, por 
isso, muitos erros não são detectados 
pelo compilador (C ) 
l  Menos eficaz para linguagens que 
possui forte checagem de tipos e 
podem, portanto, detectar muitos erros 
durante a compilação (Java). 
Desenvolvimento de software 
Cleanroon 
l  Filosofia de desenvolvimento que tem como base 
evitar defeitos pelo uso de um rigoroso processo de 
inspeção. 
l  Objetivo: Conseguir um software sem nenhum defeito. 
Processo de desenvolvimento baseado em: 
l  Especificação formal 
l  Desenvolvimento incremental 
l  Programação estruturada. 
l  Verificação estática usando rigorosas inspeções de 
software 
l  Teste estatístico do sistema. 
O processo Cleanroon 
Desenvolvimento Incremental 
Especificação formal e 
inspeções 
l  O modelo baseado em estados é a 
especificação e o processo de inspeção checa 
o programa com relação a esse modelo. 
l  A abordagem utilizada para o desenvolvimento 
tem como base transformações bem definidas, 
que tentam preservar a exatidão em cada 
transformação, para uma representação mais 
detalhada. 
l  Argumentos matemáticos (não provas) são 
usados para aumentar a confiança no 
processo de inspeção. 
Equipes no processo Cleanroom 
Equipe de especificação. Responsável pelo 
desenvolvimento e pela manutenção da 
especificação do sistema. 
Equipe de desenvolvimento. Responsável por 
desenvolver e verificar o software. O software 
não é executado durante esse processo. 
Equipe de certificação. Responsável pelo 
desenvolvimento de um conjunto de testes 
estatísticos para exercitar o software após o 
seu desenvolvimento (certificação da 
confiabilidade do software). 
Avaliação do processo 
Cleanroom 
l  Resultados na IBM tem mostrado que os 
softwares possuem bem menos erros, 
l  Avaliação mostra que o processo não é mais 
caro do que outras abordagens. 
l  Menos erros do que em um processo de 
desenvolvimento tradicional. 
l  Uso do processo tem sido restrito a 
organizações tecnologicamente avançadas. 
Pontos chave 
l  Verificação certifica a conformidade com a 
especificação; Validação certifica que 
programa faz o que o usuário precisa. 
l  Planos de teste descrevem os itens a serem 
testados. 
l  Inspeção de programas é o processo de 
analisar o código fonte, sem executá-lo. 
l  • O código do programa é sistematicamente checado 
por uma pequena equipe, para localizar defeitos. 
Pontos chave. 
l  Ferramentas de análise estática pode 
revelar anomalias no programa 
(possíveis defeitos). 
l  Processo de desenvolvimento 
cleanroom é uma abordagem de 
desenvolvimento de software que se 
apóia em desenvolvimento incremental, 
verificação estática e teste estatístico. 
REFERÊNCIAS 
l  PRESSMAN, Roger S. - Engenharia de 
Software - Uma Abordagem Profissional 
- 7º Edição 
l  SOMMERVILLE , Ian - Engenharia de 
Software

Continue navegando