SlideShare a Scribd company logo
1 of 32
Download to read offline
Eficácia de Práticas de
                       Verificação na Evolução de
                       Projetos de Software Livre

             Rodrigo Rocha G. e Souza <rodrigorgs@gmail.com>

             Orientadora:
             Christina von Flach Garcia Chavez

             Laboratório de Engenharia de Software (LES)
             Universidade Federal da Bahia (UFBA)


23 de março de 2012                         1
sexta-feira, 23 de março de 12
Sumário


                 • ...



                                    2
sexta-feira, 23 de março de 12
Revisão
                                 Práticas. Defeitos.




                                          3
sexta-feira, 23 de março de 12
Práticas



                                    4
sexta-feira, 23 de março de 12
Defeitos



                                    5
sexta-feira, 23 de março de 12
Terminologia


                 • Defeito = bug
                 • Correção = fix
                 • Correção parcial


                                      6
sexta-feira, 23 de março de 12
Repositórios de Bugs

                 • Lista de bugs conhecidos de um sistema
                 • Reportados por usuários e desenvolvedores
                 • Desenvolvedores reportam o progresso da
                       correção de bugs, pedem mais informações,
                       comentam as correções enviadas... (dados do
                       processo)


                                          7
sexta-feira, 23 de março de 12
http://wiki.eclipse.org/Development_Resources/HOWTO/Bugzilla_Use
                                          8
sexta-feira, 23 de março de 12
Reabertura de Bugs
                 •     Depois de considerado corrigido, percebe-se que
                       o bug ainda se manifesta.

                 •     Problemas

                      •     Bugs reabertos demoram 2x mais para serem
                            corrigidos

                      •     Bugs incorretamente considerados como
                            corrigidos vão se manifestar nas releases


                                               9
sexta-feira, 23 de março de 12
Projeto
                     O quê? Pra quê? Como? Desafios.




                                    10
sexta-feira, 23 de março de 12
O quê?

                  Avaliar a eficácia de determinadas práticas
                  de verificação aplicadas no contexto de
                  correção de defeitos em projetos de software livre.
               Outra metrica é qto tempo ate o fix
               definitivo, e como isso varia de acordo
               com a pratica usada.




                  ex.: verificação independente, formação de times de QA,
                  estabelecimento de uma fase de verificação no ciclo de releases...




                                                           11
sexta-feira, 23 de março de 12
Pra quê?

                 • Fornecer evidências que ajudem a priorizar a
                       adoção de práticas mais efetivas
                 •     Enriquecer modelos de previsão de defeitos ao incorporar
                       dados do processo de desenvolvimento.

                 •     Facilitar a avaliação de qualidade de processos empregados
                       em projetos de software livre. (ver QualiPSo)




                                                 12
sexta-feira, 23 de março de 12
Como?
                                         Abram Hindle. Software process recovery.
                                         Ana Carla de Medeiros. Eindhoven.




                 •     Estudos observacionais retrospectivos usando
                       dados de repositórios de software

                      •     Análise quantitativa (estatística, mineração de
                            dados/processos)

                      •     Análise qualitativa, exploratória (codificação de
                            texto)

                 •     Experimento controlado com alunos no
                       contexto de um curso acadêmico                                Estudo piloto com Christina,
                                                                                     Terceiro etc.




                                                         13
sexta-feira, 23 de março de 12
Resultados Parciais



                                 14
sexta-feira, 23 de março de 12
1.Verificação independente
                 (quatro olhos) de uma correção

                     contribui para evitar a
                     reabertura do bug
                        correspondente?

                                 15
sexta-feira, 23 de março de 12
Hipótese

                 • Bugs verificados por outra pessoa (4 olhos)
                       estão menos sujeitos a serem reabertos
                       (depois da verificação).
                      •     (A proporção de 2 olhos é maior nos bugs
                            reabertos do que nos bugs ok)




                                               16
sexta-feira, 23 de março de 12
Resultado inconclusivo para
                      o projeto Eclipse
                                             Eclipse Platform
                                 60,00
                                                                          2 olhos
                                                                          4 olhos
                                 45,00


                                 30,00                           Teste exato de Fisher:
                                                                     p = 0.44 (não
                                 15,00                                significativo)

                                    0
                                         reaberto           ok


                                                    17
