Professional Documents
Culture Documents
Test Automation and Testing Tools
Test Automation and Testing Tools
TESTING TOOLS
TEST AUTOMATION AND TESTING
TOOLS
To understand test automation and testing tools
1. Describe advantages of test automation
2. Explain the Guidelines for automated testing
3. State the categories of testing tools
4. Explain the selection of testing tools
5. Explain the open source testing tools – CUT, Cgreen,
Emma and Findbugs
6. Describe about commercial testing tools – WinRunner,
SilkTest, LoadRunner, Jmeter, and TestDirector
7. State how object oriented testing is done
8. Describe how testing of web based systems are done
TEST AUTOMATION
• Testing tools are a big aid to the testers
• Testing activities , if performed manually,
may take a lot of time. Thus there is a
need for automating the testing activities
• Test automation is not a replacement of
manual testing. It must be seen as an
enhancement to the manual testing
process
ADVANTAGES OF TEST AUTOMATION / NEED
FOR AUTOMATION / BENEFITS OF
AUTOMATION
• 1. Reduction of testing effort :
• 2. Reduces the tester’s involvement in
executing tests
• 3. Facilitates regression testing
• 4. Avoids human mistakes
• 5. Reduces overall cost of the software
• 6. Simulated testing
• 7. Internal testing
• 8. Test enablers
• 9. Test case design
ADVANTAGES OF TEST AUTOMATION / NEED
FOR AUTOMATION / BENEFITS OF
AUTOMATION
• 1. Reduction of testing effort :
– Validation and Verification testing strategies may
includes thousands of test cases.
– Manual execution of all of them takes a lot of efforts
and time. So, executing test suites through tools
greatly reduces the amount of time required.
• 2. Reduces the tester’s involvement in executing
tests
– Automating the test suite execution will relieve the
testers to do some other work.
• 3. Facilitates regression testing
– Regression testing is the most time consuming
process. So, automating regression testing will reduce
testing effort and testing time.
ADVANTAGES OF TEST AUTOMATION /
NEED FOR AUTOMATION / BENEFITS OF
AUTOMATION
• 4. Avoids human mistakes
– Manual testing may cause errors in the process or
sometimes, testers may be biased to limited test cases. All
these manual problems can be avoided with automation.
• 5. Reduces overall cost of the software
– As testing tools ease the burden of the test case
production and execution, time and therefore cost can be
greatly reduced.
• 6. Simulated testing
– Load performance testing is an example of testing where
the real-life situation needs to be simulated in the test
environment. Manual creation of real loads like a number of
concurrent users, large amount of data etc. may be difficult.
Automation tools can easily create millions of concurrent
virtual users/ data and effectively test the project.
ADVANTAGES OF TEST AUTOMATION / NEED FOR
AUTOMATION / BENEFITS OF AUTOMATION
• 7. Internal testing
– Testing may require testing for memory leakage or
checking the coverage of testing. Automation tools
can help doing these tasks quickly and accurately
• 8. Test enablers
– While development is not complete, some modules
may not be ready for testing. So stubs and drivers
need to be created. Automation is essential in these
cases to reduce the effort required.
• 9. Test case design
– Automated tools can design test cases with a
guarantee of better coverage than manual design.
GUIDELINES FOR AUTOMATED
TESTING
• Testing tools can never replace the analytical
skills required to conduct testing and manual
testing.
• So automation should be adopted carefully
after deciding which tool and how many tools
are required, how much resources are
required including cost of the tool and time
spent on training
• Listed below are few guideline to be followed
while planning automation in testing :
GUIDELINES FOR AUTOMATED
TESTING
• 1. Consider building a tool instead of buying
one, if possible
• 2. Test the tool on an application prototype
• 3. Not all the tests should be automated
• 4. Select the tools according to
organizational need
• 5. Use proven test-script development
techniques
• 6. Automate the regression tests whenever
feasible
GUIDELINES FOR AUTOMATED
TESTING
• 1. Consider building a tool instead of buying one, if
possible
– If the requirement is small and enough resources are
available, go for building a tool instead of buying.
– Whether to buy or build a tool requires management
commitment including budget and resource approvals.
• 2. Test the tool on an application prototype
– While purchasing a tool, it is important to verify that
the tool works properly with the system being
developed. So it is suggested that the development
team can build a system prototype for evaluating the
testing tool.
GUIDELINES FOR AUTOMATED
TESTING
• 3. Not all the tests should be automated
– Automated testing is an enhancement of manual
testing .
– Some tests are impossible to automate such as
verifying a print out. It has to be done manually.
• 4. Select the tools according to organizational
need
– Do not buy the tools just for their popularity or to
compete with other organizations.
– Focus on the needs of the organization and know
the resources ( budget, schedule ) before
choosing the automation tool.
GUIDELINES FOR AUTOMATED TESTING
• 5. Use proven test-script development techniques
– Automation can be effective if proven techniques are
used to produce efficient,maintainable, and reusable
test scripts
– Following are some hints :
• i. Read the data values from either spreadsheets or tool-
provided data pools, rather than being hard coded into
the test script because this prevent test cases from being
reused.
• ii. Use modular script development for maintainability
and readability
• iii. Build a shared script library of reusable functions
which is usable by all test engineers
• iv. All test scripts should be stored in a version control
tool
GUIDELINES FOR AUTOMATED
TESTING
• 6. Automate the regression tests whenever
feasible
– Since regression tests need a lot of time,
automate the regression test cases whenever
possible. Thus, testing time can be reduced to a
greater extent.
CATEGORIES OF TESTING TOOLS
• 1. Static and Dynamic testing tools
• Static testing Tools
• Dynamic testing Tools
• 2.Testing Activity Tools
– Review and inspections
• Complexity analysis tools
• Code Comprehension
– Test Planning
– Test Design and development
• Test data generator
• Test case generator
– Test execution and evaluation
• 1. Capture/playback tools
• 2. Coverage analysis tool
• 3. Memory testing tools
• 4. Test management tools
• 5. Network testing tools
• 6. Performance testing tools
CATEGORIES OF TESTING TOOLS
• 1. Static and Dynamic testing tools
• Tools are based on the type of execution of test cases, namely
static and dynamic
• • Static testing Tools
• o Static tools are analyzers which scan the source program and
detect possible faults and anomalies
• o They parse the program text and detect the following :
–1. Statements are well-formed
–2. Inferences about the control flow of the program
3. Compute the set of all possible values for program data.
• o Static tools perform the following type of static analysis :
–1. Control flow analysis : Detects loops with multiple exits and entry
points and unreachable code
–2. Data use analysis : It detects all types of data faults
–3. Interface analysis : Detects all interface faults . also detects functions
which are never declared, never called and function results never used
– 4. Path analysis : It identifies all possible paths through the program
CATEGORIES OF TESTING TOOLS
• • Dynamic testing Tools
• o These tools support the following
• 1. Dynamic testing activities
• 2. Sometimes, it is difficult to generate test cases and perform
testing because several operations being performed concurrently.
Automation tools sometimes work like “Program Monitors”
which can capture the state of events during execution of
program by preserving a snapshot of the conditions.