SlideShare a Scribd company logo
1 of 33
Pragmatic Prioritization of Software
Quality Assurance Efforts
Emad Shihab
Queen’s University
1
Motivation
Software ^ has bugs
2
How to allocate quality assurance
efforts for legacy and new code?
Q:
managers ^ have limited resources
One Answer: Defect Prediction
Many recent studies focused on defect
prediction
3
….However adoption in practice remains low
An Industrial Example
How to prioritize the creation of unit
tests for a large legacy system
4
Criteria for Pragmatic QA Approaches
Focused Granularity
Unit of
prioritization
must be focused
(e.g., function or
method)
5
Current Approach Desired Approach
File, Folder or
subsystem level
(Thousands of
LOC)
Criteria for Pragmatic QA Approaches
Responsive Feedback
Continuous
reflection of
system changes.
6
Current Approach Desired Approach
Predict for next
release
Criteria for Pragmatic QA Approaches
Consider Effort
Consider effort in
recommendations
(e.g., use size)
7
Current Approach Desired Approach
No consideration
for effort
In addition, need to evaluate the generality of the approaches
to understand implications of findings
Proposed Pragmatic SQA Approaches
8
Unit test creation
How to allocate quality assurance
efforts for legacy code?
Q:
A:
Change risk
How to allocate quality assurance
efforts for new code?
Q:
A:
Unit Test Creation
Approach
1. Search modification record comments for keywords,
bug identifiers and modified files
2. Extract source code of modified file(s) and compare
to previous version to identify changed functions
3. Combine data from 1 and 2 to calculate
function-level heuristics
9
Unit Test Creation
Heuristics
Most Frequently Modified (MFM)
Most Recently Modified (MRM)
Most Frequently Fixed (MFF)
Most Recently Fixed (MRF)
Largest Fixed (LF)
Largest Modified (LM)
Change Risk (CR)
Size Risk (SR)
Random
Modification
Fix
Size
Risk
Random
10
Unit Test Creation
Heuristic Performance
Based on a heuristic, generate list of 10
functions to write unit tests for
Use size of function to measure effort
required to write unit test
11
Unit Test Creation
Usefulness: Was writing the unit test useful?
Time to write unit test
A
B
C
6 bug fixes
2 bug fixes
0 bug fixes
Usefulness = 2/3 = 66.67% 12
Unit Test Creation
Usefulness of Heuristics
27.7
43.1
48.8
55
56.9
80
83.8
84.7
87
8.5
9.9
12.6
17.4
16
28.1
32.3
32.9
44.7
0 10 20 30 40 50 60 70 80 90 100
Random
Most Recently Modified (MRM)
Size Risk (SR)
Change Risk (CR)
Most Recently Fixed (MRF)
Most Frequently Modified (MFM)
Most Frequently Fixed (MFF)
Largest Modified (LM)
Largest Fixed (LF)
Open Source
Commercial
13
Revisiting the Pragmatic QA Criteria
Unit Test Creation
Unit Test Creation
Function level
recommendations
Heuristic lists are
continuously updated
Size of function used to
consider effort required
Focused Granularity
Consider Effort
Responsive Feedback
Evaluate Generality: Studied Open Source and Commercial systems
Change Risk
Proposed Approach
1. Mine changes and extract change metrics
2. Identify bug-inducing changes
3. Predict risky changes
15
Revisiting the Pragmatic QA Criteria
Change Risk
Change Risk
Map changes to modified
functions
Flag risky changes while
they are fresh in
developer’s minds
Size of change used to
consider effort
Focused Granularity
Consider Effort
Responsive Feedback
Evaluate Generality: Study on Open Source and Commercial systems
Thank you
I am grateful for this opportunity!
Backups
Revisiting the Pragmatic SQA Criteria
Unit Test Creation Change Risk
Focused Granularity
Estimate Effort
Evaluate Generality
Timely Feedback
Pragmatic SQA Criteria
What we have What we want
File level Unit of prioritization
must be focused (e.g.,
function)
Act on results in
future release
Must be able to act on
results of approach
quickly
No effort provided Provide an estimate of
the effort required for
the task
Focused Granularity
Estimate Effort
Timely Feedback
Evaluate
Generality
To help
understand
implications
of findings
Changes Risk
New code
Identify risky changes for closer examination before they
are integrated into the code base
21
Unit Test Creation
Implemented code
Prioritize the creation of unit tests for
implemented code
22
Revisiting the Pragmatic-aware
Criteria
Focused Granularity Timely feedback Estimate Effort Evaluate Generality
23
Avoid the most bugs effectively!
Write unit tests for functions with best
Return on Investment (ROI)
How can we avoid the most
bugs given limited resources?
24
Defect Prediction... An Example
Uses code metrics and pre-release defects to
predict files with post-release defects in the
Eclipse project.
25
Motivation
Software has^ bugs and
managers have ^ limited resources
26
How to allocate quality assurance
efforts for implemented and new
code?
Q:
A: Re-active and pro-active SQA
Proposed Approach
Extracting Historical Data
1. Extract change data to calculate metrics (e.g., churn)
2. Use SZZ to identify and predict bug-inducing changes
3.
27
Answer … Defect Prediction!
Use code metrics and process metrics
to predict which files are most likely to
contain defects in future releases
28
Defect Prediction... The Response
“The results are interesting, but of limited use to us ...”
... Why?
29
Defect Prediction... Lessons Learned
1. Identifying files is too coarse of a granularity
2. Having to wait till the next release is too late
3. Need an estimate of effort required
4. Why should we believe this will work for us?
30
Criteria for Pragmatic SQA
Approaches
Timely Feedback
Must be able to act on
results of approach quickly
31
Criteria for Pragmatic SQA
Approaches
Estimate Effort
Provide an estimate of
the effort required for
the task
32
Criteria for Pragmatic SQA
Approaches
Evaluate Generality
Evaluate on multiple
projects/domains to clearly
understand implications of
the findings
33

