how to build a proper software staging environment for testing

22

Upload: testcampro

Post on 05-Dec-2014

318 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: How to build a proper software staging environment for testing
Page 2: How to build a proper software staging environment for testing
Page 3: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing

Andrei HriscaQA-Testing Group Leader

MIND CTI Ltd November 2013

Page 4: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 4 of 22

Agenda

Topic

What is a staging environment?

Why do we need this? Who is the beneficiary?

How do we build it?

Page 5: How to build a proper software staging environment for testing

What is a staging

environment?

Page 6: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 6 of 22

What is a staging environment?

Typical types of environments (from purpose point of view): Development environment

The software is developed

Testing environment The developed software is internally tested

User acceptance testing (UAT) environment The software is tested with or by customer

Staging environment (pre-production) after QA and customer sign-off and before operations sign-off “dress rehearsal of deployment”

Production environment

Page 7: How to build a proper software staging environment for testing

Why do we need it?

Who is the beneficiary?

It doesn’t work.

I need help!

It’s working on my

machine

Page 8: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 8 of 22

Why do we need it? Who is the beneficiary?

Development environment (nice to have)

Testing environment (might be)

UAT environment (should be)

Staging environment (must be)

Production environment

Development environment (must be)

Testing environment (must be)

UAT environment (must be)

Staging environment (must be)

Production environment

What if?....

Page 9: How to build a proper software staging environment for testing

How do we build it?

Page 10: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 10 of 22

How do we build it?

Assess the scope

Estimate the appropriate sizing

Choose the methods and tools

Set up working procedures

Page 11: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 11 of 22

How do we build it?

Assess the scope Building staging environments for testing and development Main capabilities:

Easy to maintain

Minimal costs

Portability: clone them “as it is” with minimal manual intervention

Ability to replicate them “on demand”, several times in a reasonable time

Ability to roll back to the initial stage

Page 12: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 12 of 22

How do we build it?

Assess the scope

Estimate the appropriate sizing

Choose the methods and tools

Set up working procedures

Page 13: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 13 of 22

How do we build it?

Estimate the appropriate sizing: How many projects (ongoing or upcoming) How many versions How many machines per environment

Sample:

QA - Testing Development

10 x 10 x 5 x

(10 x 2 x 3) + (10 x 1 x 3) + (5 x 1 x 3) = 105

Projects:

Versions:

Servers:

Page 14: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 14 of 22

How do we build it?

Assess the scope

Estimate the appropriate sizing

Choose the methods and tools

Set up working procedures

Page 15: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 15 of 22

How do we build it?

Choose the tools and methods Why Virtualization

Reduce power consumption Increased reliability Reduce data center footprint Better /automatic resource management Reduce hardware vendor ‘locks’ Easy to migrate in cloud

vs.

Page 16: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 16 of 22

How do we build it? Hardware requirements

How many physical servers • 16 cores, 128 GB RAM can support 25 VM• building them incrementally

Resource allocation• CPU vs. RAM• I/O bottleneck (use dedicated storage)• Network capacity (separate adapter for management)

Scalability• solve performance issues by hardware upgrade

Page 17: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 17 of 22

How do we build it?

Type 1 vs. Type 2

Host OS

Hypervisor Hypervisor

Type 1 (bare-metal) VMWare ESX Microsoft Hyper – V Server Citrix Xen Server Oracle VM Server

Type 2 (hosted) VMWare Player Microsoft Virtual PC Oracle VirtualBox KVM (open source)

Hypervisors

Page 18: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 18 of 22

How do we build it?

Assess the scope

Estimate the appropriate sizing

Choose the methods and tools

Set up working procedures

Page 19: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 19 of 22

How do we build it?

Set up working procedures Export / Import the production environment

Sanitization Identify and eliminate unnecessary data

Duplicate and distribute the environment Snapshots Automatic upgrade following iterative development

Page 20: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 20 of 22

How do we build it?

Duplicate and distribute the environment Linked clones

Network isolation

10.0.2.1

10.0.2.2

10.0.2.3 10.0.2.1

10.0.2.2

10.0.2.3

192.168.0.2

192.168.0.3 – 0.5 192.168.0.6 – 0.8

Classic clone: Linked clone:

Page 21: How to build a proper software staging environment for testing

How to Build a Proper Software Staging Environment for Testing Slide 21 of 22

Conclusions

Developers will be able to easily reproduce most

of the bugs

Testers will not spend time to reproduce complex

bugs and validate the solutions for them

Customer will get a quality product with less

defects

Page 22: How to build a proper software staging environment for testing

Thank you!

www.mindcti.com [email protected] us in mind!