42
Professional Multilingual Service Oriented Automate the Process Deliver Quality

Ady beleanu automate-theprocessdelivery

Embed Size (px)

Citation preview

Page 1: Ady beleanu   automate-theprocessdelivery

Professional – Multilingual – Service Oriented

Automate the Process

Deliver Quality

Page 2: Ady beleanu   automate-theprocessdelivery

Agenda

Presenter

Quality & QA

DEV Lifecycle

Cost of quality

Technical debt

Issues

Git, CI, Sonar, Se

Bottom line

Thanks

Page 3: Ady beleanu   automate-theprocessdelivery

Ady Beleanu

• Quality inquisitor • 10 years in field of QC & QA • Managed projects & teams • Coached & inspired testers

• https://www.linkedin.com/in/adybeleanu

Page 4: Ady beleanu   automate-theprocessdelivery

Quality

Quality (ISO) = The totality of the characteristics of an entity

that bear on its ability to satisfy stated or implied needs

“= ability of product to be able to satisfy end users”

The concept of making products fit for a purpose.

Minimising defects and problems.

You - feel it!

Page 5: Ady beleanu   automate-theprocessdelivery

Quality Perspectives

External

Valuable for users

Internal

Right design

Simple to understand

Extendable

Maintainable

Page 6: Ady beleanu   automate-theprocessdelivery

Quality Focus – Final product

Added value

Attention to detail

Process behind the product Innovation & Pioneering

Both – from point A to point B

the difference - usability, safety, comfort, reliability, and so on

vs.

Page 7: Ady beleanu   automate-theprocessdelivery

Quality Assurance – The Pieces

For the system to work, each piece has to be:

Perfect

Easily integrated

Tested

Reusable

vs.

Page 8: Ady beleanu   automate-theprocessdelivery
Page 9: Ady beleanu   automate-theprocessdelivery

Key Success Criteria

THE BIBLE of the project

• Business case

• Architecture

• Requirements

• Quality strategy

• Project Synchronization

“Establishing your Automation Development Lifecycle”, Galen

Page 10: Ady beleanu   automate-theprocessdelivery

Costs

• Lack of Quality Management – Plan the quality

– Perform QA

– Perform QC

• Technical DEBT

• 1 External Failure Cost

• 2 Internal Failure Cost

• 3 Inspection (Appraisal) Cost

• 4 Prevention Cost

Page 11: Ady beleanu   automate-theprocessdelivery

Costof Quality

$59.5 Billion Cost Software Errors in U.S. Economy / Year

estimated $22.2 billion,

could be prevented improved testing

infrastructure eliminate defects earlier / efficiently

*NIST Assessment

Page 12: Ady beleanu   automate-theprocessdelivery

Technical DEBTf Quality

http://otja.wordpress.com/2011/11/21/what-am-i-thinking-about-visualising-your-technical-debt/

GOOD code vs. BAD code

or

Doing it

RIGHT & LONGER /

QUICK & DIRTY

Page 13: Ady beleanu   automate-theprocessdelivery

SDLC

Page 14: Ady beleanu   automate-theprocessdelivery

Common Repository

http://otja.wordpress.com/2011/11/21/what-am-i-thinking-about-visualising-your-technical-debt/

• Traceability • Visibility • Versioning • Best practices • Non-Latency • Concurrency CHAOS

Page 15: Ady beleanu   automate-theprocessdelivery

Lack of integration

http://otja.wordpress.com/2011/11/21/what-am-i-thinking-about-visualising-your-technical-debt/

Issues • Broken code check-in • Uncertainty • Missing code files • Small mistakes – BIG issues • Missing integration

Page 16: Ady beleanu   automate-theprocessdelivery

The KEY to sustainable quality

REUSE of Resources • Planning • Analysis • Design • Development • Testing • Deployment

http://www.itcinfotech.com

Page 17: Ady beleanu   automate-theprocessdelivery

A framework example

Page 18: Ady beleanu   automate-theprocessdelivery

Repository

Source Code Management (SCM) tool Version Control System (VCS)

Page 19: Ady beleanu   automate-theprocessdelivery

Continuous Integration

Automated builds Static code analysis Code coverage

reports Trigger Code aggregator Central point for

quality

Page 20: Ady beleanu   automate-theprocessdelivery

Problem no.1 – Code Quality

http://www.bonkersworld.net/code-reviews/

Poor unit test coverage Complexity for integration test No full regression (100%) Tight couplings

Page 21: Ady beleanu   automate-theprocessdelivery

Why code review?

Find bugs early / Fix cheap

Coding standards compliance

Sharing knowledge

Consistent design and

implementation

Higher software security

Team cohesion

Confidence of stakeholders

Page 22: Ady beleanu   automate-theprocessdelivery

Code Quality Measurement Needed !!!

… but, WHAT to measure?

Page 23: Ady beleanu   automate-theprocessdelivery
Page 24: Ady beleanu   automate-theprocessdelivery

Context – project done with & without code review:

10k LOC,

10eng,

3month project

Measured # of bugs found by QA Team in the next 6

months

The result: Code review would have saved half the cost of

fixing the bugs. Plus, they would have found 162 additional bugs.

Code Review – Case Study

Page 25: Ady beleanu   automate-theprocessdelivery

Code Review – Use Case

Page 26: Ady beleanu   automate-theprocessdelivery

Code Review – Use Case

Page 27: Ady beleanu   automate-theprocessdelivery

Code Review - trend & numbers

2012 study (VDC Research)

• 17.6% software engineers surveyed currently use automated tools for CR

• 23.7% expect to use them within 2 years.

Capers Jones' - 12,000 SW dev projects:

- 60-65% - The latent defect discovery rate of formal inspection.

- < 50% - For informal inspection.

- 30% - The latent defect discovery rate for most forms of testing.

150 lines of code per hour - Typical code review rates.

Code reviews => ~85% defect removal rate (avg. rate of about 65%)

75% of CR defects evolvability rather than functionality

suitable for long product / system life cycles => increase of Technical DEBT.

Page 28: Ady beleanu   automate-theprocessdelivery

Cost in SDLC

Page 29: Ady beleanu   automate-theprocessdelivery

Code needs Continuous Inspection

code violations code improvements build stability

Page 30: Ady beleanu   automate-theprocessdelivery

Continuous Inspection with SonarQube

7 Deadly Sins of source code Duplications Bad distribution of complexity Spaghetti Design Lack of unit tests No coding standards Potential bugs Not enough / too many comments

Page 31: Ady beleanu   automate-theprocessdelivery

Integrate with SonarQube

Page 32: Ady beleanu   automate-theprocessdelivery

SonarQube – look & feel

Page 33: Ady beleanu   automate-theprocessdelivery

SonarQube – look & feel

Page 34: Ady beleanu   automate-theprocessdelivery

SonarQube – look & feel

Page 35: Ady beleanu   automate-theprocessdelivery

SonarQube – Technical DEBT Measurement

Page 36: Ady beleanu   automate-theprocessdelivery

The so called Testing phase

Functional / UI

API / Services

Integration

Unit

Page 38: Ady beleanu   automate-theprocessdelivery

Reporting

~20 - 40% of project lifecycle time REPORTING

Page 39: Ady beleanu   automate-theprocessdelivery

Simplified…

Page 41: Ady beleanu   automate-theprocessdelivery

Bottom Line

Harvest

Foresee risks

Automate & Reuse

Organize process

Prevent

Build framework

Think & Understand

Page 42: Ady beleanu   automate-theprocessdelivery