More Related Content

What's hot

John Brennen - Red Hot Testing in a Green World
John Brennen - Red Hot Testing in a Green WorldJohn Brennen - Red Hot Testing in a Green World
John Brennen - Red Hot Testing in a Green WorldTEST Huddle
 
Mats Grindal - Risk-Based Testing - Details of Our Success
Mats Grindal - Risk-Based Testing - Details of Our Success Mats Grindal - Risk-Based Testing - Details of Our Success
Mats Grindal - Risk-Based Testing - Details of Our Success TEST Huddle
 
Practical Application Of Risk Based Testing Methods
Practical Application Of Risk Based Testing MethodsPractical Application Of Risk Based Testing Methods
Practical Application Of Risk Based Testing MethodsReuben Korngold
 
Supporting Software Evolution Using Adaptive Change Propagation
Supporting Software Evolution Using Adaptive Change PropagationSupporting Software Evolution Using Adaptive Change Propagation
Supporting Software Evolution Using Adaptive Change PropagationSAIL_QU
 
Risk-based Testing
Risk-based TestingRisk-based Testing
Risk-based TestingJohan Hoberg
 
Better Software Classic Testing Mistakes
Better Software Classic Testing MistakesBetter Software Classic Testing Mistakes
Better Software Classic Testing Mistakesnazeer pasha
 
Put Risk Based Testing in place right now!
Put Risk Based Testing in place right now!Put Risk Based Testing in place right now!
Put Risk Based Testing in place right now!SQALab
 
What will testing look like in year 2020
What will testing look like in year 2020What will testing look like in year 2020
What will testing look like in year 2020BugRaptors
 
Risk based testing, Katerina Meshkova
Risk based testing, Katerina MeshkovaRisk based testing, Katerina Meshkova
Risk based testing, Katerina MeshkovaSigma Software
 
