52
EXP17467 ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx SAP TechEd && d-code Las Vegas 2014 Ivan Femia

ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

Embed Size (px)

DESCRIPTION

The powerful ABAP Test Cockpit in action and the a new SAP related product in the domain of Custom ABAP Code Application Lifecycle realized by Techedge.

Citation preview

Page 1: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

EXP17467

ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

SAP TechEd && d-code Las Vegas 2014

Ivan Femia

Page 2: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Agenda

ABAP Static Code Analysis & Tools

Page 3: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Static Code Analysis & Tools

Complexity

Number of objects Line of code

Standards

Alerts / Warnings

Page 4: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Static Code Analysis & Tools

Complexity

Number of objects Line of code

Standards

Alerts / Warnings

Metrics

Page 5: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Static Code Analysis & Tools

Complexity

Number of objects Line of code

Standards

Alerts / Warnings

Metrics

Violations

Page 6: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Static Code Analysis & Tools

Analysis Dashboard

Integration in Lifecycle Management

Scan Engine

Page 7: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Static Code Analysis & Tools

Page 8: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Static Code Analysis & Tools

SOLMAN CCMC/CCLM

Hawkeye Monitor

Doctor ZedGe

Page 9: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Agenda

Code Inspector

Scan Engine

Page 10: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Code Inspector - Scan Engine

Code InspectorThe Code Inspector is a tool for checking

static ABAP coding and generally all objects of the Object Repository under aspects of Performance, Security, Reliability, and Statistical Information

InstallationIncluded in SAP standard starting from SAP ECC 6.0 EhP 0

(SAP BASIS 7.0)

Page 11: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Code Inspector - Scan Engine

Transaction SCI

Page 12: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Code Inspector - Scan Engine

What to checkTransaction SCI

Page 13: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Code Inspector - Scan Engine

Where to check

What to checkTransaction SCI

Page 14: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Code Inspector - Scan Engine

examplesSE38, SE37, SE24 …

ABAP Workbench SE80

Developers can execute the Code Inspector with the standard check variant

contextually with their workflow process

Page 15: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Code Inspector - Scan Engine

The output screen …

Page 16: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Code Inspector - Scan Engine

What about the check done by the code inspector?

Extended Program Check – called to analyze more than 300 rules about alerts and warnings

Code Inspector’s rules - called to obtain Code Metrics and analyze more than 40 rules about Standards, Security, Performances and even HANA readiness

Custom Check rules – can be plugged into Code Inspector without modification to the standard

Page 17: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Agenda

ABAP Test Cockpit

Integration in Lifecycle

Management

Page 18: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Code Inspector - Scan Engine

ABAP Test Cockpit The Powerful enterprise-ready tool to

perform static program analysis of Custom ABAP Code (based on Code Inspector).

InstallationIncluded in SAP standard since SAP ECC 6.0 EhP6

Page 19: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Code Inspector - Scan Engine

Enhance Code Inspector with:

Superior integration with ABAP Workbench (even ABAP in Eclipse) and Software Lifecycle (Change Request)

Landscape awareness that support result distribution from QAS to DEV Superior User Interface that supports filters and statistics Re-check Powerful out-of-the box exemptions workflow (“4 eyes”) that helps conveniently

suppressing “false-positives” findings Ten time faster scanning engine thanks to the ABAP Parallel Processing Customizable “Messages” priority

Page 20: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Test Cockpit - Integration in Lifecycle Management

All configuration and settings about ABAP Test Cockpit are accessible via the

transaction code ATC

Page 21: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Test Cockpit is integrated in transaction /nSE80, SE38, SE37 …

Developers can execute ATC Inspections as much time as they like contextually

with their workflow process

ABAP Test Cockpit - Integration in Lifecycle Management

Page 22: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Test Cockpit is integrated in transaction /nSE80 - Repository Browser

Developers can execute ATC Inspections on the selected set of objects (e.g.

Package)

ABAP Test Cockpit - Integration in Lifecycle Management

Drag and Drop to add object!

Page 23: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Test Cockpit - Integration in Lifecycle Management

Developers can access by a specific perspective all the ATC runs done and can

browse the results in detail.

Page 24: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Test Cockpit is integrated in transaction /nSE80 – Transport Organizer

