ISSN ONLINE(2320-9801) PRINT (2320-9798)

All submissions of the EM system will be redirected to Online Manuscript Submission System. Authors are requested to submit articles directly to Online Manuscript Submission System of respective journal.

Cloud Computing Applications and their Testing Methodology

G. Gowri1 , M. Amutha2
  1. Graduate Student, Department of CSE, Nehru Institute of Engineering and Technology, Coimbatore, India
  2. Assistant Professor, Department of CSE, Nehru Institute of Engineering and Technology, Coimbatore, India
Related article at Pubmed, Scholar Google

Visit for more related articles at International Journal of Innovative Research in Computer and Communication Engineering

Abstract

Cloud computing has opened up new opportunities for testing departments. New technology and social connectivity trends are creating a perfect storm of opportunity, enabling cloud to transform internal operations, customer relationships and industry value chains. To ensure high quality of cloud applications under development, developer must perform testing to examine the quality and accuracy whatever they design. Business users are drawn to cloud’s simplified, self-service experience and new service capabilities. In this research paper, we address a testing environmental architecture with valuable key benefits, to perform execution of test cases and used testing methodologies to enhance quality of cloud applications.

Keywords

Cloud, Cloud Testing, Testing, Cloud Applications, Test Cases, Cloud Infrastructure Environmental Architecture.

INTRODUCTION

Cloud computing has become a new computing paradigm where the cloud could provide both virtualized hardware and software resources that hosted remotely and provide a use-on-demand service model. Cloud computing offered an ability to access shared resources and common infrastructure, which provide services on demand over the network to perform operations that meet changing business needs. It provides facilities for users to implement, deploy and manage their applications ‘on the cloud’ which entails virtualization of resources that preserves and accomplishes itself. Cloud testing uses cloud environmental architecture for software testing. Organizations pursuing general testing that carrying some challenges like limited test budget, meeting deadlines etc. To serve a quality product, testing is the last solution to any kind of problem we would face in future from customer site. Cloud testing is a form of software testing wherein testing is done through using resources over cloud applications under the cloud infrastructure. This is where cloud testing has emerged as a fresh approach to testing where cloud computing environments are leveraged to simulate real world with application’s performance, consistency , speed, security and functionality.

RELATED WORK

In [2] authors applying an automated test generation tool faces the challenge of generating various cloud states for achieving effective testing, such as achieving high structural coverage of the cloud application since these tools cannot control the cloud environment. To address this challenge, we propose an approach to 1) model the cloud environment for simulating the behavior of the real environment and, 2) apply Dynamic Symbolic Execution (DSE) to both generate test inputs and cloud states to achieve high structural coverage. In [3] Cloud computing is a one of the emerging technology which opens new door for software testing. This paper investigates the software testing in cloud platform which includes cloud testing models, recent research work, commercial tools and research issues. In [5] authors used cloud graph to support modelling,analysis and testing of computing clouds in the small, for that they formulate the notion of a bare-bone cloud as a foundation for analysing cloud computing. An interaction between the environment and a cloud can be modelled as a interaction between two clouds. In bare-bone cloud, a cloud is a directed graph of providers and consumers, each provider carrying a set of computing resources. In this cloud graph, the representation of resources as node attributes, the use of resources as a predicate, and an execution as a set of directed paths of a cloud graph. Our model can be viewed as a kind of predicate-based graph.

CLOUD TESTING & ITS REQUIREMENT

For testing non-internet applications, virtual instances of testing environment can be quickly setup to do automated testing of the application. The cloud testing service providers provide essential testing environment as per the requirement of the application under test. The actual testing of applications is performed by the testing team of the organization which owns the application or third party testing vendors.
Companies pretend real world Web users by using cloud testing (A testing process that involves using cloud resources) services that are provided by cloud service. The main objective behind cloud testing is:
? To ensure the quality of cloud-based applications organized in a cloud, with their functional amenities, business procedures and system performance as well as scalability based on a set of applicationsbased requirements.
? To test cloud compatibility in cloud infrastructure.To run a suite of test cases over a cloud application you may need to perform following steps such as:
? Create and configure cloud computers.
? Start them.
? Upload tested applications and test data to be tested over the cloud.
? Run your tests.
? Get test results
The entire process takes time and error-prone, it may be quite easy to run several tests on cloud machines with automation. Leading cloud providers and enterprises are implementing data centres that are purpose-built for the cloud. These data center operators, and their network equipment manufacturer (NEM) suppliers of high-capacity routers and switches, storage devices, compute platforms, and security devices are facing new challenges in cloud testing, assessment and optimization.
Drawing from its expertise in working with the world’s largest cloud providers and NEMs, Ixia has found that testing generally fall into seven key categories:

