Fundamental Questions about Testing in Cloud
Cloud testing and TaaS (testing-as-a-service) are comparatively novel subjects in software testing society even though there are many technological papers published discussing the cloud architectures, technologies, and models, design, and management. From now, test engineers and quality assurance managers often stumble upon many issues and challenges in testing modern clouds and cloud-based applications. Typical questions that come up are as follows:
- What is cloud testing?
- What are its special test process and extent, necessities and features?
- What are different types of cloud testing, environments, and forms do we need to act upon?
- What are the differences flanked by cloud-based software testing and traditional software testing?
- What are the unique chuck and diverse features of cloud-based software testing?
- What are the exceptional issues, and challenges, and needs for testing in cloud?
- What is TaaS and how is it interconnected to Cloud?
Cloud computing is a model enabling an on demand access to a shared pool of configurable computing assets that can be rapidly provisioned and released with nominal effort. It comes in three key dimensions of service offerings: software-as-a-service (SaaS), platform-as-a service (PaaS), and Infrastructure-as-a service (IaaS). Leisurely a fourth dimension is being added to it in the form of Testing as a Service (TaaS) in the cloud. TaaS is an effort of bringing the benefits of cloud computing to the world of software testing. By leveraging the payback offered by cloud computing, TaaS can help in following ways:
- Help to cut the outlay of quality in the cloud
- Decrease the time to create the test environment
- Reduce full-time resource requirements for testing
- Diminish test succession time
- Enhance parallel and intense loading
- Hence reduce time to move to production.
To identify with the comparative position of this evolving fourth dimension i.e TaaS, we should to understand the other three magnitude of the cloud offerings i.e SaaS, PaaS and IaaS.
A typical cloud must have several distinct properties: elasticity and scalability, multi-tenancy, self-managed function capabilities, service billing and metering functions, connectivity interfaces and technologies. The highlights of cloud computing can be captured in the following tags:
- Clouds can be Private, Hybrid, Public
- Cloud services can be as SaaS, PaaS, IaaS
- Cloud usage can be Enterprise, Community, Open
Cloud Migration: everybody is thinking if not started yet
Cloud computing provides a lucrative and customizable means through which scalable computing power and varied services (such as computer hardware and software assets, networks and computing infrastructures), different application services, business processes to personal intelligence and association are delivered as services to large-scale global users at whatever time and wherever they need.
As a result most of the business in the large and SMB (Small and Medium Business) group have already started or planning to initiate migration to the cloud. The principal derivatives that are being looked at are the cost effectiveness and lack of effort in scaling up and scaling down the infrastructure.
Over to Cloud: What changes for the Testing players?
By tradition people have been working on solo server applications and to ensure the quality of such applications several techniques and approaches were developed and practiced in the end. Now since the migration to the cloud is becoming general practice hence it is important to understand the Do’s, the Don’ts, and the How-To of the cloud migration. To execute cloud-based software testing one need to find out testing and measurement activities on a cloud-based environment and how to pull cloud technologies and solutions. It is important to figure out the relative balance in the labors/tools/assets that need to be employed to make sure that each of the factors heartwarming the end-user experience is sufficiently taken care of without shooting the worth of quality. The objectives of the quality group liable for testing in cloud should now slot in the following points:
- To guarantee the quality of cloud-based applications deployed in a cloud
- To confirm the functional services, business processes, and system performance of the application deployed on the cloud
- To verify the scalability based on system requirements of the cloud based application
- To validate software as a service (SaaS) in a cloud environment
- To validate the software performance and security
- To make sure the provided automatic cloud-based functional services, for example auto-provisioned functions
- To test cloud compatibility and inter-operation capability between SaaS and applications in a cloud infrastructure, for example, checking the APIs of SaaS and their cloud connectivity to others
Types of Cloud Testing
Cloud Testing can be of following four formats depending on weather you are a cloud vendor:
- Testing over cloud: It tests cloud-based service applications over clouds, including private, public, and hybrid clouds based on system plane application service necessities and specifications. This usually is performed by the cloud-based application system providers.
- Testing of cloud: It validates the quality of a cloud from an external view based on the provided cloud specified capabilities and service features. Cloud and SaaS vendors as well as end users are interested in carrying on this type of testing.
- Testing inside cloud: It checks the quality of a cloud from an internal view based on the internal infrastructures of a cloud and specified cloud capabilities. Only cloud vendors can execute this type of testing as they have accesses to internal infrastructures and associates between its internal SaaS(s) and automatic capabilities, security, management and monitor.
- Testing SaaS in cloud: it aims to assure the quality of a SaaS in a cloud for it functional and non-functional requirements.
What is new in Cloud Testing ?
The new features that are required in a cloud based testing environment are principally of the following four types:
- Cloud-based testing environment/platform: The scalable environment/platform is a new function compared to the traditional preset, dedicated and pre-configured testing environment.
- SLAs of the services: In cloud computing, all clouds, SaaS, and applications usually present diverse services to their end users and customers with well-defined service-level-agreement. obviously, these agreements will become a part of testing and quality assurance requirements, such as system reliability, availability, security, and performance agreements.
- Price models and service billing: Seeing as utility computing is one of basic concepts and features in cloud computing, as a result price models and utility billing becomes basic parts and service for testing as a service. In other words, required computing assets and infrastructures and testing task services will be charged based on pre-defined price models.
- Large-scale cloud-based data and traffic simulation: Applying and simulating big scale online user accesses and traffic data (or messages) in connectivity interfaces is necessary in cloud testing, particularly in system-level function validation and performance testing.
TaaS is the enabling of the static/dynamic on-demand testing services in/over clouds for the third-parties at any time and all time. One of the primary objectives is to reduce the IT funds of businesses to focus their core businesses by outsource software testing tasks to a third party using TaaS service model. The TaaS workflow can be divided into several sub-tasks which need to be completed to build the TaaS model working. The sub-tasks in the TaaS workflow as follows:
- TaaS process management, which offers test project management and process control.
- QoS requirements management, which supports volume keeping and modeling of software testing and QoS requirements, including quality assurance modeling.
- Test environment service, which provides on-demand test environment services to set up the required virtual (or physical) cloud-based computing assets and infrastructures, as well as the necessary tools.
- Test solution service, which offers diverse systematic testing solutions (like test modeling and test methods), and test-ware generation and management services.
- Test simulation service, which establishes on-demand test simulation environments with selected facilitates and supports the necessary test message generation.
- On-demand test service, which provides on-demand test execution services based on selected schedules and test wares.
- Tracking and monitor service, which allows test engineers to track and monitor diverse program behaviors at different levels in/on/over clouds for the testing purpose.
- TaaS pricing and billing, which enables TaaS vendors to offer customers with selectable testing service contracts based pre-defined pricing models, and billing service.