SlideShare a Scribd company logo
1Samsung Open Source Group
Stefan Schmidt
Samsung Open Source Group
stefan@osg.samsung.com
Static Analysis of Your OSS Project
with Coverity
LinuxCon EU 2015
2Samsung Open Source Group
●
Introduction
●
Survey of Available Analysers
●
Coverity Scan Service
●
Hooking it Up in Your Project
●
Fine Tuning
●
Work Flows & Examples
●
Summary
Agenda
3Samsung Open Source Group
Introduction
4Samsung Open Source Group
Static Analysers
● What is Static Analysis?
– Analysis of the soure code without execution
– Usage of algorithms and techniques to find bugs in source code
● What is it not?
– A formal verification of your code
– A proof that your code is bug free
● Why is it useful for us?
– Allows to find many types of defects early in the development process
– Resource leaks, NULL pointer dereferences, memory corruptions, buffer
overflows, etc.
– Supplements things like unit testing, runtime testing, Valgrind, etc.
5Samsung Open Source Group
Survey of Available Analysers
6Samsung Open Source Group
Static Analysers
● Sparse
● Clang Static Analyzer
● CodeChecker based on Clang Static Analyzer
● Klocwork (proprietary)
● Coverity (proprietary, free as in beer service for OSS projects)
● A list with more analysers can be found at [1]
● My personal experience started with
– Clang Static Analyzer
– Klocwork used internally (not allowed to share results)
– finally settled for Coverity Scan service
7Samsung Open Source Group
Sparse
● Started 2003 by Linus Torvalds
● Semantic parser with a static analysis backend
● Well integrated into the Kernel build
system (make C=1/C=2)
● To integrate it with your project using the build
wrapper might be enough:
make CC=cgcc
8Samsung Open Source Group
Clang Static Analyzer
● Command line tool scan-build as build wrapper
● Generates a report as static HTML files
● The analyser itself is implemented as C++ library
● Also used from within XCode
● Scan build had many false positives for us and needs
more manual tuning (e.g. leak detected when added
to a list or array)
● Turned out to be to noisy without further work for us
9Samsung Open Source Group
CodeChecker
● Recently (June 2015) published by Ericsson
● Based on Clang Static Analyzer library
● Adds database for defect tracking
● Adds interactive web UI for defect handling
● Incremental reporting against baseline
● Added new checkers to Clang itself as well
● Very interesting but sadly no time to test, yet
10Samsung Open Source Group
Feature Comparison
Analyser OSS Defect
database
Web UI False positive
ratio
Sparse
✔ ✘ ✘ To be tested
Clang Static
Analyzer ✔ ✘ ✔static html
output
Noisy
CodeChecker
✔ ✔ ✔ To be tested
Coverity
✘ free as in
beer service
✔ ✔ Good
Klocwork
✘ ✔ ✔ Good
11Samsung Open Source Group
Coverity Scan Service
12Samsung Open Source Group
Coverity Scan Service Overview
● Started 2006 with 50 projects and now runs for
5700
● Many big projects already make use of it: Linux,
Firefox, LibreOffice, FreeBSD, ...
● Scans projects written in C, C++, Java, C# and
JavaScript
● Defect density is defined as defects per 1000
lines of code (1 per 1000 as industry standard)
13Samsung Open Source Group
Coverity Scan Service Parts
1) Build wrapper cov-build to gather data on
your system and package it into a tgz file
2) Upload the tgz on the website or via curl
to web API to trigger analysis
3) Receive a mail once the analysis is completed
4) Web UI for dashboard and to triage defect
reports
14Samsung Open Source Group
Coverity Scan Service Dashboard
15Samsung Open Source Group
Join a Project
● The simplest way to participate is when the project
already uses Coverity Scan
● A good chance as over 5700 projects are registered
already
● A searchable list with participating projects can be
found at [2]
● Request access, which the project admin might need
to approve (depends on project settings)
16Samsung Open Source Group
Register a New Project
● If your project is not yet using Coverity Scan you need to
register it as a new project at [3]
● Registering is easy (only needs project URL's and license
selection)
● It might take a few days until a newly registered project
is ready to be analysed
● Once the project has been approved you can submit
builds to it
17Samsung Open Source Group
Scan Service Improvements
● Over my 2 years usage of Coverity Scan there have been
several improvements hardware and software wise
● Hardware upgrades which results in faster analysis
results without long queues
● Improved scanners and heuristics (server side as well as in
new cov-build releases) for less false positives
● Graphs in your project view
● Metrics based on defined components
● CWE Top 25 defects
18Samsung Open Source Group
Scan Service Project Page
19Samsung Open Source Group
Hooking it Up in Your Project
20Samsung Open Source Group
Gather Build Data
● To gather the data needed by the analyser
Coverity provides a build wrapper
● Cov-build needs to be run with your normal build
tools as parameter
● If you project uses make it should be as easy as:
cov-build --dir cov-int make
● It is updated twice a year and recommended to keep
your version up to date [4]
21Samsung Open Source Group
Manually Submit Builds
● You can submit builds manually through the
web interface
● Just upload it from the Submit Build form from
your project overview page
● This make sense for your first builds or if you want
to test something
● In general the process should better be automated
22Samsung Open Source Group
Submit Builds with Travis CI
● Travis CI build system integrated with GitHub
● Very useful if you use GitHub and/or Travis
● You need to setup your project in Coverity Scan as GitHub
project to have the Travis option available
● Operates on a per-branch basis (default name
coverity_scan)
● Once you push your code to this branch on GitHub Travis
will trigger the Coverity Scan run on it
● A full guideline with .travis.yml template can be found at [5]
23Samsung Open Source Group
Submit Builds from Jenkins
● There exists a Coverity Plugin for Jenkins [6]
● At the time I tried it, I was not able to use
the free Scan Service as Integrity Manager
instance
● Seems it was only capable of integrating
with a commercial license on your setup
24Samsung Open Source Group
Submit Builds from Jenkins
● Simply used cov-build and curl to generate and
upload the data to Coverity Scan
FILENAME=efl-$(date -I)-$(git rev-parse --short HEAD)
rm -rf cov-int
./autogen.sh --prefix="${EFL_DESTDIR}" ${config_opts}
cov-build --dir cov-int make -j${PARALLEL_MAKE}
tar czvf $FILENAME.tgz cov-int
curl --form token=XXX --form email=stefan@datenfreihafen.org --form file=@$FILENAME.tgz --for
m version=$FILENAME --form description=$FILENAME https://scan.coverity.com/builds?project=Enli
ghtenment+Foundation+Libraries
make -j${PARALLEL_MAKE} distclean
25Samsung Open Source Group
Fine Tuning
26Samsung Open Source Group
Fine Tuning on the Server
● Create project components
– Simple regex patterns to sort files into categories
– Useful for large code bases
– Useful for projects with many maintainers
● You can create a modeling file to adjust
– Helps to tune down the false positive rate
– Upload a file to annotate functions without implementation
for things like abort, free or alloc
– I had no need for it until now
27Samsung Open Source Group
Fine Tuning in the Code
● Annotations in code
– Better use the modeling file (keeps code clean)
– +kill (always aborts), +alloc (allocates memory), +free (frees argument)
/* coverity[+free : arg-0] */
void local_free(void *to_be_freed) {
…
}
● Mention the unique CID's in commit messages for credit
and backreferencing
28Samsung Open Source Group
Work Flows & Examples
29Samsung Open Source Group
Work Flow – EFL
●
Started to use it in July 2013 with the Enlightenment
Foundation Libraries
● 7 projects from 32k to 750k lines of code
● 3 of them reached a 0 defect rate the rest ranges from 0.02
to 0.18
●
Submitted every night from our Jenkins CI setup (one project is to
big > 500k LOC and thus can only run 4 times a week)
● Mail with scan results is send to a mailing list
●
Normally new reports get fixed quickly as they are in areas
which are actively being worked on
30Samsung Open Source Group
Work Flow – EFL
● During the stabilization phase of our
development cycle I go through the list and
dispatch defects with high impact
● Would love to run new patch submissions
through the scan during review
– To much load towards the scan service
– Incremental checks would be interesting as well
31Samsung Open Source Group
Work Flow – EFL Example
32Samsung Open Source Group
Work Flow - Linux
● Huge code base with ~10M lines of code
(after C preprocessor)
● Build submitted once a week by Dave Jones
● Many maintainers and developers accessing
it directly and looking at their components
● Fixes come through the normal dev channels
33Samsung Open Source Group
Work Flow - Linux
● Defect level is staying around 5000 for a long time now
● Hard to fix obscure areas without domain knowledge or
hardware drivers without hardware
● Much old code
34Samsung Open Source Group
Work Flow - Alternatives
● Run every commit through it
– Most likely overkill and will not really work well with
the free Scan Service
● Dedicated git branches to be checked
– Only works with git
– The way the Travis CI plugin works
– Maybe interesting for testing review branches
35Samsung Open Source Group
Striving for 0
● Striving for defect rate of 0
● Gamification
● We have reached this in three of the smaller projects
● Harder to reach in large and old code bases
● Once reached, higher motivation to look at new
defects to maintain the 0 defect rate
● This can obviously only cover problems found by
Coverity Scan. You surely have more. :-)
36Samsung Open Source Group
Defect Areas
● In my experience the majority of defects are in seldomly
used code paths or new code
● Which explains why they are still there
● An example would be resource leaks on error paths and
during shutdown
● On every 10 or 20 of those defects though there comes
one which makes you really wonder how it could be in
your code at all :-)
● Some stories at [7]
37Samsung Open Source Group
Examples
● Classic resource leaks
– Not seen to often if you regularly run your code
under Valgrind
● Buffer overruns and memory corruptions
– Good to find those early-on instead of having to go
through a lengthy debug session
● Copy and paste defects which result in logic
flaws
38Samsung Open Source Group
Summary
39Samsung Open Source Group
Summary
● Using a static analyser is a good addition to your QA
toolset
● The setup and usage is easy enough and gives you a
quick and direct benefit
● Finds defects early in the process instead of during
deployment
● Various alternatives to Coverity Scan if they fit you better
● Recommended to run regularly
40Samsung Open Source Group
References
● [1]: https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis
● Sparse: https://sparse.wiki.kernel.org/index.php/Main_Page
● Clang Static Analyzer: http://clang-analyzer.llvm.org
● CodeChecker: https://github.com/Ericsson/codechecker
● Coverity Scan: https://scan.coverity.com
● [2]: https://scan.coverity.com/projects
● [3]: https://scan.coverity.com/projects/new
● [4]: https://scan.coverity.com/download?tab=cxx
● [5]: https://scan.coverity.com/travis_ci
● [6]: https://wiki.jenkins-ci.org/display/JENKINS/Coverity+Plugin
● [7]: https://scan.coverity.com/o/oss_success_stories
41Samsung Open Source Group
Thank you.
Ad

