SlideShare a Scribd company logo
 
 

BW10
Session 
6/5/2013 3:45 PM 
 
 
 
 
 
 
 

"Enhancing Developer Productivity
with Code Forensics"
 
 
 

Presented by:
Anthony Voellm
Google, Inc.
 
 
 
 
 
 
 
 
 

Brought to you by: 
 

 
 
340 Corporate Way, Suite 300, Orange Park, FL 32073 
888‐268‐8770 ∙ 904‐278‐0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
Anthony Voellm
Google, Inc.

At Google Anthony Voellm is focused on delivering performance, reliability, and security to the
Google Compute Engine, Google App Engine, Google Cloud SQL, and Google Cloud BigQuery
while also innovating new offerings. His experience ranges from kernel and database engines to
image processing and graphics. Anthony is an avid inventor who holds seven technology
patents. Prior to joining Google in 2011, Anthony held multiple roles at Microsoft leading the
Windows reliability, security, and privacy test teams. Anthony has taught performance testing to
more than 2,000 people worldwide and given dozens of informative talks on software
fundamentals and the cloud. He writes a technology blog on software fundamentals.
Enhancing Developer Productivity with
Code Forensics:
Applications of behavioral analysis and developer assessment to
improve productivity

Presented at BSE West - Vegas - June 5th 2013
Anthony F. Voellm
Google Cloud Security, Performance and Test Manager
voellm@google.com / G+ / @p3rfguy

The hypothesis:
Tomorrow

Today

One size fits all testing
Do everything
Do nothing
Best guess
Static code analysis

•
•
•
•

The right amount of tests
Skills / Knowledge
Experience
State of mind
Behavior

•
•
•
•
Overview

•

Part 1 - The backdrop

•

Part 2 - The big question

•

Part 3 - Measure, Measure, Measure

•

Part 4 - Where is the science?

•

Part 5 - The path forward

The backdrop
All developers are are the same - right?

Chevy Nova for a car is a
great name in english.
"No va" however in
spanish means "no go."

Internationalization
Logical Bugs
Security bugs

We live in
a world of
bugs

Reliability
Accessibility bugs

Performance bugs
...
int x[10];
x[10] = -1;
...
Where do bugs come from?

Humans...

The Google Brain - NYTimes article

... in the future machines.

How do bugs happen?

Fridays… :)
How do bugs happen?
uTest Blog - " If you’re ti d
T t Bl
"...
’ tired,
angry or frustrated for instance
(like Patriots fans this morning)
then you’re almost guaranteed to
make some careless mistakes. ..."
mistakes

How do bugs happen?

College mentee of mine "Cut and paste is wicked."
How do bugs happen?
"How do fixes become bugs" Paper
in 2011 - "...the bug-fixing
process can also introduce
errors... Developers and
reviewers for incorrect fixes
usually do not have enough
knowledge...”

How do bugs happen?
NIST Study - "Software is error-ridden in part because
of its growing
i

complexity. The size of
l it

software products is no longer measured in
thousands of lines of code, but in millions.
Software developers already spend approximately
80 percent of development costs on identifying and
correcting defects, and yet few products of any type
other than software are shipped with such high
levels of errors."
Speaking of complexity...

From - "How do fixes become bugs" paper

The cost of bugs

•

Time
o 25%+ of developers time is fixing bugs
o A 1 line fix takes 1+ hours of testing is common

•

Money
o ~$60 Billion (9 zero's) to the US economy each year
in 2002!

•

Reputation
o 10% Error rate on critical security fixes.
Reputation … this might be the most
important.

Years to develop and it only takes minutes to destroy.

The big question
One size fits all
With all the evidence that humans are the root
cause of bugs *and* we all have different levels
and
of skill.... Why do we all test the same?

From - "How do fixes become bugs" paper

Types of testing
•

All unit tests (15 minutes or less should be the target)
o The most basic test with all layers stripped away.

•

All Integration / System Tests (1 h or lless)
hour
)
o Uses multiple features together.

•

All Performance Tests (8 hours or less)
o Micro-benchmarks (fio, iperf, ...)
o Industry benchmarks (SpecCPU, TPC-C, Hibernate, ...)

•

All Reliability tests (days)
o Longhaul
o Leak detection tools

•

All Security tests (weeks)
o Smart Fuzzers
o Static code analyzers like Coverity

Time
Sink
HURRAY!

“…time pressure prevents
testers from conducting
thorough regression tests
before releasing the fix.”*

How do we choose what to run?

•

Today:
o Run everything
o Run nothing
o Selectively run based on complex change
to test associations
o Best guess based on developer caution
How do we choose what to run?

•

Tomorrow:
o Run based on developer skill
o Run based familiarity with code base
o Run based on the complexity of the code
o Run based on the type of bug being fixed
o Run based on behavioral analysis of the
code

Measure, Measure,

Measure
What should we measure?

Artifacts

• What is the frequency of check ins by
the developer?

• How often has this developer checked
in a [severe] bug?
[
] g

• Do bugs trail checkings?
Behavior and skill

VS

Code .....
Code .....
Code .....
Code .....
Code
C d .....
Code .....
Code .....
Code .....
Code .....
Code .....
Code .....
Code .....
Code .....
Code .....
Code .....

