Test Automation of Web Application on Private Cloud

DOI : 10.17577/IJERTV3IS030654

Download Full-Text PDF Cite this Publication

Text Only Version

Test Automation of Web Application on Private Cloud

Nivetha. M. S, Kiruthika. C, Jayapriya. R

B.E.(Final year), Computer Science and Engineering,

University College of Engineering-Panruti.

AbstractIn general any development companies involve hundreds of programmers and developer to build a software product .The product development cycle involves requirement analysis, design, coding, testing and implementation. This paper consider testing phase as a point of interest. Generally testing involves static testing and dynamic testing. The testers involve in this phase and co ordinate with developers on the development.This technique can be used for both web application and stand alone application. The proposed technique introduces the use of private cloud (TaaS) for testing web application. This technique uses private cloud with enhanced security features. Dynamic testing is one of the techniques in software testing. Dynamic testing is a method of assessing the feasibility of a software program by giving input and examining output. The alternative method of software testing, static testing, does not involve program execution but an examination of the code and associated documents. Types of dynamic testing include unit testing, integration testing, system testing and acceptance testing.Testing as a Service (TaaS) is an outsourcing model in which testing activities associated with some of an organizations business activities are performed by a service provider rather than employees. Testing as a Service uses cloud for storing software. The usage of cloud for storing software has many challenges. One of the major challenges is confidentiality. Another challenges are lack of control, slow speed,weaker security etc. In order to overcome these challenges private cloud is used. The software is sent to a testing server via cloud. The test cases are also sent to the testing server. The testing server performs test automation. After testing, the server sends the test reports to the tester. Also the software will be secured when private cloud is used for testing.