More Related Content

What's hot (20)

Shift Left Security
Shift Left SecurityShift Left Security
Shift Left Security
BATbern
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training ppt
KhalidQureshi31
 
Shift Left Security - The What, Why and How
Shift Left Security - The What, Why and HowShift Left Security - The What, Why and How
Shift Left Security - The What, Why and How
DevOps.com
 
DevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation SlidesDevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation Slides
SlideTeam
 
OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)
TzahiArabov
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
Hawkman Academy
 
Risks in the Software Supply Chain
Risks in the Software Supply Chain Risks in the Software Supply Chain
Risks in the Software Supply Chain
Sonatype
 
DevSecOps: Taking a DevOps Approach to Security
DevSecOps: Taking a DevOps Approach to SecurityDevSecOps: Taking a DevOps Approach to Security
DevSecOps: Taking a DevOps Approach to Security
Alert Logic
 
SRE Demystified - 01 - SLO SLI and SLA
SRE Demystified - 01 - SLO SLI and SLASRE Demystified - 01 - SLO SLI and SLA
SRE Demystified - 01 - SLO SLI and SLA
Dr Ganesh Iyer
 
How to Use Salesforce Platform Events to Help With Salesforce Limits
How to Use Salesforce Platform Events to Help With Salesforce LimitsHow to Use Salesforce Platform Events to Help With Salesforce Limits
How to Use Salesforce Platform Events to Help With Salesforce Limits
Roy Gilad
 
Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)
Abeer R
 
