Testing Web Applications: Tools and Techniques



Similar documents
Performance Testing Process A Whitepaper

Comparative Study of Load Testing Tools

Evaluation of Load/Stress tools for Web Applications testing

Web Application s Performance Testing

Business Application Services Testing

Open Source and Commercial Performance Testing Tools

Load and Performance Load Testing. RadView Software October

Performance Testing Tools: A Comparative Analysis

A Comprehensive Review of Web-based Automation Testing Tools

How To Test A Web Server

Web Performance Testing: Methodologies, Tools and Challenges

SOFTWARE TESTING TRAINING COURSES CONTENTS

Features of The Grinder 3

SOA Solutions & Middleware Testing: White Paper

Automation using Selenium

Performance Testing. Why is important? An introduction. Why is important? Delivering Excellence in Software Engineering

How To Test For Performance

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Test Run Analysis Interpretation (AI) Made Easy with OpenLoad

STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES

Web Application Testing. Web Performance Testing

Checklist for Web Application Testing

Performance Testing and Optimization in Web-Service Based Applications

Performance Analysis of Web based Applications on Single and Multi Core Servers

DESIGN OF AUTOMATION SCRIPTS EXECUTION APPLICATION FOR SELENIUM WEBDRIVER AND TestNG FRAMEWORK

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

Best Practices for Web Application Load Testing

Bringing Value to the Organization with Performance Testing

WHITE PAPER. Domo Advanced Architecture

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip

Improvised Software Testing Tool

Web Applications Testing

Performance Testing Process

Seamless Web Data Entry for SAS Applications D.J. Penix, Pinnacle Solutions, Indianapolis, IN

GLOBAL JOURNAL OF ENGINEERING SCIENCE AND RESEARCHES

Comparative Study of Automated Testing Tools: Selenium, Quick Test Professional and Testcomplete

Load Testing RIA using WebLOAD. Amir Shoval, VP Product Management

How To Test A Website With A Test On A Testnet (For Web) Or Testnet On A Microsoft Webtest (For Microsoft) On A Web Browser On A Macintosh (For Macintosh) On Your Computer Or Macintosh

Performing Load Capacity Test for Web Applications

Keywords: Load testing, testing tools, test script, Open-source Software, web applications.

Performance Analysis of Lucene Index on HBase Environment

WHAT WE NEED TO START THE PERFORMANCE TESTING?

Load Testing on Web Application using Automated Testing Tool: Load Complete

Summer Internship 2013 Group No.4-Enhancement of JMeter Week 1-Report-1 27/5/2013 Naman Choudhary

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

A Tool for Evaluation and Optimization of Web Application Performance

Performance TesTing expertise in case studies a Q & ing T es T

Assignment # 1 (Cloud Computing Security)

Application Performance Testing Basics

Credits: Some of the slides are based on material adapted from

GUI Test Automation How-To Tips

IBM RATIONAL PERFORMANCE TESTER

Jitterbit Technical Overview : Microsoft Dynamics CRM

How To Test A Web Based System

OpenLoad - Rapid Performance Optimization Tools & Techniques for CF Developers

MEGA Web Application Architecture Overview MEGA 2009 SP4

Web Hosting Features. Small Office Premium. Small Office. Basic Premium. Enterprise. Basic. General

Software Requirement Specification for Web Based Integrated Development Environment. DEVCLOUD Web Based Integrated Development Environment.

With the use of keyword driven framework, we can automate the following test scenarios for Gmail as under :-

Last Updated: July STATISTICA Enterprise Server Security

Project 2 Performance Testing

Comparative Analysis of Various Automated Test Tools for Flex Application

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Table of Contents INTRODUCTION Prerequisites... 3 Audience... 3 Report Metrics... 3

About Network Data Collector

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Introduction site management software

Enterprise Solution for Remote Desktop Services System Administration Server Management Server Management (Continued)...

Lesson 7 - Website Administration

A closer look at HP LoadRunner software

