it quality and software reliability focus: load- and...

67
Ringvorlesung TU Dresden Dresden, 2017-12-04 IT quality and software reliability focus: load- and performancetest

Upload: voliem

Post on 17-Feb-2019

219 views

Category:

Documents


0 download

TRANSCRIPT

Ringvorlesung TU Dresden

Dresden, 2017-12-04

IT quality and software reliabilityfocus: load- and performancetest

Agenda

1. profi.com AG

2. software development

3. why Load & perfomrance testing?

4. Stairway to load & performance testing

5. Choose the right tools

6. Execute and analyze the results

7. Summary

04.12.2017 www.proficom.de 2

Agenda

1. profi.com AG

2. software development

3. why load & performance testing

4. stairway to load & performance testing

5. choose the right tools

6. execute and analyze the results

7. summary

04.12.2017 www.proficom.de 3

From physics to IT consultancy?!

04.12.2017 www.proficom.de 4

Background Mathematical/Natural science, and?

04.12.2017 www.proficom.de 5

Understanding for numbers and their relations

Doing conceptual things from scratch

Be focussed to do the right things at the right time

Having the correct ratio of looking left and right vs. being focussed

Creating models

Giving talks

Speakers

04.12.2017 www.proficom.de 6

Dr. Jan Sickmann IT Consultant

focus: load- and performancetest

Dr. Carsten Neise Senior IT Consultant

focus: data management

DID YOU KNOW, THAT WE…

04.12.2017 www.proficom.de 7

were founded 16 years ago

have more than 75 specialists in all disciplines

daily testing over 450.000 lines of „new “ sourcecode

do load & performance tests up to 100.000 virtual users per application

provide our services to all sizes of compagnies, big and small

are MicroFocus Platinum Partner for Applications and IT OperationsSoftware

OUR PORTFOLIO

Quality Management Virtualisation &

Cloud Computing

IT-Operations

Runbook Automation

Architecture & Design

IT-Security

Software Development

Requirements Management

04.12.2017 www.proficom.de 8

04.12.2017 9

QUALITY MANAGEMENT SERVICES Objective evaluation of methods like model-based testing, test

automation, modularization of tests, outsourcing and mobile testing

Identification of optimization potential

Analysis of all existing systems and all processes established in your business

Conception regarding the introduction of the new lifecyclemanagement tool

Individual product and method training sessions for your employees

Early life support during the introduction

www.proficom.de

04.12.2017 10

CLOUD SERVICES Strategic consulting during the introduction of cloud computing in

your business

Conception and implementation of an appropriate systemarchitecture

Administration and operation of virtual infrastructures

Advice on questions regarding contract design, copyright law, IT security and data privacy

Integration of deployment processes for cloud services within your corporate IT

Automation of basic system administration tasks up to the integration into the automated build, deployment and test processes in the cloud

www.proficom.de

OUR PARTNER

04.12.2017 www.proficom.de 11

OUR CUSTOMERS

04.12.2017 www.proficom.de 12

OUR CUSTOMERS

04.12.2017 www.proficom.de 13

Agenda

1. profi.com AG

2. software development

3. why load & performance testing

4. stairway to load & performance testing

5. choose the right tools

6. execute and analyze the results

7. summary

04.12.2017 www.proficom.de 14

Classic models – V-Model

04.12.2017 www.proficom.de 15

t ~ a

Modern models – Scrum Framework

04.12.2017 www.proficom.de 16

t ~ m

Different requirements

04.12.2017 www.proficom.de 17

University Industry

Stand alone development, often only single development Development in groups, distributed all over the world.

Tasks for implementing can seldomly split into parallel subtasks which can be done by different persons (VIM, Xemacs, …)

Tasks are offen split in several subtasks which areimplemented by several programmers (Visual Studio, IntelliJ, Eclipse, …)

Code has to be very performant, fast for numerouscalculations

Depending on exakt use-case, but code performance is not such an big issue as in university

Fortran, C++, Ruby, Python, … .NET, Java

Very accurate and exact code Software has to be released very fast, bugs are often takeninto account

GUI not really in scope GUI matters

Fundamental test process (ISTQB)

04.12.2017 www.proficom.de 18

Levels of software test - TMMi

04.12.2017 www.proficom.de 19

Agenda

1. profi.com AG

2. software development

3. why load & performance testing