Web Application Security Testing
Web Application Security TestingWeb Application Security Testing
Web Application Security Testing
Marco Morana
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops Devops
Kris Buytaert
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring Boot
Kashif Ali Siddiqui
 
DNSSEC : les extensions de sécurité du DNS
DNSSEC : les extensions de sécurité du DNSDNSSEC : les extensions de sécurité du DNS
DNSSEC : les extensions de sécurité du DNS
Afnic
 
Cs6703 grid and cloud computing unit 1
Cs6703 grid and cloud computing unit 1Cs6703 grid and cloud computing unit 1
Cs6703 grid and cloud computing unit 1
RMK ENGINEERING COLLEGE, CHENNAI
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
Paul Mooney
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
Aniruddh Bhilvare
 
Google Cloud Platform (GCP)
Google Cloud Platform (GCP)Google Cloud Platform (GCP)
Google Cloud Platform (GCP)
Chetan Sharma
 
Introduction To Exploitation & Metasploit
Introduction To Exploitation & MetasploitIntroduction To Exploitation & Metasploit
Introduction To Exploitation & Metasploit
Raghav Bisht
 
Shift Left Security
Shift Left SecurityShift Left Security
Shift Left Security
BATbern
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training ppt
KhalidQureshi31
 
Shift Left Security - The What, Why and How
Shift Left Security - The What, Why and HowShift Left Security - The What, Why and How
Shift Left Security - The What, Why and How
DevOps.com
 
DevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation SlidesDevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation Slides
SlideTeam
 
OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)
TzahiArabov
 
Risks in the Software Supply Chain
Risks in the Software Supply Chain Risks in the Software Supply Chain
Risks in the Software Supply Chain
Sonatype
 
