SlideShare une entreprise Scribd logo
1  sur  38
Inspeções em projetos de
software


Vitor Alcântara Batista
Engenharia de Processos
Agenda


1.   Motivação
2.   Tipos de revisões
3.   O processo de Inspeção
4.   Estudos de caso
5.   Momento de reflexão




                              2
1. Motivação
Situação atual da indústria


CHAOS Report (Standish Group)




 The rise and fall of the Chaos report figures - J.L. Eveleens and C. Verhoef
                                                                                4
Situação atual da indústria


Panorama atual da indústria [Yang et al., 2008]:


– 59% a 76% dos projetos apresentam esforço superior
  ao estimado, sendo o erro de 18% a 41%.

– 35% a 80% apresentam estouro do prazo, sendo o
  estouro de 22% a 25%.




                                                       5
Custo da qualidade
Custo de remoção de defeitos




                               Baziuk          Boehm
          Fase
                               (1995)          (1976)
Requisitos                         1X            0,2Y
Desenho                                          0,5Y
Codificação                                      1,2Y
Testes de Unidade
Testes de integração
Testes de sistema                 90X            5Y
Testes de instalação            90X-440X         15Y
Testes de aceitação             440X
Operação                    440-880X (2900X)
Prévia do Momento de reflexão


Nosso processo de desenvolvimento é caro?
Ultrapassamos o ponto de inflexão?


Ctotal = Cdesenvolvimento + Cqualidade

Cqualidade = Cprevenção + Capreciações + Cfalha_interna +
 Cfalha_externa




                                                            8
2. Tipos de revisões
Revisões versus Testes


Revisões são muito mais eficazes que testes:
 – Encontram o defeito mais cedo
    • Mais barato
– Identificam diretamente o defeito
    • Testes identificam apenas o sintoma. Depois é necessário
      descobrir a causa.




                                                                 10
IEEE Std 1028-1997, IEEE Standard for Software Reviews


Revisão:
 – Processo ou reunião na qual um artefato é
   apresentado para a equipe, usuários clientes e/ou
   gerentes para ser aprovado ou comentado.
Tipos de revisão
 – Revisões Gerenciais
 – Revisões Técnicas
 – Inspeções
 – Revisões de apresentação
 – Auditorias



                                                            11
Classificação proposta por Wiegers [Wiegers, 2002]




                                                     Peer
                         Revisão de               Deskcheck,
   Inspeção             apresentação              Passaround




              Revisão                   Progra-                Ad hoc
              técnica                   mação
                                       em pares


Mais formal                                                       Menos formal




                                                                                 12
Atividades em cada tipo de revisão [Wiegers, 2002]




     Tipo de revisão      Planejamento Preparação Reunião Correção Verificação
Inspeção                       x           x         x        x         x

Revisão técnica                x           x         x        x        Opc.

Revisão de apresentação        x                     x        x

Programação em pares           x                  Contínuo    x         x

Peer Deskcheck,
                                           x        Opc.      x
Passaround

Ad Hoc                                               x        x




                                                                              13
Tipos de revisão x Recomendações de uso [Wiegers, 2002]


                                              Revisão    Revisão de Programação Peer
            Objetivo               Inspeção                                             Passaround
                                              técnica   apresentação em pares Deskcheck

Encontrar defeitos                    x          x           x          x         x         x
Verificar conformidade com
                                      x          x                                x         x
especificações
Verificar conformidade com
                                      x                                           x         x
padrões
Verificar completeza e correção
                                      x                      x
do artefato
Avaliar compreensão e
                                      x          x                      x                   x
manutenibilidade
Coletar dados para melhoria de
                                      x          x
processos
Medir qualidade do artefato           x
Educar a equipe sobre o produto                  x           x          x                   x
Alcançar consenso sobre uma
                                                 x           x          x
abordagem
Garantir a correção dos defeitos      x                                 x         x
Explorar abordagens alternativas                             x

                                                                                                14
Outra opinião [Gilb & Graham, 1993]


Usar
 – Revisões de apresentação
   • Treinar
– Revisões técnicas
   • Chegar a um consenso
– Inspeções
   • Aumentar a qualidade do artefato e do processo
