Escolar Documentos
Profissional Documentos
Cultura Documentos
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?
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
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
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:
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
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
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
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
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
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
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
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
Deveriam ser personalizados para a organizao, seu processo de software e tecnologias envolvidas
colocadas
39
Inspeo de Software
40
Inspeo de Software
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
43
Walkthrough
Participantes Passos
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
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
50
51
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
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
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