Getting Started with PRTG Network Monitor 2012 Paessler AG

A Survey Study on Monitoring Service for Grid

Web Conferencing Version 8.3 Troubleshooting Guide

A Comparative Study and Analysis of Web Service Testing Tools

Basic Unix/Linux 1. Software Testing Interview Prep

System Architecture V3.2. Last Update: August 2015

MassTransit vs. FTP Comparison

E-commerce. Web Servers Hardware and Software

Benefits of Test Automation for Agile Testing

PROJECT MANAGEMENT SYSTEM

Learning More About Load Testing

Copyrighted , Address :- EH1-Infotech, SCF 69, Top Floor, Phase 3B-2, Sector 60, Mohali (Chandigarh),

Sports Management Information Systems. Camilo Rostoker November 22, 2002

Cloud Based Collaboration Tool Rohini C. Ekghare*, Prof. Manish Hadap**

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

PROPALMS TSE 6.0 March 2008

Data Driven Success. Comparing Log Analytics Tools: Flowerfire s Sawmill vs. Google Analytics (GA)

Application Testing Suite: A fully Java-based software testing platform for testing Oracle E-Business Suite and other web applications

International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] ISSN:

Perfect Your Mobile App with Load Testing and Test Automation

2. RELATIONAL WORK. Volume 2, Issue 5, May 2013 Page 67

CASE STUDY: Client: Problem Statement: Challenge: Solution: Transition from Load Runner to JMeter: Cost Benefit without Feature Compromise

CatDV Pro Workgroup Serve r

1. Introduction. 2. Web Application. 3. Components. 4. Common Vulnerabilities. 5. Improving security in Web applications

Using JMeter for Testing a Data Center. Siegfried Goeschl

How to Monitor and Identify Website Issues. 2013, SolarWinds Worldwide, LLC. All rights reserved. Share:

Transcription:

Testing Web Applications: Tools and Techniques R. M. Sharma Abstract As web applications grow and their usage increases, their complexity also increases, thus creating a great demand for techniques and tools to ensure well-tested, reliable applications. Due to the complexity of the underlying technologies of web applications, it is more challenging to test web applications than conventional software. Web applications must be tested to make sure that the expected application s behavior using different Web browsers, operating systems, and middleware is the one expected. Another critical feature of a Web application to be specifically tested is its security and ability to be protected from unauthorized access. The different technologies used to implement Web application components influence the complexity and cost of setting up a testing environment required to test each component.this paper will present the difference between web application and traditional applications. This paper also present some testing methods and testing tools used for web application. Index Terms Web application, Testing, Tools, Techniques. I. INTRODUCTION The Web has had a significant impact on all aspects of our society, from commerce, education, government, entertainment sectors, industry, to our personal lives. In the last decade, with the wide diffusion of the Internet, a growing market request for web sites and applications has been recorded [2]. Web applications are software programs or applications that receive input and deliver output through the Web, usually in the form of HTML or XML. Web applications are dynamic, interactive; often serve as the front end of complicated applications that often involve databases at the back-end. As more and more organizations need to offer their services to large number of customers and users, it requires high-quality Web applications that provide security, scalability, reliability, and accessibility to its users. In such a scenario, testing Web applications to verify their quality became a crucial problem. The use of server and browser technologies makes web applications particularly error-prone and challenging to test, causing serious dependability threats. In addition to financial costs, errors in web applications result in loss of revenue and credibility. II. WEB APPLICATION The web application is simply any software that communicates using HTTP. When we surf on Web, we can Manuscript received Aug, 2014 First Author name, R. M. Sharma Assistant Professor Department of Computer Applications, M.C.N.U.J.C. Bhopal M.P. India find different kind of Websites. As we know Websites are two types, the one type is static web site based on the HTML and behaves like simple printed newspapers or magazines. The second type is dynamic Websites that enables the end users to interact with the Website [4]. Dynamic website generates Web pages dynamically in the response of end user s input or action. The working of dynamic websites are similar to any software and utilities, so they known as web application. The Web applications (also known as Web software) run on servers and end users access these applications through Web browsers. The examples of web applications are online banking systems, online payment and shopping systems and different email services like Google, yahoo and Gmail. Web applications are interactive software which has complex Graphical User Interfaces (GUIs) and numbers of back-end software components are integrated. These applications have revolutionized the business arena and have provided new opportunities to businesses and to the end users[1]. These applications also utilize servers, browsers, and usually internet to reach the end users. The following figure (1) shows the architecture of simple web application. Data base server Application server File System Web Server Figure 1. Architecture of web Application Page Request/ Response III. COMPONENTS OF WEB APPLICATION Web browser Client Machine or Front end system Web application based on client server architecture, the components of web application are given as follows. Web Server: The computer that delivers web pages to users. Application Server: A server and a program that handles all the operations of backend computing applications (like databases) and end users Front-end Systems: The front-end system runs on a workstation and provides a character-based or graphic interface to help the user to access the remote data store, and it represent server response to end user. Back-end Systems; different applications and databases used by the end user to access or update program. It is also known as database server in client/server architecture that performs tasks such as data analysis, storage, data manipulation, archiving, 414