4. stairway to load & performance testing

5. choose the right tools

6. execute and analyze the results

7. summary

04.12.2017 www.proficom.de 20

Why load & performance testing?

04.12.2017 www.proficom.de 21

Prevent costly failure of mission-critical applications

Assure performance and functionality under real world conditions

Locate potential performance issues before your customers do

Avoid wrong design and infrastructure decisions

Reduce development time

Reduce infrastructure costs

Ok. Let‘s illustrate

on some examples...

Biggest web failures in 2016*

04.12.2017 www.proficom.de 23

June 2016 - Popular British clothing site ASOS crashed after Brexit referendum passed, and was down for more than a day=> Perform Stress test, spike test and soak test to identify bottlenecks!

July 2016 - People go crazy for Pokemon GO and the app crashes; the roll out had to be paused. => Track end-user performance and integrate it in backend testing!

October 2016 - Glastonbury music festival ticket website crashes; user unable to connect or to complete transactions=> Learn from your competitors (Ticketfly): Simulating expected traffic spikes and tune the underlying system, in advance!

*https://www.blazemeter.com/blog/biggest-web-failures-2016-and-2017-resolutions

Biggest web failures in 2016*

04.12.2017 www.proficom.de 25

November 2016 - Canadian Immigration website crashes after US elections. => Expect the unexpected. Investigate your system to find the weak points and set up alert monitoring dashboards for these critical issues!

Black Friday 2016 - Macy’s website and mobile app crash under heavy load. Unsatisfied customers ranting on social media.=> Ever heard of LPT integration into Jenkins? Plan and implement Continuous Integration methodologies. Implement LPT earlier in the CI process!

November 2016 - Fandango movie tickets website crashes following high demand for ‘Rogue 1: A Star Wars Story’. Buyers directed to waiting room, where they had to wait all night to secure tickets.=> LPT for expected heavy loads. Prepare in advance by deciding on business goals, creating user scenarios and simulating real-world user experience.

*https://www.blazemeter.com/blog/biggest-web-failures-2016-and-2017-resolutions

The cost of poor web performance*

04.12.2017 www.proficom.de 26

*Kendal Peiguss, smartbear.com, Nov 30, 2012https://blog.smartbear.com/web-performance/

the-cost-of-poor-web-performance-infographic/

The cost of poor web performance*

04.12.2017 www.proficom.de 27

Research found out that1 sec increase in response time

could cause...

The cost of poor web performance*

04.12.2017 www.proficom.de 28

Research found out that1 sec increase in response time

could cause...

Performance vs. load vs. stress testing

04.12.2017 www.proficom.de 37

Load test

Performance vs. load vs. stress testing

04.12.2017 www.proficom.de 39

Stress test / Spike test

Types of performance testing

Component testing Find the behavior and performance of each tier

Load testing Determine if the system handles anticipated real-world load

Stress testing Find system break point; measure if system environment is properly configured for unexpected, high-transaction volume

Volume testing Check system stability under extended periods of load

04.12.2017 www.proficom.de 41

Examples of Performance Test Objectives

04.12.2017 www.proficom.de 42

Application response time

Coniguration sizing

Regression

Reliability

Capacity planning

Bottleneck identification

Functional vs. non functional testing

04.12.2017 www.proficom.de 43

Functional testing

Goal Example

Functionality Do business processesstill match therequirements after an implementation?

Non functional testing

Goal Example

Performance under load Does the response time at 1,000 parallel requestsmatch the requirements?

Stability Does 1,000 parallel requests influence thesystem over a certaintime?

Functionality under load Do all business processesstill work correctly underload?

Functional vs. non functional testing

04.12.2017 www.proficom.de 44

Functional testing

Goal Example

Functionality Do business processesstill match therequirements after an implementation?

Non functional testing

Goal Goal

Performance under load Does the response time at 1,000 parallel requestsmatch the requirements?

Stability Does 1,000 parallel requests influence thesystem over a certaintime?

Functionality under load Do all business processesstill work correctly underload?

Keep an eye on basic performance (single user)even during functional testing!

Functional vs. non functional testing

04.12.2017 www.proficom.de 45

Functional testing

Goal Example

Functionality Do business processesstill match therequirements after an implementation?

Non functional testing

Goal Goal

Performance under load Does the response time at 1,000 parallel requestsmatch the requirements?