sexta-feira, 23 de março de 12
• Explicação possível: os desenvolvedores
                       sabem identificar quais bugs devem ser
                       verificados por outro desenvolvedores.




                                         18
sexta-feira, 23 de março de 12
2. Será que há ruído nos
                       dados de bugs? Como
                     aproveitar os dados para
                       minerar práticas de
                           verificação?

                                 19
sexta-feira, 23 de março de 12
há ruídos nos dados?
                                   quando é feita a verificação?
                                     quem faz a verificação?
                                       como é feita a verificação?
                                               20
sexta-feira, 23 de março de 12
há ruídos nos dados?




                                      verificações em massa




                                 21
sexta-feira, 23 de março de 12
quando é feita a verificação?




                                      fase de verificação




                                 22
sexta-feira, 23 de março de 12
quem faz a verificação?




                                          23
sexta-feira, 23 de março de 12
como é feita a verificação?




                                        24
sexta-feira, 23 de março de 12
3. Será que determinadas
                 práticas de verificação são
                mais eficazes do que outras?
                                 (em andamento)




                                       25
sexta-feira, 23 de março de 12
• A chance de o bug ser reaberto após a
                       verificação é menor quando...

                      • ... a verificação é feita pelo time de QA?
                            inconclusivo

                      • ... a verificação é feita durante a fase de
                            verificação?
                            sim (em 2/4 dos projetos)

                      • ... uma determinada técnica de verificação
                            é empregada (testes, inspeção etc.)?
                            sim, no caso de inspeção de código
                                             26
sexta-feira, 23 de março de 12
4. Experimento na disciplina
                     “Desenvolvimento de
                       Projetos FLOSS”
                                 (em andamento)




                                       27
sexta-feira, 23 de março de 12
• Em fase de planejamento
                 • Alunos em equipes de 3 ou 4 contribuirão
                       com patches para projetos de software livre
                       a sua escolha.

                 • Em algumas equipes, cada patch será
                       revisado por outro membro da equipe antes
                       de submeter ao projeto (verificação interna).



                                          28
sexta-feira, 23 de março de 12
• Coisas pra olhar:
                  • que critérios um verificador interno tende
                            a negligenciar quando comparado a um
                            verificador do projeto?

                      • a verificação interna ajuda a acelerar a
                            inclusão do patch no projeto?



                                             29
sexta-feira, 23 de março de 12
Trabalhos Futuros



                                     30
sexta-feira, 23 de março de 12
• Investigar outras práticas de verificação
                 • Construir diagrama causal de reabertura de
                       bugs e usá-lo para realizar análises mais
                       rigorosas.

                 • Analisar outros projetos (tenho dados de +3)
                 •     Talvez incorporar à análise dados de
                       repositórios de código
                                      Diego trabalhando com bug reports na
                                      Google.




                                                   31
sexta-feira, 23 de março de 12
sexta-feira, 23 de março de 12

More Related Content

Viewers also liked

Taller n°1 excel básico 9.3
Taller n°1 excel básico 9.3Taller n°1 excel básico 9.3
Taller n°1 excel básico 9.3gynipot
 
Sketches
SketchesSketches
Sketcheslukaor
 
Plan de lección no 4 habilidad oral
Plan de lección  no 4 habilidad oralPlan de lección  no 4 habilidad oral
Plan de lección no 4 habilidad oralIlcen
 
Taller de Excel..!!
Taller de Excel..!!Taller de Excel..!!
Taller de Excel..!!Sthiven
 
Transmissão da vida noções básicas de hereditariedade
Transmissão da vida noções básicas de hereditariedadeTransmissão da vida noções básicas de hereditariedade
Transmissão da vida noções básicas de hereditariedadeLeonardo Alves
 

Viewers also liked (7)

Taller n°1 excel básico 9.3
Taller n°1 excel básico 9.3Taller n°1 excel básico 9.3
Taller n°1 excel básico 9.3
 
Sketches
SketchesSketches
Sketches
 
Jobmarketingwerktrend
JobmarketingwerktrendJobmarketingwerktrend
Jobmarketingwerktrend
 