ISSN: 2277 9043 and other non-user specific tasks. Programs: program and parameters that instruct servers and systems on how to process information. the end user so they present textual, graphical data, audio and video by using hypermedia. IV. CHARACTERISTICS OF WEB APPLICATION Interactive: Some web applications are designed to provide communication facility among users for example chat rooms, facebook, twitter, etc. The Web application has some specific features that are not included in conventional software[3]. The Web application can be considered as a distributed system, with a client server or multi-tier architecture, including the following characteristics. The web applications can be accessed concurrently by a wide number of users distributed all over in the world. The web applications are based on client/server architecture and the user can communicate with HTTP request/response. Web application is able to generate some small software component at run time according to end user request and server status. Web Application suffers from interoperability and Compatibility because server uses different operating systems like Windows, UNIX/ Linux, Solaris, Mac etc. Similarly client machine uses different browsers that create problem in testing the web applications. Needs faster maintenance and updating: The web application provide latest information to the end users so they required regular updating. These applications updated on the regular interval, some applications are updated on hourly schedule. They runs on complex, heterogeneous execution environments, composed of different hardware, network connections, operating systems, Web servers, and Web browsers. They are extremely heterogeneous nature because web applications are developed using different programming languages, for example HTML, CSS, JavaScript on the client-side and PHP, Ruby, Java on the server-side. Security to protect: For example in ecommerce web application user provide sensitive content and information like credit or debit card number, this type of web application require strong security to protect and transmit information. Network intensive: Since web applications are designed for Internet users so the nature of Web-based applications is network intensive. Content Driven: Basically web applications are designed to provide various type of information to Some web applications allow Some popular services like Business to Consumer (B2C), Business to Business (B2B), search engines, stock tickers, FedEx tracking, and credit card services etc. Downloading and Uploading: Some web application provides facilities of downloading and uploading different applications and files. Transactional: Some web applications are used to make online payment and place request for obtain goods or services. For example online shopping, online ticket purchasing. V. WEB TESTING TECHNIQUES Web testing is the kind of software testing focusing on web applications. Web testing enable tester to identify errors before the web application is live or visible to public. Performance Testing: Performance Testing is done to determine the response time and throughput of any web application [7]. It determines how any web application can handle a variety of events. Performance testing can be done from the browser or directly from the server. For web applications, system performances is a critical issue because web users don t like to wait too long for a response to their requests, also they expect that services are always available. Performance testing of web applications should be considered as an everlasting activity to be carried out by analyzing data from access log files, in order to tune the system adequately. Performance tests may test the web application for the following[6]. Response Time Memory Available Network bandwidth Throughput Number of users Time to download Scalability Testing: Scalability Testing is non-functional tests, is the testing of a software application for measuring its capability to scale up in terms of any of its non-functional capability like load supported, the number of transactions, the data volume etc[6]. Scalability refers to an application s ability to handle additional workload, without adversely affecting performance, by adding resources such as processor, memory, and storage capacity. 415