Before releasing to QAS or just to monitor the deliverables, Team Leaders and Project

Managers can execute ATC Inspections on the selected Change Request

ABAP Test Cockpit - Integration in Lifecycle Management

Page 25: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Test Cockpit is integrated in ABAP in Eclipse (ADT) too

ABAP Test Cockpit - Integration in Lifecycle Management

Page 26: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Test Cockpit results are well presented to the developer

ABAP Test Cockpit - Integration in Lifecycle Management

Page 27: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Agenda

Doctor ZedGe Hard!Code(Community Edition)

Page 28: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Code Inspector - Scan Engine

Doctor ZedGe - Hard!CodeA free tool to improve your Custom ABAP Code

and save money during your next rollouts. It’s a new rule plugged into the Code Inspector to find hard code business values.

InstallationAvailable free-of-charge and installable via Copy & Paste into

SAP ECC 6.0 EhP6 or aboveSCN Blogs

STOP filling your ABAP with Business hard codingDoctor ZedGe - Hard!Code- a free Code Inspector rule

Page 29: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

The unique static code check developed by Techedge highlights usage of

Business related Hard-coding

Doctor ZedGe - Hard!Code– a new rule plugged into the Scan Engine

Hard Code Company Code

Company Code related hard code value not found in company code matser data, so they could be partial string («IT*»)

Page 30: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

SAP standard never uses business related Hard-coding, customers does even

too much. Probably SAP does not image how much this “Anti-pattern” is popular

and dangerous, we do !

Doctor ZedGe - Hard!Code– a new rule plugged into the Scan Engine

Page 31: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

METHOD busab_mandatory applies a specific business rule for the hard-coded

set of company codes

Who will remember to add the company code of the next roll-out?

How much debug, and how many Change Requests and approvals will be required?

Doctor ZedGe - Hard!Code– a new rule plugged into the Scan Engine

Page 32: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

METHOD address_controls_in applies a specific business rule company codes

starting with IN (India ?)

Who will remember to add the next Indian company ?

Doctor ZedGe - Hard!Code– a new rule plugged into the Scan Engine

Page 33: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

ABAP Static Code Analysis & Tools

Analysis Dashboard

Integration in Lifecycle Management

Scan Engine

Code Inspector

ATC

Business Hard!Code Finder

Page 34: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Agenda

Doctor ZedGe

Page 35: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Code Inspector - Scan Engine

Doctor ZedGe A new product that enhance ABAP Test Cockpit

presenting results in beautiful and simply MS Excel reports designed for different PERSONA and adding Indexes like Quality and Maintainability.

InstallationStarting from SAP ECC 6.0 EhP 6 (SAP BASIS 7.31 SP05)

Limited number of ABAP objects in the namespace Z3TG_DZG that can be imported in DEV and QAS via a simple Change

Request

Page 36: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Idea

Simplify ATC results!Combine metrics with violations to compute different ratios,

combine indicators via formulas

aggregate and generate nice looking dashboard

Custom Code

Page 37: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Idea

Simplify ATC results!Combine metrics with violations to compute different ratios,

combine indicators via formulas

aggregate and generate nice looking dashboard

Custom Code

Evaluations are

proposed in nice

looking MS Excel files

generated via

abap2xlsx

Page 38: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Doctor ZedGe - Analysis

Doctor ZedGe is specifically designed for real-life scenarios to assist the different

“Persona”

Developers

Team Leaders

Quality Assurance Managers

Project Managers

AMS

Page 39: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Doctor ZedGe - Analysis

Queries developed by Techedge aggregates ATC raw data in the best format for

each “Persona” (Business Role)

Page 40: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Doctor ZedGe - Analysis [Persona: DEVELOPER]

For each processing block (e.g. FORM, METHOD, FUNCTION), the Software

Analytics can highlight number of statements, Maintainability Index and Cyclomatic2

complexity index.

Developers are motivated to adopt modularization via refectory activities.

Page 41: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Doctor ZedGe - Analysis [Persona: DEVELOPER]

For each processing block (e.g. FORM, METHOD, FUNCTION), the Software

Analytics can highlight number of statements, Maintainability Index and Cyclomatic2

complexity index.