Estimating test effort part 1 of 2
Estimating test effort part 1 of 2Estimating test effort part 1 of 2
Estimating test effort part 1 of 2Ian McDonald
 
How to accurately estimate the size and effort of your software testing (1)
How to accurately estimate the size and effort of your software testing (1)How to accurately estimate the size and effort of your software testing (1)
How to accurately estimate the size and effort of your software testing (1)QASymphony
 
But Did You Test It
But Did You Test ItBut Did You Test It
But Did You Test ItRuth Blakely
 
Risk-Based Testing - Designing & managing the test process (2002)
Risk-Based Testing - Designing & managing the test process (2002)Risk-Based Testing - Designing & managing the test process (2002)
Risk-Based Testing - Designing & managing the test process (2002)Neil Thompson
 
What is Regression Testing? | Edureka
What is Regression Testing? | EdurekaWhat is Regression Testing? | Edureka
What is Regression Testing? | EdurekaEdureka!
 
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...SAIL_QU
 
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010TEST Huddle
 
Software testing metrics | David Tzemach
Software testing metrics | David Tzemach Software testing metrics | David Tzemach
Software testing metrics | David Tzemach David Tzemach
 
TESTING IMPLEMENTATION SYSTEM
TESTING IMPLEMENTATION SYSTEMTESTING IMPLEMENTATION SYSTEM
TESTING IMPLEMENTATION SYSTEMPutri nadya Fazri
 

What's hot (20)

John Brennen - Red Hot Testing in a Green World
John Brennen - Red Hot Testing in a Green WorldJohn Brennen - Red Hot Testing in a Green World
John Brennen - Red Hot Testing in a Green World
 
Mats Grindal - Risk-Based Testing - Details of Our Success
Mats Grindal - Risk-Based Testing - Details of Our Success Mats Grindal - Risk-Based Testing - Details of Our Success
Mats Grindal - Risk-Based Testing - Details of Our Success
 
Practical Application Of Risk Based Testing Methods
Practical Application Of Risk Based Testing MethodsPractical Application Of Risk Based Testing Methods
Practical Application Of Risk Based Testing Methods
 
Supporting Software Evolution Using Adaptive Change Propagation
Supporting Software Evolution Using Adaptive Change PropagationSupporting Software Evolution Using Adaptive Change Propagation
Supporting Software Evolution Using Adaptive Change Propagation
 
Risk-based Testing
Risk-based TestingRisk-based Testing
Risk-based Testing
 
Better Software Classic Testing Mistakes
Better Software Classic Testing MistakesBetter Software Classic Testing Mistakes
Better Software Classic Testing Mistakes
 
Put Risk Based Testing in place right now!
Put Risk Based Testing in place right now!Put Risk Based Testing in place right now!
Put Risk Based Testing in place right now!
 
What will testing look like in year 2020
What will testing look like in year 2020What will testing look like in year 2020
What will testing look like in year 2020
 
Risk based testing, Katerina Meshkova
Risk based testing, Katerina MeshkovaRisk based testing, Katerina Meshkova
Risk based testing, Katerina Meshkova
 
Estimating test effort part 1 of 2
Estimating test effort part 1 of 2Estimating test effort part 1 of 2
Estimating test effort part 1 of 2
 
How to accurately estimate the size and effort of your software testing (1)
How to accurately estimate the size and effort of your software testing (1)How to accurately estimate the size and effort of your software testing (1)
How to accurately estimate the size and effort of your software testing (1)
 
But Did You Test It
But Did You Test ItBut Did You Test It
But Did You Test It
 
Risk-Based Testing - Designing & managing the test process (2002)
Risk-Based Testing - Designing & managing the test process (2002)Risk-Based Testing - Designing & managing the test process (2002)
Risk-Based Testing - Designing & managing the test process (2002)
 
What is Regression Testing? | Edureka
What is Regression Testing? | EdurekaWhat is Regression Testing? | Edureka
What is Regression Testing? | Edureka
 
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
 
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
 