Inspecionar antes ou depois dos outros procedimentos?
 – Depende da maturidade do artefato
 – Não adianta encontrar defeitos sobre algo que não
   tem consenso
 – E não adianta tentar alcançar consenso sobre algo
   de baixa qualidade
                                                        15
3. O processo de inspeção (IEEE)
Os papéis da inspeção e suas responsabilidades


Líder da inspeção
– Planejamento e preparação
– Assegurar que o processo seja seguido
Relator
– Registrar defeitos, ações e decisões
– Coletar dados da qualidade
– Pode ser exercido pelo Líder
Leitor
– Apresenta o artefato sendo revisado, uma parte de cada vez,
  ressaltando os pontos importantes.
– Não deve ser o autor




                                                                17
Os papéis da inspeção e suas responsabilidades


Autor
– Corrigir os defeitos
– Tirar eventuais dúvidas durante as reuniões
Inspetor(es)
– Identificar e descrever os defeitos e inconformidades do artefato




                                                                      18
As etapas da inspeção


1. Planejamento
  –   O autor comunica a conclusão de um artefato
  –   O gerente designa um líder, que escolhe os inspetores e
      estima o número de encontros necessários e agenda as
      reuniões
  –   O moderador fornece o material para revisão: artefato, listas de
      conferência, objetivos e material de suporte
2. Reunião de visão geral (opcional)
  –   Apresentação informal do artefato, pelo autor, sem entrar em
      detalhes
3. Preparação
  –   Os inspetores avaliam o material e coletam uma lista de
      problemas, defeitos, sugestões
  –   Utilização de listas de conferência e tabelas de classificação
      dos defeitos
                                                                         19
As etapas da inspeção


4. Reuniões de inspeção
  –   O leitor apresenta o material para os inspetores, em pequenas
      partes de cada vez.
  –   Após a apresentação de cada parte, os inspetores apontam os
      problemas, defeitos, inconformidades e sugestões, que são
      registrados pelo Relator
  –   Ao final das reuniões, o grupo deve dar um laudo para a
      inspeção
  –   O líder deve produzir um relatório sumarizando os dados
      quantitativos
5. Retrabalho
  –   Correção dos defeitos
  –   Resolução dos problemas



                                                                      20
As etapas da inspeção


6. Conferência
  –   O Líder assegura a verificação da correção dos defeitos e
      correto endereçamento dos problemas.
7. Análise causal
  –    Os dados quantitativos são analisados para prevenção de
       defeitos:
      • Análise de Paretto
      • Análise de Causa e efeito (Diagrama de Ishikawa)




                                                                  21
Revisões técnicas x Inspeções


Principais diferenças entre Revisão técnica e Inspeção:
 – O Papel do Leitor
 – A etapa de prevenção de defeitos
 – Granularidade da apresentação




                                                          22
4. Estudos de caso
O trabalho de Fagan [Fagan, 1976] na IBM


Desenvolvimento do processo de inspeção para
especificações de teste, desenho detalhado e código
fonte




Aumento de produtividade:
 – I1 = 12%, I1 + I2 = 123%
 – I3 se mostrou mais caro que a economia do
   retrabalho
                                                      24
O trabalho de Fagan na IBM


Comparado com a metodologia anterior, onde no lugar
das inspeções eram usadas revisões de apresentação:
 – Redução de 38% nos defeitos de desenho e código




                                                      25
O estudo de Boehm na indústria da Tailândia


Comparou-se Inspeções formais (IF) a Programação em
pares (PP), tanto com alunos de graduação quanto na
indústria Tailandesa.
 – Na graduação:
   • PP teve Tempo total de desenvolvimento 24% menor, com
     qualidade equivalente
– Na indústria (projetos mais complexos)
   • PP teve Tempo total de desenvolvimento 4% maior, mas
     teve 39% a menos de defeitos graves




                                                             26
Comparação entre formas de organizar a inspeção


Porter e outros [Porter et.al., 1997] fizeram
experimentos durante 18 meses com inspeções e
concluíram:
 – Tamanho da equipe:
   • Não há diferença entre 2 ou 4 inspetores
   • 2 ou 4 inspetores são mais eficazes que 1
