Sunday 2 October 2016

“Testing of Cloud based Mobile Applications”

“Testing of Cloud based Mobile Applications”
1Haris Muhammad*- 2Noaman Ashraf Muhammad*
Department of Software Engineering, Foundation University Islamabad,
Rawalpindi Campus, New Lalazar Rawalpindi, Punjab, Pakistan
1-aka.habibi666@gmail.com
2-noamaan125@gmail.com

Abstract— Cloud computing is used to obtain the computing resources like computer infrastructures, data storage and application services and act as application servers, by changing the way of delivering computing services and solutions. Cloud computing uses TaaS (testing as a service) for clouds. This paper is about the cloud testing and cloud based application testing, to answer the questions raised by engineers and managers and satisfies the needs in cloud testing via offering a clear view between web-based software testing and cloud based application testing.
KeywordsCloud testing, TaaS, testing the cloud services (IaaS, PaaS, SaaS), Performance testing and evaluation and scalability testing.

1.     INTRODUCTION

                1.1 Cloud Computing
[1]
   Cloud Computing, cloud (also formulated as "the cloud") is used as a representation for "the             Internet," so the phrase cloud computing means "a type of Internet-based computing," where different services  such as servers, storage and applications are delivered to an organization's computers and devices through the Internet.

To us ever changing business needs, organization’s need to invest time and budget to scale up their IT infrastructure. Such as hardware, software and services. How-ever in the IT infrastructure the scaling process can be slow. The organizations are frequently unable to achieve optimal utilization of the IT infrastructure. A cloud computing provides computing over the internet. A cloud computing service consists of highly optimized data centers. That provides various hardware, software and information resources for use when needed. Organizations can simply connect to the cloud and use various available resources on a pay per use basis. This helps companies avoid capital expenditure that instantly can scale up and scale down according to the business requirements. 

A cloud computing service can be deployed by following means:

        i.            Private Cloud-            
Works for only one organization on a private network and is very highly secured.
      ii.            Public Cloud-
 Owned by the cloud service provider and offers the highest level of efficiency.
    iii.            Hybrid Cloud-           
  Combination of both private and public deployment models.

1.1.1  Private Cloud


            [2]Private cloud is a type of cloud computing that provides related benefits to public cloud, including scalability and self-service, but through an exclusive architecture. Unlike public clouds, which deliver services to multiple organizations, a private cloud is dedicated to a single organization.

As a result, private cloud is best for businesses with vibrant or impulsive computing needs that require direct control over their environments.

1.1.2  Public Cloud

            [3]A public cloud is one centered on the standard cloud computing model, in which a service provider makes assets, such as applications and storage, available to the general public over the Internet. Public cloud services may be free or offered on a pay-per-usage model.

The main benefits of using a public cloud service are:

      a)      Easy and low-cost set-up because hardware, application and bandwidth 
            costs are covered by the provider.
b)      Scalability to meet needs.
c)      No wasted resources because you pay for what you use.

1.1.3  Hybrid Cloud

            [4]Hybrid cloud is a cloud computing atmosphere which uses a mix of on-premises, private cloud and third-party, public cloud services with arrangement between the two platforms. By allowing jobs to move between private and public clouds as computing needs and costs change, hybrid cloud gives businesses greater flexibility and more data placement options.
 Hybrid cloud is particularly valuable for dynamic or highly variable workloads. For example, a transactional order entry system that experiences significant demand points around the holiday season is a good hybrid cloud candidate. The application could run in private cloud, but use cloud bursting to access additional computing resources from a public cloud when computing demands point.
           
     [5]Cloud computing is the delivery of on-demand computing resources everything from applications to data centers over the Internet on a pay-for-use basis.

        i.            Elastic resources —Scale up or down quickly and easily to meet demand.
      ii.            Metered service so you only pay for what you use.
    iii.            Self Service — All the IT resources you need with self-service access.

            Cloud computing applies high performance computing power and perform tens of trillions of computations per second. In consumer-oriented applications it delivers the personalized information to provide data storage. To do this, cloud computing uses networks of large groups of servers with specialized connections to spread data-processing chores across them. This shared IT infrastructure contains large pools of systems that are linked together.


Cloud computing consists of the following service models:                

        i.            IaaS - Infrastructure as a service
      ii.            PaaS - Platform as a service
    iii.            SaaS - software as a service

2.     Testing

       [6]Cloud computing does not only bring new business opportunities but also causes some major impacts on software testing and maintenance. Among different impacts one of them is known as TaaS (testing as a service) in clouds. It is considered as a new service model which a provider undertakes software testing activities of a given application system for customers on their demands.
As cloud computing provides accost-effective and flexible means through which computer hardware and software resources are delivered as a service to large scale global users when and whenever needed by them.
Cloud computing could be the next stage of the internet evolution. A cloud must be having several properties including scalability, multi-tenancy, self-managed functional capabilities and connectivity interfaces.

2.1     Cloud Based Testing

            [7]Cloud based software testing refers to testing and measurement activities on a cloud-based environment and infrastructure by leveraging cloud technologies and solutions.
Cloud testing is basically aligned with the concept of cloud and SaaS (software as a service). It is done by leveraging the cloud, the same benefits that the cloud brings to customers.

