Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |
Transcript of Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |
![Page 1: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/1.jpg)
Elena Laskavaia,
Research In Motion, Eclipse Con, March 2012
![Page 2: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/2.jpg)
Use Static Analysis Tools
Sell Static Analysis Tools ◦ not discussing today
![Page 3: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/3.jpg)
Dev. C
ost
Dev.
Cost
Dev.
Cost
Dev.
Cost
Dev.
Cost Extr
a C
ost
Pro
fit
Pro
fit
0
2
4
6
8
10
12
Before Ideal Real Real II Real III
Profit
Extra Cost
Dev. Cost
![Page 4: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/4.jpg)
Analysis of source code without running it
Bug Detection
Security
Code Style
Compliance
Reverse Engineering
Visualization
Metrics
X-Ref
Refactoring
Unused Code
Code Clones
Code Cleanup
![Page 5: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/5.jpg)
Stage Bug Life Cost
As you type 1 s 1 cent
Developer build 10 sec 10 cent
Developer testing 10 min $3
SCM check in 4 h $10
Integration build 1 d $40
Integration testing 10 days $200
In the field from 30 days $1000+
In outer space 3 years $100 million*
1
10
100
1000
10000
Dev Unit
Test
QA
Test
User
Acc.
Live
![Page 6: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/6.jpg)
Finding of bugs for “Free”
Detection of security vulnerabilities
Enforcement of code style
Assistance on software certification and audit
Help with testing and regression testing
Automation of code review
Generation of software metrics trends
![Page 7: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/7.jpg)
Cost of Tools
Installation and Setup
Users Training
Build Integration and Maintenance
Tuning and Customization
Problems Triage
![Page 8: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/8.jpg)
Use maximum of your IDE and compiler
If you need external tools try to pick ONE
Evaluate tool before buying
Pay for integration
Tune it
Customize it
![Page 9: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/9.jpg)
Integrate into existing software lifecycle!
Be customizable
Hide false positives without code modification
Have ability to report new errors only
Use adaptive error reporting
Auto-correct errors
Explain itself well
![Page 10: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/10.jpg)
Incorrect integration
Failure to tune: noise
Obscure code
Bug in tool
![Page 11: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/11.jpg)
Developers Workstation ◦ Integrated as you type
◦ In local build
◦ As unit tests
◦ As extra “tool” to run on code
![Page 12: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/12.jpg)
Code Review ◦ Bot code reviewer (gives -1 or +1 on review )
Commit Hook ◦ Veto on code submission
Integration Build ◦ Send auto-alerts on new bugs
◦ Provide trends on sw quality, maintainability, size
Run on Demand ◦ Audit - FDA, DO-178B, MISRA
◦ Find bugs for external triage
![Page 13: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/13.jpg)
All bugs have to be fixed
Free tool means no cost
The more tools we buy, the more bugs they find, the better it is for us
If we pay for the tools they will find all our bugs
Tool just works out of the box
Developers love to use a new tool
![Page 14: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/14.jpg)
Zero Tolerance
Warnings are Evil
Progressive Exposure
Stop the Bleeding
Pick ONE tool for bug detection
Smart code style
Don’t argue, fix the code!
![Page 15: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/15.jpg)
Buy 5 tools and add another 5 free ones
Add all errors directly into bug tracking database
Report code style errors instead of auto-correct
Enforce obsolete and irrelevant code standards
Enable errors that you don’t care about
Enable errors which have limited applicability
![Page 16: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/16.jpg)
Type How it affects the code F.P. Rate Density
Programming Errors Cause Program Misbehaviour
High Low
Code Style Fail Certification Low High
Security Violations Cause security exploits High High
Unused Code Bigger Code Footprint Low Med
Visibility Reduction, Code Clean-up
Poor Maintainability Low High
Performance Code Executes Slower Low High
![Page 17: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/17.jpg)
![Page 18: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/18.jpg)
Set to Error!
![Page 19: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/19.jpg)
![Page 20: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/20.jpg)
• Finds errors as you type • Provides quick fixes
![Page 21: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/21.jpg)
![Page 22: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/22.jpg)
![Page 23: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/23.jpg)
![Page 24: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/24.jpg)
![Page 25: Elena Laskavaia, Research In Motion, - EclipseCon Europe 2013 |](https://reader035.fdocuments.net/reader035/viewer/2022071600/613d12ff736caf36b7590201/html5/thumbnails/25.jpg)
Maximize gain ◦ Figure out what you want
◦ Find the right tool(s)
Minimize cost ◦ Integrate
◦ Tune
◦ Enforce
◦ Educate
Dev. C
ost
Dev.
Cost
Pro
fit
Before After