Virtual infrastructure

Virtual switching enables you to spawn whole network topologies as virtual machines (VMs) and interconnect them in software. Because performance varies greatly depending on the overall load of the server, it is critical to test virtual switching scalability to address huge bandwidth requirements in the access switching tier. Multi-tenant clouds need to be validated to ensure service levels agreements can be met under stressful events such as VM mobility. Ixia offers a virtual test solution (IxVM) where test ports can be deployed on the inside of compute platforms to validate virtual topologies, software defined networking, and test storage IO. Ixia flagship user interfaces, IxNetwork and IxLoad control the test ports for a seamless experience between physical and virtual test interfaces.

Storage infrastructure

Storage traffic uses a lot of the available bandwidth on a converged LAN/SAN network and needs preferential treatment. Ixia offers a wide range of offerings depending on the storage network being deployed, including fibre channel over Ethernet (FCoE), FC, iSCSI, NFS, and CIFS. Key metrics, including IO throughput, reads/writes, errors, and latencies, can be used to make vendor selections or for storage tuning. Local- and network-attached storage targets, converged network adaptors (CNAs), and FC/FCoE switches must be tested.

Switching tiers

A huge volume of traffic is flowing between applications within the data center on separate physical servers (east to west). With thousands of users simultaneously accessing content/applications from the Internet (north to south), you need switching tiers that can scale. Testing must verify the scalability and resiliency of large layer 2 network domains with the emergence of SPBM, TRILL, and Cisco's Fabric Path. Ixia offers a full array of solutions including RFC benchmark canned suites (RFC2544/2889/3918), edge routing emulation, L2MP protocol emulation, VLAN stacking, and multicast and DCBX protocols.

IPv6 transition

Since data center operators face tough decisions on how to support IPv6 in the data-center, Ixia supports the key transitional mechanisms such as NAT and 6rd, and native schemes such as dual-stack. This can be used to assess the network and application performance, including scalability, of the various scenarios. For private cloud scenarios Ixia supports DHCPv6 emulation to determine the IP assignment performance during peak usage periods.

Security

Virtual security applications are VM-aware implementations of security functions, distributed between components of cloud applications. They serve to protect each component from other traffic on shared networks and other VMs on virtualized servers. To verify your overall security measures, use a test system to send a mix of application protocols between VMs and verify that traffic was blocked or allowed based on the configured security policies. Perimeter security devices such as firewalls, intrusion prevention systems, unified threat management systems, and VPN gateways can be tested using a mix of real application traffic and malware to determine security effectiveness, accuracy, and performance. Connection/transaction/tunnel (IPsec) peak capacities and rates can be assessed for vendor selection and network tuning.

End-to-end QoS

Any multi-tenant public or private cloud requires QoS from the WAN port of entry all the way through to the individual VMs. Tiered service levels ensure QoS across tenants and types of data. Testing and assessment are critical components of optimizing the whole data center for specific applications and tenants, ensuring the best overall QoS. Congestion can be created on egress ports using Ixia solution to validate L2/3, application, or DCBX (PFC, ETS, and CN) QoS schemes.

Application delivery

The ever-increasing use of bandwidth-hogging, media-rich applications has led to more users experiencing poor Quality of Service (QoE) more often. A cloud data center has the best opportunity to break this cycle because of its bandwidth elasticity. To ensure quality application delivery, you must test the architecture of the compute platform and the applications that can span many physical and virtualized servers, using a huge volume of east-west internal data center traffic, along with a huge volume of north-south video sessions. Real application servers can be used in an Ixiadriven test topology using client-side-only emulation. This enables the assessment and optimization of end-to-end application QoE through the data center for protocols such as video (using protocols like Apple HLS and Microsoft Silverlight), voice, email, FTP, and peer to peer (P2P).

