In the past few years, IT has witnessed an evolution of virtualisation in the form of cloud computing. Any novice to the cloud must picture cloud computing as a model that views everything “As a Service”. It is obvious to define cloud computing as a total solution that delivers IT as a Service. Like virtualisation, its motto is resource sharing whereby allocation and availability are on demand via the Internet.
Real life examples for Cloud ideologies:
Streaming services like Netﬂix and Hulu pride themselves on providing fast and easy on-demand shows and movies. With so many users and so much data, the cloud is an important tool for them to provide the shows you crave. But it doesn’t stop there. Many other activities utilise cloud computing, such as streaming music and eBooks.
Another example is the ever increasing number of applications that have moved to the cloud. Whether it’s Microsoft Office 365, or SalesForce.com, or the thousands of other applications that have moved to the cloud, many businesses now have the option to run their applications through a web browser. This reduces or eliminates the upfront capital costs, provides predictable expenditures, lowers support needs and ensures your application is up to date.
Ahha... Here is the good one. Having a meal at a restaurant can be described as catering which is a service. As a customer, you only go to the restaurant, order the dish of your choice and pay for the services. The onus of possessing the ingredients, preparation for the dish, cooking the dish, its presentation, serving the dish to you, clearing and cleaning the table once done, packing any excessive leftover food all fall on the restaurant’s administration. Now please do not feel Hungry, let us continue to understand few basics about Cloud testing and its forms below.
Over the last weeks, I have found myself in several rather intense discussions about “cloud testing”: what it is, what it isn’t, and what it means for testing and QA professionals.
What is Cloud Testing?
Cloud testing is the process of testing the performance, scalability and reliability of Web applications in a cloud computing environment.
A lot has been written about the cloud over the past few years, and rightfully so. Whether you're looking to extend an existing application or build something entirely new, using cloud-based resources can save you time and money.
There are real advantages to moving your dev/test efforts to the cloud regardless of your application deployment or the size of your organisation. From cloud-based testing to developer collaboration, in many ways, the cloud is a much better alternative to manual testing with your own infrastructure build-out.
Testing in the Cloud means you are also including availability, security, performance, interoperability, disaster recovery, and multi-tenancy testing. Testing is performed in three distinct areas of cloud that includes infrastructure, platform and service
Cloud testing facilitates services to clients based on internet and delivers services like resources, software, and information by leveraging cloud computing resources and models to enable all aspects of testing in a highly cost-effective manner. The aim of cloud testing is to ensure high-quality service delivery and help to avoid data outages by comprising of testing inside, outside, or either, in a datacentre.
Benefits of Cloud Testing
With organisations adopting cloud services, they definitely get the benefit of quick access to data whenever needed without experiencing any undue delays. It also helps users’ data to be moved to large data centres, which are remotely located, with the user being able to access the same anytime needed. Further, it reduces the direct price of equipment maintenance and management and helps attain rapid ROI on application assets and brings about a faster time to market.
Let's dive in and look at 10 of benefits now:-
- Cheap and easy test bed creation, reconfiguration, and tear-down.
- 24-hour access to resources.
- Easily customisable: Consistent dev/test tools setup for existing and new staff.
- The cloud promotes collaboration.
- Multi-environment and multi-platform support.
- The cloud enables DevOps.
- Simulate users or devices.
- Perform rigorous performance testing.
- Mobile device simulation/emulation.
- Serves as proof of concept.
Cloud Delivery Models
The cloud mainly has three types of delivery models or components that provide “as a Service” capabilities:
SaaS, IaaS and PaaS
Cloud Computing services relate to the testing industry in several ways, including SaaS (Software-as-a-Service), IaaS (Infrastructure-as-a-Service) and PaaS (Platform-as-a-Service, on-demand application development platform).
As a result, you quickly respond to your client’s needs, without the need for time-consuming installations. Obviously, customers are showing less willingness to pay what they used to in advance for software and then to add servers, employees to maintain them, yearly application maintenance licenses, upgrades, and so on. These clients are right. Why should they? Why pay more if you can subscribe rather than buy, pay for usage only rather than commit? And all this, while avoiding the hassle associated with installations.
Cloud Testing Forms:
Cloud testing can be broadly divided into four different categories based on what they aim to do:
Testing of the whole cloud: The cloud is viewed as a whole entity based on its features and testing is carried out based on that.
Testing within a cloud: This is the testing that is carried out inside the cloud by checking each of its internal features
Testing across the clouds: Based on the specifications, here the testing is carried out on the different type of clouds-like public, private and hybrid clouds.
SaaS testing in cloud: Functional and non-functional testing is performed based on requirements.
Few Cloud Testing Tools: Have you heard about them?
- Load/Performance: Perfecto Mobiles, Keynote (Test Center Enterprise), BrowserMob, CloudTools, GFI
- Regression/Functional: Windmill, Soasta CloudTest, Selenium
- Security: Nessus (Detect Vulnerabilities), Wireshark
The future of software testing is bright. Since being recognised in the past few years as an important part of the development effort, testers are already seen as an integral part of project teams, participating in all of the project’s different phases.
Using the cloud for testing is immensely helping organisations to acquire the required tools, software licenses, infrastructures at a very low cost without having to set it up themselves and later worry about its maximum utilisation.
One common interpretation of “cloud testing” that many vendors seem to adhere to is using the cloud to run or manage the tests themselves. For example, testers can use the cloud to generate massively distributed load tests, simulate a large number of mobile devices, or run functional and performance monitors from all over the world. Although these are all extremely valuable offerings themselves, they are not very specific for testing cloud applications. So, calling it “cloud testing” is kind of a stretch in some situations.
Do not Stretch, let’s Cloud.