Skip to Content

Continuous Integration (AKA CI). Quality On Submit

What is good Continuous Integration (AKA CI) process? Am I doing CI properly? Are we satisfy with the results? Are we catch issues on time? Do we have surprises?

Those questions are being asked normally on daily basis among each development operations teams.

How can we have a proper CI process which can answer the needs above and provide instant feedback?

The answer is Quality On Submit.

Mainly when we say “continuous integration” – we means that this is a software development practice where members of a team integrate their work frequently on daily basis and each integration is verified by an automated build and sometime few tests. Are we happy with it? Is it answers our problem described above. Well… not sure…

$ whoami (Nir Koren)

I’m working in SAP Labs Israel in Technology Innovation Platform under Portal Platform. Our main business is the incredible SAP NW Cloud Portal. It is a cloud-based solution that provides easy site creation and consumption with a superior user experience and is also designed for mobile consumption. I am the development Integration Lead which responsible for all development operations (Source control, build, deployment and runtime), product integration, deployment and cloud operations. In addition to that – I am provide internal tools which make internal processes easier.

I’ve been working for SAP for 6 years so far. Prior to that I came from the communication industry in similar roles.

What is Quality On Submit?

Quality On Submit (AKA QOS) is End to end SW development quality process that provides instant feedback and transparency to the development teams.

The motivation is normally questions like: was the nightly build was broken? No systems for today… Who broke the build? Who broke the runtime? How many changes do we have today? Did Jack already check-in his stuff? What is the status of our product today? Now? Why do we fix PMD issues right before the release?

Therefore we developed the QOS process which is SAP Patent pending application title “Quality on Submit Process”. Ref: 2010P00489US.

How it looks like?

We actually listens to our source control system (GIT. previously Perforce). It all starts with developers code check-in…

  checkin.JPG

After that we trigger the QOS process.

Build:

Jenkins SCM Plugin (P4, GIT, etc’) Listen to the SCM and trigger the QOS process. Compilation starts (Maven / Ant / etc’)

Deployment:

A dedicated reference system is deployed with the new build results. This system is always updated to the latest code state.

Unit Tests

All Unit tests are detached from the build process. QOS Supports any kind of unit tests like NUnit, JUnit, etc. Reports provided via Jenkins plugins like surefire

API Tests

Run on the deployed system. Supports various methods like JMeter, soapUI, etc. Reports provided via Jenkins plugins

JavaScript Tests

Support JSLint for JS Static Code Analysis and JsUnit tests like Jasmine. Reports provided via Jenkins plugins

W3C Validation

W3C validation is running agains the HTML sources and make sure we aligned with W3C Standards

UI Automation

Set of Integration tests are executed Supports various technologies like HP QTP, Selenium, Sikuli and more. Reports provided via Jenkins plugins or by any external provider.

Sonar:

Sonar is open source static code analysis platform which provides Rich HTML dashboards using numerous plug-ins like violations, components, hotspots, time machine and a lot more…

Fortify:

Fortify is licensed security test tool by HP which scan the current static code and detects security violations. It also provide rich HTML dashboards

UI Automation

Set of Integration tests are executed Supports various technologies like HP QTP, Selenium, Sikuli and more. Reports provided via Jenkins plugins or by any external provider.

Are we covered

Moreover:

We save all data into a database so QOS Cycles statistics can be generated. Developers’ typical behavior can be viewed from this DB.

We send Email Notification to the entire implementation team.

We send daily Email Notification to the management / product team. We provide transparency.

How QOS helps up?

QOS provides Instant feedback in ~15 minutes.

It’s Increase team responsibility and quality awareness

It rewards development for quality

It makes TDD realistic and drives towards it

SAP NW Cloud Portal runs QOS.

Email Notification for each submit to the development team:

sc.JPG

And daily email notification summary to the management / product team:

Capture.JPG

===================================================================================

QOS Patent developed and authored by me, Ohad Yassin, Blog it forward – Eran Nelinger, and Asaf Saar

Feel free to contact me for any question or folllow me @NIR_KOREN. or http://www.linkedin.com/in/nirkoren

To report this post you need to login first.

3 Comments

You must be Logged on to comment or reply to a post.

Leave a Reply