Developers are motivated to adopt modularization via refectory activities.

Maintainability IndexThe aim of the MI is to determine how easy it will be to maintain a particular body of code Designed at the University of Idaho in 1991 by Oman and Hagemeister and validated in the field by Hewlett Packard in a fairly extensive trial

V = Halstead Volume

G = Cyclomatic Complexity

LOC = count of source Lines Of Code (SLOC)

Page 42: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Doctor ZedGe - Analysis [Persona: DEVELOPER]

For each processing block (e.g. FORM, METHOD, FUNCTION), the Software

Analytics can highlight number of statements, Maintainability Index and Cyclomatic2

complexity index.

Developers are motivated to adopt modularization via refectory activities.

Cyclomatic ComplexityCyclomatic complexity (or conditional complexity) is a software metric (measurement). It was developed by Thomas J. McCabe, Sr. in 1976 and is used to indicate the complexity of a program. It directly measures:• the number of linearly independent paths through a program's source

code.• the number of test cases that are necessary to cover all path

Page 43: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Doctor ZedGe – Analysis [Persona: PM, TEAM LEADER]

With ATC runs against Change Requests, Team Leaders and Project managers can

monitor real progress (number of objects) and investigate about exceptions (e.g.

higher MI, Cyclomatic2, lineCount - lower English comments ratio – any quality or

metric Indexes)

Page 44: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Doctor ZedGe - Analysis

Here how Change Requests to be approved by PM, QM and AMS look like

Page 45: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Doctor ZedGe - Analysis

Here how Change Requests to be approved by PM, QM and AMS look like

Page 46: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Doctor ZedGe – Analysis [Persona: SYSTEM OWNER, QUALITY MANAGER]

System owner, can weekly (at the CAB) discuss about trends impacting custom

ABAP quality and in case launch new initiatives to address exceptions

AFTER

BEFORE

Periodic external certifications can be very useful to

audit behaviors of the different internal teams as well

as those of the different suppliers

Page 47: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Doctor ZedGe – Analysis [Persona: AMS OWNER]

During Hand-over and Knowledge Transfer (KT) phases, AMS owners can get a

clear picture of the incoming software metrics and violations figures running the

Techedge Software Analytics against the project Change Requests (or ChaRM

documents)

Page 48: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Marketing and Sales

Doctor ZedGe is used internally in

Techegede Group to prove the

quality of our projects and

solutions

Page 49: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Doctor ZedGe - Analysis

Limitations of current release

Historical data are not stored and simple trend analysis are possible comparing

the weekly MS Excel reports

Integration with SAP Solution Manager ChaRM is productive on customer sites but

yet to be generalized

Integration with SAP Solution Manager CCLM is currently under evaluation

In add, since Doctor ZedGe - Hard!Code leverages the power of ABAP Test

Cockpit and Code Inspector, it also suffers of the same known limitations:

it works only on workbench objects belonging to a custom main object. It can analyze BADIs and Customer Exits (CMOD) but cannot analyze ABAP code contained in user-exits includes (es. SAPMV45A is a SAP standard object thus MV45FZ01 cannot be analyzed that as from Best Practices should just call custom

Customer Exits FUNCTION MODULEs or custom BADIs)

it works on PROGRAMs (PROG), FUNCTION MODULEs (FUGR) and CLASSEs (CLASS)

but not on SAPScripts and SMARTForms.

Page 50: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Doctor ZedGe - Analysis

Current Release

- ALV

- XSLX Download

- XLSX via Mail to (distribution list, user or email address)

- Customizable threshold parameters used in the score and metrics

calculation

- ATC Exemptions evaluation

- Storing in the INDX Data Base of the last analysis results

- “Skip standard Include” option

- Findings2XSLX

Next Release

- SAPUI5 Dashboard UI

- SAPUI5 Trend Analisys

- SAP CRM Hard!Code Support

- Integration with SAP Solution Manager ChaRM

- SAP SRM Hard!Code Support

- SAP BW Hard!Code Support

Page 51: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

Selling options

http://www.techedgegroup.com/oursolutions/doctor-zedge

Page 52: ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx

‹#›

And don’t miss …

https://twitter.com/doctorzedge

https://www.facebook.com/doctorzedge