– 2 sessões de inspeção não são mais eficazes que 1
  só. Não vale o overhead
– Reparar defeitos entre as sessões não traz efeito
  sobre na densidade de defeitos, mas aumenta muito
  o tempo total de inspeção
– A preparação individual levantou apenas 13% de
  defeitos funcionais, indicando que os inspetores
  estavam focando em aspectos pouco importantes
                                                        27
Outros relatos apresentados em [Wiegers, 2002]


HP mediu o ROI em 1000% do seu programa de
inspeção.
AT&T reduziu o custo de encontrar defeitos, usando
inspeções, por um fator de 10. Também houve um
aumento de 4x na qualidade do produto e 14% de
aumento de produtividade.
IBM relatou que cada hora investida em inspeções
economizou 20 horas de testes e 82 horas de
retrabalho.
Na Imperial Chemical Industries, o custo de manter 400
produtos que foram inspecionados é 10% do custo de
manter outro portfólio de 400 produtos que não
passaram por inspeção.
                                                         28
E claro: um modelo de maturidade! [Kollanus, 2009]




                                                     29
Qual é a melhor técnica?


Parece não haver resposta definitiva.
Um método de revisão pode ser mais apropriado que
outro em uma determinada situação, mas não
necessariamente em todas.
Cada organização deve medir o benefício de cada
método, através de experimentos




                                                    30
5. Momento de reflexão
Momento de reflexão


Nosso processo de desenvolvimento é caro?
Ultrapassamos o ponto de inflexão?
Ctotal = Cdesenvolvimento + Cqualidade

Cqualidade = Cprevenção + Capreciações + Cfalha_interna +
 Cfalha_externa




                                                            32
O custo da qualidade no Synergia


   Levantamento “preliminar”
   Dados incluem especificação e desenvolvimento de um
   grande projeto, mas o escopo da especificação é maior.
   Tipo de investimento                    Detalhes                % do Projeto
                             Especificação e execução de testes       8,30%
Apreciações                  Revisões                                 6,30%
                             Revisões de requisitos com usuários      6,80%
Custo defeito interno        Retrabalho Interno                      13,90%
                             Investimento em usabilidade              6,50%
Prevenção
                             Treinamentos                             6,90%
                               Tipo           Total %                48,70%
                Correção e verificação de defeitos
                                                     39,3%
                código-fonte
                Correção e verificação de defeitos
                                                     50,9%
                encontrados nas revisões
                Outros retrabalhos                   9,8%
                                                                                  33
A Qualidade do produto entregue


Distribuição do esforço de um grande projeto,
atualmente em manutenção




Densidade de defeitos encontrados em produção:
– Aproximadamente: 0,05 defeitos/PF (0,02 defeitos graves/PF)
   • Índice de empresas CMMI nível 5, segundo a SPR.

                                                                34
Algumas questões para refletir


O custo da qualidade está alto?
Estamos fazendo os tipos certos de apreciações em
cada artefato?
Os defeitos encontrados nas revisões são os que
deveríamos procurar?
O esforço das revisões deveria ser menor que o
investimento em testes?
O esforço de correção e verificação de defeitos deveria
ser aproximadamente igual ao de correção e verificação
das revisões?
O tipo de teste de unidade é o adequado?
Todo cliente demanda a qualidade que estamos
oferecendo?
                                                          35
Perguntas?
Contato


Vitor Alcântara Batista
Equipe de Engenharia de processos
vitor@dcc.ufmg.br




                                    37
Algumas Referências


[Fagan, 1976] – Design and code inspections to reduce errors in
program development - Michael E. Fagan - IBM Systems Journal,
15(3), 182–211
[Gilb & Graham, 1993] – Software Inspection – Tom Gilb, Dorothy
Graham – Addison-Wesley – 1993
[Kollanus, 2009] - Experiences from using ICMM in inspection
process assessment - Sami Kollanus - Software Qual J (2009)
[Phongpaibul & Boehm, 2006] - An Empirical Comparison Between
Pair Development and Software Inspection in Thailand - Monvorath
Phongpaibul, Barry Boehm - ISESE'06
[Porter et.al., 1997] - An Experiment to Assess the Cost-Benefits of
Code Inspections in Large Scale Software Development - Adam A.
Porter, Carol A. Toman, and Lawrence G. Votta - IEEE Transactions
On Software Engineering, Vol. 23, no. 6, June 1997
[Wiegers, 2002] – Peer Reviews in Software, A Practical Guide –
Karl E. Wiegers – Addison-Wesley Information Technology Series –
2002                                                                   38

