SlideShare a Scribd company logo
Supporting Software Evolution Using
Adaptive Change Propagation Heuristics
Haroon Malik
Ahmed E. Hassan
School of Computing, Queen’s University, Canada
1
What is Change Propagation
It is the process of propagating code
changes to other entities in software
system.
It ensures the consistency of assumptions
in the system after changing an entity.
Mis-propagating likely to introduce bugs
2
The Change Propagation
Process
3
Determine
Initial Entity
To Change
Change
Entity
Determine
Other Entities
To Change
Consult
Guru for
Advice
New Req., Bug Fix
“How does a change in one source code entity propagate to other
entities?”
No More
Changes
For Each Entity
Suggested Entity
Consider change set with A, B and C
changing together
4
A
B
C
Consider change set with A, B and C
changing together
5
A
B
C
B
C
A
D
E
D
HIST
Heuristic
CUD Heuristic
(Static dependency)
HELPFUL Wasted Developer time
Consider change set with A, B and C
changing together
6
A
B
C
B
C
A
D
E
D
HIST
Heuristic
CUD Heuristic
(Static dependency)
HELPFUL Wasted Developer time
 Which heuristics
should we pick ?
 We should track
the performance of
pool of heuristics
over time for each
entity
Consider change set with A, B and C
changing together
7
A
B
C
B
C
A
D
D
D
HIST
Heuristic
CUD Heuristic
(Static dependency)
HELPFUL Wasted Developer time
 Best Heuristic table
(BHT)
 Tracks and updates
Consider change set with A, B and C
changing together
8
A
B
C
B
C
A
D
D
D
HIST
Heuristic
CUD Heuristic
(Static dependency)
A
E
D
Time
 HIST or CUD?
 BHT says HIST always work
well with A [A-Freq].
 We use HIST
 BHT might also say HIST
worked well with A, last time
[A-REC]
Consider change set with A, B and D
changing together
9
E
D
A
Consider change set with A, B and D
changing together
10
E
D
A
B
Consider change set with A, B and D
changing together
11
E
D
A
B
X
Y
Precision= 1/5= 20%
Recall = 1/1= 100%
We want high Precision & high
Recall
Change Propagation Challenge
Mostly manual & time consuming process
Requires dependency on others
 knowledge of senior developers, who are usually too
busy to guide every change
 Experience of guru, who rarely exists in large projects
 Communication among different teams; itself is a
challenge in large projects
 Use of documentation & previous test suits which are
rarely up-todate
12
Shortcomings of Current
Practices
Explores single dimension
 HIST: Given a changed entity A, a HIST heuristic would suggest
all entities that changed often with A in the past.
 CUD: Given a modified entity A, a CUD heuristic returns all
entities that depend on A or that A depends on.
 FILE: Given a modified entity A, a file heuristic would return all
entities in the same file as A
Static heuristics
 Do not adjust over time nor,
 Adapt to particular changed entity
13
Proposed Approach
Adaptive co-change meta-heuristics:
Tracks best performing heuristics for each
entity in Best Heuristic table (BHT)
Updates Table as project evolves
14
BHT Update
BHT has best performing heuristics
A-Recency:
 For the last change of an entity
A-Frequency
 Over all changes of an entity
By continuously updating the BHT table, we ensure that we
are always using the most optimal heuristic for an entity
15
Empirical Study
Used change sets from 5 open source projects
with over 39 years of development:
PostgreSQL, FreeBSD, Gcluster and GCC
Recover change sets from source control
repositories (CVS)
Replayed the history to measure the
performance
16
Performance Measures of
Heuristics
Project
HIST CUD FILE A-Freq A-Rec
Rec Prec Rec Prec Rec Prec Rec Prec Rec Prec
Postgress 0.69 0.14 0.44 0.02 0.73 0.13 0.45 0.25 0.4 0.30
FreeBSD 0.70 0.12 0.40 0.02 0.76 0.11 0.41 0.27 0.41 0.30
GCluster 0.52 0.18 0.38 0.09 0.70 0.14 0.39 0.22 0.35 0.28
GCC 0.78 0.10 0.43 0.02 0.80 0.12 0.51 0.21 0.47 0.25
All 0.67 0.13 0.41 0.04 0.74 0.12 0.44 0.23 0.40 0.28
F-measure 0.23 0.06 0.21 0.30 0.33
Recall: Adaptive heuristics are similar to traditional heuristics
Precision: Adaptive heuristics out perform traditional heuristics
F-measure: Adaptive heuristics out perform traditional heuristics
(23% better than the best heuristic HIST)
17
Performance Characteristics of
Adaptive Heuristics
To better understand our Adaptive Heuristics we
examined their performance along three direction:
Performance Over Time
BHT Composition over Time
BHT suggestions vs. optimal suggestions
18
Performance Over Time
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
1993 1995 1997 1999 2001 2003 2005
Years
Precesion
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
1993 1995 1997 1999 2001 2003 2005
Years
Recall
HIST CUD File A-Freq A-Rec
For Precision:
 Adaptive heuristic outperforms traditional heuristics.
For Recall:
 Adaptive heuristics do not perform as well as other traditional heuristics.
 Overall A-Rec has lower recall as compared to A-Freq for all projects 19
BHT Composition over Time
0
5
10
15
20
25
30
35
40
45
50
55
60
0 500 1000 1500 2000 2500 3000 3500 4000
Day(s)
HBTcompostion(%)
HIST
FILE
CUD
0
5
10
15
20
25
30
35
40
45
50
55
0 500 1000 1500 2000 2500 3000 3500 4000
Day(s)
HBTcompostion(%)
HIST
FILE
CUD
A-Freq A-Rec
 BHT for Free BSD
 All projects show same trends
 At start History is not widely used
 As the projects evolves, HIST is most effective.