DevSecOps: Taking a DevOps Approach to Security
DevSecOps: Taking a DevOps Approach to SecurityDevSecOps: Taking a DevOps Approach to Security
DevSecOps: Taking a DevOps Approach to Security
Alert Logic
 
SRE Demystified - 01 - SLO SLI and SLA
SRE Demystified - 01 - SLO SLI and SLASRE Demystified - 01 - SLO SLI and SLA
SRE Demystified - 01 - SLO SLI and SLA
Dr Ganesh Iyer
 
How to Use Salesforce Platform Events to Help With Salesforce Limits
How to Use Salesforce Platform Events to Help With Salesforce LimitsHow to Use Salesforce Platform Events to Help With Salesforce Limits
How to Use Salesforce Platform Events to Help With Salesforce Limits
Roy Gilad
 
Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)
Abeer R
 
Web Application Security Testing
Web Application Security TestingWeb Application Security Testing
Web Application Security Testing
Marco Morana
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops Devops
Kris Buytaert
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring Boot
Kashif Ali Siddiqui
 
DNSSEC : les extensions de sécurité du DNS
DNSSEC : les extensions de sécurité du DNSDNSSEC : les extensions de sécurité du DNS
DNSSEC : les extensions de sécurité du DNS
Afnic
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
Paul Mooney
 
Google Cloud Platform (GCP)
Google Cloud Platform (GCP)Google Cloud Platform (GCP)
Google Cloud Platform (GCP)
Chetan Sharma
 
Introduction To Exploitation & Metasploit
Introduction To Exploitation & MetasploitIntroduction To Exploitation & Metasploit
Introduction To Exploitation & Metasploit
Raghav Bisht
 

Viewers also liked (14)

Avoiding the Pitfalls
Avoiding the PitfallsAvoiding the Pitfalls
Avoiding the Pitfalls
theppa
 
ITRI 5G Tech. -- UDN (Ultra Dense Network)
ITRI 5G Tech. -- UDN (Ultra Dense Network)ITRI 5G Tech. -- UDN (Ultra Dense Network)
ITRI 5G Tech. -- UDN (Ultra Dense Network)
Stanley Tseng
 
Hands on iOS developments with jenkins
Hands on iOS developments with jenkinsHands on iOS developments with jenkins
Hands on iOS developments with jenkins
Arnaud Héritier
 
Analyzing Project Failure Modes: Lessons learnt from the field
Analyzing Project Failure Modes: Lessons learnt from the fieldAnalyzing Project Failure Modes: Lessons learnt from the field
Analyzing Project Failure Modes: Lessons learnt from the field
cssa
 
Static Analysis Primer
Static Analysis PrimerStatic Analysis Primer
Static Analysis Primer
Coverity
 
10 reasons why projects fail or common mistakes to avoid
10 reasons why projects fail or common mistakes to avoid10 reasons why projects fail or common mistakes to avoid
10 reasons why projects fail or common mistakes to avoid
Marianna Semenova
 
개발자와 영어 Why and how
개발자와 영어 Why and how개발자와 영어 Why and how
개발자와 영어 Why and how
Minwoo Park
 
My Top 10 Design Business Failures
My Top 10 Design Business FailuresMy Top 10 Design Business Failures
My Top 10 Design Business Failures
David Sherwin
 
Project Failure Reasons and Causes
Project Failure Reasons and CausesProject Failure Reasons and Causes
Project Failure Reasons and Causes
Alan McSweeney
 
Top Ten Reasons Why Projects Fail
Top Ten Reasons Why Projects FailTop Ten Reasons Why Projects Fail
Top Ten Reasons Why Projects Fail
jpstewar
 
ERP - Implementation is The Challenge
ERP - Implementation is The ChallengeERP - Implementation is The Challenge
ERP - Implementation is The Challenge
vinaya.hs
 
Finding Defects in C#: Coverity vs. FxCop
Finding Defects in C#: Coverity vs. FxCopFinding Defects in C#: Coverity vs. FxCop
Finding Defects in C#: Coverity vs. FxCop
Coverity
 
DevBeat 2013 - Developer-first Security
DevBeat 2013 - Developer-first SecurityDevBeat 2013 - Developer-first Security
DevBeat 2013 - Developer-first Security
Coverity
 
Adopting Agile
Adopting AgileAdopting Agile
Adopting Agile
Coverity
 
Avoiding the Pitfalls
Avoiding the PitfallsAvoiding the Pitfalls
Avoiding the Pitfalls
theppa
 
ITRI 5G Tech. -- UDN (Ultra Dense Network)
ITRI 5G Tech. -- UDN (Ultra Dense Network)ITRI 5G Tech. -- UDN (Ultra Dense Network)
ITRI 5G Tech. -- UDN (Ultra Dense Network)
Stanley Tseng
 
