Você está na página 1de 55

Qualidade de Software

Verificao e Validao Anlise Esttica

Roteiro

Problemas em Software Verificao e Validao (V&V) Abordagens de V&V Inspeo de Software Walkthourgh Peer Reviews Progressivas Revises Anlise Esttica Automatizada

Roteiro

Problemas em Software Verificao e Validao (V&V) Abordagens de V&V Inspeo de Software Walkthourgh Peer Reviews Progressivas Revises Anlise Esttica Automatizada

O que um Bug?

O que um Bug?
O computador Mark II, que era do tamanho de uma sala, executava na universidade de Harvard Rels mecnicas Tubos de vcuo Os tcnicos programavam o computador o reconfigurando Uma mariposa foi destruda pela alta voltagem quando pousou em uma das rels Nascia o primeiro bug de computador!

O que um Bug?

Ns produzimos software com problemas!


Quantos? De que tipo?

Vocs sabem citar alguns exemplos de bugs que circularam na mdia?

Ocorrncias de Bugs
Um bug ocorre quando pelo menos uma das seguintes condies ocorre:

O software no faz algo que a especificao diz que tem que fazer O software faz algo que a especificao diz que no tem que fazer O software faz algo que a especificao no menciona O software no faz algo que a especificao no menciona, mas que deveria mencionar

Ocorrncias de Bugs
Defeito
Omisso Fato incorreto

Descrio Geral
Informao necessria sobre o sistema foi omitida do artefato de software Alguma informao no artefato de software contradiz informao do documento de requisitos ou o conhecimento geral do domnio Informao contida em uma parte do artefato de software est inconsistente com outra informao no artefato de software Informao contida no artefato de software ambgua, isto , vrias interpretaes podem ser derivadas da definio levando o desenvolvedor a implementao incorreta Informao que fornecida no necessria ou nunca utilizada
8

Inconsistncia

Ambiguidade

Informao estranha

Ocorrncias de Bugs

Maioria dos bugs no ocorre por conta de problemas no cdigo:

Especificao ~55% Design ~25% Cdigo ~15% Outros ~5%

Software Livre de Bugs

Por que no conseguimos desenvolver software que funciona?

Quanto mais funcionalidades e caractersticas e quanto maior o suporte a diferentes plataformas mais complicado fica o software Logo, fica mais difcil torn-lo livre de bugs O que podemos tentar fazer, neste caso?

10

Roteiro

Problemas em Software Verificao e Validao (V&V) Abordagens de V&V Inspeo de Software Walkthourgh Peer Reviews Progressivas Revises Anlise Esttica Automatizada

11

Verificao e Validao

Verificao avalia se o produto satisfaz os requisitos especificados Validao avalia se o produto satisfaz o seu uso pretendido Em outras palavras: Verificao: estamos construindo certo o produto? Validao: estamos construindo o produto certo?

12

Processos de Verificao e Validao

Se considerarmos o MPS.BR:
Verificao Confirmar que cada servio e/ou produto de trabalho do processo ou do projeto atende apropriadamente os requisitos especificados Validao Confirmar que um produto ou componente do produto atender a seu uso pretendido quando colocado no ambiente para o qual foi desenvolvido

13

Verificao e Validao
Envolve uso de tcnicas, mtodos e processos para analisar se o produto atende os requisitos e o uso pretendido Isto pode representar gastos muito altos O grau de rigor de V&V a ser aplicado depender das necessidades do projeto:

Criticidade do software Expectativas do usurio Mercado

14

Roteiro

Problemas em Software Verificao e Validao (V&V) Abordagens de V&V Inspeo de Software Walkthourgh Peer Reviews Progressivas Revises Anlise Esttica Automatizada

15

Abordagens de V&V
H duas grandes abordagens de anlise em V&V, que so complementares

Anlise esttica nosso foco O objeto de anlise avaliado por seres humanos, ou mesmo por um computador, sem ser executado como um programa Exemplo: inspees de software Anlise dinmica foco da prxima aula O objeto de anlise executado por um computador Exemplo: teste de software

H, todavia, testes que simulam o ambiente e o uso operacional do software so testes com fins de validao!

16

Abordagens de V&V

17

Abordagens de V&V

Por qu fazer inspees ao longo de todo o processo?


Hiptese de que a preveno de erros mais barata do que a remoo de erros... Quanto mais cedo encontrarmos um erro menos caro ser repar-lo

O objetivo de qualquer teste mostrar a existncia (e no a ausncia) de erros Quando voc testa ou o software tem qualidade ou no... ...ele no ter qualidade quando voc comear a testar nem quando voc terminar de testar Faa software pensando em qualidade ao longo de todo o processo!

18

Depurao
Depurao (debugging) o processo de localizar e corrigir erros

Depois que testar e descobrir os problemas, ter que trat-los... No h uma receita pronta para a depurao

19

Roteiro

Problemas em Software Verificao e Validao (V&V) Abordagens de V&V Inspeo de Software Walkthourgh Peer Reviews Progressivas Revises Anlise Esttica Automatizada