Contenu connexe

Tendances

VMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VMVMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VMyy yank
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)Renato Groff
 
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyJJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyShinya Mochida
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...Shotaro Suzuki
 
決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話Ryosuke Uchitate
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesLeinylson Fontinele
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnitelliando dias
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
Introdução ao Spring Framework
Introdução ao Spring FrameworkIntrodução ao Spring Framework
Introdução ao Spring FrameworkNatanael Fonseca
 
Bddm recuperação de falhas em banco distribuido
Bddm   recuperação de falhas em banco distribuidoBddm   recuperação de falhas em banco distribuido
Bddm recuperação de falhas em banco distribuidoAntonio Ezequiel Mendonça
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?Yago Tomé
 
#reco_tech Cloud searchでレコチョク検索の実現に向けて
#reco_tech   Cloud searchでレコチョク検索の実現に向けて#reco_tech   Cloud searchでレコチョク検索の実現に向けて
#reco_tech Cloud searchでレコチョク検索の実現に向けてrecotech
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggersflaviognm
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfacesRafael Pinheiro
 
Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________Gelis Wu
 

Tendances (20)

VMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VMVMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VM
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyJJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
 
決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnit
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Infraestrutura como codigo
Infraestrutura como codigoInfraestrutura como codigo
Infraestrutura como codigo
 
Manual power point
Manual power pointManual power point
Manual power point
 
Introdução ao Spring Framework
Introdução ao Spring FrameworkIntrodução ao Spring Framework
Introdução ao Spring Framework
 
Bddm recuperação de falhas em banco distribuido
Bddm   recuperação de falhas em banco distribuidoBddm   recuperação de falhas em banco distribuido
Bddm recuperação de falhas em banco distribuido
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?
 
#reco_tech Cloud searchでレコチョク検索の実現に向けて
#reco_tech   Cloud searchでレコチョク検索の実現に向けて#reco_tech   Cloud searchでレコチョク検索の実現に向けて
#reco_tech Cloud searchでレコチョク検索の実現に向けて
 
Android binder-ipc
Android binder-ipcAndroid binder-ipc
Android binder-ipc
 
Algoritmos - Matrizes
Algoritmos - MatrizesAlgoritmos - Matrizes
Algoritmos - Matrizes
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggers
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfaces
 
Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________
 

En vedette

Curso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatosCurso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatosQualister
 
Revisão por pares: Como funciona (?) e nossas pesquisas no tema
Revisão por pares: Como funciona (?) e nossas pesquisas no temaRevisão por pares: Como funciona (?) e nossas pesquisas no tema
Revisão por pares: Como funciona (?) e nossas pesquisas no temaVinícius M. Kern
 
Lean Thinking: Mentalidade Enxuta para Desenvolvimento Ágil de Software
Lean Thinking: Mentalidade Enxuta para Desenvolvimento Ágil de SoftwareLean Thinking: Mentalidade Enxuta para Desenvolvimento Ágil de Software
Lean Thinking: Mentalidade Enxuta para Desenvolvimento Ágil de SoftwareDionatan default
 
Verificação e validação de software
Verificação e validação de softwareVerificação e validação de software
Verificação e validação de softwareLeonardo Melo Santos
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenterlzap
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareCamilo Almendra
 

En vedette (7)

Curso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatosCurso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatos
 
Revisão por pares: Como funciona (?) e nossas pesquisas no tema
Revisão por pares: Como funciona (?) e nossas pesquisas no temaRevisão por pares: Como funciona (?) e nossas pesquisas no tema
Revisão por pares: Como funciona (?) e nossas pesquisas no tema
 
