Automated Tests vs Manual Tests
Software Testing has lot of challenges both in manual as well as in automation.
Generally in manual testing scenario developers through the build to test team assuming the responsible test team or tester
will pick the build and will come to ask what the build is about?
This is the case in organizations not following so-called ‘processes’. Tester is the middleman between developing team
and the customers, handling the pressure from both the sides.
So here we go with the top challenges:
1) Testing the complete application:
There are millions of test combinations. It’s not possible to test each and every combination both in manual as well as in
automation testing(but we can achieve greater coverage). If you try all these combinations you will never ship the product
2) Regression testing:
When project goes on expanding the regression testing work simply becomes uncontrolled. Pressure to handle the current
functionality changes, previous working functionality checks and bug tracking.
3) Testing always under time constraint:
Hey tester, we want to ship this product by this weekend, are you ready for completion? When this order comes from
boss, tester simply focuses on task completion and not on the test coverage and quality of work. There is huge list of tasks
that you need to complete within specified time. This includes writing, executing, automating and reviewing the test
cases.
Executing the test cases manually without any tool support is known as manual testing.
Taking tool support and executing the test cases by using automation tool is known as automation testing.
Automation is the use of tools and strategies that reduce human involvement or
interaction in unskilled, repetitive or redundant tasks
Software Testing is Ever-shrinking schedule process and minimal resources.
It involves automating a manual process of testing
Coding Process with Manual Tests
Write code
Uploading the code to some place
Build it
Running the code manually (in many cases filling up forms etc step by step)
Check Log files, Database, External Services, Values of variable names, Output on the screen etc
If it does not work, repeat the above process
Coding Process with Automated Functional Tests
Finish writing code
Write a Functional Test using any tool
Auto-compile and run
If tests fail -> make appropriate modifications
If tests pass -> move ahead
Automated Tests vs Manual Tests
Effort and Cost
Lets assume 6 test cases
Effort required to run all 6 manually => 10 min
Effort required to write unit tests for all 6 cases => 10 min
Effort required to run unit tests for all 6 cases => < 1 min
Number of testing iterations => 5
Total manual testing time => 50 min
Total unit testing time => 10 min
Manual Testing is boring
No one wants to keep filling the same forms
There is nothing new to learn when one tests manually
People tend to neglect running manual tests
No one maintains a list of the tests required to be run if they are manual tests
Automated Tests on the other hand are code
They are fun and challenging to write
One has to carefully think of design for reusability and coverage
They require analytical and reasoning skills
They represent contribution that is usable in the future
Manual Testing is not reusable
The effort required is the same each time
One cannot reuse a Manual Test
Automated Tests are completely reusable
They can be reused without any additional effort for the lifetime of the Project
Advantages & Disadvantages of Automated Testing
Manual Testing Automation Testing
1. Time consuming and tedious: Since test
1. Fast Automation runs test cases significantly
cases are executed by human resources so it is
faster than human resource
very slow and tedious.
2.Less reliable: Manual testing is less reliable 2. More reliable: Automation tests perform
as tests may not be performed with precision precisely same operation each time they are run.
each time because of human errors.
What is Selenium
Selenium is a tool used to perform Functionality Testing and Regression Testing.
Selenium is a robust set of tools that supports rapid development of test automation for web-based
applications.
Selenium provides a rich set of testing functions specifically geared to the needs of testing of a
web application.
Selenium operations are highly flexible, allowing many options for locating UI elements and comparing expected test
results against actual application behavior.
Supports Cross Browser Testing. The Selenium tests can be run on multiple browsers.
Supports Cross Platform Testing.
Assertion statements provide an efficient way of comparing expected and actual results.
How to Select Correct Test Cases for Automation
Testing
We can have your own parameters depending on your application.
Test case executed with different set of data
Test case executed with different browser
Test case executed with different environment
Test case executed with complex business logic
Test case Involves large amount of data (Data Driven Framework)
Test case has any dependency