In this article we will cover the following topics:
Introduction to Software Testing
Software testing is performed to verify that the application or the software is working as expected and is free from error and also meets the user requirements effectively and efficiently by handling all the exceptional and boundary conditions.
Primarily there are 2 different types of testing: Manual testing, and Automation testing.
Manual testing includes- Unit testing, Integration testing. System testing, Usability testing and User Acceptance testing etc. In Manual testing the software application is tested manually based on the test cases written by the Tester. Manual testing does not require any tool or any scripting language.
Limitations of Manual testing:
1. Retesting and Regression testing
It becomes monotonous to perform the same testcases with every release. When a tester reports a bug and when it is fixed by the developers, Testers have to retest the failed test cases to confirm that the bug is fixed. The Tester also needs to perform a regression testing to confirm that the application or the software working fine after the bug is fixed. This both type of testing involves repetitive testing which becomes monotonous for a tester, and they may do some mistake or skip some scenarios.
2. Comparing large tables or spreadsheet with lots of data
It is not feasible to compare larger tables or spreadsheet manually.
3. Performance testing
We need to used tools for performance testing and load testing.
4. Cross browser testing is time consuming.
6. Less accuracy, there are chances of human error.
7. Challenging to test multilingual sites.
Automation testing is done programmatically. It can take care of the repetitive test cases or business critical test cases. Automation testing can be performed 24/7 from anywhere in the world. It can help to cover many test cases in short amount of time. Automation testing reduces human error and also reduces human effort a lot. Automation testing is suitable for retesting, regression testing, load testing and performance testing.
It can automate those tasks which is difficult to do manually such as:
1. Comparing images
2. Comparing two spreadsheets containing thousands of rows and columns.
3. Testing an application under the load of thousands of users.
4. Performance Benchmarks.
5. Testing the application on different browsers and on different operating systems in parallel.
Why Selenium for automation testing?
There are various automation testing tools available, among them Selenium is best for automation testing of web applications. Selenium suite is a combination of four components - the Selenium IDE, Selenium WebDriver, Selenium RC, and Selenium Grid.
Selenium IDE - It is used to record, playback, debug and edit selenium scripts. IDE was created to make writing automation test scripts easier. One doesn't need programming knowledge to use IDE.
Selenium Web driver - It is commonly referred as Selenium. It is the most used component of Selenium suite. It can control the web browser through programming. Web driver supports a variety of programming languages, including Java, Python, Ruby, PHP, and Perl.
Selenium Grid- It is used to execute parallel tests across different browsers and operating systems remotely.
Selenium RC and Selenium Web driver is combined to form the latest Selenium Web driver.
Advantages of using Selenium:
Selenium is open source.
Selenium supports Agile and DevOps.
Selenium supports multiple operating systems ( Windows, MAC, Unix and Linux).
Selenium supports multiple browsers (Firefox, Chrome, Safari, Opera, Edge, IE).
Selenium supports multiple language ( Java, , Perl, Python, C#, Ruby, Groovy, Java Script etc.).
Selenium supports parallel test execution which reduces time and increases the efficiency of tests.
Selenium can be integrated with other framework like Maven and TestNG.
Selenium can be integrated with Jenkins or Hudson for continuous integration.
Selenium web driver does not require server installation, test scripts interact directly with the browser.
Limitations of Selenium:
Selenium can only be used for testing web applications. Selenium can not be used for testing desktop application or windows application.
Selenium does not support excel files. However this can be overcome by using Apache POI.
Selenium does not have its own reporting, we need to use third party reporting.
Selenium support is provided by the community of users sometimes there may be delay is getting a solution.
Selenium cannot automate graph and CAPTCHA testing.
There are different automation tools available in the market for test automation but Selenium is the most preferred one for automating test cases for web applications. Selenium is the most widely used automation tool
with over 43000 companies using it world wide.
Hope this article will help to understand why automation testing is used in the industry and why Selenium is preferred automation suite for web applications. Happy Learning!!