2.2     Needs of cloud based testing

            [7]Testing new software often requires costly servers, storage and network devices only for a limited time .These computing resources are either not used or underutilized after testing, thus result in waste of precious resources. Mobile application providers have to maintain the quality of their services over various combinations of platforms. The computing platforms may encompass various browser technologies with different backend support running on various mobile OS. To ensure a reliable service, providers have to test their services on all these platforms. In addition to this testing of mobile applications, software’s also need test automation tools which can also be easily migrated to cloud.
[4]One more reason for the adoption of cloud computing is an economy of scale i.e. it provides a pay-per-use type of service, thus reducing the upfront investment in some cases; for example, using testing tools when needed and using various platforms for running any application without investing into every platform.

2.3     Objectives of cloud testing

   I.                    [3]To assure the quality of cloud-based applications deployed in a cloud, including their functional services, business processes, and system performance as well as scalability based on a set of application-based system requirements in a cloud.
 II.          To validate software as a service (SaaS) in a cloud environment, including software performance, scalability, security and measurement based on certain economic scales and pre-defined SLAs.
III.          To check the provided automatic cloud-based functional services, for example auto-provisioned functions.
IV.                  To test cloud compatibility and inter-operation capability between SaaS and applications in a cloud infrastructure, e.g. checking the APIs of SaaS and their cloud connectivity to other.

3.     Architecture of TaaS platform

            User become the cloud beneficiary by many means i.e. at first user can upload the application on TaaS platform and can request their own tester to test the application and can pay for the tools because the first layer is          combined view so that they can directly reach out to TaaS platform through online or through help desk. It has both commercial an open source tools. Where the services and the tools are bundled and the customer can use any of them by first getting registered with TaaS platform in the second scenario the customer can upload the application on the cloud and ask the other testing company to test the application and pay for the usage. For that in the second layer is the customer need to sign in SLA (Service Level Agreement) which is an agreement between customer and the company. In the third layer virtualization takes place which is like managing our physical system virtually and the fourth layer is cloud adapter as TaaS platform is integrated in the cloud with these adapters so that TaaS platforms can be integrated by other providers also.

4.     LITERATURE VIEW

                [8]Mobile Testing as a Service (known as Mobile TaaS) provides static and dynamic on- demand testing services for mobile applications and SaaS to support software validation and quality engineering processes by leveraging a cloud-based scalable mobile testing environment to assure pre-defined given service-level- agreements (SLAs). Mobile TaaS on clouds offers a new business model for diverse mobile software validation services using the pay-as-you-test model to achieve cost-sharing and cost-reduction in mobile computing resources, networks, cloud computing and storage infrastructures. Various types of testing levels provided by the cloud covers, unit testing, integration testing, User interface testing, regression testing, system testing and acceptance testing as shown in figure3. It also briefs the test scope based on test levels i.e. functional testing, performance, security, usability, Stress/load testing, localization testing and synchronization testing. The test environment shown in figure3 covers either testing on real device or testing on device Emulators. Testing on real device can further be either an in- house physical device testing or the focused remote device connectivity which is cost effective and less time consuming for example Device Anywhere and Perfecto Mobile Test Cloud. Secondly the testing can be done using emulators again it is cost effective and covers a large range of devices. But the limitation with the previous is that all the activities cannot be realistically emulated like taking a picture or a video and the device cannot be tested on different networks i.e. geo-location capability testing.

5.     Conclusion

            [9][10][11]Mobile cloud computing architecture and applications and also various issues related to the cloud environment, security and the privacy of the data and the performance. According to cloud environment for software testing there are number of clouds having different testing techniques. So it is the responsibility of service manager to supervise and co-ordinate between the core activities of respective layered entities of overall cloud environment and define the set of required clouds depending on the testing techniques required by any product of the client.
Testing of software’s on cloud is influenced by conditions such as level of domain knowledge needed to test an application, flexible and cost effective, security and economy of scale and cloud computing as a booming paradigm and the software testers to polish their skills.

6. References


  1.        https://www.webopedia.com
  2.              https://www.ibm.com/cloud-computing/what-is-cloud-
  3.         http://searchcloudcomputing.techtarget.com/definition/private-cloud
  4.        http://searchcloudcomputing.techtarget.com/definition/public-cloud
  5.        http://searchcloudcomputing.techtarget.com/definition/hybrid-cloud
  6.        https://www.ibm.com/cloud-computing/what-is-cloud-computing.
  7.       A Survey Report on Cloud Computing Testing Environment.
  8.      International Journal of Computer Applications (0975 – 8887) Volume 7-No 14,         4 October 2013.
  9.     Hoang T. Dinh & Chonho Lee & Dusit Niyato & Ping Wang. A Survey of Mobile Cloud    Computing: Architecture, Applications, and Approaches. Wireless Communications and    Mobile Computing – Wiley.
  10.    Leah Muthoni Riungu, Ossi Taipale, Kari Smolander. (2010).” Software testing as an Online     Service: observations from Practice”. Third international conference on software testing,  Verification, and Validation Workshop.
  11.  T. Vengattaraman, P. Dhavachelvan and R. Baskaran (2010). “A Model of Cloud Based  Application Environment for Software Testing”. (IJCSIS) International Journal of Computer  Science and Information Security, Vol. 7, No.