Testing Framework
Testing FrameworkTesting Framework
Testing Framework
 
Istqb ctal tm
Istqb ctal tmIstqb ctal tm
Istqb ctal tm
 
Software testing metrics | David Tzemach
Software testing metrics | David Tzemach Software testing metrics | David Tzemach
Software testing metrics | David Tzemach
 
TESTING IMPLEMENTATION SYSTEM
TESTING IMPLEMENTATION SYSTEMTESTING IMPLEMENTATION SYSTEM
TESTING IMPLEMENTATION SYSTEM
 

Viewers also liked

Battery Low Rules and Guidelines
Battery Low Rules and GuidelinesBattery Low Rules and Guidelines
Battery Low Rules and GuidelinesS Sun
 
Icsm2009 shihab
Icsm2009 shihabIcsm2009 shihab
Icsm2009 shihabSAIL_QU
 
Icsm2009 bettenburg presentation
Icsm2009 bettenburg presentationIcsm2009 bettenburg presentation
Icsm2009 bettenburg presentationSAIL_QU
 
Icsm2008 jiang
Icsm2008 jiangIcsm2008 jiang
Icsm2008 jiangSAIL_QU
 
RRJETAT NERVORE NË ZGJIDHJEN E PROBLEMEVE TË TOMOGRAFISË
RRJETAT NERVORE NË ZGJIDHJEN E PROBLEMEVE TË TOMOGRAFISËRRJETAT NERVORE NË ZGJIDHJEN E PROBLEMEVE TË TOMOGRAFISË
RRJETAT NERVORE NË ZGJIDHJEN E PROBLEMEVE TË TOMOGRAFISËEnian Tafa
 
Icst2012 zaman
Icst2012 zamanIcst2012 zaman
Icst2012 zamanSAIL_QU
 
Icsm2009 adams ph_d
Icsm2009 adams ph_dIcsm2009 adams ph_d
Icsm2009 adams ph_dSAIL_QU
 
Icsm2012 selective codeintegration
Icsm2012 selective codeintegrationIcsm2012 selective codeintegration
Icsm2012 selective codeintegrationSAIL_QU
 
Icsm2009 alam
Icsm2009 alamIcsm2009 alam
Icsm2009 alamSAIL_QU
 
Issre2010 malik
Issre2010 malikIssre2010 malik
Issre2010 malikSAIL_QU
 
Ler a Ciencia
Ler a CienciaLer a Ciencia
Ler a CienciaCCMC
 
Kcsd2009 emad
Kcsd2009 emadKcsd2009 emad
Kcsd2009 emadSAIL_QU
 
Icsm2009 jiang
Icsm2009 jiangIcsm2009 jiang
Icsm2009 jiangSAIL_QU
 
Icsm2011 syer
Icsm2011 syerIcsm2011 syer
Icsm2011 syerSAIL_QU
 
Educación escolar en emergencias asignatura vital
Educación escolar en emergencias  asignatura vitalEducación escolar en emergencias  asignatura vital
Educación escolar en emergencias asignatura vitalMª Esther Gorjón Peramato
 
01. a.-salinan-permendikbud-no.-54-tahun-2013-ttg-skl
01. a.-salinan-permendikbud-no.-54-tahun-2013-ttg-skl01. a.-salinan-permendikbud-no.-54-tahun-2013-ttg-skl
01. a.-salinan-permendikbud-no.-54-tahun-2013-ttg-sklM. ALI AMIRUDDIN
 
DIVERSITAS and my career as a junior scientist
DIVERSITAS and my career as a junior scientistDIVERSITAS and my career as a junior scientist
DIVERSITAS and my career as a junior scientistFuture Earth
 
Icsm2010 kamei
Icsm2010 kameiIcsm2010 kamei
Icsm2010 kameiSAIL_QU
 
