Agile Development and Test Environments

898 views
842 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
898
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Agile Development and Test Environments

  1. 1. Agile Development and Test Environments August 30, 2006
  2. 2. Today’s Topics <ul><li>Goals of the Test Environment </li></ul><ul><li>Reality Check </li></ul><ul><li>Technologies Available </li></ul><ul><li>Applying These technologies </li></ul><ul><li>to Testing Environments </li></ul>
  3. 3. The Goals of the Test Environment <ul><li>We test to ensure ourselves that it will work as desired in production </li></ul><ul><li>Testing infrastructure needs to provide a mirror of the production infrastructure </li></ul><ul><li>Testing infrastructure also needs to facilitate our testing methods </li></ul><ul><ul><li>Regression Testing, Performance Testing </li></ul></ul><ul><ul><li>Stress Testing, Unit Testing, Compatibility Testing </li></ul></ul><ul><ul><li>Load Testing, Developer’s testing </li></ul></ul>
  4. 4. The Real World <ul><li>It can be very costly to mirror production environments </li></ul><ul><li>It can be very time consuming to prepare test environments </li></ul><ul><li>Controlling and refreshing “Test” environments is difficult </li></ul><ul><li>The Devil is often in all of the details </li></ul>
  5. 5. Infrastructure Technologies That Can Help <ul><li>Computer Virtualization </li></ul><ul><ul><li>Server / Workstation </li></ul></ul><ul><li>Storage Virtualization </li></ul><ul><ul><li>Software or Hardware based </li></ul></ul><ul><ul><ul><li>Pointer based </li></ul></ul></ul><ul><li>Detailed Documentation </li></ul><ul><ul><li>Configuration Management </li></ul></ul>
  6. 6. Computer Virtualization – Server/ Workstation <ul><li>Virtualization is a software layer that decouples the physical hardware from the operating system </li></ul><ul><li>Virtual machines are encapsulated into files </li></ul><ul><li>Virtualization was first introduced in the 1960s </li></ul>
  7. 7. Computer Virtualization
  8. 8. Computer Virtualization – Advantages <ul><li>Partitioning </li></ul><ul><ul><li>Multiple application and operating systems can reside on one machine </li></ul></ul><ul><li>Isolation </li></ul><ul><ul><li>Complete isolation from the host computer </li></ul></ul><ul><li>Encapsulation </li></ul><ul><ul><li>The virtual machine is a file in the file system </li></ul></ul>
  9. 9. Storage Virtualization <ul><li>Pointer Based technologies </li></ul><ul><ul><li>Present a view of the production </li></ul></ul><ul><ul><li>database </li></ul></ul><ul><ul><li>They just keep track of writes </li></ul></ul><ul><ul><li>Can be done with either hardware or software </li></ul></ul>
  10. 10. Storage Virtualization Only the writes to the database are saved Persistent pointer map Track C Production view Track B Track A Production volume Save Area Test view Application I/O Access to snapshot
  11. 11. Storage Virtualization – Advantages <ul><li>Save on disk space </li></ul><ul><li>Quick refresh </li></ul><ul><li>Ease of use </li></ul>
  12. 12. Detailed Configuration Documentation Software <ul><li>Creates a blueprint of the configuration of hardware, operating systems and applications </li></ul><ul><li>Creates a “fingerprint” or hash of each entity </li></ul><ul><li>Change Isolation drill down </li></ul><ul><ul><li>Allows for a detail compare between collection points </li></ul></ul><ul><ul><li>Isolates any differences </li></ul></ul><ul><ul><ul><li>Entity </li></ul></ul></ul><ul><ul><ul><li>Or inside of the Entity </li></ul></ul></ul>
  13. 13. Detailed Configuration
  14. 14. Detailed Configuration
  15. 15. Applying These Technologies to Our Test Environments <ul><li>Compatibility testing </li></ul><ul><ul><li>Develop a library of different virtual machines, control sets </li></ul></ul><ul><ul><li>Use your software control library to check in and check out the virtual machines </li></ul></ul><ul><ul><li>Run the testing against the Virtual database </li></ul></ul><ul><ul><li>All of this could be done on one machine </li></ul></ul><ul><ul><li>If you run into real world compatibility issues compare your control machines to it </li></ul></ul>
  16. 16. Applying These Technologies to Our Test Environments <ul><li>Developer’s testing </li></ul><ul><ul><li>Use a virtual machine to </li></ul></ul><ul><ul><li>continuously compile your code </li></ul></ul><ul><ul><li>Use a message agent like </li></ul></ul><ul><ul><li>“cruise control” to notify you of problems </li></ul></ul>
  17. 17. Applying These Technologies to Our Test Environments <ul><li>Performance testing </li></ul><ul><ul><li>Correlate the virtual environment’s performance to production environment’s performance </li></ul></ul><ul><ul><li>Run your testing using virtual machines as drones </li></ul></ul><ul><ul><li>Translate your results to production </li></ul></ul>
  18. 18. Applying These Technologies to Our Test Environments <ul><li>Stress testing </li></ul><ul><ul><li>Change the configuration of the </li></ul></ul><ul><ul><li>virtual machine’s resources </li></ul></ul>
  19. 19. Supporting Production - Bugs in the Real World <ul><li>It happens what should work is not working </li></ul><ul><li>You can not duplicate the bug internally, it has to be the local environment </li></ul><ul><li>Suggestions </li></ul><ul><ul><li>Use your detailed documentation tool and gather the details about the local environment </li></ul></ul><ul><ul><li>Isolate the differences by comparing the local environment to your controlled environment </li></ul></ul><ul><ul><li>For future testing, convert the the local environment into your controlled virtual environment </li></ul></ul>
  20. 20. Systems Compare – High Level
  21. 21. Systems Compare – File Level
  22. 22. Systems Compare – Detail Level
  23. 23. Fun Facts <ul><li>90 % of the top 100 software companies use Virtual Machines for testing </li></ul><ul><li>Reduction in deployment time to days VS weeks </li></ul><ul><li>Increased test environments CPU utilization from 6-8% to 50-70% </li></ul><ul><li>Capital expenditures for test environments can be reduced by 80% </li></ul><ul><li>Space, cooling and power demands are also reduced </li></ul>
  24. 24. Contact Information <ul><li>Nick Cellentani </li></ul><ul><li>Cranel, Inc. </li></ul><ul><li>[email_address] </li></ul><ul><li>614-318-4238 work </li></ul><ul><li>Bill Warren </li></ul><ul><li>Adexis </li></ul><ul><li>[email_address] </li></ul><ul><li>614-318-4232 </li></ul>

×