Security Testing: When the web application deployed on the network or Internet, there are great risks of unauthorized used. The hackers try to unauthorized access in the intent of some profit or for some other aims. Therefore security testing is very important in Web applications. The security testing can be classified into two types: first, testing the security of the infrastructure hosting the web application and second is testing for vulnerabilities of the web application. Some of the things that should be considered for infrastructure are firewalls, encryption, and other security policies[7]. For vulnerabilities, there s user authentication, and cookies. The tester may test security in following way Tester paste some internal URL directly into browser address bar without login to check the internal pages should not open directly. Tester gives some invalid inputs in input fields like login username, password, to check the system reaction on all invalid inputs. Tester should check the web directories or files should not be accessible directly unless given download option. Test if SSL is used for security measures. To check all error messages. Usability Testing: Usability testing verify how user interact with the web application, it also verify look and feel of web application. The usability can be defined by effectiveness, efficiency and satisfaction in a specified context of use. The, effectiveness means the accuracy and completeness of any application, efficiency is the resources expended in relation to the accuracy and completeness with which users achieve goals, and satisfaction is described as the comfort and acceptability of use. Usability problems therefore refer to aspects that make the application ineffective, inefficient, and difficult to learn and to use. Understandability of any web application On-line feedback system and help features Consistency of web pages (fonts and colors) Navigation and browsing features Searching and retrieving features Interface and aesthetic features Accuracy Completeness Satisfaction Load Testing: Load testing is a type of performance testing; it checks response time, throughput and availability of the application under specific conditions[6]. In this testing tester simulate how the web application works in real world. Page generation Response Time How much data the database handle before the crash or slowness. Graphic generation Network related issues Reliability Testing: The software reliability is defined as: the probability of failure-free software operation for a specified period of time in a specified environment. Reliability testing is about exercising an application so that failures are discovered and removed before the system is deployed. The purpose of reliability testing is to determine product reliability, and to determine whether the software meets the customer s reliability requirements. Correct link processing Recovery (data recovery) and Validation Error recovery Stress Testing: To test any application under extreme conditions is known as stress testing. Stress testing is the process of determining the ability of a computer, network, program or device to maintain a certain level of effectiveness under unfavorable conditions. Stress testing is a type of performance testing focused on determining an application s robustness, availability, and reliability under extreme conditions [6]. The web application can be check under heavy loads, high concurrency, or limited computational resources. Proper stress testing is useful in finding synchronization and timing bugs, interlock problems, priority problems, and resource loss bugs. Stress tests may test the web application for the following. Synchronization issues Bugs under high load Memory leaks Weak point of application under high load Behavior of application under high load CPU and Memory usages Back-end database Compatibility Testing: Testing any application in different software platform and hardware platform is known as compatibility testing. In this type of testing tester test the web application in different web browser to check the behavior of any web application, how it consistent on all the browsers. VI. OVERVIEW OF SOME TESTING TOOLS Today s there are so many commercial, open source and free testing tools are easily available. Here are a few list of testing tools which will give you an insight on the usage and purpose. JMeter : Apache JMeter is an open source software. It is a 100% pure Java application designed to load test functional behavior and measure performance. It is used to load test or performance test of any web application. It has simple and intuitive GUI. It may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. JMeter support different server types: Web - HTTP, HTTPS, SOAP, Database server via JDBC, LDAP, JMS, and Mail - POP3. JMeter store its test plans in XML format. This means you can generate a test plan using a text editor. It is a full 416