Key TermsTesting, static testing, dynamic testing, cloud, private cloud, Test automation.

  1. INTRODUCTION :

    Software engineering is an engineering approach for software development. In which software testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results. Software testing can be very costly. Test automation is a good way to cut down time and cost. Automated testing is the process through which automated tools run tests that repeat predefined actions, comparing a developing programs expected and actual outcomes Automation testing will be carried out simultaneously on different machine with different OS platform combination. Automation testing will be used when there is need to execute the set of test cases repeatedly. Benefits of test automation are time saving, more speed, reusable, increase test coverage, improves accuracy, etc.

    Cloud testing (Testing as a service) is an important part of cloud computing, a new direction in information technology. Cloud testing is a rapidly developing area of research in software engineering. The Cloud testing provides services in two modes they are on- premise and on- demand. On-Premise: Testing as a service can be used for validation and verification of various products owned by organizations or individuals. Load testing is available in both types. On-Demand: Testing on demand is used to test On-Demand software. It is becoming increasingly popular to use testing as a service to simulate production such as Cloud environments instead of traditional On-Premise testing products. There are three types of Clouds: Private Clouds(which are internal Clouds based on a private network behind a firewall); Public Clouds (which are the Clouds with public accessible services over the Internet) and Hybrid Clouds (which are made of different types of Clouds, including public and private Clouds). A private cloud service, means that the computing infrastructure is hosted on a private platform in the customer data center. It is dedicated to a particular organization and not shared with other organizations. A key technology to help organizations enable a private cloud is virtualization. Virtualization helps organizations realize cost savings by letting them leverage their existing hardware infrastructure and not have to

    purchase additional equipment similar to a public cloud. The difference, of course, is that the private cloud resides at the customers location and offers customers more control over the infrastructure. Its important to keep in mind that a private cloud also offers on-demand capability where more services can be added quickly as needed. Benefits of private cloud service are :

    • Greater control

    • More security

    • Higher performance

    • Deeper compliance

    • Customizable

  2. WEB APPLICATION TESTING:

    Web applications are characterised by peculiarities that differentiate them from any other software application. These peculiarities affect their testing in several ways, which may result in harder than traditional application testing. Suitable methods and techniques have to be defined and used to test Web applications effectively. Web application can be considered as a distributed system, with a clientserver or multi-tier architecture, including the following characteristics: wide number of users distributed all over the world, heterogeneous execution environments, It has an extremely heterogeneous nature that depends on the large variety of software components and It is able to generate software components at run time according to userinputs and server status.

    Usally functional and non functional testing of web application takes place to check its performance, functionality etc. The effectiveness of a testing process may significantly depend on the tools used to support the process. Testing tools usually automate some tasks required by the process. A variety of tools for Web application testing has been proposed, where the majority was designed to carry out performance and load testing, security testing, or to implement link and accessibility checking and HTML validation. Web application testing tools can be classified using the following six main categories:

    1. Load, performance and stress test tools.

    2. Web site security test tools.

    3. HTML/XML validators.

    4. Link checkers.

    5. Usability and accessibility test tools.

    6. Web functional/regression test tools.

    Tools belonging to categories a), b), e) can be used to support nonfunctional requirement testing, while tools from categories c) and d) are more oriented to verifying the conformance of a Web application code to syntactical rules, or the navigability of its structure. Tools from category f) support functionality testing of Web applications. In this paper main focus lies on Web functional /regression test tools.

  3. EXISTING SYSTEM :

    Existing system uses public cloud to perform application testing. A public cloud service is provided as a service over the Internet and the customers infrastructure or applications are hosted by a cloud service provider at the cloud providers premises. The customer has no visibility and control over where the cloud services are being hosted. The core infrastructure is shared between many organizations, but each organizations data & application usage is logically segregated so only authorized users ar allowed access.

    1. Testing Request:

      The Center Server (or the Manager Server) accepts testing request including object software from the customers and stores the software into cloud. After that, the Center generates testing command and sends them to one or several End Servers (or the Working Server) according to the request.

      Testing

      request

      Center Server

      Customer (Manager

      server)

      Testing Server

      (Working server)

      Test Report

      Software &

      configuration

      Public cloud

      storage system

      Test report

      Existing System Architecture.

    2. Test Automation:

      When the End Server gets testing command, it will parse the execution parameters from it, including which kind of testing tool will be used to serve this request, what kinds of testing configuration files should be used, where in the cloud lays the object software, where in the cloud will the testing result to be stored. After the parsing work done, the End Server will get the software and testing configuration files from the cloud and store them locally for further execution. When testing finishes, End Server will send the result to the cloud and notify the Center Server.

    3. Test Report:

    The Center Server will get the testing result from cloud and then stores it locally for future online check when customers ask for reviewing result.

    This architecture allows ordinary single-PC application working to offering services towards outside without much modification to itself. Accuracy and reliability of the testing depends on the mature testing software existed while convenient and flexibility depends on the cloud platform which holds the testing software.

  4. PROBLEM STATEMENT:

    From the literature it is clearly shown that using public cloud for testing purpose has some challenges. The major challenge is security. Cloud based solutions are exposed on the public internet and are thus a more vulnerable target for malicious users and hackers. Since the applications and services run on remote, third party virtual environments, companies and users have limited control over the function and execution of the hardware and software. Moreover, since remote software is being used, it usually lacks the features of an application running locally.

    Thus public cloud system has limited control and security. While some vendors offer pay-as-you-go services, they are only cost-effective when the right plan and servicer provider are chosen for the anticipated needs (e.g. space vs. RAM vs. bandwidth). Cloud computing is surrounded by many security issues like securing data, and examining the utilization of cloud by the cloud computing vendors.

  5. PROPOSED SYSTEM:

    TaaS(Testing as a Service) is provided by cloud to store the software that is to be tested. But as discussed earlier the public cloud storage system has many challenges

    .In order to overcome these challenges private cloud is used. The software to be tested is sent to the testing server via cloud. The test cases are also sent to the testing server. On the testing server side test automation is performed. If errors are identified then bug report is sent otherwise test report is generated on the testing server. Then the testing server sends the test report to the testers. This system has full control over the cloud and highly secured when compared to pulic cloud usage. Public cloud ensure security, user friendly interfaces and ease of use.

    1. Preperation of Test Cases:

      Test case is a series of simple steps that has to be done to check a particular functionality. A test case is a set of conditions or variables under which a tester will determine whether a system under test satisfies requirements or works correctly. The process of developing test cases can also help find problems in the requirements or design of an application. The test cases are written for the software to be tested. Write test cases in such a way that

      you test only one thing at a time. Do not overlap or complicate test cases. Ensure that all positive scenarios and negative scenarios are covered.

      SRS

      Document

      Manual Testing Environment

      Test Case

      Test Execution (manual)

      Test Scenario

    2. Sending Software And Test Cases To Server :

      The software to be tested is sent to the testing server via cloud.The test cases is also sent along with it. On the testing server side the test automation is performed.It checks whether the functionality of the software is correct with the help of test cases and test tools.

    3. Performing Test Automation :

      On the testing server side test automation is performed using automation testing tools. Then test report is generated. The test report is to be sent to the tester. Test case may or may not pass while test automation. Test cases which are failed is reported as bug in the test report.

    4. Sending Test Report to the Tester :

      The test reports which are prepared by the testing server are sent to the tester through the private cloud where it is stored after test automation is over.

      Private cloud

      Storage system

      Test Report

      Manual Testing

      Environment

      Test Report

      Test Automation Environment

      Notification

      Software, configuration &

      Test cases

      Software, configuration &

      Test cases

      Proposed System Architecture

    5. Test Automation Tool :

      Selenium is a web testing tool which uses simple scripts to run tests directly within a browser. It uses JavaScript and iframes to embed the test automation engine into the browser. This allows the same test scripts to be used to test multiple browsers on multiple platforms. Selenium gives the user a standard set of commands such as open (a URL), click (on an element), or type (into an input box); it also provides a set of verification commands to allow the user to specify expected values or behavior. Selenium is JavaScript-based and runs directly in the browser.The Selenium IDE (originally called the Recorder),allows users to navigate their applications in Firefox and record their actions.

    6. IDE Web Driver Algorithm:

      Algorithm: A

      1. Set: file List = Call Algorithm B

      2. Call Algorithm C: file List

      3. Call Algorithm D

        Algorithm: B

        1. Set: file List as Array List

        2. Scan Test Repository

        3. For each file in Test Repository IF compiled repository Contains file Continue

          Else

          FileList.add filename Loop

        4. Return file List

        Algorithm: C parameter: file List

        1. Set: file List = file List

        2. For each file in file List

          Set compile destination as compiled Repository Compile file

          Loop

        3. Return True

        Algorithm: D

        1. Scan compiled Repository

        2. Set file List as filenames in compiled repository

        3. For each file in file List Call test with J Unit

          Loop

        4. Return

    7. Algorithm Of File Upload

      Algorithm: A

      1. Set: win Name = Window Name, file Path = Path, action=action, uploader Element = file/button Name

      2. Start new Thread Executing algorithm B

      3. Click on uploader Element

      4. Pass control back to resume test steps

    Algorithm: B

    1. Set: wnd Name = Window Name, file path = path, action

      = action

    2. While TRUE (Infinite loop)

    3. If Window[wnd Name] exists Then Set Focus to window [wnd Name] Call Algorithm C

      Return True Else

      Wait for 1 Sec

    4. Return False

    Algorithm: C

    1. Set: Path = file Path

    2. Set path Chars = Split path into characters

    3. For i=0 to I < path Chars. Length Simulate Key path Chars[i]

      End For

    4. Return True

      1. alculating and Comparing the Efficiency:

        Using public cloud storage for software testing has many challenges like lack of control and security. In order to overcome these challenges private cloud can be used

        .Using this type of systems can reduce time to major extent. Organisation can have full control over their software. All the data is stored on the testing servers, generally have much security controls. Private cloud are already available which were designed to ensure security, user friendly interfaces and ease of use.Thus using private cloud to perform testing is better when compared to the existing system.

  6. COMPARISON :

    The manual execution requires more time because tester need to go through the checklist then collect the test sequence and execute the test sequence as mentioned in the checklist also tester need more time trace the objects on which it will perform operations. But in the automated checklist all the test scenarios are ready for direct execution no overhead of going through checklist just need to run the test suit.

    The following pie chart shows the execution time of test cases between manual and automation testing.It shows that the execution time of manual testing is more when compared with automation testing.Therefore for performing regression testing in test automation is time efficient and cost efficient.

    Cost estimation phases

    Private cloud

    Public cloud

    Management costs

    $167

    $418

    Development Staff costs

    $334

    $334

    Operational Staff Costs

    $89

    $76

    Help Desk Costs

    $67

    $67

    Outsourcing Costs

    $22

    $609

    Application Software Costs

    $134

    $134

    Infrastructure Software

    $100

    $10

    Network Infrastructure & Management Costs

    $45

    $89

    Storage Infrastructure Hardware,Maintenance, Facilities,etc.

    $45

    $4

    Server Infrastructure Hardware,Maintenance,

    Facilities, etc.

    $111

    $11

    Total

    $1,114

    $1,752

    The above table shows the Cost Breakdown of Public vs Private Cloud Computing of Mission Critical Applications, Enterprise CRM, ERP, Large scale OLTP,Large scale DB

    Servers, Large Scale messaging. Owning a private cloud is less in cost when compared with public cloud.

  7. CONCLUSION AND FUTURE WORK: Testing Services using cloud is becoming popular

