28
Scaling up using Automation and Performance testing Bogdan Molocea Ness [25 th of October 2014]

Bogdan molocea scaling up using automation and performance testing

Embed Size (px)

DESCRIPTION

CodeCampIasi25Oct2014

Citation preview

Page 1: Bogdan molocea   scaling up using automation and performance testing

Scaling up using Automation and Performance testingBogdan MoloceaNess

[25th of October 2014]

Page 2: Bogdan molocea   scaling up using automation and performance testing
Page 3: Bogdan molocea   scaling up using automation and performance testing

What Scaling is?

The inner cube represents resource consumption that is required at any point in time

The outer cube represents potential resource deployment

Scaling is the ability of a system to handle elastic demand.

Page 4: Bogdan molocea   scaling up using automation and performance testing

What Scaling is?

The X axis is scaling by capability or depth and the Y and Z axes are horizontal and vertical scaling

We can apply this model to hardware, software, slushware and services scaling

Page 5: Bogdan molocea   scaling up using automation and performance testing

The “perfect” product myth

Performance

Scalability

Minimal costs

Quality

Page 6: Bogdan molocea   scaling up using automation and performance testing

Our Journey

Page 7: Bogdan molocea   scaling up using automation and performance testing

“Problems”• Poor user experience

• Poor performance

• Unpredictable delays

• Process crashes

• Poor Automation Framework

• Badly designed SOAP API

• High maintenance costs

• Angry end users

Page 8: Bogdan molocea   scaling up using automation and performance testing

Solutions

AngularJS

Scala

New Automation Framework

Apache JMeter

Page 9: Bogdan molocea   scaling up using automation and performance testing

Challenges

Skilled Scala developers

Learn the rules of the system

Build test environments

Documentation

Availability

Page 10: Bogdan molocea   scaling up using automation and performance testing

Automation testing

Page 11: Bogdan molocea   scaling up using automation and performance testing

Automation testing

Page Object and BDD

Page 12: Bogdan molocea   scaling up using automation and performance testing

Performance testing

Page 13: Bogdan molocea   scaling up using automation and performance testing

Performance testing tools

Page 14: Bogdan molocea   scaling up using automation and performance testing

Performance testing tools

Page 15: Bogdan molocea   scaling up using automation and performance testing

Performance testing tools

Page 16: Bogdan molocea   scaling up using automation and performance testing

Performance testing tools

Page 17: Bogdan molocea   scaling up using automation and performance testing

Performance testing tools

Page 18: Bogdan molocea   scaling up using automation and performance testing

Performance Evolution

Three times slower thanthe Baseline results

Iteration 1:

We discovered and fixed a few slow DB queries.

Page 19: Bogdan molocea   scaling up using automation and performance testing

Performance Evolution

Twice slowerIteration 2:

We introduced parallel processing logic and switched to bulk inserts into DB.

Page 20: Bogdan molocea   scaling up using automation and performance testing

Performance Evolution

Same performance as Baseline

Iteration 3:

A major refactoring was done.

Page 21: Bogdan molocea   scaling up using automation and performance testing

Performance Evolution

Twice slowerIteration 4:

The newly introduced defects were fixed.

Page 22: Bogdan molocea   scaling up using automation and performance testing

Performance Evolution

Twice faster

Iteration 5:

The number of actors was increased.

Page 23: Bogdan molocea   scaling up using automation and performance testing

Performance Evolution

Seven times faster

Iteration 6:

Page 24: Bogdan molocea   scaling up using automation and performance testing

How we did it?• Right tools

• Reliable Automation tests

• Performance improvements

• Different settings for DB interactions

• Different settings for concurrent processing

Page 25: Bogdan molocea   scaling up using automation and performance testing

What to remember?• Make use of automation to identify performance and scalability issues

• Involve Performance Testing early if possible

• Developers should write code having performance in mind

• Make use of any tool that can help you to deliver a performant and scalable product

Page 26: Bogdan molocea   scaling up using automation and performance testing

Q&A

Page 27: Bogdan molocea   scaling up using automation and performance testing
Page 28: Bogdan molocea   scaling up using automation and performance testing

Scaling up using Automation and Performance testing

Bogdan MoloceaNess

[25th of October 2014]

Please fill the online evaluation form after event