Hermawan Kartajaya (MarkPlus,Inc) Presentation in Asean Blogger Festival
Hermawan Kartajaya (MarkPlus,Inc) Presentation in Asean Blogger FestivalHermawan Kartajaya (MarkPlus,Inc) Presentation in Asean Blogger Festival
Hermawan Kartajaya (MarkPlus,Inc) Presentation in Asean Blogger FestivalWHIZISME
 

Viewers also liked (20)

Battery Low Rules and Guidelines
Battery Low Rules and GuidelinesBattery Low Rules and Guidelines
Battery Low Rules and Guidelines
 
Icsm2009 shihab
Icsm2009 shihabIcsm2009 shihab
Icsm2009 shihab
 
Precognizarea
PrecognizareaPrecognizarea
Precognizarea
 
Icsm2009 bettenburg presentation
Icsm2009 bettenburg presentationIcsm2009 bettenburg presentation
Icsm2009 bettenburg presentation
 
Icsm2008 jiang
Icsm2008 jiangIcsm2008 jiang
Icsm2008 jiang
 
RRJETAT NERVORE NË ZGJIDHJEN E PROBLEMEVE TË TOMOGRAFISË
RRJETAT NERVORE NË ZGJIDHJEN E PROBLEMEVE TË TOMOGRAFISËRRJETAT NERVORE NË ZGJIDHJEN E PROBLEMEVE TË TOMOGRAFISË
RRJETAT NERVORE NË ZGJIDHJEN E PROBLEMEVE TË TOMOGRAFISË
 
Icst2012 zaman
Icst2012 zamanIcst2012 zaman
Icst2012 zaman
 
Icsm2009 adams ph_d
Icsm2009 adams ph_dIcsm2009 adams ph_d
Icsm2009 adams ph_d
 
Icsm2012 selective codeintegration
Icsm2012 selective codeintegrationIcsm2012 selective codeintegration
Icsm2012 selective codeintegration
 
Icsm2009 alam
Icsm2009 alamIcsm2009 alam
Icsm2009 alam
 
Issre2010 malik
Issre2010 malikIssre2010 malik
Issre2010 malik
 
Ler a Ciencia
Ler a CienciaLer a Ciencia
Ler a Ciencia
 
Kcsd2009 emad
Kcsd2009 emadKcsd2009 emad
Kcsd2009 emad
 
Icsm2009 jiang
Icsm2009 jiangIcsm2009 jiang
Icsm2009 jiang
 
Icsm2011 syer
Icsm2011 syerIcsm2011 syer
Icsm2011 syer
 
Educación escolar en emergencias asignatura vital
Educación escolar en emergencias  asignatura vitalEducación escolar en emergencias  asignatura vital
Educación escolar en emergencias asignatura vital
 
01. a.-salinan-permendikbud-no.-54-tahun-2013-ttg-skl
01. a.-salinan-permendikbud-no.-54-tahun-2013-ttg-skl01. a.-salinan-permendikbud-no.-54-tahun-2013-ttg-skl
01. a.-salinan-permendikbud-no.-54-tahun-2013-ttg-skl
 
DIVERSITAS and my career as a junior scientist
DIVERSITAS and my career as a junior scientistDIVERSITAS and my career as a junior scientist
DIVERSITAS and my career as a junior scientist
 
Icsm2010 kamei
Icsm2010 kameiIcsm2010 kamei
Icsm2010 kamei
 
Hermawan Kartajaya (MarkPlus,Inc) Presentation in Asean Blogger Festival
Hermawan Kartajaya (MarkPlus,Inc) Presentation in Asean Blogger FestivalHermawan Kartajaya (MarkPlus,Inc) Presentation in Asean Blogger Festival
Hermawan Kartajaya (MarkPlus,Inc) Presentation in Asean Blogger Festival
 

Similar to Icse 2011 ds_1

The Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas HaverThe Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas HaverQA or the Highway
 