Freshman

Code ..... Sophomore
Code .....
Code .....
Code .....
Code .....
Code ..... Junior
Code .....
Code .....
Code .....
Code .....
Code .....
Code .....
Code .....
Code ..... Code ..... Senior
Code .....
Code ..... Code .....
Code .....
Code ..... Code .....
Code ..... Code .....
Code ..... Code .....
Code .....
Code ..... Guru

Measures

•
•
•
•

Is the checkin in code the developer is "familiar"
with?

Knowledge of the code reviewer.
Peer ranking on how p p feel about y
g
people
your level
of expertise.

What is the size of the check in?
Emotions

http://people.brandeis.edu/~sekuler/eegERP.html

Measures

•

Is the the day before a weekend?

•

Is the time of day of the check in unusual for
the developer?

•

Bug Debt
Cyclomatic complexity

http://en.wikipedia.org/wiki/Cyclomatic_complexity

Measures

•

Does the developer write complex code?

•

How layered is the code?

•

Does the developer write units tests?

•

What percentage of the check in is covered by
tests?
Where is the science?

Studies...

Empirical investigation of software
p
g
product line quality
Researcher: Katerina Goseva-Popstajanova
Lane Department of Computer Science and Electrical Engineering
West Virginia University
est g a U e s ty

***Special thanks to Katerina Goseva-Popstajanova who presented at GTAC2013 and graciously allowed me to use these
slides. You can see her full talk here - http://www.youtube.com/watch?v=fiG-SdNcjTE
West Virginia
University

Open source product line: basics

The following slides are based on the paper
“A longitudinal study of post-release faults in an
evolving, open-source software product line”
by T. Devine, K. Goseva-Popstajanova, S.
Krishnan, and R R L t
Ki h
d R. R. Lutz
Submitted to a journal, currently under review

West Virginia
University

Open source product line: basics

Eclipse can be treated as a SPL
• Currently consists of fourteen different members that
share main components and are set apart by variable
components
• Considered four products: Classic, C/C++, Java and

JavaEE

• Large size: these four products consist of over 125,000
files and 20 million LoC
• Evolving product line: considered seven releases
• Goals: assessment and prediction of post-release faults
West Virginia
University

Open source product line: basics
Total

Release

Year

Classic
Pkgs

2.0

2002

2.1

C/C++ Java JavaEE
Pkgs Pkgs
Pkgs

KLoC

Pkgs

Faulty
Pkgs

34

773

34

26

2003

41

1054

41

37

3.0

2004

76

1756

76

70

3.3.
Europa

2007

85

62

103

185

3988

185

148

3.4
34
Ganymede

2008

89

62

105

200

4291

200

152

3.5
Galileo

2009

77

61

104

188

3913

188

120

3.6
Helios

2010

77

61

105

206

4262

206

103

West Virginia
University

Different degrees of reuse

Europa

Ganymede

Galileo

Helios
Metrics

West Virginia
University

Code metrics

Change metrics

LoC

Revisions

Average Changeset

Statements

Refactorings
R f t i

Age
A

Percent Branch Statement

Bugfixes

Weighted Age

Method Call Statement

Authors

Percent Lines with Comments

LoC Added

Classes and Interfaces

Max LoC Added

Methods per class

Average LoC Added

Average Statements per Method

LoC D l t d
L C Deleted

Max Complexity

Max LoC Deleted

Average Complexity

Codechurn

Max Block Depth

Max Codechurn

Average Block Depth

Average Codechurn

Statements at Block Level n (0, 1, … 9)

Max Changeset

West Virginia
University

Assessment: Evolution through
releases

1. Does quality, measured by the number of post-release
faults for the packages in each release, consistently
improve as the SPL matures?

Post-release fault density decreases as the product line
matures through releases
West Virginia
University

Assessment: Post-release fault
distribution

2. Do the majority of faults reside in a small subset of
packages?

For each release, from 66% to 93% of post-release faults were
located in 20% of packages, with average around 81%

West Virginia
University

Prediction: What features are good
predictors?

7. Are some features better indicators of the number
of post-release faults in a package than others?

Feature selection via stepwise regression selected from
1 –16 features out of 112 features
West Virginia
University

Prediction: What features are good
predictors?

Of the fifteen features appearing in more than a quarter of
models, only four are static code metrics

West Virginia
University

Prediction: What features are good
predictors?

Change metrics (correlation 0.726 – 0.768)
• total and maximum number of bugfixes
• total authors
• total code churn
• total revisions
Static code metrics (
S
(correlation 0 610 - 0 683)
0.610 0.683)
• maximum statements at block level one
• maximum and total statements at block level four
• maximum method call statements
The path forward

Use the human factor to ship faster...

•

Create [AI] models that account for...
o
o
o
o
o

•

Use the models as part of check in and code
health...
o
o

•

Experience
Knowledge of the code base
Code complexity
Measures of behavior
... and much more

Developers with less risky profiles run less tests
Developers with higher risk profile run more tests

Let automated systems running in parallel be
the safety net.
Human factors success - Blint!
By Erick Fejta

Let productivity soar!
End - Questions?