20
BHT Suggestion Vs. Optimal
 Since we are replaying of historical change set we can
compare Adaptive vs. Optimal heuristic
 Optimal heuristic always 100% suggests the best heuristic
 Suggestion: # of correctly suggested heuristics
76-85%
 Performance:
63% of optimal F-measure
HIST is 44% of optimal best performing basic heuristics
 37% room for improvement
21
Improving the Performance
Adaptive Heuristics
Improve HIST in hope to improve adaptive
heuristics by employing advance techniques
Two improved HIST [Hassan, Holt: 2005]
 RECN(M): given a changed entity E, RECN(M) suggests all
entities that changed with E in the past M months.
 FREQ(A): given a changed entity E, FREQ(A) suggests all
entities that changed with E at least twice in the past and
changed more that A% of the time with E.
22
Improved HIST heuristics
 Integrated RECN(4) and FREQ(60) into the heuristic pool
used by adaptive meta-heuristics
 Achieved 0.73 to 0.78 for Recall and 0.64 for Precision
 Nearly 30% increase in performance:
 A-FREQ is within 91% of the optimal heuristic
 A-REC is within 93% of the optimal heuristic
RECN(M) F-Measure FREQ(A) F-Measure
RECN(2) 0.39 FREQ(50) 0.39
RECN(4) 0.40 FREQ(60) 0.44
RECN(6) 0.34 FREQ(70) 0.42
RECN(8) 0.28 FREQ(80) 0.39
23
Findings
Adaptive heuristics can achieve:
 0.73 to 0.78 for Recall and
0.64% Precession
57% improvement over T. heuristics
Performance difference are statically
significant based on a paired Wilcoxon signed
rant test at 5% level of significant.
(Alpha=0.05)
24
Conclusion
25

More Related Content

What's hot (20)

Animated Visualization of Software History Using Software Evolution Storyboards
Animated Visualization of Software History Using Software Evolution StoryboardsAnimated Visualization of Software History Using Software Evolution Storyboards
Animated Visualization of Software History Using Software Evolution Storyboards
SAIL_QU
 
Using Control Charts for Detecting and Understanding Performance Regressions ...
Using Control Charts for Detecting and Understanding Performance Regressions ...Using Control Charts for Detecting and Understanding Performance Regressions ...
Using Control Charts for Detecting and Understanding Performance Regressions ...
SAIL_QU
 
Icse 2011 ds_1
Icse 2011 ds_1Icse 2011 ds_1
Icse 2011 ds_1
SAIL_QU
 
Sop test planning
Sop test planningSop test planning
Sop test planning
Frank Gielen
 
The changing role of a QA | QualiTest Group
The changing role of a QA | QualiTest GroupThe changing role of a QA | QualiTest Group
The changing role of a QA | QualiTest Group
Qualitest
 
Test effort estimation
Test effort estimationTest effort estimation
Test effort estimation
ramesh kumar
 
Test effort estimation a reason behind successful testing
Test effort estimation   a reason behind successful testingTest effort estimation   a reason behind successful testing
Test effort estimation a reason behind successful testing
Indium Software
 
Test Estimation using Test Case Point Analysis method
Test Estimation using Test Case Point Analysis methodTest Estimation using Test Case Point Analysis method
Test Estimation using Test Case Point Analysis method
KMS Technology
 
An Industrial Case Study of Automatically Identifying Performance Regression-...
An Industrial Case Study of Automatically Identifying Performance Regression-...An Industrial Case Study of Automatically Identifying Performance Regression-...
An Industrial Case Study of Automatically Identifying Performance Regression-...
SAIL_QU
 
The Business Case for Test Environment Management Services
The Business Case for Test Environment Management ServicesThe Business Case for Test Environment Management Services
The Business Case for Test Environment Management Services
Cognizant
 
Test Case Point Analysis
Test Case Point AnalysisTest Case Point Analysis
Test Case Point Analysis
vuqn
 
Environment Delivery Management Services
Environment Delivery Management  ServicesEnvironment Delivery Management  Services
Environment Delivery Management Services
drummondrj
 
Software metrics
Software metricsSoftware metrics
Software metrics
Sophia Girls' College(Autonomous), Ajmer
 
Effective Test Estimation
Effective Test EstimationEffective Test Estimation
Effective Test Estimation
TechWell
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
Selvy Ariska
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
Alfa Rizki Harahap
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
adeafsa
 
MTV15
MTV15MTV15
MTV15
Rico Angell
 
Human factors in software reliability engineering - Research Paper
Human factors in software reliability engineering - Research PaperHuman factors in software reliability engineering - Research Paper
Human factors in software reliability engineering - Research Paper
Muhammad Ahmad Zia
 
Cost Based Performance Modelling
Cost Based Performance ModellingCost Based Performance Modelling
Cost Based Performance Modelling
Eugene Margulis
 
Animated Visualization of Software History Using Software Evolution Storyboards
Animated Visualization of Software History Using Software Evolution StoryboardsAnimated Visualization of Software History Using Software Evolution Storyboards
Animated Visualization of Software History Using Software Evolution Storyboards
SAIL_QU
 
Using Control Charts for Detecting and Understanding Performance Regressions ...
Using Control Charts for Detecting and Understanding Performance Regressions ...Using Control Charts for Detecting and Understanding Performance Regressions ...
Using Control Charts for Detecting and Understanding Performance Regressions ...
SAIL_QU
 
Icse 2011 ds_1
Icse 2011 ds_1Icse 2011 ds_1
Icse 2011 ds_1
SAIL_QU
 