Plan de lección no 4 habilidad oral
Plan de lección  no 4 habilidad oralPlan de lección  no 4 habilidad oral
Plan de lección no 4 habilidad oral
 
Taller de Excel..!!
Taller de Excel..!!Taller de Excel..!!
Taller de Excel..!!
 
Transmissão da vida noções básicas de hereditariedade
Transmissão da vida noções básicas de hereditariedadeTransmissão da vida noções básicas de hereditariedade
Transmissão da vida noções básicas de hereditariedade
 
Dm7408
Dm7408Dm7408
Dm7408
 

Similar to 2012 doutorado - visita de dalton - comentarios de dalton, roberto e christina

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
 
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações WebProposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações WebMaurício Aniche
 
Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay
Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDayQuando utilizar Crowdsourcing em Testes | Crowdtest no DevDay
Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDayBase2 Tecnologia
 
7 atitudes-lidar-nao-conformidades-controle-qualidade slideshare
7 atitudes-lidar-nao-conformidades-controle-qualidade slideshare7 atitudes-lidar-nao-conformidades-controle-qualidade slideshare
7 atitudes-lidar-nao-conformidades-controle-qualidade slideshareQualiChart
 
DevQA: Um futuro para analistas de testes ?
DevQA: Um futuro para analistas de testes ?DevQA: Um futuro para analistas de testes ?
DevQA: Um futuro para analistas de testes ?Kamilla Queiroz Xavier
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?Ariane Izac
 
Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testeselliando dias
 
Meus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareMeus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareVanilton Pinheiro
 
Introdução a Testes de Software
Introdução a Testes de SoftwareIntrodução a Testes de Software
Introdução a Testes de SoftwareIgor Takenami
 

Similar to 2012 doutorado - visita de dalton - comentarios de dalton, roberto e christina (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
 
Teste de software gestao e kaizen
Teste de software gestao e kaizenTeste de software gestao e kaizen
Teste de software gestao e kaizen
 
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações WebProposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
 
Predição de bugs
Predição de bugsPredição de bugs
Predição de bugs
 
Questionario CTFL - Foundation Level
Questionario CTFL - Foundation LevelQuestionario CTFL - Foundation Level
Questionario CTFL - Foundation Level
 
Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay
Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDayQuando utilizar Crowdsourcing em Testes | Crowdtest no DevDay
Quando utilizar Crowdsourcing em Testes | Crowdtest no DevDay
 
7 atitudes-lidar-nao-conformidades-controle-qualidade slideshare
7 atitudes-lidar-nao-conformidades-controle-qualidade slideshare7 atitudes-lidar-nao-conformidades-controle-qualidade slideshare
7 atitudes-lidar-nao-conformidades-controle-qualidade slideshare
 
DevQA: Um futuro para analistas de testes ?
DevQA: Um futuro para analistas de testes ?DevQA: Um futuro para analistas de testes ?
DevQA: Um futuro para analistas de testes ?
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes 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
 
Palestra masp
Palestra   maspPalestra   masp
Palestra masp
 
Palestra masp
Palestra   maspPalestra   masp
Palestra masp
 
Palestra masp
Palestra   maspPalestra   masp
Palestra masp
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?
 
Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testes
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Meus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareMeus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de Software
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Introdução a Testes de Software
Introdução a Testes de SoftwareIntrodução a Testes de Software
Introdução a Testes de Software
 
Debugging node
Debugging nodeDebugging node
Debugging node
 

More from Rodrigo Rocha

Aula: busca e ordenação
Aula: busca e ordenaçãoAula: busca e ordenação
Aula: busca e ordenaçãoRodrigo Rocha
 
Patterns for Extracting High Level Information from Bug Reports
Patterns for Extracting High Level Information from Bug ReportsPatterns for Extracting High Level Information from Bug Reports
Patterns for Extracting High Level Information from Bug ReportsRodrigo Rocha
 
Patterns for Cleaning Up Bug Data
Patterns for Cleaning Up Bug DataPatterns for Cleaning Up Bug Data
Patterns for Cleaning Up Bug DataRodrigo Rocha
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Rodrigo Rocha
 
2011 seminario rodrigo 2011
2011 seminario rodrigo 20112011 seminario rodrigo 2011
2011 seminario rodrigo 2011Rodrigo Rocha
 
2012 qualificacao-rodrigo-2012
2012 qualificacao-rodrigo-20122012 qualificacao-rodrigo-2012
2012 qualificacao-rodrigo-2012Rodrigo Rocha
 
Características de apps
Características de appsCaracterísticas de apps
Características de appsRodrigo Rocha
 
Characterizing Verification of Bug Fixes in Two Open Source IDEs (MSR 2012)
Characterizing Verification of Bug Fixes in Two Open Source IDEs (MSR 2012)Characterizing Verification of Bug Fixes in Two Open Source IDEs (MSR 2012)
Characterizing Verification of Bug Fixes in Two Open Source IDEs (MSR 2012)Rodrigo Rocha
 

More from Rodrigo Rocha (10)

Aula: busca e ordenação
Aula: busca e ordenaçãoAula: busca e ordenação
Aula: busca e ordenação
 
Patterns for Extracting High Level Information from Bug Reports
Patterns for Extracting High Level Information from Bug ReportsPatterns for Extracting High Level Information from Bug Reports
Patterns for Extracting High Level Information from Bug Reports
 
Patterns for Cleaning Up Bug Data
Patterns for Cleaning Up Bug DataPatterns for Cleaning Up Bug Data
Patterns for Cleaning Up Bug Data
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)
 