ARCHITECTURE SUPPORT FOR CLOUD TESTING

Cloud Computing architecture, just like any other application or software, is considered into two main sections: Front End and Back End. Front end is a client or any application which is using cloud services. Back end is the network of client machines with servers having computer program and data storage system. Cloud has centralized server administration to administrate the systems client, demands etc. Once user scenarios are developed and the test is designed, and executed. Once the test completed the cloud service provider deliver results and analytics back to corporate IT professionals through real-time dashboards for a complete analysis of how their applications and the internet will perform during peak volumes.

VARIOUS TESTINGS TO BE PERFORMED OVER CLOUD APPLICATIONS

Cloud testing is often seen as only performance or load tests, however, as discussed earlier it covers many other types of testing. Cloud computing itself is often referred to as Software as a Service (SaaS) and utility computing. In regard to test execution, the software offered as a service may be a transaction generator and the cloud provider's infrastructure software.
There are various testing methods to be performed; we are here using basic and general testing approaches:
? Stress test over Cloud application
? Load & performance test over Cloud application
? Functional testing on Cloud application
? Compatibility testing on Cloud application
? Browser Performance testing on Cloud application
? Latency testing on Cloud application
? SOASTA test over Cloud application
? Targeting infrastructure test on Cloud application
? Failover test on Cloud application
? Capacity test on Cloud
? Soak test on Cloud
The overall tests on Cloud applications can give a different objectives and test results.

STRESS TEST OVER CLOUD APPLICATION

Stress testing is used to performance testing which focused on determining an application’s robustness, convenience, and consistency under extreme conditions. The aim of stress testing is to recognize application issues that become apparent under risky conditions. These conditions can include dense loads, high concurrency, or limited computational resources. Right stress testing is useful in outcome synchronization and effective bugs interconnect problems, priority problems, and resource loss bugs. The plan behind stress a system is to the breaking point in order to find bugs. The system is not expected to process the overload without adequate resources, but to behave (e.g. Failure) in an acceptable manner (e.g., not corrupting or losing data or loss).Stress tests typically involve simulating one or more key production scenarios under a variety of hectic conditions. For example, you might deploy your application on a server that is already running a processor-intensive application; in this manner, your application is immediately “starved” of processor resources and must compete with the other application for processor phases. You can also stress-test a single item such as a stored procedure or class or a single Web page.

LOAD TEST & PERFORMANCE OVER CLOUD APPLICATION

The process of analyzing software applications and supporting infrastructure to determine acceptable performance ,capacity and transaction handling capabilities of real world data with usage conditions and executing them against the application and supporting infrastructure under test. The basic approaches to performing load testing on a Web application are:
? Identify the performance-serious states.
? Identify the workload status for distributing the entire load among the key scenarios.
? Identify the metrics to verify them against your performance objectives.
? Design tests to simulate the load.
? Use available tools to implement the load according to the designed tests, and capture the metrics for proper load analysis.
? Identify and analyse the metric data captured during the tests; make a record for proper load spreading. By such an iterative testing process, we achieve our performance objectives. There are several reasons for loadtesting to be accomplished over Web applications. The basic need of load testing is used to govern the Web application’s behaviour under both usual and foreseen peak load conditions.
Performance testing eliminates the constraints of traditional testing solutions like hardware availability, software licensing and installation, version control, test creation, system monitoring, and the cost of hiring and training staff.

FUNCTIONAL TESTING ON CLOUD APPLICATIONS

