Overview on Test Automation
• Manual Testing requires more time or more resources (Human resources and Environmental Resources), some times both
• Performance testing is impractical in manual testing (Organizing thousands of machines and human users is not possible).
• Less Accuracy (Human Users may make mistakes)
• Executing same tests again and again is time taking process as well as Tedious.
• Verifying GUI Objects Size differences and Color combinations are not easy in Manual Testing.
• Not Suitable for Large scale projects and time bounded projects.
• Batch Testing is not possible, for each and every test execution Human user interaction is mandatory.
• Manual Test Case scope is very limited (Human user can concentrate on one or two verification points only), if it is Automated test, scope is unlimited (Tool is software It can concentrate on multiple verification points at a time).
• Comparing large amount of data is impractical (If we want compare Thousands of Records, it is not possible, but Test Tool can compare thousands of records).
• Checking relevance of search of operation is difficult
• Processing change requests during software maintenance takes more time.
II) Advantages of Test Automation
Automated tests are significantly faster than human users.
Test Tools are faster in Test execution than human users, In Software Testing two important tasks,
i) Test Design
ii) Test Execution Or Test Run
In case of Test design Test Tools are not faster, for Test Design human user interaction is mandatory. Test Tools provide IDE (Integrated Environment) for designing Tests.
In case of Test Execution Test Tools are faster than human users, Tool can execute series of Tests quickly without user interaction.
Anyhow Test Design one time activity but Test execution multiple times, so defiantly we can save Time.
Tests perform precisely the same operations each time they are run, thereby eliminating human error.
Human Users may make mistakes, if you provide proper logic Test Tool can provide correct output every time.
We can test how the application reacts after repeated execution of the same operations.
We can execute same operations (Data Driven Testing) using multiple sets of Test Data. If it is manual Test Testing takes more time.
Why we need to execute same operations multiple times?
For positive and Negative Testing we perform Data Driven Testing.
We can program sophisticated tests that bring out hidden information.
We can apply programming features to our tests (Ex: Flow control statements, Functions etc…)
We can insert multiple verification points in an Automated Test, Test Tool is software it can concentrate on multiple verification points at a time, but in Manual testing human user can concentrate on one or two verification points at a time, So Automated Test scope is very high than Manual Test case.
We can build a suite of tests (Batch Testing) that covers every feature in our Application.
Software Test Tools support Batch Testing (Executing Series of Tests), we can create test batches, without human user interaction Tools can execute test batches, if it is manual testing, each and every test case execution user interaction is mandatory.
We can reuse tests on different versions of an application, even if the user interface changes.
Ex: Sanity Tests, Regression Tests
III) Disadvantages of Test Automation
a) 100% test automation impractical, generally we try to automate maximum test scenarios.
b) All types of testing is not possible (Ex: Usability Testing)
c) More Efforts required at initial stage of Test Automation.
d) Not suitable dynamically changing UI designs
e) Debugging issues
f) Tools may have their own defects, so we may not get desired benefits.
g) Lack of knowledge
h) Environment limitations (In UFT, if you want test Java Application Java Add in required, SAP Application SAP Add in required, UFT is not providing Add ins for All Environments.)
If it is manual testing no Environment limitations, irrespective of the Application Environment you can apply manual testing methods.
IV) Types of Test Tool
a) Business classification
1) Vendor Tools
Companies develop test tools for commercial use, license is required to use and get technical support.
HP- UFT, LoadRunner, QC/ALM etc…
IBM-Rational- Rational Robot, RFT, RPT, QA Director
Micro Focus-SilkTest, Silk Performer
2) Open Source Tools
Source code available on NET anybody can download and use.
Ex: Selenium, Jmeter, Bugzilla, QAwebload etc…
3) In-House Tools
Some companies develop test tools for their internal use.
b) Technical Classification
1) Functional & Regression Test tools
QTP, RFT, Selenium etc…
2) Performance/Load/Stress Tools
LR, RPT,Silk Performer JMeter etc
3) Test management Tools
QC, QA Director etc…
4) Defect Management Tools
Bugzilla, zera, Issue Tracker, PR-Tracker etc.
5) Security Test tools
6) Unit Test tools Etc…
V) Functional Testing
Verifying a component or systems functionality with respect to Functional Requirements.
Coverage of Functional Testing
a) Input Domain Coverage
Verifying weather the system (Application under Test) is accepting valid inputs or not? And preventing invalid inputs or not?
b) Output Domain Coverage
Verifying weather the System is providing correct Outputs or not, based on input and process
c) Database Testing
Verifying the Data Integrity,
Data Manipulations (Add, Edit, delete),
Data Back-up and Recovery Operations Etc…
d) Error handling
Verifying how the system is handling user unauthorized/invalid operations and providing error and help messages.
e) Order of functionalities
Verifying weather the System is providing correct order of functionalities or not.