Lean Thinking: Mentalidade Enxuta para Desenvolvimento Ágil de Software
Lean Thinking: Mentalidade Enxuta para Desenvolvimento Ágil de SoftwareLean Thinking: Mentalidade Enxuta para Desenvolvimento Ágil de Software
Lean Thinking: Mentalidade Enxuta para Desenvolvimento Ágil de Software
 
Caso De Uso
Caso De UsoCaso De Uso
Caso De Uso
 
Verificação e validação de software
Verificação e validação de softwareVerificação e validação de software
Verificação e validação de software
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenter
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 

Similaire à Inspeções em desenvolvimento de software

Mineração de Repositórios de Defeitos
Mineração de Repositórios de DefeitosMineração de Repositórios de Defeitos
Mineração de Repositórios de DefeitosRodrigo Rocha
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxRoberto Nunes
 
Desenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidadeDesenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidadeDiogo Augusto Pereira
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 
Aula 3 - Gestão de Projetos
Aula 3 - Gestão de ProjetosAula 3 - Gestão de Projetos
Aula 3 - Gestão de ProjetosFernando Dantas
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Adriano Bertucci
 
BaixadaTech 2012 - Qualidade de Software
BaixadaTech 2012 - Qualidade de SoftwareBaixadaTech 2012 - Qualidade de Software
BaixadaTech 2012 - Qualidade de SoftwareAdriano Bertucci
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosVitor Silva
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfHoctairBernardino
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidaderzauza
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoJoeldson Costa Damasceno
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Tchelinux
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasKleitor Franklint Correa Araujo
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 

Similaire à Inspeções em desenvolvimento de software (20)

Mineração de Repositórios de Defeitos
Mineração de Repositórios de DefeitosMineração de Repositórios de Defeitos
Mineração de Repositórios de Defeitos
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptx
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de software Teste de software
Teste de software
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Desenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidadeDesenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidade
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
Aula 3 - Gestão de Projetos
Aula 3 - Gestão de ProjetosAula 3 - Gestão de Projetos
Aula 3 - Gestão de Projetos
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012
 
BaixadaTech 2012 - Qualidade de Software
BaixadaTech 2012 - Qualidade de SoftwareBaixadaTech 2012 - Qualidade de Software
BaixadaTech 2012 - Qualidade de Software
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes Unitários
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdf
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes.
 
Testes
TestesTestes
Testes
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 

Plus de Synergia - Engenharia de Software e Sistemas

Plus de Synergia - Engenharia de Software e Sistemas (13)

Testes ágeis: saindo da zona de conforto
Testes ágeis: saindo da zona de confortoTestes ágeis: saindo da zona de conforto
Testes ágeis: saindo da zona de conforto
 
Desenvolvendo aplicações web com GWT
Desenvolvendo aplicações web com GWTDesenvolvendo aplicações web com GWT
Desenvolvendo aplicações web com GWT
 
Teste de Aceitação: problemas, desafios e abordagens
Teste de Aceitação: problemas, desafios e abordagensTeste de Aceitação: problemas, desafios e abordagens
Teste de Aceitação: problemas, desafios e abordagens
 
Por que contratar projetos ágeis?
Por que contratar projetos ágeis?Por que contratar projetos ágeis?
Por que contratar projetos ágeis?
 
Estimativas em projetos de software
Estimativas em projetos de softwareEstimativas em projetos de software
Estimativas em projetos de software
 
Como os testes irão se modificar com o advento das metodologias ágeis
Como os testes irão se modificar com o advento das metodologias ágeisComo os testes irão se modificar com o advento das metodologias ágeis
Como os testes irão se modificar com o advento das metodologias ágeis
 
Gestão de Processos de Negócio (BPM)
Gestão de Processos de Negócio (BPM)Gestão de Processos de Negócio (BPM)
Gestão de Processos de Negócio (BPM)
 
Controle estatístico de processos
Controle estatístico de processosControle estatístico de processos
Controle estatístico de processos
 
O retorno do investimento no projeto adequado de interfaces de usuário
O retorno do investimento no projeto adequado de interfaces de usuárioO retorno do investimento no projeto adequado de interfaces de usuário
O retorno do investimento no projeto adequado de interfaces de usuário
 
