Tuesday, June 19, 2012

Testing In Cloud Computing



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 Details
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.

Monday, June 18, 2012

The “Personal Cloud” Theory

As IT industry become more complex and widespread consultants find it useful to articulate new labels for unfolding novel phenomena. The most recent example is the well-known use of the “personal cloud” buzzword.  It describes what will be displacing what has heretofore been the key focus of computing, which is the deployment of desktop personal computers. In the new epoch of “post personal computer” computing, the Gartner firm has started promoting the theory of the “personal cloud” to describe what is now becoming adopted at a rapid pace as new advance to computing.
There is a drastic difference between desktop computing using stand-alone personal computers and what can be now found in cloud-based networks that will support the highly diverse computing needs of a user population. Differences are technological, economic plus behavioral. Migrating from reliance on desktop personal computers to personal cloud computing represents a major change. It cannot be achieved through small incremental improvements. It requires a refit in the architecture and the organization how systems are designed and then delivered.

The initiative of cloud computing is rooted in the technology of virtualization. The evolution of personal computing was based on voyage of information processing from the central mainframe computer into the hands of individual users through the desktop computer. The personal cloud is reversing this leaning. As the processing power of billions of personal desktop computers expands, the utilization of their capabilities is withdrawing. Only a part of the computer logic is now dedicated to applications through increased access of computer services directly from the Internet. The crushing majority of desktop computing is dedicated to the processing of codes that deal with the operating system, to the manipulation of databases and to the organization of communications. As security vulnerabilities are escalating, much of the power computing is dedicated to security assertion. The computer that is now cabled to sit on the desktop is increasingly inadequate as users shift to mobile computing.

Virtualization of computing makes it achievable to create pools of server-based central computing power that can distribute computing cycles for thousands of individual desktop machines. Virtualization allows for the pooling of data storage to obtain better employment of capacity. Virtualization combines expensive communication service to serve a cluster of virtual computers and so reduces the exposure to security risks. Virtualization detaches local desktop hardware from having to maintain the large overhead of operating systems. Virtualization makes it possible to take lead of economies of scale of the combined capacity of hundred thousands of central servers while enabling fail-overs and preset back-up. Virtualization can deliver specially high levels of service reliability. Though separation of applications the underlying infrastructure, it is possible to create data processing utilities that deliver a standard computing environment that is independent from what the user needs. In this mode, the user gains liberty to process applications using any computing device from any location. The central means for access to computing is not any more the dedicated personal computer, but access to the personal cloud that can be obtainable anywhere, any time and from any device.

The personal cloud makes it possible to gain computing services from consumer-grade devices available at swiftly decreasing competitive prices. Such devices will browser-connect to the cloud without requiring dear systems integration labors. They depend on the network infrastructure, needs only simplified browser software for application services. This arrangement greatly reduces security risks since the user’s smartphone or tablet does not store operational code that is the most important source of vulnerability. All such code is stored on servers, where it can be protected with much greater competence.

The cheap cost of the disposable and rapidly archaic user devices can be matched with the large capital cost of cloud computing centers where all of the processing and communication takes place. The central amenities can be then constructed to have low fall rates because engineering focus can now concentrate on primarily on the delivery of commodity machine cycles. The personal cloud device can be set up for receipt of user charges based on computing usage, on a per use basis.

The characteristic of rich desktop computer locks users into fixed cost economics. The personal computer user must be then fitted into custom-designs that are neither interoperable nor subject to transplantation into another environment. on the contrary, if the cloud is constructed using open source application interfaces the cloud customer can take advantage of competitive offerings from a variety of commercial cloud services, each offering a variety of pricing plans and a assortment of services. Such an arrangement can be also deliberate as a hybrid model.

The owners of personal clouds will have right to use to a range of public and private cloud services. In a typical environment the private cloud will contain proprietary and certainly classified computing services. Depending on security and pricing terms, customers can the shop for applications from a huge collection of ready-to-use applications, usually available for a fixed price, inclusive of maintenance. There will be no cost of integration, whereas the user of a personal computer will have to disburse money for custom-adaptation of every application into a uniquely defined computing architecture.  In the personal cloud it is possible to rapidly swap applications for upgrades provided that the application interfaces are reasonably constructed as open source protocols. In contrast, owning a personal computer will always require incurring costs for making changes for any functionality.

The dependency on personal computing has pushed developers to organize projects that required building increasing complexity and size into any design. Constructing a project, which assures a total interdependency between desktop, laptop, server, database and network computers imposes rising costs of synchronization and integration for the entire effort. Consequently the size of individual projects keeps growing, the implementation schedules are elongating and the gap between original requirements and what is delivered is growing until much that was promised and what is ultimately delivered makes much of the effort obsolete.

The personal cloud avoids the dependency on large projects. For example, the database storage pool can be constructed as a utility service that can have an implementation schedule that can be measured in decades. The server computer processing pool can proceed on schedule that requires only a few years, whereas the assembly of local applications can proceed at a pace of only a few days.

Outline

The last decade has seen a rapid pace of evolution in computing. We are seeing orders of magnitude changes. Firms are moving from reliance on hours of response time to results in minutes and even seconds. Enterprises need to process instantly billions of transactions that require not only internal data but also integration with external sources.

The client-server mode, which depended on billions of desktop computers to assist in the processing of local work, has outgrown its utility. The movement towards the “post personal computer” era has already begun. It places reliance on pooled cloud computing services, which are accessible through a person’s own private cloud. The private cloud can be then defined as access privileges to a collection of cloud services.

In its network figure the personal cloud represents a shift of awareness based on the ownership of assets to the ability to have widespread access to everything that is available. The personal cloud will endow each person with the potential of access to knowledge that hitherto has remained unreachable.

Your Reviews/Queries Are Accepted