Stability Does 1,000 parallel requests influence thesystem over a certaintime?

Functionality under load Do all business processesstill work correctly underload?

Keep an eye on basic performance (single user)even during functional testing!

Agenda

1. profi.com AG

2. software development

3. why load & performance testing

4. stairway to load & performance testing

5. choose the right tools

6. execute and analyze the results

7. summary

04.12.2017 www.proficom.de 46

Get the right people together

04.12.2017 www.proficom.de 47

Test engnieer

Competent departmentIT operations department

Developers

Project manager

Testmanager

Get the right people together

04.12.2017 www.proficom.de 48

Testmanager

Project manager

Test engnieer

Competent departmentIT operations department

Developers

Coordinating thewhole development

projectCoordinatingplanning, testexection and

analysis. Creating test scripts

and executes tests

User stories, usecases, numbers forgeneral usage andconcurrent users

Name load criticalfunctions. Receivetest results. Fixing

application

Infrastructure information. What to

monitor? Support monitoring

Get the right people together

04.12.2017 www.proficom.de 49

Testmanager

Project manager

Test engnieer

Competent departmentIT operations department

Developers

Coordinating thewhole development

projectCoordinatingplanning, testexection and

analysis. Creating test scripts

and executes tests

User stories, usecases, numbers forgeneral usage andconcurrent users

Name load criticalfunctions. Receivetest results. Fixing

application

Infrastructure information. What to

monitor? Support monitoring

Get in touch before load testing for deriving test acceptance criteria and load models

Defining Goals

04.12.2017 www.proficom.de 50

Start with conceptual goals

Jotting down goals that can‘t be measured will allow later filtering tocreate more focused goals

Examples: Responsivness of a search function: Are we able to get search results within a

reasonable time?

System administrator’s concern if the “Update” transaction functions during heaving usage.

etc.

Quantifying Goals

Conceptual goal

The search must be fast enough

Confirm that save function worksunder heavy traffic

Quantitive goal

Search transaction time 5 sec for2,000 concurrent users duringpeak hours (8-10 a.m.)

Achive 300 concurrent users forsave function at peak time (noon)

04.12.2017 www.proficom.de 51

Business process matrix

Business process Users (typicalday)

Users (peak time) Dynamic content Mission critical Test

Sign in 70/hr 210/hr Low High ?

Creating newaccounts

10/hr 15/hr Moderate Low ?

Searches forartists

130/hr 180/hr Moderate Moderate ?

View artist‘s page 20/hr 30/hr Moderate High

Purchase MP3s 40/hr 90/hr High High ?

04.12.2017 www.proficom.de 61

Defining a real world load

04.12.2017 www.proficom.de 62

Concurrency = Number of users acting (!) on the applicationat the same time (!)

Application level How many users are active on the system?

Business process level How many users are buying MP3s?

Transaction level How many users press „Buy MP3“ now?

Defining a real world load

04.12.2017 www.proficom.de 63

Do not focus on business processes/transactions or concurrent usersalone!

Better: How many users

execute which transactions (business process)

during which time?

Dervive from business process matrix and statistics

Create an extended transaction/business process matrix

Creating a transaction matrix

04.12.2017 www.proficom.de 65

Documenting user steps and input data

04.12.2017 www.proficom.de 66

Live Demo

04.12.2017 www.proficom.de 67

Determining valid test data

04.12.2017 www.proficom.de 68

Sources: Application Data

Data is resident in the application’s database

Examples: ID numbers and passwords

User-Generated Data Originates with the user

Examples: new unique ID or email address

External Data Data is unknown before the application is run

Examples: confirmation and purchase order numbers

Monitoring system components

04.12.2017 www.proficom.de 72

Firewall not configured

properly

Load balancernot distributing

properly

Faulty Web serverfrom cluster

Application servercannot handle the request

Database is slow

or unableto feed data

System performance monitors

04.12.2017 www.proficom.de 73

System resource monitors

Network monitors

Firewall monitors

Webserver monitors

Application server monitors

Database monitors

ERP/CRM monitors

Test environment

04.12.2017 www.proficom.de 74

Mirrors the production environment

Is dedicated to performance testing only (no interference with production users) Allows data to be written, read, destroyed

Allows test system to be rebooted

Allows to run the business processes correctly (application code freeze)

