Software Testing is known as a process of executing a program or product with the intent to find the error as well as whether the program or product satisfies the requirements or not. Testing means executing a system in order to identify any errors or missing requirements contrary to the actual requirements.
In Manual testing, the software is being tested manually. In manual testing, we did not use any automated tool or any script. In this, the tester takes the role of an end-user and tests the software the way an end-user uses the system to find out any unexpected behavior or error. There are many different types of manual testing like unit testing, system testing, integration testing, and user acceptance testing.
The tester uses test plans, test cases, vs test scenarios to test the software to make sure that the testing results in complete. This type of testing also includes exploratory testing, as testers explore the software to find errors in it.
In this technique testing is done without having any knowledge of the internal details of the application is called black-box testing. The tester is not aware of the system architecture as well as does not have access to the source code. While performing a black-box test the tester will interact with the user interface of the system by providing inputs and examining the outputs without having any knowledge of how and where the inputs are worked upon.
This is the detailed investigation of internal logic and structure of the code. It is also called glass testing or open-box testing. When this type of testing is going to be performed on an application, a tester needs to know about the internal workings of the code. The tester needs to have a look inside the source code of the system or product and find out which unit or piece of the code is behaving inappropriately.
Grey box testing is a combination of black – box and white – box testing . It is a testing technique to test the application with having a limited knowledge of the internal details of an application. Mastering the domain of a system always gives the tester extra benefit over someone with limited domain knowledge. In Grey – Box testing the tester has access to design documents as well as the database. Having this knowledge, tester can prepare much better test data , test plans as well as test scenarios while making a test plan.
This is also known as Test Automation, in this the tester writes scripts and uses another software to test the product or program . The automation process involves automation of a manual process. This type of testing is used to re-run the test scenarios that were performed quickly, manually, and repeatedly.
How to Automate?
Automation is done by using a computer language like VB scripting and an automated software application. There are different tools available in market that can be used to write automation scripts. The automation testing process that can be used to automate is :
-Identifying the areas within a software for automation
-Selection of the required and appropriate tool for test automation
-Writing test scripts
-Development of test suits
-Execution of scripts
-Create result reports
-Identify any potential error or performance issues
Selenium is an open-source and a portable automated software testing tool used for testing web applications. It operates across different browsers and operating systems. Selenium is a set of tools that help the tests to automate the web based applications in more effective and efficient manners .
Selenium IDE : It is a Firefox plugin which lets the testers to record their actions as they followed the workflow that they needed to test.
Selenium RC : This is the flagship testing framework which allows more than simple browser actions and linear execution. This makes use of the full power of programming languages like Java, C#, PHP, Python, Ruby and PERL to generate more complex test scripts.
Selenium WebDriver : This is the successor of the RC that sends commands directly to the browser and retrieves results.
Selenium Grid : Selenium Grid is a tool that is used to run parallel tests across different machines and different browsers parallelly that results in minimize execution time