quality on submit - romaniatesting.ro · quality on submit asaf saar, sap ag area product owner cpo...

34
Quality on Submit Asaf Saar, SAP AG Area Product Owner CPO I2M Software Engineering Romanian Testing Conference 2013 – 2 nd Edition, May 16, 2013

Upload: hanhi

Post on 10-Apr-2018

219 views

Category:

Documents


5 download

TRANSCRIPT

Quality on Submit Asaf Saar, SAP AG Area Product Owner CPO I2M Software Engineering Romanian Testing Conference 2013 – 2nd Edition, May 16, 2013

©  2013 SAP AG. All rights reserved. 2

About me

APO of SAP CPO Software Engineering.

17 years of Software Development, Quality and Testing experience.

Lean, agile, automation and testing manager, trainer and coach.

Email: [email protected]

Twitter: @saarasaf

LinkedIn: http://www.linkedin.com/in/asafsaar

Xing: https://www.xing.com/profile/Asaf_Saar

©  2013 SAP AG. All rights reserved. 3

Agenda

Continuous Integration � Definition and goals � Motivation � Comprehensive Continuous Integration Scenario

Quality on Submit � Overview � Demo � Process Flow �  Transparency

©  2013 SAP AG. All rights reserved. 4

Agenda

Continuous Integration � Definition and goals � Motivation � Comprehensive Continuous Integration Scenario

Quality on Submit � Overview � Demo � Process Flow �  Transparency

©  2013 SAP AG. All rights reserved. 5

Continuous Integration – Definition and goals

“A key software development practice where members of a team integrate their work frequently”

Martin Fowler, Continuous Integration: http://martinfowler.com/articles/continuousIntegration.html

©  2013 SAP AG. All rights reserved. 6

Continuous Integration – Definition and goals

Continuous Integration is all about reducing the risk by providing fast feedback to the team

©  2013 SAP AG. All rights reserved. 7

Continuous Integration – Definition and goals

©  2013 SAP AG. All rights reserved. 8

Continuous Integration – Motivation

Motivation?

©  2013 SAP AG. All rights reserved. 9

Continuous Integration – Motivation

Why are there no updated systems?

Who broke the build?

Who broke the runtime?

How many changes do we have today?

Did Adrian already checked-in his stuff?

What is the status of our product today? Now?

Why do we fix static code issues right before the release?

©  2013 SAP AG. All rights reserved. 10

Comprehensive Continuous Integration Scenario

What makes a Comprehensive Continuous Integration Scenario?

©  2013 SAP AG. All rights reserved. 11

Comprehensive Continuous Integration Scenario

• Fully automated process

• Applying Agile Software Engineering methods

•  Integration testing after each submit

• Run Tests in stages

•  Instant transparency to the team

ET

System Tests

Integration Tests

Component Tests

Unit Tests 100%

10%

Cov

erag

e

Autom

ated M

anual

©  2013 SAP AG. All rights reserved. 12

Comprehensive Continuous Integration Scenario

How do we implement a Comprehensive Continuous Integration Scenario?

©  2013 SAP AG. All rights reserved. 13

Agenda

Continuous Integration � Definition and goals � Motivation � Comprehensive Continuous Integration Scenario

Quality on Submit � Overview � Demo � Process Flow �  Transparency

©  2013 SAP AG. All rights reserved. 14

Quality on Submit Continuous Integration in practice

Quality on Submit is a software quality process which provides qualification of an end to end product scenario using various testing types

The process delivers instant transparency for the quality of each new code check-in, supporting the implementation team to deliver on quality

Developer CI Server

Source Change

Execute automation

Listen

Build

Deploy

Integrate

Scan

Test

HANA DB or SCM Server

Aggregate Results

Finish Run

Employee Dashboard

email

Pu

bli

sh R

esu

lts

Jira

TWB GTP

Show Status

*SAP Patent pending application title "Quality on Submit Process“ SAP Ref: 2010p00489us

©  2013 SAP AG. All rights reserved. 15

Quality on Submit process is implemented using a customized plug-able “process steps” engine