Name:
Tony)
Contact:
Blog:
G+:
Twitter:

Anthony F. Voellm (aka
voellm@google.com
http://perfguy.blogspot.com
http://goo.gl/mPXcX
http://goo gl/mPXcX
@p3rfguy

Appendix
Abstract:
This talk will present data and findings on how behavioral analysis and
developer assessment can be applied to improving productivity. Just image
an engineering system that could recognize rushed check-ins, "grade"
developer knowledge, and use that data to speed up development "Congrats Jane you know this code well ... no check-in test gate for you."
The approach has been motivated by looking at today's test systems, tools,
and processes and recognizing thes are designed around the premise that
all developers are created equal. Studies have shown developer error rates
can vary widely and have a number of root causes - mind set of the
developer at the time the code was written, experience level, amount of
code in a check in complexity of the code, and much more. This talk will
in,
code
more
introduce a number of metrics and concepts such as Cyclomatic complexity
and Digital Code Forensics, and demonstrate how even modest application
of the approach can speed up development. This is the bleeding edge of
engineering productivity.

The message:
Not all developers have the same experience or skill
level, and we can use this to improve the speed of
development. Speed up the better developers, and
slow down the less precise. We dont need a one
size fits all policy, however we do need to base the
decisions on data.
References
•
•
•
•
•
•

http://en.wikipedia.org/wiki/Software_bug#cite_note-1

•
•
•

http://istqbexamcertification.com/what-is-the-psychology-of-testing/

•

http://software-testing-zone.blogspot.com/2009/04/software-testing-diplomacy-deal.html

http://www.cs.unm.edu/~forrest/classes/readings/HowDoFixesBecomeBugs.pdf
http://blog.utest.com/the-software-testing-mindset/2012/02/
http://www.cse.buffalo.edu/~mikeb/Billions.pdf
http://software-testing-zone.blogspot.com/2008/12/why-are-bugsdefects-in-software.html
http://www.itbusinessedge.com/cm/community/features/guestopinions/blog/battling-softwaredefects-one-developer-at-a-time/?cs=39611
http://ubuntuforums.org/archive/index.php/t-1582847.html
http://sqa.stackexchange.com/questions/545/how-does-a-testers-perspective-toward-softwarediffer from a developers
differ-from-a-developers

More Related Content

What's hot

Software Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and SecuritySoftware Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and Security
Tao Xie
 
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Kevin Moran
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening
Maven Logix
 
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
Kevin Moran
 
Evaluating SZZ Implementations Through a Developer-informed Oracle (ICSE 2021)
Evaluating SZZ Implementations Through a Developer-informed Oracle (ICSE 2021)Evaluating SZZ Implementations Through a Developer-informed Oracle (ICSE 2021)
Evaluating SZZ Implementations Through a Developer-informed Oracle (ICSE 2021)
Giovanni Rosa
 
Automated GUI-Testing of Android Apps: From Research to Practice
Automated GUI-Testing of Android Apps: From Research to PracticeAutomated GUI-Testing of Android Apps: From Research to Practice
Automated GUI-Testing of Android Apps: From Research to Practice
Kevin Moran
 
Planning and Executing Practice-Impactful Research
Planning and Executing Practice-Impactful ResearchPlanning and Executing Practice-Impactful Research
Planning and Executing Practice-Impactful Research
Tao Xie
 
Mobile App Test Attacks to Efficiently Explore Software
Mobile App Test Attacks to Efficiently Explore SoftwareMobile App Test Attacks to Efficiently Explore Software
Mobile App Test Attacks to Efficiently Explore Software
TEST Huddle
 
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
Takanori Suzuki
 
Saner16b.ppt
Saner16b.pptSaner16b.ppt
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Yuriy Tymchuk
 
Smells Like Teen Spirit: Improving Bug Prediction Performance using the Inten...
Smells Like Teen Spirit: Improving Bug Prediction Performance using the Inten...Smells Like Teen Spirit: Improving Bug Prediction Performance using the Inten...
Smells Like Teen Spirit: Improving Bug Prediction Performance using the Inten...
Fabio Palomba
 
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...On the Distribution of Test Smells in Open Source Android Applications: An Ex...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
University of Hawai‘i at Mānoa
 
How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis
Perforce
 
Social Debt Analytics for Improving the Management of Software Evolution Tasks
Social Debt Analytics for Improving the Management of Software Evolution TasksSocial Debt Analytics for Improving the Management of Software Evolution Tasks
Social Debt Analytics for Improving the Management of Software Evolution Tasks
Fabio Palomba
 
Peer Code Review An Agile Process
Peer Code Review An Agile ProcessPeer Code Review An Agile Process
Peer Code Review An Agile Process
gsporar
 
Do They Really Smell Bad? A Study on Developers' Perception of Bad Code Smells
Do They Really Smell Bad? A Study on Developers' Perception of Bad Code SmellsDo They Really Smell Bad? A Study on Developers' Perception of Bad Code Smells
Do They Really Smell Bad? A Study on Developers' Perception of Bad Code Smells
Fabio Palomba
 
IDEAL: An Open-Source Identifier Name Appraisal Tool
IDEAL: An Open-Source Identifier Name Appraisal ToolIDEAL: An Open-Source Identifier Name Appraisal Tool
IDEAL: An Open-Source Identifier Name Appraisal Tool
University of Hawai‘i at Mānoa
 
Why you should integrate peer code reviews in your software company
Why you should integrate peer code reviews in your software companyWhy you should integrate peer code reviews in your software company
Why you should integrate peer code reviews in your software company
Matts Devriendt
 
Programming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT worldProgramming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT world
Rogue Wave Software
 

What's hot (20)

Software Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and SecuritySoftware Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and Security
 
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening
 
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
 
Evaluating SZZ Implementations Through a Developer-informed Oracle (ICSE 2021)
Evaluating SZZ Implementations Through a Developer-informed Oracle (ICSE 2021)Evaluating SZZ Implementations Through a Developer-informed Oracle (ICSE 2021)
Evaluating SZZ Implementations Through a Developer-informed Oracle (ICSE 2021)
 
Automated GUI-Testing of Android Apps: From Research to Practice
Automated GUI-Testing of Android Apps: From Research to PracticeAutomated GUI-Testing of Android Apps: From Research to Practice
Automated GUI-Testing of Android Apps: From Research to Practice
 
Planning and Executing Practice-Impactful Research
Planning and Executing Practice-Impactful ResearchPlanning and Executing Practice-Impactful Research
Planning and Executing Practice-Impactful Research
 
Mobile App Test Attacks to Efficiently Explore Software
Mobile App Test Attacks to Efficiently Explore SoftwareMobile App Test Attacks to Efficiently Explore Software
Mobile App Test Attacks to Efficiently Explore Software
 
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
 
Saner16b.ppt
Saner16b.pptSaner16b.ppt
Saner16b.ppt
 
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
 
Smells Like Teen Spirit: Improving Bug Prediction Performance using the Inten...
Smells Like Teen Spirit: Improving Bug Prediction Performance using the Inten...Smells Like Teen Spirit: Improving Bug Prediction Performance using the Inten...
Smells Like Teen Spirit: Improving Bug Prediction Performance using the Inten...
 
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...On the Distribution of Test Smells in Open Source Android Applications: An Ex...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
 
How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis
 
Social Debt Analytics for Improving the Management of Software Evolution Tasks
Social Debt Analytics for Improving the Management of Software Evolution TasksSocial Debt Analytics for Improving the Management of Software Evolution Tasks
Social Debt Analytics for Improving the Management of Software Evolution Tasks
 
Peer Code Review An Agile Process
Peer Code Review An Agile ProcessPeer Code Review An Agile Process
Peer Code Review An Agile Process
 
Do They Really Smell Bad? A Study on Developers' Perception of Bad Code Smells
Do They Really Smell Bad? A Study on Developers' Perception of Bad Code SmellsDo They Really Smell Bad? A Study on Developers' Perception of Bad Code Smells
Do They Really Smell Bad? A Study on Developers' Perception of Bad Code Smells
 
IDEAL: An Open-Source Identifier Name Appraisal Tool
IDEAL: An Open-Source Identifier Name Appraisal ToolIDEAL: An Open-Source Identifier Name Appraisal Tool
IDEAL: An Open-Source Identifier Name Appraisal Tool
 
Why you should integrate peer code reviews in your software company
Why you should integrate peer code reviews in your software companyWhy you should integrate peer code reviews in your software company
Why you should integrate peer code reviews in your software company
 
Programming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT worldProgramming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT world
 

Viewers also liked

STARCANADA 2013 Keynote: Lightning Strikes the Keynotes
STARCANADA 2013 Keynote: Lightning Strikes the KeynotesSTARCANADA 2013 Keynote: Lightning Strikes the Keynotes
STARCANADA 2013 Keynote: Lightning Strikes the Keynotes
TechWell
 
A UX Strategy for Persona Research
A UX Strategy for Persona ResearchA UX Strategy for Persona Research
A UX Strategy for Persona Research
TechWell
 
Whiteboarding—for Testers, Developers, and Customers, Too
Whiteboarding—for Testers, Developers, and Customers, TooWhiteboarding—for Testers, Developers, and Customers, Too
Whiteboarding—for Testers, Developers, and Customers, Too
TechWell
 
Seven Deadly Habits of Dysfunctional Software Managers
Seven Deadly Habits of Dysfunctional Software ManagersSeven Deadly Habits of Dysfunctional Software Managers
Seven Deadly Habits of Dysfunctional Software Managers
TechWell
 
Software Security Goes Mobile
Software Security Goes MobileSoftware Security Goes Mobile
Software Security Goes Mobile
TechWell
 
Red Beads: A New Tool for Managing Software Projects
Red Beads: A New Tool for Managing Software ProjectsRed Beads: A New Tool for Managing Software Projects
Red Beads: A New Tool for Managing Software Projects
TechWell
 
Exploring Usability Testing
Exploring Usability TestingExploring Usability Testing
Exploring Usability Testing
TechWell
 
Scaling Your Tests: Continued Change Without Fear
Scaling Your Tests: Continued Change Without FearScaling Your Tests: Continued Change Without Fear
Scaling Your Tests: Continued Change Without Fear
TechWell
 
Collaboration Techniques: Forgotten Wisdom and New Approaches
Collaboration Techniques: Forgotten Wisdom and New ApproachesCollaboration Techniques: Forgotten Wisdom and New Approaches
Collaboration Techniques: Forgotten Wisdom and New Approaches
TechWell
 
Creating Dissonance: Overcoming Organizational Bias toward Software Testing
Creating Dissonance: Overcoming Organizational Bias toward Software TestingCreating Dissonance: Overcoming Organizational Bias toward Software Testing
Creating Dissonance: Overcoming Organizational Bias toward Software Testing
TechWell
 
Mob Programming: A Whole Team Approach
Mob Programming: A Whole Team ApproachMob Programming: A Whole Team Approach
Mob Programming: A Whole Team Approach
TechWell
 
Implementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile ProjectsImplementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile Projects
TechWell
 
Structural Testing: When Quality Really Matters
Structural Testing: When Quality Really MattersStructural Testing: When Quality Really Matters
Structural Testing: When Quality Really Matters
TechWell
 
Unlocking Innovation in Your Organization
Unlocking Innovation in Your OrganizationUnlocking Innovation in Your Organization
Unlocking Innovation in Your Organization
TechWell
 
Exploding Management Myths
Exploding Management MythsExploding Management Myths
Exploding Management Myths
TechWell
 
The Evolution of Agile: Dealing with the Growing Pains
The Evolution of Agile: Dealing with the Growing PainsThe Evolution of Agile: Dealing with the Growing Pains
The Evolution of Agile: Dealing with the Growing Pains
TechWell
 
Group Interaction Patterns: The Keys for Highly Productive Teams
Group Interaction Patterns: The Keys for Highly Productive TeamsGroup Interaction Patterns: The Keys for Highly Productive Teams
Group Interaction Patterns: The Keys for Highly Productive Teams
TechWell
 
Trends in Big Data Testing
Trends in Big Data TestingTrends in Big Data Testing
Trends in Big Data Testing
TechWell
 

Viewers also liked (18)

STARCANADA 2013 Keynote: Lightning Strikes the Keynotes
STARCANADA 2013 Keynote: Lightning Strikes the KeynotesSTARCANADA 2013 Keynote: Lightning Strikes the Keynotes
STARCANADA 2013 Keynote: Lightning Strikes the Keynotes
 
A UX Strategy for Persona Research
A UX Strategy for Persona ResearchA UX Strategy for Persona Research
A UX Strategy for Persona Research
 
Whiteboarding—for Testers, Developers, and Customers, Too
Whiteboarding—for Testers, Developers, and Customers, TooWhiteboarding—for Testers, Developers, and Customers, Too
Whiteboarding—for Testers, Developers, and Customers, Too
 
Seven Deadly Habits of Dysfunctional Software Managers
Seven Deadly Habits of Dysfunctional Software ManagersSeven Deadly Habits of Dysfunctional Software Managers
Seven Deadly Habits of Dysfunctional Software Managers
 
Software Security Goes Mobile
Software Security Goes MobileSoftware Security Goes Mobile
Software Security Goes Mobile
 
Red Beads: A New Tool for Managing Software Projects
Red Beads: A New Tool for Managing Software ProjectsRed Beads: A New Tool for Managing Software Projects
Red Beads: A New Tool for Managing Software Projects
 
Exploring Usability Testing
Exploring Usability TestingExploring Usability Testing
Exploring Usability Testing
 
Scaling Your Tests: Continued Change Without Fear
Scaling Your Tests: Continued Change Without FearScaling Your Tests: Continued Change Without Fear
Scaling Your Tests: Continued Change Without Fear
 
Collaboration Techniques: Forgotten Wisdom and New Approaches
Collaboration Techniques: Forgotten Wisdom and New ApproachesCollaboration Techniques: Forgotten Wisdom and New Approaches
Collaboration Techniques: Forgotten Wisdom and New Approaches
 
Creating Dissonance: Overcoming Organizational Bias toward Software Testing
Creating Dissonance: Overcoming Organizational Bias toward Software TestingCreating Dissonance: Overcoming Organizational Bias toward Software Testing
Creating Dissonance: Overcoming Organizational Bias toward Software Testing
 
Mob Programming: A Whole Team Approach
Mob Programming: A Whole Team ApproachMob Programming: A Whole Team Approach
Mob Programming: A Whole Team Approach
 
Implementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile ProjectsImplementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile Projects
 
Structural Testing: When Quality Really Matters
Structural Testing: When Quality Really MattersStructural Testing: When Quality Really Matters
Structural Testing: When Quality Really Matters
 
Unlocking Innovation in Your Organization
Unlocking Innovation in Your OrganizationUnlocking Innovation in Your Organization
Unlocking Innovation in Your Organization
 
Exploding Management Myths
Exploding Management MythsExploding Management Myths
Exploding Management Myths
 
The Evolution of Agile: Dealing with the Growing Pains
The Evolution of Agile: Dealing with the Growing PainsThe Evolution of Agile: Dealing with the Growing Pains
The Evolution of Agile: Dealing with the Growing Pains
 
Group Interaction Patterns: The Keys for Highly Productive Teams
Group Interaction Patterns: The Keys for Highly Productive TeamsGroup Interaction Patterns: The Keys for Highly Productive Teams
Group Interaction Patterns: The Keys for Highly Productive Teams
 
Trends in Big Data Testing
Trends in Big Data TestingTrends in Big Data Testing
Trends in Big Data Testing
 

Similar to Enhancing Developer Productivity with Code Forensics

Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and Challenges
Tao Xie
 
Three Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersThree Interviews About Static Code Analyzers
Three Interviews About Static Code Analyzers
Andrey Karpov
 
A year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTSA year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTS
Matteo Emili
 
DevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseDevOps for Defenders in the Enterprise
DevOps for Defenders in the Enterprise
James Wickett
 
How to Manage the Risk of your Polyglot Environments
How to Manage the Risk of your Polyglot EnvironmentsHow to Manage the Risk of your Polyglot Environments
How to Manage the Risk of your Polyglot Environments
DevOps.com
 
Technical debt management strategies
Technical debt management strategiesTechnical debt management strategies
Technical debt management strategies
Raquel Pau
 
Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013
SmartBear
 
Machine programming
Machine programmingMachine programming
Machine programming
DESMOND YUEN
 
Can we induce change with what we measure?
Can we induce change with what we measure?Can we induce change with what we measure?
Can we induce change with what we measure?
Michaela Greiler
 
01.intro
01.intro01.intro
01.intro
Philip Johnson
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
MarriamNawaz
 
An overview of automated test suites and defect density in Android
An overview of automated test suites and defect density in AndroidAn overview of automated test suites and defect density in Android
An overview of automated test suites and defect density in Android
Vahid Garousi
 
Software Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringSoftware Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software Engineering
Tao Xie
 
Software Development Lifecycle Presentation
Software Development Lifecycle PresentationSoftware Development Lifecycle Presentation
Software Development Lifecycle Presentation
ssuser645e24
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
QA or the Highway
 
1
11
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye code
Kim Moir
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
ssuser2d043c
 
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Juraj Martinka
 
Continuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeContinuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQube
Emre Dündar
 

Similar to Enhancing Developer Productivity with Code Forensics (20)

Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and Challenges
 
Three Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersThree Interviews About Static Code Analyzers
Three Interviews About Static Code Analyzers
 
A year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTSA year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTS
 
DevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseDevOps for Defenders in the Enterprise
DevOps for Defenders in the Enterprise
 
How to Manage the Risk of your Polyglot Environments
How to Manage the Risk of your Polyglot EnvironmentsHow to Manage the Risk of your Polyglot Environments
How to Manage the Risk of your Polyglot Environments
 
Technical debt management strategies
Technical debt management strategiesTechnical debt management strategies
Technical debt management strategies
 
Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013
 
Machine programming
Machine programmingMachine programming
Machine programming
 
Can we induce change with what we measure?
Can we induce change with what we measure?Can we induce change with what we measure?
Can we induce change with what we measure?
 
01.intro
01.intro01.intro
01.intro
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
An overview of automated test suites and defect density in Android
An overview of automated test suites and defect density in AndroidAn overview of automated test suites and defect density in Android
An overview of automated test suites and defect density in Android
 
Software Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringSoftware Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software Engineering
 
Software Development Lifecycle Presentation
Software Development Lifecycle PresentationSoftware Development Lifecycle Presentation
Software Development Lifecycle Presentation
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
 
1
11
1
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye code
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
 
Continuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeContinuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQube
 

More from TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
TechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
TechWell
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
TechWell
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
TechWell
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
TechWell
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
TechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
TechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
TechWell
 
Ma 15
Ma 15Ma 15
Ma 15
TechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
TechWell
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
TechWell
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
TechWell
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
TechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
TechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
TechWell
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
TechWell
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
TechWell
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
TechWell
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
TechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
TechWell
 

More from TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Ma 15
Ma 15Ma 15
Ma 15
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 

Recently uploaded

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
Claudio Di Ciccio
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
Techgropse Pvt.Ltd.
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 

Recently uploaded (20)

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 

Enhancing Developer Productivity with Code Forensics

  • 1.     BW10 Session  6/5/2013 3:45 PM                "Enhancing Developer Productivity with Code Forensics"       Presented by: Anthony Voellm Google, Inc.                   Brought to you by:        340 Corporate Way, Suite 300, Orange Park, FL 32073  888‐268‐8770 ∙ 904‐278‐0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
  • 2. Anthony Voellm Google, Inc. At Google Anthony Voellm is focused on delivering performance, reliability, and security to the Google Compute Engine, Google App Engine, Google Cloud SQL, and Google Cloud BigQuery while also innovating new offerings. His experience ranges from kernel and database engines to image processing and graphics. Anthony is an avid inventor who holds seven technology patents. Prior to joining Google in 2011, Anthony held multiple roles at Microsoft leading the Windows reliability, security, and privacy test teams. Anthony has taught performance testing to more than 2,000 people worldwide and given dozens of informative talks on software fundamentals and the cloud. He writes a technology blog on software fundamentals.
  • 3. Enhancing Developer Productivity with Code Forensics: Applications of behavioral analysis and developer assessment to improve productivity Presented at BSE West - Vegas - June 5th 2013 Anthony F. Voellm Google Cloud Security, Performance and Test Manager voellm@google.com / G+ / @p3rfguy The hypothesis: Tomorrow Today One size fits all testing Do everything Do nothing Best guess Static code analysis • • • • The right amount of tests Skills / Knowledge Experience State of mind Behavior • • • •
  • 4. Overview • Part 1 - The backdrop • Part 2 - The big question • Part 3 - Measure, Measure, Measure • Part 4 - Where is the science? • Part 5 - The path forward The backdrop
  • 5. All developers are are the same - right? Chevy Nova for a car is a great name in english. "No va" however in spanish means "no go." Internationalization Logical Bugs Security bugs We live in a world of bugs Reliability Accessibility bugs Performance bugs ... int x[10]; x[10] = -1; ...
  • 6. Where do bugs come from? Humans... The Google Brain - NYTimes article ... in the future machines. How do bugs happen? Fridays… :)
  • 7. How do bugs happen? uTest Blog - " If you’re ti d T t Bl "... ’ tired, angry or frustrated for instance (like Patriots fans this morning) then you’re almost guaranteed to make some careless mistakes. ..." mistakes How do bugs happen? College mentee of mine "Cut and paste is wicked."
  • 8. How do bugs happen? "How do fixes become bugs" Paper in 2011 - "...the bug-fixing process can also introduce errors... Developers and reviewers for incorrect fixes usually do not have enough knowledge...” How do bugs happen? NIST Study - "Software is error-ridden in part because of its growing i complexity. The size of l it software products is no longer measured in thousands of lines of code, but in millions. Software developers already spend approximately 80 percent of development costs on identifying and correcting defects, and yet few products of any type other than software are shipped with such high levels of errors."
  • 9. Speaking of complexity... From - "How do fixes become bugs" paper The cost of bugs • Time o 25%+ of developers time is fixing bugs o A 1 line fix takes 1+ hours of testing is common • Money o ~$60 Billion (9 zero's) to the US economy each year in 2002! • Reputation o 10% Error rate on critical security fixes.
  • 10. Reputation … this might be the most important. Years to develop and it only takes minutes to destroy. The big question
  • 11. One size fits all With all the evidence that humans are the root cause of bugs *and* we all have different levels and of skill.... Why do we all test the same? From - "How do fixes become bugs" paper Types of testing • All unit tests (15 minutes or less should be the target) o The most basic test with all layers stripped away. • All Integration / System Tests (1 h or lless) hour ) o Uses multiple features together. • All Performance Tests (8 hours or less) o Micro-benchmarks (fio, iperf, ...) o Industry benchmarks (SpecCPU, TPC-C, Hibernate, ...) • All Reliability tests (days) o Longhaul o Leak detection tools • All Security tests (weeks) o Smart Fuzzers o Static code analyzers like Coverity Time Sink
  • 12. HURRAY! “…time pressure prevents testers from conducting thorough regression tests before releasing the fix.”* How do we choose what to run? • Today: o Run everything o Run nothing o Selectively run based on complex change to test associations o Best guess based on developer caution
  • 13. How do we choose what to run? • Tomorrow: o Run based on developer skill o Run based familiarity with code base o Run based on the complexity of the code o Run based on the type of bug being fixed o Run based on behavioral analysis of the code Measure, Measure, Measure
  • 14. What should we measure? Artifacts • What is the frequency of check ins by the developer? • How often has this developer checked in a [severe] bug? [ ] g • Do bugs trail checkings?
  • 15. Behavior and skill VS Code ..... Code ..... Code ..... Code ..... Code C d ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Freshman Code ..... Sophomore Code ..... Code ..... Code ..... Code ..... Code ..... Junior Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Senior Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Code ..... Guru Measures • • • • Is the checkin in code the developer is "familiar" with? Knowledge of the code reviewer. Peer ranking on how p p feel about y g people your level of expertise. What is the size of the check in?
  • 16. Emotions http://people.brandeis.edu/~sekuler/eegERP.html Measures • Is the the day before a weekend? • Is the time of day of the check in unusual for the developer? • Bug Debt
  • 17. Cyclomatic complexity http://en.wikipedia.org/wiki/Cyclomatic_complexity Measures • Does the developer write complex code? • How layered is the code? • Does the developer write units tests? • What percentage of the check in is covered by tests?
  • 18. Where is the science? Studies... Empirical investigation of software p g product line quality Researcher: Katerina Goseva-Popstajanova Lane Department of Computer Science and Electrical Engineering West Virginia University est g a U e s ty ***Special thanks to Katerina Goseva-Popstajanova who presented at GTAC2013 and graciously allowed me to use these slides. You can see her full talk here - http://www.youtube.com/watch?v=fiG-SdNcjTE
  • 19. West Virginia University Open source product line: basics The following slides are based on the paper “A longitudinal study of post-release faults in an evolving, open-source software product line” by T. Devine, K. Goseva-Popstajanova, S. Krishnan, and R R L t Ki h d R. R. Lutz Submitted to a journal, currently under review West Virginia University Open source product line: basics Eclipse can be treated as a SPL • Currently consists of fourteen different members that share main components and are set apart by variable components • Considered four products: Classic, C/C++, Java and JavaEE • Large size: these four products consist of over 125,000 files and 20 million LoC • Evolving product line: considered seven releases • Goals: assessment and prediction of post-release faults
  • 20. West Virginia University Open source product line: basics Total Release Year Classic Pkgs 2.0 2002 2.1 C/C++ Java JavaEE Pkgs Pkgs Pkgs KLoC Pkgs Faulty Pkgs 34 773 34 26 2003 41 1054 41 37 3.0 2004 76 1756 76 70 3.3. Europa 2007 85 62 103 185 3988 185 148 3.4 34 Ganymede 2008 89 62 105 200 4291 200 152 3.5 Galileo 2009 77 61 104 188 3913 188 120 3.6 Helios 2010 77 61 105 206 4262 206 103 West Virginia University Different degrees of reuse Europa Ganymede Galileo Helios
  • 21. Metrics West Virginia University Code metrics Change metrics LoC Revisions Average Changeset Statements Refactorings R f t i Age A Percent Branch Statement Bugfixes Weighted Age Method Call Statement Authors Percent Lines with Comments LoC Added Classes and Interfaces Max LoC Added Methods per class Average LoC Added Average Statements per Method LoC D l t d L C Deleted Max Complexity Max LoC Deleted Average Complexity Codechurn Max Block Depth Max Codechurn Average Block Depth Average Codechurn Statements at Block Level n (0, 1, … 9) Max Changeset West Virginia University Assessment: Evolution through releases 1. Does quality, measured by the number of post-release faults for the packages in each release, consistently improve as the SPL matures? Post-release fault density decreases as the product line matures through releases
  • 22. West Virginia University Assessment: Post-release fault distribution 2. Do the majority of faults reside in a small subset of packages? For each release, from 66% to 93% of post-release faults were located in 20% of packages, with average around 81% West Virginia University Prediction: What features are good predictors? 7. Are some features better indicators of the number of post-release faults in a package than others? Feature selection via stepwise regression selected from 1 –16 features out of 112 features
  • 23. West Virginia University Prediction: What features are good predictors? Of the fifteen features appearing in more than a quarter of models, only four are static code metrics West Virginia University Prediction: What features are good predictors? Change metrics (correlation 0.726 – 0.768) • total and maximum number of bugfixes • total authors • total code churn • total revisions Static code metrics ( S (correlation 0 610 - 0 683) 0.610 0.683) • maximum statements at block level one • maximum and total statements at block level four • maximum method call statements
  • 24. The path forward Use the human factor to ship faster... • Create [AI] models that account for... o o o o o • Use the models as part of check in and code health... o o • Experience Knowledge of the code base Code complexity Measures of behavior ... and much more Developers with less risky profiles run less tests Developers with higher risk profile run more tests Let automated systems running in parallel be the safety net.
  • 25. Human factors success - Blint! By Erick Fejta Let productivity soar!
  • 26. End - Questions? Name: Tony) Contact: Blog: G+: Twitter: Anthony F. Voellm (aka voellm@google.com http://perfguy.blogspot.com http://goo.gl/mPXcX http://goo gl/mPXcX @p3rfguy Appendix
  • 27. Abstract: This talk will present data and findings on how behavioral analysis and developer assessment can be applied to improving productivity. Just image an engineering system that could recognize rushed check-ins, "grade" developer knowledge, and use that data to speed up development "Congrats Jane you know this code well ... no check-in test gate for you." The approach has been motivated by looking at today's test systems, tools, and processes and recognizing thes are designed around the premise that all developers are created equal. Studies have shown developer error rates can vary widely and have a number of root causes - mind set of the developer at the time the code was written, experience level, amount of code in a check in complexity of the code, and much more. This talk will in, code more introduce a number of metrics and concepts such as Cyclomatic complexity and Digital Code Forensics, and demonstrate how even modest application of the approach can speed up development. This is the bleeding edge of engineering productivity. The message: Not all developers have the same experience or skill level, and we can use this to improve the speed of development. Speed up the better developers, and slow down the less precise. We dont need a one size fits all policy, however we do need to base the decisions on data.
  • 28. References • • • • • • http://en.wikipedia.org/wiki/Software_bug#cite_note-1 • • • http://istqbexamcertification.com/what-is-the-psychology-of-testing/ • http://software-testing-zone.blogspot.com/2009/04/software-testing-diplomacy-deal.html http://www.cs.unm.edu/~forrest/classes/readings/HowDoFixesBecomeBugs.pdf http://blog.utest.com/the-software-testing-mindset/2012/02/ http://www.cse.buffalo.edu/~mikeb/Billions.pdf http://software-testing-zone.blogspot.com/2008/12/why-are-bugsdefects-in-software.html http://www.itbusinessedge.com/cm/community/features/guestopinions/blog/battling-softwaredefects-one-developer-at-a-time/?cs=39611 http://ubuntuforums.org/archive/index.php/t-1582847.html http://sqa.stackexchange.com/questions/545/how-does-a-testers-perspective-toward-softwarediffer from a developers differ-from-a-developers