The changing role of a QA | QualiTest Group
The changing role of a QA | QualiTest GroupThe changing role of a QA | QualiTest Group
The changing role of a QA | QualiTest Group
Qualitest
 
Test effort estimation
Test effort estimationTest effort estimation
Test effort estimation
ramesh kumar
 
Test effort estimation a reason behind successful testing
Test effort estimation   a reason behind successful testingTest effort estimation   a reason behind successful testing
Test effort estimation a reason behind successful testing
Indium Software
 
Test Estimation using Test Case Point Analysis method
Test Estimation using Test Case Point Analysis methodTest Estimation using Test Case Point Analysis method
Test Estimation using Test Case Point Analysis method
KMS Technology
 
An Industrial Case Study of Automatically Identifying Performance Regression-...
An Industrial Case Study of Automatically Identifying Performance Regression-...An Industrial Case Study of Automatically Identifying Performance Regression-...
An Industrial Case Study of Automatically Identifying Performance Regression-...
SAIL_QU
 
The Business Case for Test Environment Management Services
The Business Case for Test Environment Management ServicesThe Business Case for Test Environment Management Services
The Business Case for Test Environment Management Services
Cognizant
 
Test Case Point Analysis
Test Case Point AnalysisTest Case Point Analysis
Test Case Point Analysis
vuqn
 
Environment Delivery Management Services
Environment Delivery Management  ServicesEnvironment Delivery Management  Services
Environment Delivery Management Services
drummondrj
 
Effective Test Estimation
Effective Test EstimationEffective Test Estimation
Effective Test Estimation
TechWell
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
Selvy Ariska
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
Alfa Rizki Harahap
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
adeafsa
 
Human factors in software reliability engineering - Research Paper
Human factors in software reliability engineering - Research PaperHuman factors in software reliability engineering - Research Paper
Human factors in software reliability engineering - Research Paper
Muhammad Ahmad Zia
 
Cost Based Performance Modelling
Cost Based Performance ModellingCost Based Performance Modelling
Cost Based Performance Modelling
Eugene Margulis
 

Viewers also liked (12)

Proyecto de sociologia
Proyecto de sociologiaProyecto de sociologia
Proyecto de sociologia
ruth Apellidos
 
Medios publicitarios
Medios publicitarios Medios publicitarios
Medios publicitarios
Giarline
 
Iniciativa del Senador Luis Humberto Fernández sobre coaliciones entre indepe...
Iniciativa del Senador Luis Humberto Fernández sobre coaliciones entre indepe...Iniciativa del Senador Luis Humberto Fernández sobre coaliciones entre indepe...
Iniciativa del Senador Luis Humberto Fernández sobre coaliciones entre indepe...
Senadores PRD
 
Case History Carlo Cairoli
Case History Carlo CairoliCase History Carlo Cairoli
Case History Carlo Cairoli
Carlo Cairoli
 
Large-Scale Empirical Studies of Mobile Apps
Large-Scale Empirical Studies of Mobile AppsLarge-Scale Empirical Studies of Mobile Apps
Large-Scale Empirical Studies of Mobile Apps
SAIL_QU
 
Sustainability Day Leeds 2017
Sustainability Day Leeds 2017Sustainability Day Leeds 2017
Sustainability Day Leeds 2017
4 All of Us
 
C de marchi_tirocinio
C de marchi_tirocinioC de marchi_tirocinio
C de marchi_tirocinio
Cladema
 
비아그라 판매 =<7cc.kr>=비아그라 정품 판매~비아그라판매±비아그라 정품판매∏비아그라 50mg판매,프릴리지 50mg판매,흥분제 ...
비아그라 판매 =<7cc.kr>=비아그라 정품 판매~비아그라판매±비아그라 정품판매∏비아그라 50mg판매,프릴리지 50mg판매,흥분제 ...비아그라 판매 =<7cc.kr>=비아그라 정품 판매~비아그라판매±비아그라 정품판매∏비아그라 50mg판매,프릴리지 50mg판매,흥분제 ...
비아그라 판매 =<7cc.kr>=비아그라 정품 판매~비아그라판매±비아그라 정품판매∏비아그라 50mg판매,프릴리지 50mg판매,흥분제 ...
成 金
 
Importance of Eye Contact in Hospitality
Importance of Eye Contact in HospitalityImportance of Eye Contact in Hospitality
Importance of Eye Contact in Hospitality
Asian Institute of Hospitality & Tourism
 
Singapore startup ecosystem and entrepreneur toolbox - Aug 2015
Singapore startup ecosystem and entrepreneur toolbox - Aug 2015Singapore startup ecosystem and entrepreneur toolbox - Aug 2015
Singapore startup ecosystem and entrepreneur toolbox - Aug 2015
Arnaud Bonzom
 
Claudia de marchi1-1
Claudia de marchi1-1Claudia de marchi1-1
Claudia de marchi1-1
Cladema
 
Retrato do Brasil 2015
Retrato do Brasil 2015Retrato do Brasil 2015
Retrato do Brasil 2015
Talita Vasconcelos
 
Proyecto de sociologia
Proyecto de sociologiaProyecto de sociologia
Proyecto de sociologia
ruth Apellidos
 
Medios publicitarios
Medios publicitarios Medios publicitarios
Medios publicitarios
Giarline
 
Iniciativa del Senador Luis Humberto Fernández sobre coaliciones entre indepe...
Iniciativa del Senador Luis Humberto Fernández sobre coaliciones entre indepe...Iniciativa del Senador Luis Humberto Fernández sobre coaliciones entre indepe...
Iniciativa del Senador Luis Humberto Fernández sobre coaliciones entre indepe...
Senadores PRD
 
