Practical
Practical
Practical
Description : Automated Testing means using special software for tasks that people usually do
when checking and testing a software product.
Automation testing is
Manual testing is time-
time-saving as due to the
consuming due to human
use of the tools the
intervention where test
execution is faster in
cases are generated
comparison to manual
manually.
Time efficiency testing.
1. Unit testing: Unit testing is a phase in software testing to test the smallest piece of code known as a unit
that can be logically isolated from the code. It is carried out during the development of the application.
2. Integration testing: Integration testing is a phase in software testing in which individual software
components are combined and tested as a group. It is carried out to check the compatibility of the
component with the specified functional requirements.
3. Smoke testing: Smoke testing is a type of software testing that determines whether the built software is
stable or not. It is the preliminary check of the software before its release in the market.
4. Performance testing: Performance testing is a type of software testing that is carried out to determine how
the system performs in terms of stability and responsiveness under a particular load.
5. Regression testing: Regression testing is a type of software testing that confirms that previously developed
software still works fine after the change and that the change has not adversely affected existing features.
6. Security testing: Security testing is a type of software testing that uncovers the risks, and vulnerabilities in
the security mechanism of the software application. It helps an organization to identify the loopholes in the
security mechanism and take corrective measures to rectify the security gaps.
7. Acceptance testing: Acceptance testing is the last phase of software testing that is performed after the
system testing. It helps to determine to what degree the application meets end users’ approval.
8. API testing: API testing is a type of software testing that validates the Application Programming
Interface(API) and checks the functionality, security, and reliability of the programming interface.
9. UI Testing: UI testing is a type of software testing that helps testers ensure that all the fields, buttons, and
other items on the screen function as desired.
Automation Tools :
Selenium: Selenium is an automated testing tool that is used for Regression testing and provides a playback
and recording facility. It can be used with frameworks like JUnit and Test-NG. It provides a single interface
and lets users write test cases in languages like Ruby, Java, Python, etc.
QTP: Quick Test Professional (QTP) is an automated functional testing tool to test both web and desktop
applications. It is based on the VB scripting language and it provides functional and regression test automation
for software applications.
Sikuli: It is a GUI-based test automation tool that is used for interacting with elements of web pages. It is used
to search and automate graphical user interfaces using screenshots.
Appium: Apium is an open-source test automation framework that allows QAs to conduct automated app
testing on different platforms like iOS, Android, and Windows SDK.
J-meter: Apache JMeter is an open-source Java application that is used to load test the functional behavior of
the application and measure the performance.
Simplifies Test Case Execution: Automation testing can be left virtually unattended and thus it allows
monitoring of the results at the end of the process. Thus, simplifying the overall test execution and
increasing the efficiency of the application.
Improves Reliability of Tests: Automation testing ensures that there is equal focus on all the areas of the
testing, thus ensuring the best quality end product.
Increases amount of test coverage: Using automation testing, more test cases can be created and
executed for the application under test. Thus, resulting in higher test coverage and the detection of more
bugs. This allows for the testing of more complex applications and more features can be tested.
Minimizing Human Interaction: In automation testing, everything is automated from test case creation
to execution thus there are no changes for human error due to neglect. This reduces the necessity for
fixing glitches in the post-release phase.
Saves Time and Money: The initial investment for automation testing is on the higher side but it is cost-
efficient and time-efficient in the long run. This is due to the reduction in the amount of time required
for test case creation and execution which contributes to the high quality of work.
Earlier detection of defects: Automation testing documents the defects, thus making it easier for the
development team to fix the defect and give a faster output. The earlier the defect is identified, the more
easier and cost-efficient it is to fix the defects.
High initial cost: Automation testing in the initial phases requires a lot of time and money investment. It
requires a lot of effort for selecting the tool and designing customized software.
100% test automation is not possible: Generally, the effort is to automate all the test cases but in practical real
situations not all test cases can be automated some test cases require human intervention for careful
observation. There is always a human factor, i.e., it can’t test everything like humans(design, usability, etc.).
Not possible to automate all testing types: It is not possible to automate tests that verify the user-friendliness of
the system. Similarly, if we talk about the graphics or sound files, even their testing cannot be automated as
automated tests typically use textual descriptions to verify the output.
Programming knowledge is required: Every automation testing tool uses any one of the programming
languages to write test scripts. Thus, it is mandatory to have programming knowledge for automation testing.
False positives and negatives: Automation tests may sometimes fail and reflect that there is some issue in the
system but there is no issue present and in some cases, it may generate false negatives if tests are designed to
verify that some functionality exists and not to verify that it works as expected.