multi-threading framework that allows concurrent sampling by many threads and simultaneous sampling of different functions by separate thread groups. It is a Java desktop application with a graphical interface using the swing graphical API, can therefore run on any environment / workstation accepting a Java virtual machine, for example: Windows, Linux, Mac, etc[8]. WAPT: WAPT refers to the web Application Performance tool. WAPT is a load and stress testing tool that provides an easy-to-use and cost-effective way to test any web site, including business applications, mobile sites, web portals, etc [3]. It creates thousands of virtual users that execute concurrent sessions against your web application to check how application behaves in under load and extreme load condition. It works with secure HTTPS pages and all types of authentication. It produce graphs and reports that will help to analyze the performance characteristics of any web application under various load conditions[9]. OpenSTA : The OpenSTA an open source software that is used to perform Performance testing in win32 platform. In this software tester produce simple script that is recorded and replay to simulate many users. Using this approach a tester can generate hundreds to thousands of virtual users. The test result and statistics are collected during test runs by a variety of automatic and user controlled mechanisms. These can include scripted timers, SNMP data, Windows Performance Monitor status and HTTP results. Much of the data analyzed during test runs, once test runs are complete, logs can be viewed, graphed, filtered and exported for use by more sophisticated report generation software for better analysis [10]. Selenium: Selenium is a portable software testing framework for web application. It is open-source software, released under the Apache 2.0 license, and can be download and use without charge. Selenium IDE is an integrated development environment for Selenium scripts [18]. It is implemented as a Firefox extension, and allows you to record, edit, and debug tests. It supports record and playback feature. It also provides a test domain-specific language to write tests in a number of popular programming languages, including Java, C#, Groovy, Perl, PHP, Python and Ruby [11]. The tests can be run on various modern web browsers. Selenium may be used on Windows, Linux, and Macintosh platforms. It is used for following It is used for frequent regression testing Virtually unlimited iterations of test case execution It Support Agile and extreme development methodologies Provide documentation of test cases It is used for customized defect reporting It is used to find defects missed by manual testing Provide rapid feedback to developers Pylot : It is a Scalability and performance testing tools for web application, it is an open source free software. It support GUI and console mode. It runs HTTP load tests, which are useful for capacity planning, benchmarking, analysis, and system tuning. Pylot generates concurrent load (HTTP Requests), to verify server response, and produces reports with metrics. Tests suites are executed and monitored from a GUI or console interface. It supports HTTP and HTTPS. It is a multi-threaded software that generates real time stats. Response is verified with regular expressions[13]. Capybara: The capybara is an acceptance testing framework for web applications. Capybara simulates how a real user would interact with a web application. It interacts with a website the way a user like visiting a URL, typing text into a form and submitting it and clicking a link. Capybara aims to simplify the process of integration testing Rack applications such as Rails, Sinatra or Merb [12]. Capybara can interact with many different drivers which execute your tests through the clean and simple interface. Windmill: Windmill is a compatibility testing tool designed to automate and debug your web application. It is a cross-platform, cross-browser software testing framework. Most users write tests in Python or in JavaScript, but there are also a library that provides Ruby support. Windmill also provides a recorder tool that allows writing tests without learning a programming language. Windmill supports all major modern web browsers that run on Microsoft Windows, Mac OS, and Linux[14]. WebLOAD: The WebLOAD is an open source load generation Engine developed by RadView Software, it is used for load and stress testing of any web application it is the best alternative of LoadRunner. It is used to find out the bottlenecks of the website. This tool can be used for Load testing any internet applications such as Ajax, Adobe Flex, Oracle Forms and much more. Through this tool, you have the ability to measure the working performance and also its response to the users. This tool is widely used in the environment where there is a high demand for maximum load testing. This tool provides the clear information about the functionality and the actual capacity of the web applications[15]. NeoLoad : It is a Load and performance testing software: This tool is used for measuring and analyzing the performance of the website[19]. This helps you in improving and optimizing the performance of your web application. This tool checks the performance of the web application by increasing the traffic to the website. You can get to know the capacity of the application and the amount of users it can handle at the same time. It supports Microsoft windows, Linux and Solaris operating system[16]. Testing Anywhere: Test Anywhere is a automated testing tool which can be employed for testing the performance of any web sites, web applications or any other objects. Many developers and testers use this tool to find out any bottlenecks in their web application and rectify them accordingly [17]. This testing tool comes along with a built in editor which allows the users to create and edit test case using the five editor (a) object recorder, (b) advanced web recorder, (c) smart test recorder, (d) Image recognition and (e) editor. It is 417