Must contain sufficient hardware to generate the defined load

Agenda

1. profi.com AG

2. software development

3. why load & performance testing

4. stairway to load & performance testing

5. choose the right tools

6. execute and analyze the results

7. summary

04.12.2017 www.proficom.de 75

LoadRunner on-premise

04.12.2017 www.proficom.de 77

Appplication under testOn-premise Load GeneratorsController

LoadRunner on-premise + cloud LGs

04.12.2017 www.proficom.de 78

Appplication under testController

Cloud Load Generators

LoadRunner on-premise + cloud LGs

04.12.2017 www.proficom.de 79

Appplication under testOn-premise Load GeneratorsController

Cloud Load Generators

04.12.2017 www.proficom.de 80

StormRunner + on-premise LGs

Appplication under testOn-premise Load Generators

StormRunnerCloud Load Generators

04.12.2017 www.proficom.de 81

StormRunner

Appplication under test

StormRunnerCloud Load Generators

Agenda

1. profi.com AG

2. software development

3. why load & performance testing

4. stairway to load & performance testing

5. choose the right tools

6. execute and analyze the results

7. summary

04.12.2017 www.proficom.de 86

Phases of ideal load test

04.12.2017 www.proficom.de 88

88

0

50

100

150

200

250

0 100 200 300 400 500

User

Tes

t cas

ede

nsit

y1/

s

Scaling

ScalingTest case density ~ loadincreases with number of usersuntill saturation of bottleneck device

Stability Overload

0

10

20

30

40

50

60

70

80

90

100

0 100 200 300 400 500

User

Phases of ideal load test

04.12.2017 www.proficom.de

CP

U lo

ad/

%

ScalingTest case density ~ loadincreases with number of usersuntill saturation of bottleneck device

Scaling Stability Overload

Phases of ideal load test

04.12.2017 www.proficom.de 90

90

0

50

100

150

200

250

0 100 200 300 400 500

User

Tes

t cas

ede

nsit

y1/

s

Scaling

StabilityTest case density ~ load = const.

Stability Overload

0

2

4

6

8

10

12

14

16

18

20

0 100 200 300 400 500

User

Phases of ideal load test

04.12.2017 www.proficom.de 91

91

Res

pons

e ti

me

/ s

Scaling Stability Overload

StabilityResponse time increases slightly

0

2

4

6

8

10

12

14

16

18

20

0 100 200 300 400 500

User

Phases of ideal load test

04.12.2017 www.proficom.de 92

92

Res

pons

e ti

me

/ s

OverloadResponse time acts impredictable

Scaling Stability Overload

Analyzing results

04.12.2017 www.proficom.de 93

Is there enough test hardware available in the test environment? Benchmark business processes against the testing hardware

Take a business process and execute a small number of users against the application. Validates the functionality of the business process

Potentially exposes unknown data dependencies

Evaluate the testing infrastructure against the footprint. Do I have enough hardware to generate the user load?

Do I have enough memory?

Do I have enough CPUs?

Analyzing results

04.12.2017 www.proficom.de 94

No. of VUsers

CPU Utilization

Transaction

Response Time

0

0

Tra

nsactio

n

resp

on

se t

ime [

s]

No. of VUsers50 100

1 s

4 s

0

No. of VUsers

CP

U

Utiliza

tion

[%

]

50 110

50 %

100 %

80

No. of VUsers

CPU Utilization [%]

80 %

10 %

RT=f(Users)

80

10 %

CPU=f(Users)

Step1

Step 2

time

Testcase

Example: Response time and CPU consumption

Agenda

1. profi.com AG

2. software development

3. why load & performance testing

4. stairway to load & performance testing

5. choose the right tools

6. execute and analyze the results

7. summary

04.12.2017 www.proficom.de 95

Summary

04.12.2017 www.proficom.de 96

Quality in software life cycle – essential!Software testing – indispensible!

I knowabout...

Functional testing

Performance & load testing

Coordinational& conceptual skills

Results/data analysis& interpretation

Complex infrastructures& test designs

Consulting

We are hiring!

students and graduates+ trainee-program for graduates+ positions for internship, working student, theses

professionals+ IT-Consultant with different specializations

+ test automation, load and performance test, test data management and analysis+ cloud engineering and automation

see www.proficom.de/karriere for more information!

Questions?