Professional Documents
Culture Documents
5testing Tools
5testing Tools
Testing Tools
5.0 Introduction
Testing is an integral part of any successful software project.
The type of testing (manual or automated) depends on various factors,
including project requirements ,budget, timeline, expertise, and
suitability.
Manual testing (as the name suggests), test cases are executed manually (by
a human, that is) without any support from tools or scripts.
But with automated testing Test cases are executed with the assistance of
automation testing tools, scripts, and software.
Manual testing is the oldest method of testing.
As source code changes, each time manual tests are repeated and prone to
errors. It is also difficult to execute manual testing on multiple platforms.
Limitations of Manual Testing:
1. Manual Testing is Slow and Costly: Because it is very labour intensive, it
takes a long time to complete tests. Increasing headcount increases cost.
2. Manual Tests do not Scale Well: As the complexity of the software
increases, the complexity of the testing problem grows exponentially. This
leads to an increase in the total time devoted to testing as well as the total
cost of testing.
3. Manual Testing is Not Consistent or Repeatable: Variations in how the
tests are performed are inevitable, for various reasons. One tester may
approach and perform a certain test differently from another, resulting in
different results on the same test, because the tests are not being performed
identically.
4. Lack of Training is a Common Problem: Although not unique to manual
software testing.
5. Testing is difficult to Manage: There are more unknowns and greater
uncertainty in testing than in code development so, it will be difficult to
manage.
Automation testing
Automation testing is a process of changing any manual test case into the
test scripts by using automation testing tools and scripting or programming
language.
It helps in building better quality software with less effort. We can define test
automation as, the automation of test-related activities with little or no
human interaction.
Benefits of Automated Testing :
1. Faster Feedback Cycle: Test automation helps to reduce the feedback cycle
and bring faster validation for phases in the development of software product.
2. Increased Efficiency: Test automation is useful because it detect problems or
bugs early or during the development phase, which increases the team's
efficiency.
3. Reliable: Tests in automation perform precisely the same operations each time
they are run, thereby eliminating human error.
4. Repeatable: We can test how the software reacts under repeated execution of
the same operations.
5. Programmable: We can program sophisticated tests that bring out hidden
information from the application.
6. Comprehensive: We can build a suite of tests that covers every feature in the
application.
7. Reusable: We can reuse tests on different versions of an application, even if
the User Interface (UI) changes.
8. Better Quality Software: Because we can run more tests in less time with
fewer resources,
9. Fast: Automated tools run tests significantly faster than human users.
10. Cost Reduction: An organization will save money as fewer resources are
spent on testing software product using an automated test environment.
11. Improved Accuracy: Automated tests can execute tests with 100%
accuracy as they produce the same result every time you run them.
12. Higher Test Coverage: Automation allows spending time on writing new
tests and adding them to automated test suite. This increases the test
coverage for a product so more features are property tested resulting in a
higher quality application.
5.1 How to Make Use of Automation
Tools?
Test automation is the process of testing various parts of new software with
little to no human involvement.
Automated testing tools vary in their underlying approach, quality, and
ease of use.
These tools may facilitate unit (module) testing and subsequent integration
testing(eg, drivers and stubs) as well as commercial software testing .
There are two types of testing tools i.e.
1.Static testing tools :
▪ support the static testing process,
▪ do not involve actual input and output.
▪ Static testing involves manual or automated document evaluations., i.e,
they do not test the actual execution of the software.
▪ Carried out early in the development phase.
▪ Helps to understand the structure of the code and can also be useful to
enforce coding standards.
▪ These tools include
▪ Coverage analyzers (All rationale paths in the software are assured),
▪ Flow analyzers ( provides flexibility in data flow from input to output),
▪ Interface analyzers (check out the consequences of passing variables and data in the modules.)
and so on
2.Dynamic testing tools :
▪ support the dynamic testing process,
▪ test the software system with "live" data.
▪ It examines the system's functionality, memory/CPU use, and overall system
performance
▪ Dynamic test tools include
▪ Mutation analyzers (used for testing fault tolerance of the system by knowingly
providing the errors in the code of the software.),
▪ Emulators (provides the response facilities which are used to imitate parts of the
system not yet developed),
▪ Test driver ( provides the input data to a module-under-test ),
▪ Test beds (The test execution environment configured for testing) and so on.
▪ Carried out later in the development phase.
For usages of Automation testing tools commonly applied steps:
1. Select test tool
2. Define scope of Automation
3. Planning, Designing and development of test
4. Execution of test
5. Maintenance
Characteristics of Test Tools:
1. Testing tools should be easy to use
2. These tools should provide complete code coverage and create test documenting in
various formats like doc, html, rtf etc.
3. Testing tools should use one or more testing strategy for performing testing on
host and target platforms.
4. These tools should provide a clear and correct report on test case, test case
status(PASS/FAIL), etc.
5. Testing tools should support GUI-based test preparation
6. These tools should be able to adopt with the underlying hardware.
Test Automation Frameworks
Selenium WebDriver performs much faster as compared to Selenium RC because it makes direct calls to the web
browsers. RC on the other hand needs an RC server to interact with the web browser.
Since, WebDriver directly calls the methods of different browsers hence we have separate driver for each browser.
4. Selenium Grid
Selenium Grid is also an important component of Selenium Suite which allows us to run our tests on different
machines against different browsers in parallel. In simple words, we can run our tests simultaneously on different
machines running different browsers and operating systems.
Selenium Grid follows the Hub-Node Architecture to achieve parallel execution of test scripts. The Hub is considered
as master of the network and the other will be the nodes. Hub controls the execution of test scripts on various nodes
of the network.
**** Read Selenium IDE from selenium implementation****
Best Of Luck