Case History Carlo Cairoli
Case History Carlo CairoliCase History Carlo Cairoli
Case History Carlo Cairoli
Carlo Cairoli
 
Large-Scale Empirical Studies of Mobile Apps
Large-Scale Empirical Studies of Mobile AppsLarge-Scale Empirical Studies of Mobile Apps
Large-Scale Empirical Studies of Mobile Apps
SAIL_QU
 
Sustainability Day Leeds 2017
Sustainability Day Leeds 2017Sustainability Day Leeds 2017
Sustainability Day Leeds 2017
4 All of Us
 
C de marchi_tirocinio
C de marchi_tirocinioC de marchi_tirocinio
C de marchi_tirocinio
Cladema
 
비아그라 판매 =<7cc.kr>=비아그라 정품 판매~비아그라판매±비아그라 정품판매∏비아그라 50mg판매,프릴리지 50mg판매,흥분제 ...
비아그라 판매 =<7cc.kr>=비아그라 정품 판매~비아그라판매±비아그라 정품판매∏비아그라 50mg판매,프릴리지 50mg판매,흥분제 ...비아그라 판매 =<7cc.kr>=비아그라 정품 판매~비아그라판매±비아그라 정품판매∏비아그라 50mg판매,프릴리지 50mg판매,흥분제 ...
비아그라 판매 =<7cc.kr>=비아그라 정품 판매~비아그라판매±비아그라 정품판매∏비아그라 50mg판매,프릴리지 50mg판매,흥분제 ...
成 金
 
Singapore startup ecosystem and entrepreneur toolbox - Aug 2015
Singapore startup ecosystem and entrepreneur toolbox - Aug 2015Singapore startup ecosystem and entrepreneur toolbox - Aug 2015
Singapore startup ecosystem and entrepreneur toolbox - Aug 2015
Arnaud Bonzom
 
Claudia de marchi1-1
Claudia de marchi1-1Claudia de marchi1-1
Claudia de marchi1-1
Cladema
 
Ad

Similar to Supporting Software Evolution Using Adaptive Change Propagation (20)

Hyperheuristics in Logistics - kassem danach
Hyperheuristics in Logistics - kassem danachHyperheuristics in Logistics - kassem danach
Hyperheuristics in Logistics - kassem danach
Kassem Danach
 
Searching Informed Search.pdf
Searching Informed Search.pdfSearching Informed Search.pdf
Searching Informed Search.pdf
DrBashirMSaad
 
INFORMED SEARCH METHODS​ Heuristics.pptx
INFORMED SEARCH METHODS​ Heuristics.pptxINFORMED SEARCH METHODS​ Heuristics.pptx
INFORMED SEARCH METHODS​ Heuristics.pptx
Ananthi Palanisamy
 
Thesis Talk
Thesis TalkThesis Talk
Thesis Talk
BhavyaRawal
 
Metaheuristics
MetaheuristicsMetaheuristics
Metaheuristics
CherifRehouma
 
UNIT-I Part2 Heuristic Search Techniques.pptx
UNIT-I Part2 Heuristic Search Techniques.pptxUNIT-I Part2 Heuristic Search Techniques.pptx
UNIT-I Part2 Heuristic Search Techniques.pptx
VijayaAhire2
 
Cultivating Your Design Heuristics
Cultivating Your Design HeuristicsCultivating Your Design Heuristics
Cultivating Your Design Heuristics
Rebecca Wirfs-Brock
 
searching
searchingsearching
searching
colleges
 
Revisiting the Effect of Branch Handling Strategies on Change Recommendation
Revisiting the Effect of Branch Handling Strategies on Change RecommendationRevisiting the Effect of Branch Handling Strategies on Change Recommendation
Revisiting the Effect of Branch Handling Strategies on Change Recommendation
Institute of Science Tokyo
 
US Marines, Agile and Heuristic
US Marines, Agile and HeuristicUS Marines, Agile and Heuristic
US Marines, Agile and Heuristic
Peter Pito
 
Moving away from legacy code with BDD
Moving away from legacy code with BDDMoving away from legacy code with BDD
Moving away from legacy code with BDD
Konstantin Kudryashov
 
Heuristic search
Heuristic searchHeuristic search
Heuristic search
NivethaS35
 
Heuristic Search Techniques Unit -II.ppt
Heuristic Search Techniques Unit -II.pptHeuristic Search Techniques Unit -II.ppt
Heuristic Search Techniques Unit -II.ppt
karthikaparthasarath
 
Informed Search.pptx
Informed Search.pptxInformed Search.pptx
Informed Search.pptx
MohanKumarP34
 
RESUME_SHRUTI_MTECH_COMPUTERSCIENCE
RESUME_SHRUTI_MTECH_COMPUTERSCIENCERESUME_SHRUTI_MTECH_COMPUTERSCIENCE
RESUME_SHRUTI_MTECH_COMPUTERSCIENCE
Shruthi B
 
A Novel Method for Creating and Recognizing User Behavior Profiles
A Novel Method for Creating and Recognizing User Behavior ProfilesA Novel Method for Creating and Recognizing User Behavior Profiles
A Novel Method for Creating and Recognizing User Behavior Profiles
IJMER
 
EVOLUTIONARY ALGORITHMS in architecture design
EVOLUTIONARY ALGORITHMS in architecture designEVOLUTIONARY ALGORITHMS in architecture design
EVOLUTIONARY ALGORITHMS in architecture design
VRRENTERPRISES
 
Heuristic Search Techniques Unit -II.ppt
Heuristic Search Techniques Unit -II.pptHeuristic Search Techniques Unit -II.ppt
Heuristic Search Techniques Unit -II.ppt
karthikaparthasarath
 