Hands on iOS developments with jenkins
Hands on iOS developments with jenkinsHands on iOS developments with jenkins
Hands on iOS developments with jenkins
Arnaud Héritier
 
Analyzing Project Failure Modes: Lessons learnt from the field
Analyzing Project Failure Modes: Lessons learnt from the fieldAnalyzing Project Failure Modes: Lessons learnt from the field
Analyzing Project Failure Modes: Lessons learnt from the field
cssa
 
Static Analysis Primer
Static Analysis PrimerStatic Analysis Primer
Static Analysis Primer
Coverity
 
10 reasons why projects fail or common mistakes to avoid
10 reasons why projects fail or common mistakes to avoid10 reasons why projects fail or common mistakes to avoid
10 reasons why projects fail or common mistakes to avoid
Marianna Semenova
 
개발자와 영어 Why and how
개발자와 영어 Why and how개발자와 영어 Why and how
개발자와 영어 Why and how
Minwoo Park
 
My Top 10 Design Business Failures
My Top 10 Design Business FailuresMy Top 10 Design Business Failures
My Top 10 Design Business Failures
David Sherwin
 
Project Failure Reasons and Causes
Project Failure Reasons and CausesProject Failure Reasons and Causes
Project Failure Reasons and Causes
Alan McSweeney
 
Top Ten Reasons Why Projects Fail
Top Ten Reasons Why Projects FailTop Ten Reasons Why Projects Fail
Top Ten Reasons Why Projects Fail
jpstewar
 
ERP - Implementation is The Challenge
ERP - Implementation is The ChallengeERP - Implementation is The Challenge
ERP - Implementation is The Challenge
vinaya.hs
 
Finding Defects in C#: Coverity vs. FxCop
Finding Defects in C#: Coverity vs. FxCopFinding Defects in C#: Coverity vs. FxCop
Finding Defects in C#: Coverity vs. FxCop
Coverity
 
DevBeat 2013 - Developer-first Security
DevBeat 2013 - Developer-first SecurityDevBeat 2013 - Developer-first Security
DevBeat 2013 - Developer-first Security
Coverity
 
Adopting Agile
Adopting AgileAdopting Agile
Adopting Agile
Coverity
 
Ad

Similar to Static Analysis of Your OSS Project with Coverity (20)

Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
All Things Open
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
aspyker
 
EFL QA: Where Are We and Where Should We Go?
EFL QA: Where Are We and Where Should We Go?EFL QA: Where Are We and Where Should We Go?
EFL QA: Where Are We and Where Should We Go?
Samsung Open Source Group
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From Production
Steve Hogg
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
AppDynamics
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGroup
 
Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentation
Ahmed Kamel
 
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
GlobalLogic Ukraine
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
Ambientia
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
Fedir RYKHTIK
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
Drew Hannay
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
XPDays
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weaveworks
 
Security in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps EngineersSecurity in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps Engineers
DevOps.com
 
Verification at scale: Fitting static code analysis into continuous integration
Verification at scale: Fitting static code analysis into continuous integrationVerification at scale: Fitting static code analysis into continuous integration
Verification at scale: Fitting static code analysis into continuous integration
Rogue Wave Software
 
Introduzione a junit + integrazione con archibus
Introduzione a junit + integrazione con archibusIntroduzione a junit + integrazione con archibus
Introduzione a junit + integrazione con archibus
Davide Fella
 
Mongo db - How we use Go and MongoDB by Sam Helman
Mongo db - How we use Go and MongoDB by Sam HelmanMongo db - How we use Go and MongoDB by Sam Helman
Mongo db - How we use Go and MongoDB by Sam Helman
Hakka Labs
 
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Martin Spier
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
SmartBear
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
All Things Open
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
aspyker
 
EFL QA: Where Are We and Where Should We Go?
EFL QA: Where Are We and Where Should We Go?EFL QA: Where Are We and Where Should We Go?
EFL QA: Where Are We and Where Should We Go?
Samsung Open Source Group
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From Production
Steve Hogg
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
AppDynamics
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGroup
 
Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentation
Ahmed Kamel
 
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
GlobalLogic Ukraine
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
Ambientia
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
Fedir RYKHTIK
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
Drew Hannay
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
XPDays
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weaveworks
 
Security in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps EngineersSecurity in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps Engineers
DevOps.com
 
Verification at scale: Fitting static code analysis into continuous integration
Verification at scale: Fitting static code analysis into continuous integrationVerification at scale: Fitting static code analysis into continuous integration
Verification at scale: Fitting static code analysis into continuous integration
Rogue Wave Software
 