All software are designed and developed to meet and satisfy certain functional basic requirements. A functional requirement may be nominal, business, or process based. Functional Testing is the process by which expected behaviour of an application can be tested. Web Functional testing involves carrying set of tasks and comparing the result of same with the expected output and ability to repeat same set of tasks multiple times with different data input and same level of accuracy. Web Functional Testing can be performed both manually with a human tester or could be performed automatically with use of a software program.
The traditional testing life cycle processes that are likely to be impacted
• Test Requirements
• Applications / systems are expected to be hosted in a Private, Public or Hybrid clouds.
• There may be a dependency on the third party vendors.
• Test Planning
• To test the cloud applications in a very similar environment to the one in which it will be accessed when it goes live.
Testing should scrutinize the application's performance, reliability, speed, security and functionality
Software Testing tools that are used for testing of conventional applications have to re-evaluated when applied to Testing application hosted in the cloud as there is a need for tools to allow test engineers to analyse the network, desktop and implications of changes within the Cloud.
• Test Data Management
• Data encryption and doubly scrutinized for testing in cloud.
• Data Obfuscation
•Using Synthetic data for testing
Apart from the traditional testing methods / techniques the following additional components (not limited to) may have be included in the scope as appropriate
• Support for Multiple browsers
• Testing the applications across different browser versions (IE, Firefox, Safari, Google Chrome, Opera) i.e. multi browser comparisons
• Availability
• Since there is a built in dependency on the 3rd party cloud platform vendors
• To facilitate Follow the Sun advantage model
• Accessibility
• Accessible to the intended user groups across the geographies Mostly 24/7 –application access may be required to cater to user groups across different geographies
? Data Security To ensure that the potentially sensitive information which traverses the cloud is safe and secure
? Privacy To ensure the privacy of the application users and associated information when used in Cloud

COMPATIBILITY TESTING FOR CLOUD APPLICATIONS

Compatibility testing is used to resolve compatibility issues that are significant for the product or software and design a cost-effective matrix of platforms against which product tested. A typical compatibility test includes:
? Various hardware configurations
? Different Operating Systems/Platforms
? Network Environment
? Computer Peripherals

Common Cloud Test objectives:

? Stress Testing –Pushing systems to maximum load capacity and beyond
? Performance Testing –Measuring response time variance over load and time
? Reliability Testing –Measuring performance degradation over longer periods at varying load levels
? Performance Testing in Cloud –Testing Tool Comparisons

Some of the cloud test services gives a test objectives are:

BROWSER PERFORMANCE TESTING ON CLOUD APPLICATIONS

To verify application's support for various browser types and performance in each type can be accomplished with ease. Many tools enable automated website testing from the cloud.

TESTING END-TO-END FOR CLOUDAPPLICATIONS

End-to-end availability is the first service aspect require to test. This involves testing connectivity. There are several commercial systems available for testing latency in a WAN environment. The cloud services provider does not own the WAN data communication infrastructure. However, using network observing and analysis appliances at the data center and within your place, your cloud provider can measure the WAN performance to maintain the appropriate service level. The ability to deal with performance data in support of agreed SLAs should drive your choice of cloud provider and communication provider.

LATENCY TESTING

Cloud testing is used to measure the latency between the action and the corresponding response for any application after deploying it on cloud. The tests were executed, using the agents, from multiple locations around the world. The results of the tests can be illustrated in the diagram below.
The Rack space Cloud performed well across all categories—responsiveness (1-pixel GIF), network throughput (2MB GIF), computing power (CPU), and I/O (database search). While no provider was a clear winner in every category, Rackspace Cloud was in the top tier for each test. We even managed to surprise the testers on the CPU front: “The PaaS providers did well, largely because of their shared storage model that is optimized for large data sets across many machines. We were surprised by how well Rackspace’s cloud handled the simultaneous traffic despite being a PaaSbased solution.”

SOASTA CLOUD TEST