Gerenciamento de projetos usando corrente crítica
Gerenciamento de projetos usando corrente críticaGerenciamento de projetos usando corrente crítica
Gerenciamento de projetos usando corrente crítica
 
Aplicações Web Ricas e Acessíveis
Aplicações Web Ricas e AcessíveisAplicações Web Ricas e Acessíveis
Aplicações Web Ricas e Acessíveis
 
Testes de segurança em aplicações web
Testes de segurança em aplicações webTestes de segurança em aplicações web
Testes de segurança em aplicações web
 
Introdução a gerenciamento de projetos e PMBoK®
Introdução a gerenciamento de projetos e PMBoK®Introdução a gerenciamento de projetos e PMBoK®
Introdução a gerenciamento de projetos e PMBoK®
 

Inspeções em desenvolvimento de software

  • 1. Inspeções em projetos de software Vitor Alcântara Batista Engenharia de Processos
  • 2. Agenda 1. Motivação 2. Tipos de revisões 3. O processo de Inspeção 4. Estudos de caso 5. Momento de reflexão 2
  • 4. Situação atual da indústria CHAOS Report (Standish Group) The rise and fall of the Chaos report figures - J.L. Eveleens and C. Verhoef 4
  • 5. Situação atual da indústria Panorama atual da indústria [Yang et al., 2008]: – 59% a 76% dos projetos apresentam esforço superior ao estimado, sendo o erro de 18% a 41%. – 35% a 80% apresentam estouro do prazo, sendo o estouro de 22% a 25%. 5
  • 7. Custo de remoção de defeitos Baziuk Boehm Fase (1995) (1976) Requisitos 1X 0,2Y Desenho 0,5Y Codificação 1,2Y Testes de Unidade Testes de integração Testes de sistema 90X 5Y Testes de instalação 90X-440X 15Y Testes de aceitação 440X Operação 440-880X (2900X)
  • 8. Prévia do Momento de reflexão Nosso processo de desenvolvimento é caro? Ultrapassamos o ponto de inflexão? Ctotal = Cdesenvolvimento + Cqualidade Cqualidade = Cprevenção + Capreciações + Cfalha_interna + Cfalha_externa 8
  • 9. 2. Tipos de revisões
  • 10. Revisões versus Testes Revisões são muito mais eficazes que testes: – Encontram o defeito mais cedo • Mais barato – Identificam diretamente o defeito • Testes identificam apenas o sintoma. Depois é necessário descobrir a causa. 10
  • 11. IEEE Std 1028-1997, IEEE Standard for Software Reviews Revisão: – Processo ou reunião na qual um artefato é apresentado para a equipe, usuários clientes e/ou gerentes para ser aprovado ou comentado. Tipos de revisão – Revisões Gerenciais – Revisões Técnicas – Inspeções – Revisões de apresentação – Auditorias 11
  • 12. Classificação proposta por Wiegers [Wiegers, 2002] Peer Revisão de Deskcheck, Inspeção apresentação Passaround Revisão Progra- Ad hoc técnica mação em pares Mais formal Menos formal 12
  • 13. Atividades em cada tipo de revisão [Wiegers, 2002] Tipo de revisão Planejamento Preparação Reunião Correção Verificação Inspeção x x x x x Revisão técnica x x x x Opc. Revisão de apresentação x x x Programação em pares x Contínuo x x Peer Deskcheck, x Opc. x Passaround Ad Hoc x x 13
  • 14. Tipos de revisão x Recomendações de uso [Wiegers, 2002] Revisão Revisão de Programação Peer Objetivo Inspeção Passaround técnica apresentação em pares Deskcheck Encontrar defeitos x x x x x x Verificar conformidade com x x x x especificações Verificar conformidade com x x x padrões Verificar completeza e correção x x do artefato Avaliar compreensão e x x x x manutenibilidade Coletar dados para melhoria de x x processos Medir qualidade do artefato x Educar a equipe sobre o produto x x x x Alcançar consenso sobre uma x x x abordagem Garantir a correção dos defeitos x x x Explorar abordagens alternativas x 14
  • 15. Outra opinião [Gilb & Graham, 1993] Usar – Revisões de apresentação • Treinar – Revisões técnicas • Chegar a um consenso – Inspeções • Aumentar a qualidade do artefato e do processo Inspecionar antes ou depois dos outros procedimentos? – Depende da maturidade do artefato – Não adianta encontrar defeitos sobre algo que não tem consenso – E não adianta tentar alcançar consenso sobre algo de baixa qualidade 15
  • 16. 3. O processo de inspeção (IEEE)
  • 17. Os papéis da inspeção e suas responsabilidades Líder da inspeção – Planejamento e preparação – Assegurar que o processo seja seguido Relator – Registrar defeitos, ações e decisões – Coletar dados da qualidade – Pode ser exercido pelo Líder Leitor – Apresenta o artefato sendo revisado, uma parte de cada vez, ressaltando os pontos importantes. – Não deve ser o autor 17
  • 18. Os papéis da inspeção e suas responsabilidades Autor – Corrigir os defeitos – Tirar eventuais dúvidas durante as reuniões Inspetor(es) – Identificar e descrever os defeitos e inconformidades do artefato 18
  • 19. As etapas da inspeção 1. Planejamento – O autor comunica a conclusão de um artefato – O gerente designa um líder, que escolhe os inspetores e estima o número de encontros necessários e agenda as reuniões – O moderador fornece o material para revisão: artefato, listas de conferência, objetivos e material de suporte 2. Reunião de visão geral (opcional) – Apresentação informal do artefato, pelo autor, sem entrar em detalhes 3. Preparação – Os inspetores avaliam o material e coletam uma lista de problemas, defeitos, sugestões – Utilização de listas de conferência e tabelas de classificação dos defeitos 19
  • 20. As etapas da inspeção 4. Reuniões de inspeção – O leitor apresenta o material para os inspetores, em pequenas partes de cada vez. – Após a apresentação de cada parte, os inspetores apontam os problemas, defeitos, inconformidades e sugestões, que são registrados pelo Relator – Ao final das reuniões, o grupo deve dar um laudo para a inspeção – O líder deve produzir um relatório sumarizando os dados quantitativos 5. Retrabalho – Correção dos defeitos – Resolução dos problemas 20
  • 21. As etapas da inspeção 6. Conferência – O Líder assegura a verificação da correção dos defeitos e correto endereçamento dos problemas. 7. Análise causal – Os dados quantitativos são analisados para prevenção de defeitos: • Análise de Paretto • Análise de Causa e efeito (Diagrama de Ishikawa) 21
  • 22. Revisões técnicas x Inspeções Principais diferenças entre Revisão técnica e Inspeção: – O Papel do Leitor – A etapa de prevenção de defeitos – Granularidade da apresentação 22
  • 24. O trabalho de Fagan [Fagan, 1976] na IBM Desenvolvimento do processo de inspeção para especificações de teste, desenho detalhado e código fonte Aumento de produtividade: – I1 = 12%, I1 + I2 = 123% – I3 se mostrou mais caro que a economia do retrabalho 24
  • 25. O trabalho de Fagan na IBM Comparado com a metodologia anterior, onde no lugar das inspeções eram usadas revisões de apresentação: – Redução de 38% nos defeitos de desenho e código 25
  • 26. O estudo de Boehm na indústria da Tailândia Comparou-se Inspeções formais (IF) a Programação em pares (PP), tanto com alunos de graduação quanto na indústria Tailandesa. – Na graduação: • PP teve Tempo total de desenvolvimento 24% menor, com qualidade equivalente – Na indústria (projetos mais complexos) • PP teve Tempo total de desenvolvimento 4% maior, mas teve 39% a menos de defeitos graves 26
  • 27. Comparação entre formas de organizar a inspeção Porter e outros [Porter et.al., 1997] fizeram experimentos durante 18 meses com inspeções e concluíram: – Tamanho da equipe: • Não há diferença entre 2 ou 4 inspetores • 2 ou 4 inspetores são mais eficazes que 1 – 2 sessões de inspeção não são mais eficazes que 1 só. Não vale o overhead – Reparar defeitos entre as sessões não traz efeito sobre na densidade de defeitos, mas aumenta muito o tempo total de inspeção – A preparação individual levantou apenas 13% de defeitos funcionais, indicando que os inspetores estavam focando em aspectos pouco importantes 27
  • 28. Outros relatos apresentados em [Wiegers, 2002] HP mediu o ROI em 1000% do seu programa de inspeção. AT&T reduziu o custo de encontrar defeitos, usando inspeções, por um fator de 10. Também houve um aumento de 4x na qualidade do produto e 14% de aumento de produtividade. IBM relatou que cada hora investida em inspeções economizou 20 horas de testes e 82 horas de retrabalho. Na Imperial Chemical Industries, o custo de manter 400 produtos que foram inspecionados é 10% do custo de manter outro portfólio de 400 produtos que não passaram por inspeção. 28
  • 29. E claro: um modelo de maturidade! [Kollanus, 2009] 29
  • 30. Qual é a melhor técnica? Parece não haver resposta definitiva. Um método de revisão pode ser mais apropriado que outro em uma determinada situação, mas não necessariamente em todas. Cada organização deve medir o benefício de cada método, através de experimentos 30
  • 31. 5. Momento de reflexão
  • 32. Momento de reflexão Nosso processo de desenvolvimento é caro? Ultrapassamos o ponto de inflexão? Ctotal = Cdesenvolvimento + Cqualidade Cqualidade = Cprevenção + Capreciações + Cfalha_interna + Cfalha_externa 32
  • 33. O custo da qualidade no Synergia Levantamento “preliminar” Dados incluem especificação e desenvolvimento de um grande projeto, mas o escopo da especificação é maior. Tipo de investimento Detalhes % do Projeto Especificação e execução de testes 8,30% Apreciações Revisões 6,30% Revisões de requisitos com usuários 6,80% Custo defeito interno Retrabalho Interno 13,90% Investimento em usabilidade 6,50% Prevenção Treinamentos 6,90% Tipo Total % 48,70% Correção e verificação de defeitos 39,3% código-fonte Correção e verificação de defeitos 50,9% encontrados nas revisões Outros retrabalhos 9,8% 33
  • 34. A Qualidade do produto entregue Distribuição do esforço de um grande projeto, atualmente em manutenção Densidade de defeitos encontrados em produção: – Aproximadamente: 0,05 defeitos/PF (0,02 defeitos graves/PF) • Índice de empresas CMMI nível 5, segundo a SPR. 34
  • 35. Algumas questões para refletir O custo da qualidade está alto? Estamos fazendo os tipos certos de apreciações em cada artefato? Os defeitos encontrados nas revisões são os que deveríamos procurar? O esforço das revisões deveria ser menor que o investimento em testes? O esforço de correção e verificação de defeitos deveria ser aproximadamente igual ao de correção e verificação das revisões? O tipo de teste de unidade é o adequado? Todo cliente demanda a qualidade que estamos oferecendo? 35
  • 37. Contato Vitor Alcântara Batista Equipe de Engenharia de processos vitor@dcc.ufmg.br 37
  • 38. Algumas Referências [Fagan, 1976] – Design and code inspections to reduce errors in program development - Michael E. Fagan - IBM Systems Journal, 15(3), 182–211 [Gilb & Graham, 1993] – Software Inspection – Tom Gilb, Dorothy Graham – Addison-Wesley – 1993 [Kollanus, 2009] - Experiences from using ICMM in inspection process assessment - Sami Kollanus - Software Qual J (2009) [Phongpaibul & Boehm, 2006] - An Empirical Comparison Between Pair Development and Software Inspection in Thailand - Monvorath Phongpaibul, Barry Boehm - ISESE'06 [Porter et.al., 1997] - An Experiment to Assess the Cost-Benefits of Code Inspections in Large Scale Software Development - Adam A. Porter, Carol A. Toman, and Lawrence G. Votta - IEEE Transactions On Software Engineering, Vol. 23, no. 6, June 1997 [Wiegers, 2002] – Peer Reviews in Software, A Practical Guide – Karl E. Wiegers – Addison-Wesley Information Technology Series – 2002 38