Introduzione a junit + integrazione con archibus
Introduzione a junit + integrazione con archibusIntroduzione a junit + integrazione con archibus
Introduzione a junit + integrazione con archibus
Davide Fella
 
Mongo db - How we use Go and MongoDB by Sam Helman
Mongo db - How we use Go and MongoDB by Sam HelmanMongo db - How we use Go and MongoDB by Sam Helman
Mongo db - How we use Go and MongoDB by Sam Helman
Hakka Labs
 
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Martin Spier
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
SmartBear
 
Ad

More from Samsung Open Source Group (20)

The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)
Samsung Open Source Group
 
Easy IoT with JavaScript
Easy IoT with JavaScriptEasy IoT with JavaScript
Easy IoT with JavaScript
Samsung Open Source Group
 
Spawny: A New Approach to Logins
Spawny: A New Approach to LoginsSpawny: A New Approach to Logins
Spawny: A New Approach to Logins
Samsung Open Source Group
 
Rapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USBRapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USB
Samsung Open Source Group
 
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesTizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Samsung Open Source Group
 
IoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and BeyondIoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and Beyond
Samsung Open Source Group
 
IoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialIoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorial
Samsung Open Source Group
 
GENIVI + OCF Cooperation
GENIVI + OCF CooperationGENIVI + OCF Cooperation
GENIVI + OCF Cooperation
Samsung Open Source Group
 
Framework for IoT Interoperability
Framework for IoT InteroperabilityFramework for IoT Interoperability
Framework for IoT Interoperability
Samsung Open Source Group
 
Open Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate StrategyOpen Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate Strategy
Samsung Open Source Group
 
IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT Interoperability
Samsung Open Source Group
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
Samsung Open Source Group
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Samsung Open Source Group
 
IoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the Cloud
Samsung Open Source Group
 
SOSCON 2016 JerryScript
SOSCON 2016 JerryScriptSOSCON 2016 JerryScript
SOSCON 2016 JerryScript
Samsung Open Source Group
 
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivityIoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
Samsung Open Source Group
 
Run Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT NetworkRun Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT Network
Samsung Open Source Group
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Samsung Open Source Group
 
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
Samsung Open Source Group
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of ThingsJerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
Samsung Open Source Group
 
The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)
Samsung Open Source Group
 
Rapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USBRapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USB
Samsung Open Source Group
 
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesTizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Samsung Open Source Group
 
IoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and BeyondIoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and Beyond
Samsung Open Source Group
 
IoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialIoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorial
Samsung Open Source Group
 
Open Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate StrategyOpen Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate Strategy
Samsung Open Source Group
 
IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT Interoperability
Samsung Open Source Group
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
Samsung Open Source Group
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Samsung Open Source Group
 
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivityIoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
Samsung Open Source Group
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Samsung Open Source Group
 
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
Samsung Open Source Group
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of ThingsJerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
Samsung Open Source Group
 

Recently uploaded (20)

Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentSecure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Shubham Joshi
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentSecure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Shubham Joshi
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 

