Agile Development and Test Environments

Preview:

Citation preview

Agile Development and Test Environments

August 30, 2006

Today’s Topics

• Goals of the Test Environment

• Reality Check

• Technologies Available

• Applying These technologies to Testing Environments

The Goals of the Test Environment

• We test to ensure ourselves that it will work as desired in production

• Testing infrastructure needs to provide a mirror of the production infrastructure

• Testing infrastructure also needs to facilitate our testing methods– Regression Testing, Performance Testing– Stress Testing, Unit Testing, Compatibility Testing– Load Testing, Developer’s testing

The Real World

• It can be very costly to mirror production environments

• It can be very time consuming to prepare test environments

• Controlling and refreshing “Test” environments is difficult

• The Devil is often in all of the details

Infrastructure Technologies That Can Help

• Computer Virtualization– Server / Workstation

• Storage Virtualization– Software or Hardware based

• Pointer based

• Detailed Documentation – Configuration Management

Computer Virtualization – Server/ Workstation

• Virtualization is a software layer that decouples the physical hardware from the operating system

• Virtual machines are encapsulated into files

• Virtualization was first introduced in the 1960s

Computer Virtualization

Computer Virtualization – Advantages

• Partitioning– Multiple application and operating systems

can reside on one machine

• Isolation– Complete isolation from the host computer

• Encapsulation– The virtual machine is a file in the file

system

Storage Virtualization

• Pointer Based technologies– Present a view of the production database

– They just keep track of writes

– Can be done with either hardware or software

Storage Virtualization

Persistent pointer map

Track C

Production view

Track B

Track A

Production volume

Production volume

Save Area Test view

Application I/O

Access to snapshot

Only the writes to the database are saved

Storage Virtualization – Advantages

• Save on disk space

• Quick refresh

• Ease of use

Detailed Configuration Documentation Software

• Creates a blueprint of the configuration of hardware, operating systems and applications

• Creates a “fingerprint” or hash of each entity

• Change Isolation drill down– Allows for a detail compare between collection

points– Isolates any differences

• Entity• Or inside of the Entity

Detailed Configuration

Detailed Configuration

Applying These Technologies to Our Test Environments

• Compatibility testing– Develop a library of different virtual

machines, control sets– Use your software control library to check in

and check out the virtual machines– Run the testing against the Virtual database– All of this could be done on one machine– If you run into real world compatibility

issues compare your control machines to it

Applying These Technologies to Our Test Environments

• Developer’s testing– Use a virtual machine to continuously compile your code

– Use a message agent like “cruise control” to notify you of problems

Applying These Technologies to Our Test Environments

• Performance testing– Correlate the virtual environment’s

performance to production environment’s performance

– Run your testing using virtual machines as drones

– Translate your results to production

Applying These Technologies to Our Test Environments

• Stress testing– Change the configuration of the virtual machine’s resources

Supporting Production - Bugs in the Real World

• It happens what should work is not working

• You can not duplicate the bug internally, it has to be the local environment

• Suggestions– Use your detailed documentation tool and gather the

details about the local environment

– Isolate the differences by comparing the local environment to your controlled environment

– For future testing, convert the the local environment into your controlled virtual environment

Systems Compare – High Level

Systems Compare – File Level

Systems Compare – Detail Level

Fun Facts

• 90 % of the top 100 software companies use Virtual Machines for testing

• Reduction in deployment time to days VS weeks

• Increased test environments CPU utilization from 6-8% to 50-70%

• Capital expenditures for test environments can be reduced by 80%

• Space, cooling and power demands are also reduced

Contact Information

Nick CellentaniCranel, Inc.ncellentani@cranel.com614-318-4238 work

Bill WarrenAdexis wwaren@adexisstorage.com614-318-4232

Recommended