Submit Build Deploy Unit Test Code Quality Notify

Load Testing

Integration Testing

Security Scanning

Quality on Submit Process flow

©  2013 SAP AG. All rights reserved. 16

Quality on Submit Continuous Integration in practice

Demo

©  2013 SAP AG. All rights reserved. 17

Build

SCM Server

Jenkins SCM Plugin (P4, GIT, etc.) Listen to the SCM and trigger the QOS process

Compilation starts (Maven / Ant / etc.)

Build Deploy Unit Test

API Tests

JS Tests Sonar Fortify UI DB

Save Notify Gamify

©  2013 SAP AG. All rights reserved. 18

Deploy

REF System

A dedicated reference system is deployed with the new build results.

This system is always updated to the latest code state

Build Deploy Unit Test

API Tests

JS Tests Sonar Fortify UI DB

Save Notify Gamify

Continuously Deployed

©  2013 SAP AG. All rights reserved. 19

Unit Tests

All Unit tests are detached from the build process

Supports any kind of unit tests like NUnit, JUnit, etc.

Reports provided via Jenkins plugins like surefire

Build Deploy Unit Test

API Tests

JS Tests Sonar Fortify UI DB

Save Notify Gamify

©  2013 SAP AG. All rights reserved. 20

API Tests

Run on the deployed system

Supports various of methods like JMeter, soapUI etc.

Reports provided via Jenkins plugins

Build Deploy Unit Test

API Tests

JS Tests Sonar Fortify UI DB

Save Notify Gamify

©  2013 SAP AG. All rights reserved. 21

Java Script Tests

Support JSLint for JS Static Code Analysis and JsUnit tests like Jasmine.

Reports provided via Jenkins plugins

Build Deploy Unit Test

API Tests

JS Tests Sonar Fortify UI DB

Save Notify Gamify

©  2013 SAP AG. All rights reserved. 22

Sonar

Open source static code analysis platform

Rich HTML dashboards

Numerous plug-ins

Violations, components, hotspots, time machine and a lot more…

Build Deploy Unit

Test API

Tests JS

Tests Sonar Fortify UI DB Save Notify Gamify

©  2013 SAP AG. All rights reserved. 23

Fortify

Licensed security test tool by HP

Scan the current static code and detects security violations

Provide rich HTML dashboards

Build Deploy Unit Test

API Tests

JS Tests Sonar Fortify UI DB

Save Notify Gamify

©  2013 SAP AG. All rights reserved. 24

UI Automation

Set of Integration tests executed

Supports various technologies like Selenium, HP QTP, Sikuli and more

Reports provided via Jenkins plugins or by any external provider

Build Deploy Unit Test

API Tests

JS Tests Sonar Fortify UI DB

Save Notify Gamify

©  2013 SAP AG. All rights reserved. 25

Data saved into a DB

All data is saved into a DB

QOS Cycles statistics can be generated

Developers typical behavior can be viewed from this DB

Build Deploy Unit

Test API

Tests JS

Tests Sonar Fortify UI DB Save Notify Gamify

©  2013 SAP AG. All rights reserved. 26

Email Notification

Notification sent to the implementation team Transparency to the implementation and product teams

Elaborated status and links for all phases

Build Deploy Unit Test

API Tests

JS Tests Sonar Fortify UI DB

Save Notify Gamify

©  2013 SAP AG. All rights reserved. 27

Gamification

Optional connection to a Gamification system which calculate phases results and provide ranks and badges

Increase the fun in development

Increase the drive for quality

Build Deploy Unit Test

API Tests

JS Tests Sonar Fortify UI DB

Save Notify Gamify

©  2013 SAP AG. All rights reserved. 28

Product Team Transparency

Daily report sent to the product team Transparency

©  2013 SAP AG. All rights reserved. 29

Quality on Submit

Summary

©  2013 SAP AG. All rights reserved. 30

Quality on Submit End To End Quality

Ø  Instant feedback in 45 minutes max

Ø  Increased team responsibility and quality awareness

Ø  Rewards development for quality

Ø  Makes TDD realistic and drives towards it

