- Open Access
- Total Downloads : 16
- Authors : Deepthi Wilson. R, Manjuprasad. B
- Paper ID : IJERTCONV5IS20027
- Volume & Issue : NCETEIT – 2017 (Volume 5 – Issue 20)
- Published (First Online): 24-04-2018
- ISSN (Online) : 2278-0181
- Publisher Name : IJERT
- License: This work is licensed under a Creative Commons Attribution 4.0 International License
A Comprehensive Review on Selenium Automation Testing Tool
Deepthi Wilson. R
PG Student Dept.Computer Science & Engineering
GSSSIETW
Mysuru, India
Manjuprasad. B
Assistant Professor Dept.Computer Science & Engineering
GSSSIETW
Mysuru, India
Abstract:- Software testing is one of the vital and crucial phase of software development lifecycle. Today many software applications are developed as web based application that runs directly through Internet browser. The importance of controlling and improving the quality of web applications will increase its economic relevance. Automation testing decreases the test cost and increases work efficiency to deliver a high quality and stable product at the end. Web applications are flattering additional complexity that applications are difficult to test manually. It will increase the time and cost. Accurate results can't be provided. This can be avoided by using test automation. The objective of the paper is to make test automation intended for Web applications using Software testing tool, Selenium. It is a collection of testing tool running with multiple browsers, operating systems and many programming languages. Selenium contains almost all the characteristics to automate tests and it is used to build test cases for web applications.
Keywords: Selenium, Automation Testing Tools, Automated testing, Test Automation, Selenium IDE, Web Driver.
-
INTRODUCTION
-
Software Testing
Software testing is the basic and important part of software development process. Testing is evaluating a system or a module by providing defined inputs and comparing them with the desired outputs to check the discrepancies between the desired and actual outputs and correct them. Basically software testing is broken into two categories. They are Manual testing and Automated software testing.[1][4] By integrating automated testing into the software development program, we can gain a number of benefits: Automating the creation of both manual test cases and automated test scripts using a model not only saves effort and thereby cost, but increases coverage and also significantly reduces the time-to-market.
-
Testing Approaches
Manual Testing is a procedure in which the software or application is tested manually i.e. without using the software automation tools or test scripts. Manual testing is the practice of testing the software or application manually to find out the defects and see to it that the software is fulfilling the requirement specifications.[13] It needs a tester to play the role of associate user and use most of all options of the applying to make sure correct behaviour.
Any new application should be manually tested before it is automatically tested. Manual testing needs additional efforts however is critical to examine automation practicable. One in every of the computer code Testing elementary is Full-fledged Automation testing is not possible which makes Manual testing imperious and essential.[9] Automation testing is more reliable, faster than manual work and numbers of resources for task are reduced. It can reuse tests on different versions of an application and run more tests in less time. There are many things to be considered for selecting the testing tool. It is ease of integration, compatible with the design & implementation of the application, performance of tests and maintenance.
Test automation is essential for continuous delivery and testing. Automation Testing covers the majority the issues of manual testing. The objective of automated testing is to modify the maximum amount of the testing effort as attainable with a minimum set of scripts. Automated testing tools are able to execute tests, reportage outcomes and scrutiny results with earlier test runs. Automation is not a complete alternative to manual testing but it is a continuation of manual testing which aims to provide accuracy and speed to the testing efforts.
-
Comparative study of Manual and Automation Testing
Table1.1: Comparison between manual and automation testing [11]
-
Commercial Testing Tool (QTP, Win runner, QA Load, QA Test).
-
-
-
ANALYSIS
Software Quality
-
Merits of Automation
After the initial time given to generate the test scripts, the execution of automated tests is much faster. Once test scripts are written and added to test suite they cannot be forgotten whereas manual tester can forget to perform some specific tests. Also automated tests are more accurate than manual tests as they do not involve human errors .Because of this, companies have found that automation software testing is an necessary component of successful software development projects. In todays current software companies invest more money on Test Automation tools, so what makes automated testing so important to these companies [12] .They are:
-
Automation Testing takes less time to execute and less expensive.
-
Testing Improves Accuracy.
-
Increase Test Coverage.
-
Automation testing does what is not possible by Manual Testing.
Automation Testing is used to re-execute the test suites that were performed manually, rapidly and frequently. It helps Developers and Testers [3]. For Automation Testing, companies prefer Automation Framework. The main motive of the tester is to find out all possible defects in the software and report all defects to the developer to fix, so that software quality can be increase. Software Quality becomes necessary while we talks about customer satisfaction.[6] It should be priority of a company to provide high level of customer satisfaction.
-
Perform Manual Testing is very overwhelming process, require more effort, not reusable because of no scripting facility and some error remain uncovered.
-
Automation Testing overcome all the problems of manual testing with using automation framework like Selenium, QTP, Win runner etc. Automation Testing is more convenient and efficient than manual testing. With automation testing we can save our time and resources too.
There are two types of testing tools:
-
Open Source software Testing Tool (Selenium Web driver).
-
A quality factor represents a behavioral characteristic of a system. Some examples of high-level quality factors are correctness, reliability, efficiency, test-ability, portability, and re-usability. Quality factors are external attributes of a software system. The software quality assurance team is more interested in the test-ability of a system so that some other factors, such as correctness, reliability, and efficiency, can be easily verified through testing.[8] In contrast, functional quality is typically enforced and measured through software testing. Quality cannot be achieved by assessing an already completed product.[10] Therefore, testing plays an important role in achieving and assessing the quality of a software product. On the one hand, we improve the quality of the products as we repeat a testfind defectsfix cycle during development. On the other hand, we assess how good our system is when we perform system-level tests before releasing a product.
Some quality assurance measures include: The development process is structured with standard software development and it is supported with methods, techniques, and tool. Testing is done in many phases depending upon the requirements of the software being developed. Testing can be both manual and automated depending on what suits the equirements. Testing is a planned process with care taken especially on what test has to be done when.
-
Requirements for Automated Software Testing
All the tests are not automated. There are certain requirements for a test to be automated. They may be financial restrictions or limited man power and many. There a few basic questions whose answers could give you an idea whether the test has to be automated or not.
They are as follows [14]
-
Can we define the actions of test sequence?
-
Is that necessary to replicate the actions of sequence several times?
-
Is it possible to automate the sequence of actions?
-
Is the performance of the application under test similar with automation as well as manual?
-
Is it necessary to execute the tests on different hardware configurations?
-
-
Test Automation Process Life Cycle Diagram
Figure 2.1: Automation lifecycle [9]
-
Finalization of Test Automation and Making a Test Plan:
The tests that can be automated are decided in this phase. The test automation process is similar to the software development process. It takes similar effort to automate a test. It follows the same cycle as in the process of a software development product.[5] The plan is made by taking into consideration amount of time required and total number of resources needed and who does it.
-
-
INTRODUCTION TO SELENIUM
Selenium Framework is an open-source test automation tool that is needed for automation testing. Selenium is a collection of various software Tools with a unique way to follow the test automation. It has capabilities to manage across operational systems and completely different browsers. It supports various programming languages, which incorporates most, however not restricted to solely, Groovy, Ruby, Perl, Python, Java, C and PhP. Selenium consist of numerous components which content three major tools.[4] Everyone has a selected role in aiding the event of test automation for a web application.
-
Selenium IDE: Selenium IDE is an integrated development environment for building Selenium test cases. Selenium IDE is Firefox plug-in that allows to testers to record their action as they follow the workflow that they need to test.
-
Selenium RC: It is a Client Server Architecture that receives the Selenium Commands from the editor and test are carried out via browser. It makes use of the complete power of programming languages like Java, C, PHP, Groovy, Python, Ruby and PERL to generate more complex tests.
-
Selenium Web Driver: Selenium Web Driver is the heir to Selenium RC that sends commands on to the browser and retrieves results.
-
Selenium Grid: Selenium Grid is a tool use to run parallel tests across totally different machines and different browsers at the equal time which ends in decreased execution time.
Web applications require changes more as compared to desktop systems making updates in features of system, security attacks, and preferred changes for users. Applying the regression testing overall for a system is expensive because companies cannot afford this as expected turnaround time for the patches is short. They provided a solution of this problem when companies face the challenges of security breaches. Regression testing approach in such situation applies only on the code, which has been modified.
Selenium is a browser automation tool, commonly used for writing end-to-end tests of web applications. A browser automation tool do expected exactly and automate the control of a browser so that repetitive tasks can be automated.It has different features which are useful for developer.[6] Selenium IDE is use for record and playback as well as for those developers who are new in developing side can also use easily for their work.
For developers who are good in programming language can use selenium RC or WebDriver.[10] To run selenium tests parallel one can use selenium grid. By choosing proper framework one can save time as well as money and can improve software quality.
Selenium Testing Process consists of following phases:
Figure 3.1: Selenium Testing Process
-
-
TEST AUTOMATION FRAMEWORK
It is not possible to automate every test case in a software test plan. The tests that need to be automated must be first decided by the testers. Hence testers must first decide which tests are to be automated. Testing all GUI items, connections with database, validations etc. can also be efficiently automated.[8] Following factors are mainly
considered while deciding to automate tests: Products that needs performing the same tests again and again. Requirements of product do not change frequently Automation can be done by using languages like Java, vbscript and automated software tools. There are a bunch of tools available that help in test automation. Typically JUnit[6] Automation Framework can be used for unit testing. Selenium [2][7] is used for web application testing along with Selenium Web Driver[7]. These tools help us to create testing framework.
A Test Automation Framework can be loosely defined as a collection of abstract concepts, processes, procedures and environment in which automated tests will be designed, created and executed. In addition, it includes the logical interactions of these components and also the physical structures used for test creation and implementation. Figure4.1 shows a view of framework structure. It consist of selenium[2] module which is important for interrelation of framework and web application under test.
Figure 4.1: Overview of framework structure
There are different types of frameworks:
-
Linear FrameworkIt is simplest & basic framework. Just a single program for sequential steps in a test script written. No modularity present.
-
Data driven Framework -This type is used to test the behaviour of an operation with variable set of data with variable set of data.
-
Keyword driven Framework Keyword Driven GUI provide the various keywords, due to which test cases are designed. There can be some arguments or values which are required for the use of keyword. Each keyword has different kind of arguments which can be a static value or can be data table value.
-
-
CONCLUSION
This paper proposed the concept of testing and various testing approaches. It will help to understand test automation and its importance. An Automation testing process is to help testing the software program application. Several web automation tools such as HP-QTP to Selenium were existing. Our research article focuses on providing a
review on all the web test automation tools and hence it acts as guide for future researchers in Selenium. Before selecting any tool, testers must compare the features of various tools and choose the best that fits the respective task.
-
REFERENCES
-
Fei Wang and Wencaai Du, A Test Automaton Framework Based on WEB proc. IEEE 11th International Conference on Computer and Information (ACIS 12),IEEE Press, 2012, pp. 683- 687, doi:10.1109/ICIS.2012.21 .
-
Ms. RigzinAngmo, Mrs. Monika Sharma,Selenium Tool: A Web based Automation Testing Framework, (IJETCAS),2014.
-
Sherry single, Harpreetkaur,Selenium keyword automation testing framework, International Journal of Advanced Research in Computer Science and Software Engineering, Vol.4,2014
-
Monika Sharma and RigzinAngmo, Web based Automation Testing and Tools, of Computer Science (IJCSIT), Vol. 5(1),2014, ISSN:0975-9646, pp. 908-912.
-
Mohammad Imran, Dr. Mohamed A.Hebaishy, Dr. Abdullah Shawan Alotaibi, A Comparative Study of QTP and Load Runner Automated Testing Tools and their Contributions to Software Project Scenario, Vol. 4, Issue 1, January 2016
-
Niranjanamurthy M, Arun Kumar R , Sahana Sriniva, Manoj RK, Research Study on Web ApplicationTesting using Selenium Testing Framework, IJCSMC, Vol. 3,Issue. 10, October 2014.
-
Harpreet Kaur, Dr.Gagan Gupta, Comparative Study of Automated Testing Tools: Selenium, Quick Test Professional and Testcomplete, ISSN: 2248-9622, Vol. 3, Issue 5, Sep-Oct 2013.
-
Rafi, Benefits and limitations of automated software testing: Systematic literature review and practitioner survey, Automation of Software Test, IEEE, pp. 36-42, 2012.
-
Marback Aaron, Do Hyunsook and Ehresmann Nathan. An effective regression testing approach for php web applications. 2012..
-
I. Singh, B. Tarika, Comparative Analysis of Open Source Automated Software Testing Tools: Selenium, Sikuli and Watir International Journal of Information & Computation Technology, vol 4, pp. 1507-1518, 2015.
-
Y.C. Kulkarni, Y.C. Kulkarni,Automating the web applications using the selenium RC,ASM's International Journal of Ongoing Research in Management and IT e-ISSN-2320-0065, 2011.
-
MacarioPolo,PedroReales,MarioPiattini. Computing Test Automation; IEEE Software, VOL. 30, NO. 1, January 2013.
-
Borjesson Emil and Feldt Robert. Automated system testing using visual gui testing tools: A comparative study in industry. IEEE Computer Society, 2012.
-
Hitesh Tahbildar1 and Bichitra Kalita2 AUTOMATED SOFTWARE TEST DATA GENERATION: DIRECTION OF RESEARCH, International Journal of Computer Science Engineering Survey (IJCSES) Vol.2, No.1, Feb 2011.