B2 2006 sizing_benchmarking
B2 2006 sizing_benchmarkingB2 2006 sizing_benchmarking
B2 2006 sizing_benchmarkingSteve Feldman
 
B2 2006 sizing_benchmarking (1)
B2 2006 sizing_benchmarking (1)B2 2006 sizing_benchmarking (1)
B2 2006 sizing_benchmarking (1)Steve Feldman
 
AFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber Security
AFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber SecurityAFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber Security
AFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber SecurityDjindo Lee
 
UNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdf
UNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdfUNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdf
UNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdfRamosIvan2
 
Agile DevOps Implementation
Agile DevOps ImplementationAgile DevOps Implementation
Agile DevOps ImplementationManikandan R
 
Manoj Kolhe - Testing in Agile Environment
Manoj Kolhe - Testing in Agile EnvironmentManoj Kolhe - Testing in Agile Environment
Manoj Kolhe - Testing in Agile EnvironmentManoj Kolhe
 
201008 Software Testing Notes (part 1/2)
201008 Software Testing Notes (part 1/2)201008 Software Testing Notes (part 1/2)
201008 Software Testing Notes (part 1/2)Javier Gonzalez-Sanchez
 
Day 1 1620 - 1705 - maple - pranabendu bhattacharyya
Day 1   1620 - 1705 - maple - pranabendu bhattacharyyaDay 1   1620 - 1705 - maple - pranabendu bhattacharyya
Day 1 1620 - 1705 - maple - pranabendu bhattacharyyaPMI2011
 
Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02
Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02
Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02PMI_IREP_TP
 
ISTQB Foundation - Chapter 2
ISTQB Foundation - Chapter 2ISTQB Foundation - Chapter 2
ISTQB Foundation - Chapter 2Chandukar
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models MohsinAli773
 
Automation in the Bug Flow - Machine Learning for Triaging and Tracing
Automation in the Bug Flow - Machine Learning for Triaging and TracingAutomation in the Bug Flow - Machine Learning for Triaging and Tracing
Automation in the Bug Flow - Machine Learning for Triaging and TracingMarkus Borg
 
Role+Of+Testing+In+Sdlc
Role+Of+Testing+In+SdlcRole+Of+Testing+In+Sdlc
Role+Of+Testing+In+Sdlcmahendra singh
 
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TESTTEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TESTijfcstjournal
 
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TESTTEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TESTijfcstjournal
 

Similar to Icse 2011 ds_1 (20)

poster_3.0
poster_3.0poster_3.0
poster_3.0
 
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas HaverThe Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
 
B2 2006 sizing_benchmarking
B2 2006 sizing_benchmarkingB2 2006 sizing_benchmarking
B2 2006 sizing_benchmarking
 
B2 2006 sizing_benchmarking (1)
B2 2006 sizing_benchmarking (1)B2 2006 sizing_benchmarking (1)
B2 2006 sizing_benchmarking (1)
 
AFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber Security
AFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber SecurityAFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber Security
AFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber Security
 
UNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdf
UNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdfUNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdf
UNIT 4 - Topic 2 - Agile Development Methodologies (2 - XP).pdf
 
Agile DevOps Implementation
Agile DevOps ImplementationAgile DevOps Implementation
Agile DevOps Implementation
 
stlc
stlcstlc
stlc
 
Manoj Kolhe - Testing in Agile Environment
Manoj Kolhe - Testing in Agile EnvironmentManoj Kolhe - Testing in Agile Environment
Manoj Kolhe - Testing in Agile Environment
 
201008 Software Testing Notes (part 1/2)
201008 Software Testing Notes (part 1/2)201008 Software Testing Notes (part 1/2)
201008 Software Testing Notes (part 1/2)
 
Day 1 1620 - 1705 - maple - pranabendu bhattacharyya
Day 1   1620 - 1705 - maple - pranabendu bhattacharyyaDay 1   1620 - 1705 - maple - pranabendu bhattacharyya
Day 1 1620 - 1705 - maple - pranabendu bhattacharyya
 
Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02
Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02
Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02
 