20

Inspeo de Software

Principal objetivo encontrar erros, omisses e anomalias No cdigo-fonte Em outros documentos do processo de software: ERS, modelos de design, etc...

21

Inspeo de Software

Vantagens em relao a teste

Durante o teste, um erro pode mascarar outro possvel fazer inspeo de partes do sistema No teste as partes que faltam teriam que ser simuladas Pode analisar outros aspectos de qualidade avaliar a adequao da soluo proposta

22

Inspeo de Software
No teste

Voc comea com um problema Em seguida tem que encontrar o bug Depois, deve imaginar a correo Por fim, implementa e testa a correo Voc v o defeito Ento imagina a correo Finalmente, implementa e revisa a correo

Na inspeo

23

Inspeo de Software

Na inspeo

Voc segue sua prpria lgica

Quando encontra um defeito, sabe exatamente onde est Voc sabe o que o programa deveria fazer e no est fazendo Logo voc sabe porque isto um defeito Portanto, est em melhor posio para imaginar uma correo completa e eficaz Quando combinadas com testes, o nmero de defeitos encontrados pode superar os 90% de defeitos existentes

24

Inspeo de Software

Desvantagens No podem verificar caractersticas no funcionais Desempenho, usabilidade... Verificam a conformidade com uma especificao E no a conformidade com os requisitos reais do cliente

25

Inspeo de Software

As ideias:

Dois ou mais engenheiros verificam o produto de trabalho de um outro engenheiro O objetivo no corrigir problemas e sim encontr-los O momento de fazer uma inspeo quando o engenheiro terminou o desenvolvimento do produto e corrigiu todos os defeitos bvios Precisa de ajuda para encontrar problemas remanescentes Observao relevante: testes so mais efetivos em artefatos inspecionados
26

Inspeo de Software

Tem papis bem definidos:

27

Inspeo de Software

Critrios de entrada:
Toda a documentao de suporte est disponvel Inspetores esto treinados no processo de Inspeo de Software O produto de trabalho a ser inspecionado possui um nmero de verso, todas as pginas e linhas so numeradas O cdigo fonte a ser inspecionado possui um nmero de verso, as linhas e pginas esto numeradas. O Cdigo compila sem erros ou mensagens de advertncia Para uma reinspeo, todas as no conformidades foram resolvidas
28

Inspeo de Software

Envolve uma srie de passos tpicos:

29

Inspeo de Software

Planejamento

O autor entrega ao moderador o produto de trabalho e todos os documentos de suporte O autor determina se o critrio de entrada est satisfeito Baseado no tamanho e complexidade do produto de trabalho, o autor e o moderador decidem quantas reunies de inspeo sero requeridas Autor e moderador selecionam a equipe de inspeo e atribuem os papis Autor determina se uma Viso Geral necessria Moderador e autor agendam a inspeo ou as inspees e o tempo de preparao estimado O autor distribui os artefatos necessrios para inspeo
30

Inspeo de Software

Viso Geral
O autor faz uma apresentao das principais caractersticas do produto de trabalho a ser inspecionado uma etapa opcional e depende da necessidade identificada pelo autor

31

Inspeo de Software

Preparao

O Autor e moderador solicitam aos inspetores a preparao no produto de trabalho Os inspetores analisam o produto de trabalho em busca de no-conformidades Fazem as anotaes necessrias

32

Inspeo de Software

Reunio de Inspeo

Abrir a reunio O moderador apresenta, se necessrio, os


participantes e seus papis, o objetivo da inspeo e lembra que quem est sendo inspecionado o artefato e no o autor Identificar preparao O moderador identifica e anota o tempo de preparao de cada inspetor Apresentar artefato O leitor faz a apresentao do artefato em pequenas partes Levantamento de defeitos Todos os inspetores discutem sobre as no-conformidades encontradas Registrar no-conformidades O escritor faz o registro das no-conformidades
33

Inspeo de Software

Reunio de Inspeo
Responder questionamentos O autor responde aos questionamentos sobre produto de trabalho em inspeo Status do artefato Quanto todas as reunies de inspeo terminarem, a equipe de inspeo deve decidir o status do artefato Assinatura do Sumrio Todos os inspetores assinam o sumrio da inspeo para indicar que esto de acordo o status da inspeo Feedback da Inspeo O moderador pede aos inspetores para avaliarem a inspeo e indicar pontos de melhoria
34

Inspeo de Software

Reunio de Inspeo

Para cada noconformidade, o escritor registra: Origem (Em que fase) Tipo Severidade (Principal ou Secundria) Localizao Descrio

35

Inspeo de Software

Reunio de Inspeo

Status de uma Inspeo Aceito Condicionalmente aceito Re-Inspeo Inspeo no-completada

36

Inspeo de Software

Retrabalho (correo)

O autor corrige as no-conformidades encontradas, anotando na lista de no-conformidades a ao tomada O autor corrige qualquer outro problema baseado nas faltas encontradas nas inspees Caso requerido, o autor deve apresentar ao moderador as correes