Static Analysis of Your OSS Project with Coverity

  • 1. 1Samsung Open Source Group Stefan Schmidt Samsung Open Source Group [email protected] Static Analysis of Your OSS Project with Coverity LinuxCon EU 2015
  • 2. 2Samsung Open Source Group ● Introduction ● Survey of Available Analysers ● Coverity Scan Service ● Hooking it Up in Your Project ● Fine Tuning ● Work Flows & Examples ● Summary Agenda
  • 3. 3Samsung Open Source Group Introduction
  • 4. 4Samsung Open Source Group Static Analysers ● What is Static Analysis? – Analysis of the soure code without execution – Usage of algorithms and techniques to find bugs in source code ● What is it not? – A formal verification of your code – A proof that your code is bug free ● Why is it useful for us? – Allows to find many types of defects early in the development process – Resource leaks, NULL pointer dereferences, memory corruptions, buffer overflows, etc. – Supplements things like unit testing, runtime testing, Valgrind, etc.
  • 5. 5Samsung Open Source Group Survey of Available Analysers
  • 6. 6Samsung Open Source Group Static Analysers ● Sparse ● Clang Static Analyzer ● CodeChecker based on Clang Static Analyzer ● Klocwork (proprietary) ● Coverity (proprietary, free as in beer service for OSS projects) ● A list with more analysers can be found at [1] ● My personal experience started with – Clang Static Analyzer – Klocwork used internally (not allowed to share results) – finally settled for Coverity Scan service
  • 7. 7Samsung Open Source Group Sparse ● Started 2003 by Linus Torvalds ● Semantic parser with a static analysis backend ● Well integrated into the Kernel build system (make C=1/C=2) ● To integrate it with your project using the build wrapper might be enough: make CC=cgcc
  • 8. 8Samsung Open Source Group Clang Static Analyzer ● Command line tool scan-build as build wrapper ● Generates a report as static HTML files ● The analyser itself is implemented as C++ library ● Also used from within XCode ● Scan build had many false positives for us and needs more manual tuning (e.g. leak detected when added to a list or array) ● Turned out to be to noisy without further work for us
  • 9. 9Samsung Open Source Group CodeChecker ● Recently (June 2015) published by Ericsson ● Based on Clang Static Analyzer library ● Adds database for defect tracking ● Adds interactive web UI for defect handling ● Incremental reporting against baseline ● Added new checkers to Clang itself as well ● Very interesting but sadly no time to test, yet
  • 10. 10Samsung Open Source Group Feature Comparison Analyser OSS Defect database Web UI False positive ratio Sparse ✔ ✘ ✘ To be tested Clang Static Analyzer ✔ ✘ ✔static html output Noisy CodeChecker ✔ ✔ ✔ To be tested Coverity ✘ free as in beer service ✔ ✔ Good Klocwork ✘ ✔ ✔ Good
  • 11. 11Samsung Open Source Group Coverity Scan Service
  • 12. 12Samsung Open Source Group Coverity Scan Service Overview ● Started 2006 with 50 projects and now runs for 5700 ● Many big projects already make use of it: Linux, Firefox, LibreOffice, FreeBSD, ... ● Scans projects written in C, C++, Java, C# and JavaScript ● Defect density is defined as defects per 1000 lines of code (1 per 1000 as industry standard)
  • 13. 13Samsung Open Source Group Coverity Scan Service Parts 1) Build wrapper cov-build to gather data on your system and package it into a tgz file 2) Upload the tgz on the website or via curl to web API to trigger analysis 3) Receive a mail once the analysis is completed 4) Web UI for dashboard and to triage defect reports
  • 14. 14Samsung Open Source Group Coverity Scan Service Dashboard
  • 15. 15Samsung Open Source Group Join a Project ● The simplest way to participate is when the project already uses Coverity Scan ● A good chance as over 5700 projects are registered already ● A searchable list with participating projects can be found at [2] ● Request access, which the project admin might need to approve (depends on project settings)
  • 16. 16Samsung Open Source Group Register a New Project ● If your project is not yet using Coverity Scan you need to register it as a new project at [3] ● Registering is easy (only needs project URL's and license selection) ● It might take a few days until a newly registered project is ready to be analysed ● Once the project has been approved you can submit builds to it
  • 17. 17Samsung Open Source Group Scan Service Improvements ● Over my 2 years usage of Coverity Scan there have been several improvements hardware and software wise ● Hardware upgrades which results in faster analysis results without long queues ● Improved scanners and heuristics (server side as well as in new cov-build releases) for less false positives ● Graphs in your project view ● Metrics based on defined components ● CWE Top 25 defects
  • 18. 18Samsung Open Source Group Scan Service Project Page
  • 19. 19Samsung Open Source Group Hooking it Up in Your Project
  • 20. 20Samsung Open Source Group Gather Build Data ● To gather the data needed by the analyser Coverity provides a build wrapper ● Cov-build needs to be run with your normal build tools as parameter ● If you project uses make it should be as easy as: cov-build --dir cov-int make ● It is updated twice a year and recommended to keep your version up to date [4]
  • 21. 21Samsung Open Source Group Manually Submit Builds ● You can submit builds manually through the web interface ● Just upload it from the Submit Build form from your project overview page ● This make sense for your first builds or if you want to test something ● In general the process should better be automated
  • 22. 22Samsung Open Source Group Submit Builds with Travis CI ● Travis CI build system integrated with GitHub ● Very useful if you use GitHub and/or Travis ● You need to setup your project in Coverity Scan as GitHub project to have the Travis option available ● Operates on a per-branch basis (default name coverity_scan) ● Once you push your code to this branch on GitHub Travis will trigger the Coverity Scan run on it ● A full guideline with .travis.yml template can be found at [5]
  • 23. 23Samsung Open Source Group Submit Builds from Jenkins ● There exists a Coverity Plugin for Jenkins [6] ● At the time I tried it, I was not able to use the free Scan Service as Integrity Manager instance ● Seems it was only capable of integrating with a commercial license on your setup
  • 24. 24Samsung Open Source Group Submit Builds from Jenkins ● Simply used cov-build and curl to generate and upload the data to Coverity Scan FILENAME=efl-$(date -I)-$(git rev-parse --short HEAD) rm -rf cov-int ./autogen.sh --prefix="${EFL_DESTDIR}" ${config_opts} cov-build --dir cov-int make -j${PARALLEL_MAKE} tar czvf $FILENAME.tgz cov-int curl --form token=XXX --form [email protected] --form file=@$FILENAME.tgz --for m version=$FILENAME --form description=$FILENAME https://scan.coverity.com/builds?project=Enli ghtenment+Foundation+Libraries make -j${PARALLEL_MAKE} distclean
  • 25. 25Samsung Open Source Group Fine Tuning
  • 26. 26Samsung Open Source Group Fine Tuning on the Server ● Create project components – Simple regex patterns to sort files into categories – Useful for large code bases – Useful for projects with many maintainers ● You can create a modeling file to adjust – Helps to tune down the false positive rate – Upload a file to annotate functions without implementation for things like abort, free or alloc – I had no need for it until now
  • 27. 27Samsung Open Source Group Fine Tuning in the Code ● Annotations in code – Better use the modeling file (keeps code clean) – +kill (always aborts), +alloc (allocates memory), +free (frees argument) /* coverity[+free : arg-0] */ void local_free(void *to_be_freed) { … } ● Mention the unique CID's in commit messages for credit and backreferencing
  • 28. 28Samsung Open Source Group Work Flows & Examples
  • 29. 29Samsung Open Source Group Work Flow – EFL ● Started to use it in July 2013 with the Enlightenment Foundation Libraries ● 7 projects from 32k to 750k lines of code ● 3 of them reached a 0 defect rate the rest ranges from 0.02 to 0.18 ● Submitted every night from our Jenkins CI setup (one project is to big > 500k LOC and thus can only run 4 times a week) ● Mail with scan results is send to a mailing list ● Normally new reports get fixed quickly as they are in areas which are actively being worked on
  • 30. 30Samsung Open Source Group Work Flow – EFL ● During the stabilization phase of our development cycle I go through the list and dispatch defects with high impact ● Would love to run new patch submissions through the scan during review – To much load towards the scan service – Incremental checks would be interesting as well
  • 31. 31Samsung Open Source Group Work Flow – EFL Example
  • 32. 32Samsung Open Source Group Work Flow - Linux ● Huge code base with ~10M lines of code (after C preprocessor) ● Build submitted once a week by Dave Jones ● Many maintainers and developers accessing it directly and looking at their components ● Fixes come through the normal dev channels
  • 33. 33Samsung Open Source Group Work Flow - Linux ● Defect level is staying around 5000 for a long time now ● Hard to fix obscure areas without domain knowledge or hardware drivers without hardware ● Much old code
  • 34. 34Samsung Open Source Group Work Flow - Alternatives ● Run every commit through it – Most likely overkill and will not really work well with the free Scan Service ● Dedicated git branches to be checked – Only works with git – The way the Travis CI plugin works – Maybe interesting for testing review branches
  • 35. 35Samsung Open Source Group Striving for 0 ● Striving for defect rate of 0 ● Gamification ● We have reached this in three of the smaller projects ● Harder to reach in large and old code bases ● Once reached, higher motivation to look at new defects to maintain the 0 defect rate ● This can obviously only cover problems found by Coverity Scan. You surely have more. :-)
  • 36. 36Samsung Open Source Group Defect Areas ● In my experience the majority of defects are in seldomly used code paths or new code ● Which explains why they are still there ● An example would be resource leaks on error paths and during shutdown ● On every 10 or 20 of those defects though there comes one which makes you really wonder how it could be in your code at all :-) ● Some stories at [7]
  • 37. 37Samsung Open Source Group Examples ● Classic resource leaks – Not seen to often if you regularly run your code under Valgrind ● Buffer overruns and memory corruptions – Good to find those early-on instead of having to go through a lengthy debug session ● Copy and paste defects which result in logic flaws
  • 38. 38Samsung Open Source Group Summary
  • 39. 39Samsung Open Source Group Summary ● Using a static analyser is a good addition to your QA toolset ● The setup and usage is easy enough and gives you a quick and direct benefit ● Finds defects early in the process instead of during deployment ● Various alternatives to Coverity Scan if they fit you better ● Recommended to run regularly
  • 40. 40Samsung Open Source Group References ● [1]: https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis ● Sparse: https://sparse.wiki.kernel.org/index.php/Main_Page ● Clang Static Analyzer: http://clang-analyzer.llvm.org ● CodeChecker: https://github.com/Ericsson/codechecker ● Coverity Scan: https://scan.coverity.com ● [2]: https://scan.coverity.com/projects ● [3]: https://scan.coverity.com/projects/new ● [4]: https://scan.coverity.com/download?tab=cxx ● [5]: https://scan.coverity.com/travis_ci ● [6]: https://wiki.jenkins-ci.org/display/JENKINS/Coverity+Plugin ● [7]: https://scan.coverity.com/o/oss_success_stories
  • 41. 41Samsung Open Source Group Thank you.