©  2013 SAP AG. All rights reserved. 31

Quality on Submit Prerequisites

Split your unit tests from your build

Split your build and make it short

Make your tests in short cycles

Make you tests reliable

Avoid false alarms

Build

Deploy

Integrate

Scan

Test

©  2013 SAP AG. All rights reserved. 32

Reference tools

Jenkins CI: http://jenkins-ci.org

Sonar: http://www.sonarsource.org

Selenium: http://www.seleniumhq.org/

Jmeter: http://jmeter.apache.org/

Junit: http://junit.org/

JSLint: http://www.jslint.com/

Asaf Saar, SAP AG Area Product Owner ECF Software Engineering [email protected]

Thank You!

©  2013 SAP AG. All rights reserved. 33

No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice.

Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors.

Microsoft, Windows, Excel, Outlook, PowerPoint, Silverlight, and Visual Studio are registered trademarks of Microsoft Corporation.

IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z, System z10, z10, z/VM, z/OS, OS/390, zEnterprise, PowerVM, Power Architecture, Power Systems, POWER7, POWER6+, POWER6, POWER, PowerHA, pureScale, PowerPC, BladeCenter, System Storage, Storwize, XIV, GPFS, HACMP, RETAIN, DB2 Connect, RACF, Redbooks, OS/2, AIX, Intelligent Miner, WebSphere, Tivoli, Informix, and Smarter Planet are trademarks or registered trademarks of IBM Corporation.

Linux is the registered trademark of Linus Torvalds in the United States and other countries.

Adobe, the Adobe logo, Acrobat, PostScript, and Reader are trademarks or registered trademarks of Adobe Systems Incorporated in the United States and other countries.

Oracle and Java are registered trademarks of Oracle and its affiliates.

UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.

Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems Inc.

HTML, XML, XHTML, and W3C are trademarks or registered trademarks of W3C®, World Wide Web Consortium, Massachusetts Institute of Technology.

Apple, App Store, iBooks, iPad, iPhone, iPhoto, iPod, iTunes, Multi-Touch, Objective-C, Retina, Safari, Siri, and Xcode are trademarks or registered trademarks of Apple Inc.

IOS is a registered trademark of Cisco Systems Inc.

RIM, BlackBerry, BBM, BlackBerry Curve, BlackBerry Bold, BlackBerry Pearl, BlackBerry Torch, BlackBerry Storm, BlackBerry Storm2, BlackBerry PlayBook, and BlackBerry App World are trademarks or registered trademarks of Research in Motion Limited.

© 2013 SAP AG. All rights reserved.

Google App Engine, Google Apps, Google Checkout, Google Data API, Google Maps, Google Mobile Ads, Google Mobile Updater, Google Mobile, Google Store, Google Sync, Google Updater, Google Voice, Google Mail, Gmail, YouTube, Dalvik and Android are trademarks or registered trademarks of Google Inc.

INTERMEC is a registered trademark of Intermec Technologies Corporation.

Wi-Fi is a registered trademark of Wi-Fi Alliance.

Bluetooth is a registered trademark of Bluetooth SIG Inc.

Motorola is a registered trademark of Motorola Trademark Holdings LLC.

Computop is a registered trademark of Computop Wirtschaftsinformatik GmbH.

SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP BusinessObjects Explorer, StreamWork, SAP HANA, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and other countries.

Business Objects and the Business Objects logo, BusinessObjects, Crystal Reports, Crystal Decisions, Web Intelligence, Xcelsius, and other Business Objects products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Business Objects Software Ltd. Business Objects is an SAP company.

Sybase and Adaptive Server, iAnywhere, Sybase 365, SQL Anywhere, and other Sybase products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Sybase Inc. Sybase is an SAP company.

Crossgate, m@gic EDDY, B2B 360°, and B2B 360° Services are registered trademarks of Crossgate AG in Germany and other countries. Crossgate is an SAP company.

All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary.

The information in this document is proprietary to SAP. No part of this document may be reproduced, copied, or transmitted in any form or for any purpose without the express prior written permission of SAP AG.