primarily because enterprise seeks to reduce costs, speed

time to benefit and improve quality of the application. This benefit of cloud computing solution cannot be ignored by the enterprise and the consumers around the globe because still the business is striving to overcome the constraint of the current IT Hardware while struggling to justify the cost of investing in major upgrades. Todays fast moving online world demands the companies to have the right performance testing solution. In future testing service can be performed on hybrid cloud in large scale industries.

REFERENCE

      1. Siqin Chen, Junfei Huang, Yunzhan Gong: Static Testing as a Service on Cloud on IEEE conference 2013.

      2. Liviu Ciortea, Cristian Zamfir, Stefan Bucur, Vitaly Chipounov, George Candea: Cloud9: a software testing service. Operating Systems Review 43(4): 5-10 (2009).

      3. Oriol Manuel. YETI on the cloud. ICSTW 2010 – 3rd International Conference on Software Testing, Verification, and Validation Workshops, p 434-437, 2010.

      4. Lian Yu, Wei-Tek Tsai, Xiangji Chen, Linqing Liu, Yan Zhao, Liangjie Tang, Wei Zhao, Testing as a Service over Cloud, Proceedings of IEEE International Symposium on Service-Oriented System Engineering (SOSE 2010).

      5. George Candea, Stefan Bucur, ZamfirCristian, Automated Software Testing as a Service (TaaS), In the 1st ACM Symposium on Cloud Computing, 2010.

      6. JerryGao, XiaoyingBai and wei-TekTsa, Cloud Testing- Issues, Challenges, Needs and Needs and Practice, Software Engineering: An International Journal(SEIJ), VOL. 1, No.1, September 2011.

      7. W. K. Chan, Lijun Mei, Zhenyu Zhang, Modeling and Testing of Cloud Applications, In 2009 IEEE Asia-Pacific Service Computing Conference (APSCC 2009), Singapore; Dec 7-11, 2009.

      8. Wang Jun and Fanpeng Meng. Software testing based on cloud computing. In Proc. of the 2011 International Conference on Internet Computing and Information Services, pages 176178, Washington, DC, USA, 2011.

      9. ZengWandan, Jiang Ningkang, Zhou Xubo,Design and Implementation of a Web Application Automation Testing Framework, 2009 Ninth International Conference on Hybrid Intelligent Systems

Leave a Reply