Beabá do R
Beabá do RBeabá do R
Beabá do R
 
2011 seminario rodrigo 2011
2011 seminario rodrigo 20112011 seminario rodrigo 2011
2011 seminario rodrigo 2011
 
2012 qualificacao-rodrigo-2012
2012 qualificacao-rodrigo-20122012 qualificacao-rodrigo-2012
2012 qualificacao-rodrigo-2012
 
Características de apps
Características de appsCaracterísticas de apps
Características de apps
 
Mercado de apps
Mercado de appsMercado de apps
Mercado de apps
 
Characterizing Verification of Bug Fixes in Two Open Source IDEs (MSR 2012)
Characterizing Verification of Bug Fixes in Two Open Source IDEs (MSR 2012)Characterizing Verification of Bug Fixes in Two Open Source IDEs (MSR 2012)
Characterizing Verification of Bug Fixes in Two Open Source IDEs (MSR 2012)
 

2012 doutorado - visita de dalton - comentarios de dalton, roberto e christina

  • 1. Eficácia de Práticas de Verificação na Evolução de Projetos de Software Livre Rodrigo Rocha G. e Souza <rodrigorgs@gmail.com> Orientadora: Christina von Flach Garcia Chavez Laboratório de Engenharia de Software (LES) Universidade Federal da Bahia (UFBA) 23 de março de 2012 1 sexta-feira, 23 de março de 12
  • 2. Sumário • ... 2 sexta-feira, 23 de março de 12
  • 3. Revisão Práticas. Defeitos. 3 sexta-feira, 23 de março de 12
  • 4. Práticas 4 sexta-feira, 23 de março de 12
  • 5. Defeitos 5 sexta-feira, 23 de março de 12
  • 6. Terminologia • Defeito = bug • Correção = fix • Correção parcial 6 sexta-feira, 23 de março de 12
  • 7. Repositórios de Bugs • Lista de bugs conhecidos de um sistema • Reportados por usuários e desenvolvedores • Desenvolvedores reportam o progresso da correção de bugs, pedem mais informações, comentam as correções enviadas... (dados do processo) 7 sexta-feira, 23 de março de 12
  • 9. Reabertura de Bugs • Depois de considerado corrigido, percebe-se que o bug ainda se manifesta. • Problemas • Bugs reabertos demoram 2x mais para serem corrigidos • Bugs incorretamente considerados como corrigidos vão se manifestar nas releases 9 sexta-feira, 23 de março de 12
  • 10. Projeto O quê? Pra quê? Como? Desafios. 10 sexta-feira, 23 de março de 12
  • 11. O quê? Avaliar a eficácia de determinadas práticas de verificação aplicadas no contexto de correção de defeitos em projetos de software livre. Outra metrica é qto tempo ate o fix definitivo, e como isso varia de acordo com a pratica usada. ex.: verificação independente, formação de times de QA, estabelecimento de uma fase de verificação no ciclo de releases... 11 sexta-feira, 23 de março de 12
  • 12. Pra quê? • Fornecer evidências que ajudem a priorizar a adoção de práticas mais efetivas • Enriquecer modelos de previsão de defeitos ao incorporar dados do processo de desenvolvimento. • Facilitar a avaliação de qualidade de processos empregados em projetos de software livre. (ver QualiPSo) 12 sexta-feira, 23 de março de 12
  • 13. Como? Abram Hindle. Software process recovery. Ana Carla de Medeiros. Eindhoven. • Estudos observacionais retrospectivos usando dados de repositórios de software • Análise quantitativa (estatística, mineração de dados/processos) • Análise qualitativa, exploratória (codificação de texto) • Experimento controlado com alunos no contexto de um curso acadêmico Estudo piloto com Christina, Terceiro etc. 13 sexta-feira, 23 de março de 12
  • 14. Resultados Parciais 14 sexta-feira, 23 de março de 12
  • 15. 1.Verificação independente (quatro olhos) de uma correção contribui para evitar a reabertura do bug correspondente? 15 sexta-feira, 23 de março de 12
  • 16. Hipótese • Bugs verificados por outra pessoa (4 olhos) estão menos sujeitos a serem reabertos (depois da verificação). • (A proporção de 2 olhos é maior nos bugs reabertos do que nos bugs ok) 16 sexta-feira, 23 de março de 12
  • 17. Resultado inconclusivo para o projeto Eclipse Eclipse Platform 60,00 2 olhos 4 olhos 45,00 30,00 Teste exato de Fisher: p = 0.44 (não 15,00 significativo) 0 reaberto ok 17 sexta-feira, 23 de março de 12
  • 18. • Explicação possível: os desenvolvedores sabem identificar quais bugs devem ser verificados por outro desenvolvedores. 18 sexta-feira, 23 de março de 12
  • 19. 2. Será que há ruído nos dados de bugs? Como aproveitar os dados para minerar práticas de verificação? 19 sexta-feira, 23 de março de 12
  • 20. há ruídos nos dados? quando é feita a verificação? quem faz a verificação? como é feita a verificação? 20 sexta-feira, 23 de março de 12
  • 21. há ruídos nos dados? verificações em massa 21 sexta-feira, 23 de março de 12
  • 22. quando é feita a verificação? fase de verificação 22 sexta-feira, 23 de março de 12
  • 23. quem faz a verificação? 23 sexta-feira, 23 de março de 12
  • 24. como é feita a verificação? 24 sexta-feira, 23 de março de 12
  • 25. 3. Será que determinadas práticas de verificação são mais eficazes do que outras? (em andamento) 25 sexta-feira, 23 de março de 12
  • 26. • A chance de o bug ser reaberto após a verificação é menor quando... • ... a verificação é feita pelo time de QA? inconclusivo • ... a verificação é feita durante a fase de verificação? sim (em 2/4 dos projetos) • ... uma determinada técnica de verificação é empregada (testes, inspeção etc.)? sim, no caso de inspeção de código 26 sexta-feira, 23 de março de 12
  • 27. 4. Experimento na disciplina “Desenvolvimento de Projetos FLOSS” (em andamento) 27 sexta-feira, 23 de março de 12
  • 28. • Em fase de planejamento • Alunos em equipes de 3 ou 4 contribuirão com patches para projetos de software livre a sua escolha. • Em algumas equipes, cada patch será revisado por outro membro da equipe antes de submeter ao projeto (verificação interna). 28 sexta-feira, 23 de março de 12
  • 29. • Coisas pra olhar: • que critérios um verificador interno tende a negligenciar quando comparado a um verificador do projeto? • a verificação interna ajuda a acelerar a inclusão do patch no projeto? 29 sexta-feira, 23 de março de 12
  • 30. Trabalhos Futuros 30 sexta-feira, 23 de março de 12
  • 31. • Investigar outras práticas de verificação • Construir diagrama causal de reabertura de bugs e usá-lo para realizar análises mais rigorosas. • Analisar outros projetos (tenho dados de +3) • Talvez incorporar à análise dados de repositórios de código Diego trabalhando com bug reports na Google. 31 sexta-feira, 23 de março de 12
  • 32. sexta-feira, 23 de março de 12