SOASTA CloudTest is deployed as an on-demand service, leveraging the cloud to generate the load. It is comprised of the methodology described above, the services provided by our experienced load testers, and the Global Cloud Test Platform that provides a cross-cloud infrastructure for generating load. Within the application, open source libraries are a fundamental part of the offering, used throughout the product for providing various functions. SOASTA provides the software as part of the service. As seen in Figure 1, CloudTest is deployed using a distributed architecture in the cloud, complemented by an appliance for testing behind the firewall.
While customers can use SOASTA's application for test creation and execution, the Global Cloud Test Platform is built to support additional tools, including Apache JMeter, the most popular open source load-testing tool. The SOASTA platform reduces the complexity and time of deploying JMeter scripts to the cloud, making it dramatically easier for the JMeter community to create, deploy, execute and analyze web-scale load and performance tests. JMeter scripts run without modification. Once the test is built, SOASTA takes care of managing and provisioning servers and executing the test.The key capabilities we've built into this approach come as a result of our experience deploying to the cloud. The first deployment environment was Amazon EC2. Because the requirements for load and performance testing fit almost all of the characteristics described above, Amazon's implementation of a cloud infrastructure was a perfect match. EC2 was the first to provide a platform that dramatically changed the cost equation for computing resources and delivered an elastic API for speed of deployment.As the application depends on the swift provisioning and releasing of servers, SOASTA had to quickly identify bad instances and bring up replacement instances. The provisioning technology in SOASTA's implementation is one of the key features of the platform. As new APIs, including open source alternatives such as libCloud become available, SOASTA will use them to expand the reach of the Global Test Cloud. The other key capability is a real-time analytic engine built exclusively for testing web and mobile applications, enabling quality assurance and development teams to test and monitor their websites under both typical and extreme traffic conditions. Given the massive amounts of data generated in web-scale tests, including the resource being monitored as the test is executed, a cloud-based, highly scalable engine is required to provide actionable information in real-time.

FORMS OF CLOUD-BASED SOFTWARE TESTING

There are four different forms of cloud-based application or software testing. Each focus on different objectives:
? Testing a SaaS in a cloud
It reassures the quality of a SaaS in a cloud based on it functional and non-functional service requirements.
? Testing of a cloud
It validates the quality of a cloud from an external view based on the provided cloud specified capabilities and service features.
? Testing inside a cloud:
It checks the quality of a cloud from an internal view based on the internal infrastructures of a cloud and specified cloud proficiencies. Only cloud vendors can implement this type of testing since they have accesses to internal infrastructures and connections between its internal SaaS and automatic proficiencies, security, management and monitor.

KEYS TO SUCCESSFUL CLOUD TESTING

Cloud –based test environment give testing teams greater control to build and execute tests, analyses application performance and look for bottlenecks and stress areas while tests are running. The cloud agrees to testers to scale from thousands to millions of users to access the breaking point and capacity thresholds to combat highly unpredictable demand levels. This gives testers a clearer picture of possible runtime errors, which reduce production errors .Once a tester logs in and executes a test, the results are available to developers, who can judge performance and fix anomalies, ever the cloud itself. It reduces communication gap between testers and developers regarding errors. Other values to raise success of cloud testing are as follows:
? Understanding a platform provider’s elasticity modular configuration model.
? Service Provider’s or vendors evolving in monitoring services.
? Potentially engaging the service provider as an on-going operations partner if producing commercial off-the shelf (COTS) software.
? Being willing to be used as a case study by the cloud service provider.Project Managers can monitor the overall progress of the project and drill down into specific tasks for review. This reduces cycle times and improves application deployment, which reduce problems and providing users with an enhanced testing experience.
The ability and cost to simulate web traffic for software testing purposes has been an inhibitor to overall web reliability. The low cost and accessibility of the cloud's extremely large computing resources provides the ability to replicate real world usage of these systems by geographically distributed users, executing wide varieties of user scenarios, at scales previously unattainable in traditional testing environments. Minimal start-up time along with quality assurance can be achieved by cloud testing.
Key Benefits of Cloud Testing:
Following are some of the key benefits:
? Reduction in capital expenditure[10]
? Highly scalable[11]

CONCLUSION

Cloud testing can be done using various infrastructures of cloud services and testing tools. As the advance of cloud technology and testing as services, more researchers work have done to address the open issues and challenges in cloud computing. In this paper, testing concepts used to enhance the field of cloud testing. Now a days, Diversion of software companies towards cloud computing due to various reasons such as cost reduction. Testing in the cloud, leverages the cloud applications, sinking the price of computing, while increases testing effectiveness.For research scholars, we would like to prefer automation testing usage and introduction of automation testing tools for cloud applications as a future work to be perform as a practitioner activity.
 

Figures at a glance

Figure 1 Figure 2 Figure 3 Figure 4 Figure 5
Figure 1 Figure 2 Figure 3 Figure 4 Figure 5
 

References