Heuristic search problem-solving str.ppt
Heuristic search problem-solving str.pptHeuristic search problem-solving str.ppt
Heuristic search problem-solving str.ppt
SahilSharma872516
 
Web Engineering - Web Effort Estimation
Web Engineering - Web Effort EstimationWeb Engineering - Web Effort Estimation
Web Engineering - Web Effort Estimation
Nosheen Qamar
 
Hyperheuristics in Logistics - kassem danach
Hyperheuristics in Logistics - kassem danachHyperheuristics in Logistics - kassem danach
Hyperheuristics in Logistics - kassem danach
Kassem Danach
 
Searching Informed Search.pdf
Searching Informed Search.pdfSearching Informed Search.pdf
Searching Informed Search.pdf
DrBashirMSaad
 
INFORMED SEARCH METHODS​ Heuristics.pptx
INFORMED SEARCH METHODS​ Heuristics.pptxINFORMED SEARCH METHODS​ Heuristics.pptx
INFORMED SEARCH METHODS​ Heuristics.pptx
Ananthi Palanisamy
 
UNIT-I Part2 Heuristic Search Techniques.pptx
UNIT-I Part2 Heuristic Search Techniques.pptxUNIT-I Part2 Heuristic Search Techniques.pptx
UNIT-I Part2 Heuristic Search Techniques.pptx
VijayaAhire2
 
Cultivating Your Design Heuristics
Cultivating Your Design HeuristicsCultivating Your Design Heuristics
Cultivating Your Design Heuristics
Rebecca Wirfs-Brock
 
Revisiting the Effect of Branch Handling Strategies on Change Recommendation
Revisiting the Effect of Branch Handling Strategies on Change RecommendationRevisiting the Effect of Branch Handling Strategies on Change Recommendation
Revisiting the Effect of Branch Handling Strategies on Change Recommendation
Institute of Science Tokyo
 
US Marines, Agile and Heuristic
US Marines, Agile and HeuristicUS Marines, Agile and Heuristic
US Marines, Agile and Heuristic
Peter Pito
 
Moving away from legacy code with BDD
Moving away from legacy code with BDDMoving away from legacy code with BDD
Moving away from legacy code with BDD
Konstantin Kudryashov
 
Heuristic search
Heuristic searchHeuristic search
Heuristic search
NivethaS35
 
Heuristic Search Techniques Unit -II.ppt
Heuristic Search Techniques Unit -II.pptHeuristic Search Techniques Unit -II.ppt
Heuristic Search Techniques Unit -II.ppt
karthikaparthasarath
 
Informed Search.pptx
Informed Search.pptxInformed Search.pptx
Informed Search.pptx
MohanKumarP34
 
RESUME_SHRUTI_MTECH_COMPUTERSCIENCE
RESUME_SHRUTI_MTECH_COMPUTERSCIENCERESUME_SHRUTI_MTECH_COMPUTERSCIENCE
RESUME_SHRUTI_MTECH_COMPUTERSCIENCE
Shruthi B
 
A Novel Method for Creating and Recognizing User Behavior Profiles
A Novel Method for Creating and Recognizing User Behavior ProfilesA Novel Method for Creating and Recognizing User Behavior Profiles
A Novel Method for Creating and Recognizing User Behavior Profiles
IJMER
 
EVOLUTIONARY ALGORITHMS in architecture design
EVOLUTIONARY ALGORITHMS in architecture designEVOLUTIONARY ALGORITHMS in architecture design
EVOLUTIONARY ALGORITHMS in architecture design
VRRENTERPRISES
 
Heuristic Search Techniques Unit -II.ppt
Heuristic Search Techniques Unit -II.pptHeuristic Search Techniques Unit -II.ppt
Heuristic Search Techniques Unit -II.ppt
karthikaparthasarath
 
Heuristic search problem-solving str.ppt
Heuristic search problem-solving str.pptHeuristic search problem-solving str.ppt
Heuristic search problem-solving str.ppt
SahilSharma872516
 
Web Engineering - Web Effort Estimation
Web Engineering - Web Effort EstimationWeb Engineering - Web Effort Estimation
Web Engineering - Web Effort Estimation
Nosheen Qamar
 
Ad

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...
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 tests
SAIL_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 Changes
SAIL_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 Analyses
SAIL_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 Professionals
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 tests
SAIL_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 Changes
SAIL_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 Analyses
SAIL_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 Professionals
SAIL_QU
 

Recently uploaded (20)

AI-ASSISTED METAMORPHIC TESTING FOR DOMAIN-SPECIFIC MODELLING AND SIMULATION
AI-ASSISTED METAMORPHIC TESTING FOR DOMAIN-SPECIFIC MODELLING AND SIMULATIONAI-ASSISTED METAMORPHIC TESTING FOR DOMAIN-SPECIFIC MODELLING AND SIMULATION
AI-ASSISTED METAMORPHIC TESTING FOR DOMAIN-SPECIFIC MODELLING AND SIMULATION
miso_uam
 