ISTQB Foundation - Chapter 2
ISTQB Foundation - Chapter 2ISTQB Foundation - Chapter 2
ISTQB Foundation - Chapter 2
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models
 
Automation in the Bug Flow - Machine Learning for Triaging and Tracing
Automation in the Bug Flow - Machine Learning for Triaging and TracingAutomation in the Bug Flow - Machine Learning for Triaging and Tracing
Automation in the Bug Flow - Machine Learning for Triaging and Tracing
 
Role+Of+Testing+In+Sdlc
Role+Of+Testing+In+SdlcRole+Of+Testing+In+Sdlc
Role+Of+Testing+In+Sdlc
 
stlc
stlcstlc
stlc
 
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TESTTEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
 
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TESTTEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
 

More from SAIL_QU

Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...SAIL_QU
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...SAIL_QU
 
Improving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsImproving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsSAIL_QU
 
Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...SAIL_QU
 
Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...SAIL_QU
 
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...SAIL_QU
 
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...SAIL_QU
 
Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...SAIL_QU
 
Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?SAIL_QU
 
Towards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesTowards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesSAIL_QU
 
The Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesThe Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesSAIL_QU
 
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...SAIL_QU
 
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...SAIL_QU
 
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...SAIL_QU
 
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...SAIL_QU
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...SAIL_QU
 
What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?SAIL_QU
 
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...SAIL_QU
 
Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...SAIL_QU
 
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsMeasuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsSAIL_QU
 

More from SAIL_QU (20)

Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
 
Improving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsImproving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load tests
 
Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...
 
Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...
 
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
 
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
 
Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...
 
Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?
 
Towards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesTowards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log Changes
 
The Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesThe Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution Analyses
 
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
 
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
 
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
 
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
 
What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?
 
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
 
Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...
 
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsMeasuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
 