37

Inspeo de Software

Acompanhamento (follow-up) O moderador deve verificar se todas as falhas foram corrigidas O autor informa o tempo total de retrabalho O moderador determina o resultado da inspeo O autor coloca o artefato em baseline sob gerncia de configurao O autor entrega o sumrio de inspeo ao coordenador de inspees
38

Inspeo de Software

Pode ser apoiada por checklists (listas de verificao) que contenham erros comuns

Algumas questes que podem ser (considerando uma inspeo de cdigo):

Deveriam ser personalizados para a organizao, seu processo de software e tecnologias envolvidas

colocadas

39

Inspeo de Software

40

Inspeo de Software

Mtricas que podem ser coletadas


Densidade de defeito = Total de Defeitos / Tamanho atual Total de Defeitos = Defeitos Principais + Defeitos Secundrios Esforo de Inspeo = Esforo Planejamento + Esforo Viso Geral + Esforo Preparao + Esforo Reunio + Esforo Retrabalho + Esforo Acompanhamento Taxa de Preparao = Tamanho atual / (Esforo Preparao/ N de participantes) Taxa de Inspeo = Tamanho atual / Tempo de Reunio de Inspeo 41

Roteiro

Problemas em Software Verificao e Validao (V&V) Abordagens de V&V Inspeo de Software Walkthourgh Peer Reviews Progressivas Revises Anlise Esttica Automatizada

42

Walkthrough

Pouca ou nenhuma preparao requerida O desenvolvedor guia os presentes atravs do produto O objetivo comunicar ou receber aprovao So teis principalmente para requisitos e modelos

Reunies informais para avaliao dos produtos

43

Walkthrough

Participantes Passos

O autor seleciona os participantes, especficos no so estabelecidos

porm

papeis

O autor seleciona os inspetores, obtm o aceite do convite dos inspetores, agenda a reunio O autor entrega o produto de trabalho aos inspetores antes da reunio Apresenta o produto de trabalho aos inspetores durante a reunio de inspeo ou em outro meio apropriado Os inspetores apresentam possveis no-conformidades, comentrios e sugestes de melhoria Baseado nas informaes apresentadas o autor faz as devidas correes
44

Roteiro

Problemas em Software Verificao e Validao (V&V) Abordagens de V&V Inspeo de Software Walkthourgh Peer Reviews Progressivas Revises Anlise Esttica Automatizada

45

Peer Review Progressivas


Apresenta caractersticas walkthroughs

de

inspeo

de

O material a ser revisado distribudo aleatoriamente para os revisores (ex: numa reviso de cdigo, cada revisor pode ficar com um trecho de cdigo) Durante a reviso, cada revisor percorre o documento revisado, como em um uma walkthrough Os demais revisores fazem suas consideraes, que so registradas Ao trmino de cada trecho revisado, o revisor passa a vez para o prximo e assim sucessivamente, at que todo o material seja revisado
46

Roteiro

Problemas em Software Verificao e Validao (V&V) Abordagens de V&V Inspeo de Software Walkthourgh Peer Reviews Progressivas Revises Anlise Esttica Automatizada

47

Revises

As revises so utilizadas para Planos e Processos em geral Basicamente seguem as mesmas etapas da Inspeo O foco no encontrar defeitos e sim entrar em acordo com as partes para utilizao do artefato Os participantes vm de diferentes reas

48

Roteiro

Problemas em Software Verificao e Validao (V&V) Abordagens de V&V Inspeo de Software Walkthourgh Peer Reviews Progressivas Revises Anlise Esttica Automatizada

49

Anlise Esttica Automatizada

Inspees fazem uso de checklists e heursticas para detectar problemas


Pode envolver diversas anlises

Alguns checklists e heursticas podem ser automatizados

50

Anlise Esttica Automatizada

51

Anlise Esttica Automatizada

Anlise de fluxo de controle Anlise de uso de dados

Verifica loops com mltiplos pontos de sadas ou de entrada, encontra cdigo inacessvel, etc Detecta variveis no iniciadas, variveis escritas duas vezes sem uma tarefa de impedimento, variveis que so declaradas mas nunca usadas, etc Verifica a consistncia das declaraes de rotina e procedimentos e seus usos
52

Anlise de interface

Anlise Esttica Automatizada

Anlise de fluxo de informao

Identifica as dependncias das variveis de entrada e de sada. No detecta anomalias em si, mas destaca as informaes para inspeo ou reviso de cdigos Identifica caminhos atravs do programa e estabelece as declaraes executadas naquele caminho. Novamente, potencialmente til no processo de reviso

Anlise de caminho

53

Anlise Esttica Automatizada

54

Referncias

Sommerville, I. (2007) Software Engineering. Oitava Edio. Addison-Wesley. Pressman, R. S. (2005) Software Engineering A Practitioner's Approach. Sexta Edio. MCGraw-Hill.

55

Você também pode gostar