About Me
• University Department Chair, Software
Engineering, Keiser University
• PhD, CS, Florida Institute of Technology
• MBA, University of Central Florida
• ISTQB Certified Tester
(Foundation, Manager, Agile)
• Independent consultant and trainer
• Software Quality Engineer/ Tester
About Me…
Motivation
• Cloud computing is here to stay
• Changing the way we engineer software
• Leverage the power of cloud in testing
Objectives
What is the cloud about?
How is it different from traditional computing?
What is testing in the cloud?
What does it mean for testers?
Where to start?
What is Cloud Computing?
An old idea whose time has finally come
If computers of the kind I have advocated become the computers of
the future, then computing may someday be organized as a public
utility just as the telephone system is a public utility. The computer
utility could become the basis of a new and important industry.
What is Cloud Computing?
Virtualized hardware
SOA, On-demand, utility model
Rapid elasticity
Resource abstraction techniques
Multi-tenancy
Self-healing
Cloud Delivery Models
Public
• Services offered by a provider that are publicly available, can be used with a contractual agreement
Private
• Virtualized resources available as a service owned by individual organization • Client managed, customization, high efficiency, privacy and security policies
Hybrid
• Mix of public and private • Extend private cloud via VPN
Cloud Benefits
Faster, cheaper, better
Flexible
• Multiple test beds for multiple release testing
• Instant setup, tear down
Scalable
• Virtualized environments
• Scalable resources
On-demand
What Does it Mean for Testers?
Software Testing in the Cloud
Lies at the intersection of three key areas
• Software Testing
• Cloud Computing
• System Migration
STITC (Software Testing in the Cloud)
• Testing in the cloud
• Testing of the cloud
• Migrating testing to the cloud
Traditional
Testing
Low asset utilization
Scalability: Long time to increase capacity
Long time to build datacenters Difficult to manage
Duplicate test systems Creates unnecessary waste
Testing in the
Cloud
Improved asset utilization Less time (instantaneous) increase
and reduction in capacity Purchased as a service from cloud
providers
Better management and increased productivity
Aggregated system Cleaner, greener testing
Case Studies
Case Study #1: Concurrent execution of JUnit test
cases
Case Study #2: Concurrent execution of GUI testing of
iOS applications
• It can take a large number of test cases to cover all the variations
that users could experience
• Different configurations
• OS versions (iOS ?)
• Device Orientations (Portrait, Landscape)
• Screen sizes (3.5", 4")
Software Testing in the Cloud
Management
• Process
• Technology
• People
Cloud testing strategy
Roles and responsibilities
Can’t be
achieved as an
execution-only
Management: Process
Strengths
• Faster • Cheaper • BetterWeakness
• Network connectivity • Security • Standards • Availability • Performance • Project managementOpportunities
• Faster execution • Faster feedback • Efficient testing process • Value propositionThreats
• Complexity • Hype • Vendor lock • Tool chain • Education • TrainingSWOT
ANAYSIS
Management: Process
Migration Strategy
• Where are you now?
• Where do you go next?
SMART-T: A decision
framework to migrate
testing to the cloud
Desirable
Faster Cheaper Better
Business Drivers Feasible YES YES Types of Applications Technical Factors Types of Testing Test Execution Environment Acceptable NO NO YES NO Stakeholders
Workshop Pilot Study
Evaluation Results Trial Migration Adjust Estimates Document Guidelines Implement Migration Plan Actual Migration MAYBE MAYBE MAYBE Operational Results
Management: Process
Evaluate current overlapping activities
• Agile development and testing
• Test early, test often
• TDD, Unit testing
• JUnit in the cloud
• Google Test in the cloud
• HadoopUnit
• Faster feedback
• Automation
Management: Process
Cost model
• How much does it cost you to test now?
• Do you have a test lab? Machines for every project?
• How often do you configure the machines?
• How often do you upgrade them?
ABC: Activity Based Cost model – Identify
and put $$ to all the big and small activities
Management: Technology
Testing as a Service
Distributed processing technologies
Test execution environments
Management: Technology
Management: People
Will your testers be able to adapt to cloud testing?
• Testing at many levels – User Interface, Services, Governance, Process, Security, Integration
Programmers?
• Beyond unit testing
System administrators?
• Cloud service providers
Training
Continuing education
Testing skills, programming skills
Communication skills
Testing in the Cloud: Strategy
Does testing in the change the foundation of testing?
Does it involve new technique, technology, and domain?
How is it going to effect your current tasks? (good/bad)
Do you need new skills?
Are there different types of testing?
Are there tools to help you?
Risks associated with cloud testing
Assumptions, constraints
Testing in the Cloud: Strategy
Critical Success Factors (CSF)
What are the CSF for testing in the cloud?
• Automation?
• Skilled testers?
• Test lab/environment?
How do your measure them?
• Post release evaluation?
• Number of bugs for the release
• Test lab setup and tear down?
Roles and Responsibilities
Developers: Unit testing, Integration testing
Test Analyst: Implement testing in the cloud strategy
Technical Test Analyst: Testers
Customers: Acceptance testing
IT department: POC to cloud provider, monitoring, availability
Cloud providers: SLA, services testing
Lessons Learned
Testing Environment is a legacy system
Acceptability of partial migrations
Selecting/Preparing test execution environment
Configuration in the cloud is challenging
The nature of the test cases
False negatives
What Does it Mean for Testers?
Key Points
Software testing is challenging activity
SOA, virtualization, computational grid, and cloud computing bring efficiency in development process/consumer need
Leverage these technologies in software testing
Plan, start early, know your goals
Understand the holistic system architecture
Understand the migrated test data
Key Points
Cloud computing is not hype!!!
Provides the infrastructure to process Big Data
It’s changing the testing landscape
It’s changing the testing profession
We have had similar shifts in the past
Cloud computing is here to stay
Food for thought!!!
Thank You
[email protected]
References:
• Jamsa: Cloud Computing: SaaS, PaaS, IaaS, Virtualization, Business Models, Mobile, Security