Icse 2011 ds_1

  • 1. Pragmatic Prioritization of Software Quality Assurance Efforts Emad Shihab Queen’s University 1
  • 2. Motivation Software ^ has bugs 2 How to allocate quality assurance efforts for legacy and new code? Q: managers ^ have limited resources
  • 3. One Answer: Defect Prediction Many recent studies focused on defect prediction 3 ….However adoption in practice remains low
  • 4. An Industrial Example How to prioritize the creation of unit tests for a large legacy system 4
  • 5. Criteria for Pragmatic QA Approaches Focused Granularity Unit of prioritization must be focused (e.g., function or method) 5 Current Approach Desired Approach File, Folder or subsystem level (Thousands of LOC)
  • 6. Criteria for Pragmatic QA Approaches Responsive Feedback Continuous reflection of system changes. 6 Current Approach Desired Approach Predict for next release
  • 7. Criteria for Pragmatic QA Approaches Consider Effort Consider effort in recommendations (e.g., use size) 7 Current Approach Desired Approach No consideration for effort In addition, need to evaluate the generality of the approaches to understand implications of findings
  • 8. Proposed Pragmatic SQA Approaches 8 Unit test creation How to allocate quality assurance efforts for legacy code? Q: A: Change risk How to allocate quality assurance efforts for new code? Q: A:
  • 9. Unit Test Creation Approach 1. Search modification record comments for keywords, bug identifiers and modified files 2. Extract source code of modified file(s) and compare to previous version to identify changed functions 3. Combine data from 1 and 2 to calculate function-level heuristics 9
  • 10. Unit Test Creation Heuristics Most Frequently Modified (MFM) Most Recently Modified (MRM) Most Frequently Fixed (MFF) Most Recently Fixed (MRF) Largest Fixed (LF) Largest Modified (LM) Change Risk (CR) Size Risk (SR) Random Modification Fix Size Risk Random 10
  • 11. Unit Test Creation Heuristic Performance Based on a heuristic, generate list of 10 functions to write unit tests for Use size of function to measure effort required to write unit test 11
  • 12. Unit Test Creation Usefulness: Was writing the unit test useful? Time to write unit test A B C 6 bug fixes 2 bug fixes 0 bug fixes Usefulness = 2/3 = 66.67% 12
  • 13. Unit Test Creation Usefulness of Heuristics 27.7 43.1 48.8 55 56.9 80 83.8 84.7 87 8.5 9.9 12.6 17.4 16 28.1 32.3 32.9 44.7 0 10 20 30 40 50 60 70 80 90 100 Random Most Recently Modified (MRM) Size Risk (SR) Change Risk (CR) Most Recently Fixed (MRF) Most Frequently Modified (MFM) Most Frequently Fixed (MFF) Largest Modified (LM) Largest Fixed (LF) Open Source Commercial 13
  • 14. Revisiting the Pragmatic QA Criteria Unit Test Creation Unit Test Creation Function level recommendations Heuristic lists are continuously updated Size of function used to consider effort required Focused Granularity Consider Effort Responsive Feedback Evaluate Generality: Studied Open Source and Commercial systems
  • 15. Change Risk Proposed Approach 1. Mine changes and extract change metrics 2. Identify bug-inducing changes 3. Predict risky changes 15
  • 16. Revisiting the Pragmatic QA Criteria Change Risk Change Risk Map changes to modified functions Flag risky changes while they are fresh in developer’s minds Size of change used to consider effort Focused Granularity Consider Effort Responsive Feedback Evaluate Generality: Study on Open Source and Commercial systems
  • 17. Thank you I am grateful for this opportunity!
  • 19. Revisiting the Pragmatic SQA Criteria Unit Test Creation Change Risk Focused Granularity Estimate Effort Evaluate Generality Timely Feedback
  • 20. Pragmatic SQA Criteria What we have What we want File level Unit of prioritization must be focused (e.g., function) Act on results in future release Must be able to act on results of approach quickly No effort provided Provide an estimate of the effort required for the task Focused Granularity Estimate Effort Timely Feedback Evaluate Generality To help understand implications of findings
  • 21. Changes Risk New code Identify risky changes for closer examination before they are integrated into the code base 21
  • 22. Unit Test Creation Implemented code Prioritize the creation of unit tests for implemented code 22
  • 23. Revisiting the Pragmatic-aware Criteria Focused Granularity Timely feedback Estimate Effort Evaluate Generality 23
  • 24. Avoid the most bugs effectively! Write unit tests for functions with best Return on Investment (ROI) How can we avoid the most bugs given limited resources? 24
  • 25. Defect Prediction... An Example Uses code metrics and pre-release defects to predict files with post-release defects in the Eclipse project. 25
  • 26. Motivation Software has^ bugs and managers have ^ limited resources 26 How to allocate quality assurance efforts for implemented and new code? Q: A: Re-active and pro-active SQA
  • 27. Proposed Approach Extracting Historical Data 1. Extract change data to calculate metrics (e.g., churn) 2. Use SZZ to identify and predict bug-inducing changes 3. 27
  • 28. Answer … Defect Prediction! Use code metrics and process metrics to predict which files are most likely to contain defects in future releases 28
  • 29. Defect Prediction... The Response “The results are interesting, but of limited use to us ...” ... Why? 29
  • 30. Defect Prediction... Lessons Learned 1. Identifying files is too coarse of a granularity 2. Having to wait till the next release is too late 3. Need an estimate of effort required 4. Why should we believe this will work for us? 30
  • 31. Criteria for Pragmatic SQA Approaches Timely Feedback Must be able to act on results of approach quickly 31
  • 32. Criteria for Pragmatic SQA Approaches Estimate Effort Provide an estimate of the effort required for the task 32
  • 33. Criteria for Pragmatic SQA Approaches Evaluate Generality Evaluate on multiple projects/domains to clearly understand implications of the findings 33