compatible with all versions of Windows OS. Conclusion The quality of any web application can be measured in term of response time, throughput, ease of use, number of users, ability to handle varied spike in traffic, provide accurate information etc. The compromise in any of the above parameter may compel the user to move on other web application on the Internet. Testing the web application is real challenge because; we cannot apply the conventional testing method directly to web applications because of their client server nature. Today there are many testing tools are developed to help the tester to test the web applications. The tools are able to create several virtual users and virtual environments to perform various type of testing like performance, load, stress, acceptance testing, etc. This paper discussed the characteristics of web application and various methods of web application testing. This paper also discussed some testing tools and their applicability to various type of testing described in this paper. REFERENCES [1] Marc Guillemot, Dierk König Web Testing Made Easy OOPSLA'06 October 22-26, 2006, Portland, Oregon, USA. ACM 1-59593-491-X/06/0010. pp. 692-693. UG and PG classes in the field of software engineering, computer network and compiler design. [2] Manjit Kaur, Raj Kumari Comparative Study of Automated Testing Tools: TestComplete and QuickTest Pro International Journal of Computer Applications (0975 8887) Volume 24 No.1, June 2011 [3] Shakti Kundu Web Testing: Tool, Challenges and Methods IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 2, No 3, March 2012 ISSN (Online): 1694-0814 pp.481-486 [4] Boni Garc ıa Juan C. Due nas "Automated Functional Testing based on the Navigation of Web Applications" Workshop on Automated Specification and Verification of Web Systems (WWV 2011) EPTCS 61, 2011, pp. 49 65, doi:10.4204/eptcs.61.4 [5] Maristella Matera, Francesca Rizzo, Giovanni Toffetti Carughi Web Usability: Principles and Evaluation Methods Dipartimento di Elettronica e Informazione, Politecnico di Milano Piazza Leonardo da Vinci, 32 2013 Milano Italy [6] Shivangi Kaushal Jagpuneet Kaur Bajwa "Analytical Review of User Perceived Testing Techniques" International Journal of Advanced Research in Computer Science and Software Engineering Volume 2, Issue 10, October 2012 ISSN: 2277 128X pp.213-216 [7] Arora A., Sinha M. "Web Application Testing: A Review on Techniques, Tools and State of Art" International Journal of Scientific & Engineering Research, Volume 3, Issue 2, February-2012 1 ISSN 2229-5518 IJSER 2012 pp. 2-6 [8] http://jmeter.apache.org/ [9] http://www.loadtestingtool.com/download.shtml [10] https://www.opensta.org [11] http://www.seleniumhq.org/ [12] https://rubygems.org/gems/capybara [13] http://www.pylot.org/ [14] http://www.getwindmill.com/ [15] http:// www.radview.com/solution/web-testing-tools/ [16] http://www.neotys.com/performance-load-testing-tools.html [17] https://www.automationanywhere.com/testing/products/functional-tes ting [18] Harpreet Kaur, Dr.Gagan Gupta Comparative Study of Automated Testing Tools: Selenium, Quick Test Professional and Testcomplete Harpreet kaur et al Int. Journal of Engineering Research and Applications ISSN : 2248-9622, Vol. 3, Issue 5, Sep-Oct 2013, pp.1739-1743 [19] Rina Sanjay Tyagi A Comparative Study of Performance Testing Tools International Journal of Advanced Research in Computer Science and Software Engineering Research Volume 3, Issue 5, May 2013 ISSN: 2277 128X R. M. Sharma: Working as a assistant professor in department of Computer Applications at MCNUJC Bhopal. More than 13 year teaching in 418