How John started to like TDD (instead of hating it) (ViennaJUG, June'25)
How John started to like TDD (instead of hating it) (ViennaJUG, June'25)How John started to like TDD (instead of hating it) (ViennaJUG, June'25)
How John started to like TDD (instead of hating it) (ViennaJUG, June'25)
Nacho Cougil
 
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdf
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdfHow to Generate Financial Statements in QuickBooks Like a Pro (1).pdf
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdf
QuickBooks Training
 
IBM Rational Unified Process For Software Engineering - Introduction
IBM Rational Unified Process For Software Engineering - IntroductionIBM Rational Unified Process For Software Engineering - Introduction
IBM Rational Unified Process For Software Engineering - Introduction
Gaurav Sharma
 
Generative Artificial Intelligence and its Applications
Generative Artificial Intelligence and its ApplicationsGenerative Artificial Intelligence and its Applications
Generative Artificial Intelligence and its Applications
SandeepKS52
 
iOS Developer Resume 2025 | Pramod Kumar
iOS Developer Resume 2025 | Pramod KumariOS Developer Resume 2025 | Pramod Kumar
iOS Developer Resume 2025 | Pramod Kumar
Pramod Kumar
 
How Insurance Policy Administration Streamlines Policy Lifecycle for Agile Op...
How Insurance Policy Administration Streamlines Policy Lifecycle for Agile Op...How Insurance Policy Administration Streamlines Policy Lifecycle for Agile Op...
How Insurance Policy Administration Streamlines Policy Lifecycle for Agile Op...
Insurance Tech Services
 
Design by Contract - Building Robust Software with Contract-First Development
Design by Contract - Building Robust Software with Contract-First DevelopmentDesign by Contract - Building Robust Software with Contract-First Development
Design by Contract - Building Robust Software with Contract-First Development
Par-Tec S.p.A.
 
From Chaos to Clarity - Designing (AI-Ready) APIs with APIOps Cycles
From Chaos to Clarity - Designing (AI-Ready) APIs with APIOps CyclesFrom Chaos to Clarity - Designing (AI-Ready) APIs with APIOps Cycles
From Chaos to Clarity - Designing (AI-Ready) APIs with APIOps Cycles
Marjukka Niinioja
 
Content Mate Web App Triples Content Managers‘ Productivity
Content Mate Web App Triples Content Managers‘ ProductivityContent Mate Web App Triples Content Managers‘ Productivity
Content Mate Web App Triples Content Managers‘ Productivity
Alex Vladimirovich
 
Agile Software Engineering Methodologies
Agile Software Engineering MethodologiesAgile Software Engineering Methodologies
Agile Software Engineering Methodologies
Gaurav Sharma
 
The rise of e-commerce has redefined how retailers operate—and reconciliation...
The rise of e-commerce has redefined how retailers operate—and reconciliation...The rise of e-commerce has redefined how retailers operate—and reconciliation...
The rise of e-commerce has redefined how retailers operate—and reconciliation...
Prachi Desai
 
FME for Climate Data: Turning Big Data into Actionable Insights
FME for Climate Data: Turning Big Data into Actionable InsightsFME for Climate Data: Turning Big Data into Actionable Insights
FME for Climate Data: Turning Big Data into Actionable Insights
Safe Software
 
Providing Better Biodiversity Through Better Data
Providing Better Biodiversity Through Better DataProviding Better Biodiversity Through Better Data
Providing Better Biodiversity Through Better Data
Safe Software
 
COBOL Programming with VSCode - IBM Certificate
COBOL Programming with VSCode - IBM CertificateCOBOL Programming with VSCode - IBM Certificate
COBOL Programming with VSCode - IBM Certificate
VICTOR MAESTRE RAMIREZ
 
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptxIMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
usmanch7829
 
Revolutionize Your Insurance Workflow with Claims Management Software
Revolutionize Your Insurance Workflow with Claims Management SoftwareRevolutionize Your Insurance Workflow with Claims Management Software
Revolutionize Your Insurance Workflow with Claims Management Software
Insurance Tech Services
 
Top 11 Fleet Management Software Providers in 2025 (2).pdf
Top 11 Fleet Management Software Providers in 2025 (2).pdfTop 11 Fleet Management Software Providers in 2025 (2).pdf
Top 11 Fleet Management Software Providers in 2025 (2).pdf
Trackobit
 
Topic 26 Security Testing Considerations.pptx
Topic 26 Security Testing Considerations.pptxTopic 26 Security Testing Considerations.pptx
Topic 26 Security Testing Considerations.pptx
marutnand8
 
Simplify Training with an Online Induction Portal for Contractors
Simplify Training with an Online Induction Portal for ContractorsSimplify Training with an Online Induction Portal for Contractors
Simplify Training with an Online Induction Portal for Contractors
SHEQ Network Limited
 
AI-ASSISTED METAMORPHIC TESTING FOR DOMAIN-SPECIFIC MODELLING AND SIMULATION
AI-ASSISTED METAMORPHIC TESTING FOR DOMAIN-SPECIFIC MODELLING AND SIMULATIONAI-ASSISTED METAMORPHIC TESTING FOR DOMAIN-SPECIFIC MODELLING AND SIMULATION
AI-ASSISTED METAMORPHIC TESTING FOR DOMAIN-SPECIFIC MODELLING AND SIMULATION
miso_uam
 
How John started to like TDD (instead of hating it) (ViennaJUG, June'25)
How John started to like TDD (instead of hating it) (ViennaJUG, June'25)How John started to like TDD (instead of hating it) (ViennaJUG, June'25)
How John started to like TDD (instead of hating it) (ViennaJUG, June'25)
Nacho Cougil
 
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdf
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdfHow to Generate Financial Statements in QuickBooks Like a Pro (1).pdf
How to Generate Financial Statements in QuickBooks Like a Pro (1).pdf
QuickBooks Training
 
IBM Rational Unified Process For Software Engineering - Introduction
IBM Rational Unified Process For Software Engineering - IntroductionIBM Rational Unified Process For Software Engineering - Introduction
IBM Rational Unified Process For Software Engineering - Introduction
Gaurav Sharma
 
Generative Artificial Intelligence and its Applications
Generative Artificial Intelligence and its ApplicationsGenerative Artificial Intelligence and its Applications
Generative Artificial Intelligence and its Applications
SandeepKS52
 
iOS Developer Resume 2025 | Pramod Kumar
iOS Developer Resume 2025 | Pramod KumariOS Developer Resume 2025 | Pramod Kumar
iOS Developer Resume 2025 | Pramod Kumar
Pramod Kumar
 
How Insurance Policy Administration Streamlines Policy Lifecycle for Agile Op...
How Insurance Policy Administration Streamlines Policy Lifecycle for Agile Op...How Insurance Policy Administration Streamlines Policy Lifecycle for Agile Op...
How Insurance Policy Administration Streamlines Policy Lifecycle for Agile Op...
Insurance Tech Services
 
Design by Contract - Building Robust Software with Contract-First Development
Design by Contract - Building Robust Software with Contract-First DevelopmentDesign by Contract - Building Robust Software with Contract-First Development
Design by Contract - Building Robust Software with Contract-First Development
Par-Tec S.p.A.
 
From Chaos to Clarity - Designing (AI-Ready) APIs with APIOps Cycles
From Chaos to Clarity - Designing (AI-Ready) APIs with APIOps CyclesFrom Chaos to Clarity - Designing (AI-Ready) APIs with APIOps Cycles
From Chaos to Clarity - Designing (AI-Ready) APIs with APIOps Cycles
Marjukka Niinioja
 
Content Mate Web App Triples Content Managers‘ Productivity
Content Mate Web App Triples Content Managers‘ ProductivityContent Mate Web App Triples Content Managers‘ Productivity
Content Mate Web App Triples Content Managers‘ Productivity
Alex Vladimirovich
 
Agile Software Engineering Methodologies
Agile Software Engineering MethodologiesAgile Software Engineering Methodologies
Agile Software Engineering Methodologies
Gaurav Sharma
 
The rise of e-commerce has redefined how retailers operate—and reconciliation...
The rise of e-commerce has redefined how retailers operate—and reconciliation...The rise of e-commerce has redefined how retailers operate—and reconciliation...
The rise of e-commerce has redefined how retailers operate—and reconciliation...
Prachi Desai
 
FME for Climate Data: Turning Big Data into Actionable Insights
FME for Climate Data: Turning Big Data into Actionable InsightsFME for Climate Data: Turning Big Data into Actionable Insights
FME for Climate Data: Turning Big Data into Actionable Insights
Safe Software
 
Providing Better Biodiversity Through Better Data
Providing Better Biodiversity Through Better DataProviding Better Biodiversity Through Better Data
Providing Better Biodiversity Through Better Data
Safe Software
 
COBOL Programming with VSCode - IBM Certificate
COBOL Programming with VSCode - IBM CertificateCOBOL Programming with VSCode - IBM Certificate
COBOL Programming with VSCode - IBM Certificate
VICTOR MAESTRE RAMIREZ
 
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptxIMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL NETWORK.P.pptx
usmanch7829
 
Revolutionize Your Insurance Workflow with Claims Management Software
Revolutionize Your Insurance Workflow with Claims Management SoftwareRevolutionize Your Insurance Workflow with Claims Management Software
Revolutionize Your Insurance Workflow with Claims Management Software
Insurance Tech Services
 
Top 11 Fleet Management Software Providers in 2025 (2).pdf
Top 11 Fleet Management Software Providers in 2025 (2).pdfTop 11 Fleet Management Software Providers in 2025 (2).pdf
Top 11 Fleet Management Software Providers in 2025 (2).pdf
Trackobit
 
Topic 26 Security Testing Considerations.pptx
Topic 26 Security Testing Considerations.pptxTopic 26 Security Testing Considerations.pptx
Topic 26 Security Testing Considerations.pptx
marutnand8
 
Simplify Training with an Online Induction Portal for Contractors
Simplify Training with an Online Induction Portal for ContractorsSimplify Training with an Online Induction Portal for Contractors
Simplify Training with an Online Induction Portal for Contractors
SHEQ Network Limited
 

Supporting Software Evolution Using Adaptive Change Propagation

  • 1. Supporting Software Evolution Using Adaptive Change Propagation Heuristics Haroon Malik Ahmed E. Hassan School of Computing, Queen’s University, Canada 1
  • 2. What is Change Propagation It is the process of propagating code changes to other entities in software system. It ensures the consistency of assumptions in the system after changing an entity. Mis-propagating likely to introduce bugs 2
  • 3. The Change Propagation Process 3 Determine Initial Entity To Change Change Entity Determine Other Entities To Change Consult Guru for Advice New Req., Bug Fix “How does a change in one source code entity propagate to other entities?” No More Changes For Each Entity Suggested Entity
  • 4. Consider change set with A, B and C changing together 4 A B C
  • 5. Consider change set with A, B and C changing together 5 A B C B C A D E D HIST Heuristic CUD Heuristic (Static dependency) HELPFUL Wasted Developer time
  • 6. Consider change set with A, B and C changing together 6 A B C B C A D E D HIST Heuristic CUD Heuristic (Static dependency) HELPFUL Wasted Developer time  Which heuristics should we pick ?  We should track the performance of pool of heuristics over time for each entity
  • 7. Consider change set with A, B and C changing together 7 A B C B C A D D D HIST Heuristic CUD Heuristic (Static dependency) HELPFUL Wasted Developer time  Best Heuristic table (BHT)  Tracks and updates
  • 8. Consider change set with A, B and C changing together 8 A B C B C A D D D HIST Heuristic CUD Heuristic (Static dependency) A E D Time  HIST or CUD?  BHT says HIST always work well with A [A-Freq].  We use HIST  BHT might also say HIST worked well with A, last time [A-REC]
  • 9. Consider change set with A, B and D changing together 9 E D A
  • 10. Consider change set with A, B and D changing together 10 E D A B
  • 11. Consider change set with A, B and D changing together 11 E D A B X Y Precision= 1/5= 20% Recall = 1/1= 100% We want high Precision & high Recall
  • 12. Change Propagation Challenge Mostly manual & time consuming process Requires dependency on others  knowledge of senior developers, who are usually too busy to guide every change  Experience of guru, who rarely exists in large projects  Communication among different teams; itself is a challenge in large projects  Use of documentation & previous test suits which are rarely up-todate 12
  • 13. Shortcomings of Current Practices Explores single dimension  HIST: Given a changed entity A, a HIST heuristic would suggest all entities that changed often with A in the past.  CUD: Given a modified entity A, a CUD heuristic returns all entities that depend on A or that A depends on.  FILE: Given a modified entity A, a file heuristic would return all entities in the same file as A Static heuristics  Do not adjust over time nor,  Adapt to particular changed entity 13
  • 14. Proposed Approach Adaptive co-change meta-heuristics: Tracks best performing heuristics for each entity in Best Heuristic table (BHT) Updates Table as project evolves 14
  • 15. BHT Update BHT has best performing heuristics A-Recency:  For the last change of an entity A-Frequency  Over all changes of an entity By continuously updating the BHT table, we ensure that we are always using the most optimal heuristic for an entity 15
  • 16. Empirical Study Used change sets from 5 open source projects with over 39 years of development: PostgreSQL, FreeBSD, Gcluster and GCC Recover change sets from source control repositories (CVS) Replayed the history to measure the performance 16
  • 17. Performance Measures of Heuristics Project HIST CUD FILE A-Freq A-Rec Rec Prec Rec Prec Rec Prec Rec Prec Rec Prec Postgress 0.69 0.14 0.44 0.02 0.73 0.13 0.45 0.25 0.4 0.30 FreeBSD 0.70 0.12 0.40 0.02 0.76 0.11 0.41 0.27 0.41 0.30 GCluster 0.52 0.18 0.38 0.09 0.70 0.14 0.39 0.22 0.35 0.28 GCC 0.78 0.10 0.43 0.02 0.80 0.12 0.51 0.21 0.47 0.25 All 0.67 0.13 0.41 0.04 0.74 0.12 0.44 0.23 0.40 0.28 F-measure 0.23 0.06 0.21 0.30 0.33 Recall: Adaptive heuristics are similar to traditional heuristics Precision: Adaptive heuristics out perform traditional heuristics F-measure: Adaptive heuristics out perform traditional heuristics (23% better than the best heuristic HIST) 17
  • 18. Performance Characteristics of Adaptive Heuristics To better understand our Adaptive Heuristics we examined their performance along three direction: Performance Over Time BHT Composition over Time BHT suggestions vs. optimal suggestions 18
  • 19. Performance Over Time 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 1993 1995 1997 1999 2001 2003 2005 Years Precesion 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1993 1995 1997 1999 2001 2003 2005 Years Recall HIST CUD File A-Freq A-Rec For Precision:  Adaptive heuristic outperforms traditional heuristics. For Recall:  Adaptive heuristics do not perform as well as other traditional heuristics.  Overall A-Rec has lower recall as compared to A-Freq for all projects 19
  • 20. BHT Composition over Time 0 5 10 15 20 25 30 35 40 45 50 55 60 0 500 1000 1500 2000 2500 3000 3500 4000 Day(s) HBTcompostion(%) HIST FILE CUD 0 5 10 15 20 25 30 35 40 45 50 55 0 500 1000 1500 2000 2500 3000 3500 4000 Day(s) HBTcompostion(%) HIST FILE CUD A-Freq A-Rec  BHT for Free BSD  All projects show same trends  At start History is not widely used  As the projects evolves, HIST is most effective. 20
  • 21. BHT Suggestion Vs. Optimal  Since we are replaying of historical change set we can compare Adaptive vs. Optimal heuristic  Optimal heuristic always 100% suggests the best heuristic  Suggestion: # of correctly suggested heuristics 76-85%  Performance: 63% of optimal F-measure HIST is 44% of optimal best performing basic heuristics  37% room for improvement 21
  • 22. Improving the Performance Adaptive Heuristics Improve HIST in hope to improve adaptive heuristics by employing advance techniques Two improved HIST [Hassan, Holt: 2005]  RECN(M): given a changed entity E, RECN(M) suggests all entities that changed with E in the past M months.  FREQ(A): given a changed entity E, FREQ(A) suggests all entities that changed with E at least twice in the past and changed more that A% of the time with E. 22
  • 23. Improved HIST heuristics  Integrated RECN(4) and FREQ(60) into the heuristic pool used by adaptive meta-heuristics  Achieved 0.73 to 0.78 for Recall and 0.64 for Precision  Nearly 30% increase in performance:  A-FREQ is within 91% of the optimal heuristic  A-REC is within 93% of the optimal heuristic RECN(M) F-Measure FREQ(A) F-Measure RECN(2) 0.39 FREQ(50) 0.39 RECN(4) 0.40 FREQ(60) 0.44 RECN(6) 0.34 FREQ(70) 0.42 RECN(8) 0.28 FREQ(80) 0.39 23
  • 24. Findings Adaptive heuristics can achieve:  0.73 to 0.78 for Recall and 0.64% Precession 57% improvement over T. heuristics Performance difference are statically significant based on a paired Wilcoxon signed rant test at 5% level of significant. (Alpha=0.05) 24