lecture - 13
lecture - 13
D.M.K.D Dissanayake
MSc-IT(Cyber security), PGDIT, BSc(Hons),HR(Dip)
TOOL SUPPORT FOR TESTING (K2)
We will cover:
• Types of Test Tools (K2)
• Effective Use of Tools: Potential Benefits and Risks
• Introducing a Tool into an Organization (K1)
TYPES OF TEST TOOLS
PURPOSE OF TOOL SUPPORT FOR TESTING
TOOL SUPPORT FOR TESTING
TOOL SUPPORT FOR TESTING
Test tools can be used for one or more activities that support testing. These include:
1. Tools that are directly used in testing such as test execution tools, test data generation tools and
result comparison tools
2. Tools that help in managing the testing process such as those used to manage tests, test results,
data, requirements, incidents, defects, etc., and for reporting and monitoring test execution
3. Tools that are used in reconnaissance, or, in simple terms: exploration(e.g., tools that monitor file
activity for an application)
4. Any tool that aids in testing (a spreadsheet is also a test tool in this meaning)
TOOL SUPPORT FOR TESTING
Tool support for testing can have one or more of the following purposes depending on the
context:
• Improve the efficiency of test activities by automating repetitive tasks or supporting manual test
activities like test planning, test design, test reporting and monitoring
• Automate activities that require significant resources when done manually (e.g., static testing)
• Automate activities that cannot be executed manually (e.g., large scale performance testing of
client-server applications)
• Increase reliability of testing (e.g., by automating large data comparisons or simulating behaviour)
TOOL SUPPORT FOR TESTING
TEST TOOL CLASSIFICATION (K2)
TEST TOOL CLASSIFICATION (K2)
TEST TOOL CLASSIFICATION (K2)
• Some types of test tools can be intrusive, which means that they can affect the actual
outcome of the test.
• For example, the actual timing may be different due to the extra instructions that are
executed by the tool, or you may get a different measure of code coverage.
• The consequence of intrusive tools is called the probe effect.
• Some tools offer support more appropriate for developers (e.g., tools that are used
during component and component integration testing). Such tools are marked with
"(D)" in the list below.
TEST TOOL CLASSIFICATION
TOOL SUPPORT FOR MANAGEMENT OF TESTING AND TESTS
TOOL SUPPORT FOR MANAGEMENT OF TESTING AND TESTS
Management tools apply to all test activities over the entire software life cycle.
They include:
Test Management Tools
Requirements Management Tools
Incident Management Tools (Defect Tracking Tools)
Configuration Management Tools
TEST MANAGEMENT TOOLS
• These tools provide interfaces for executing tests, tracking defects and managing
requirements, along with support for quantitative analysis and reporting of the test
objects.
• They also support tracing the test objects to requirement specifications and
• They may have an independent version control capability or an interface to an external
configuration management tool.
REQUIREMENTS MANAGEMENT TOOLS
• These tools store and manage incident reports, i.e., defects, failures, change requests or
perceived problems and anomalies,
• they help in managing the life cycle of incidents, optionally with support for statistical
analysis.
CONFIGURATION MANAGEMENT TOOLS
Although not strictly test tools, these are necessary for storage and version management
of testware and related software especially when configuring more than one
hardware/software environment in terms of operating system versions, compilers,
browsers, etc.
TOOL SUPPORT FOR STATIC TESTING
TOOL SUPPORT FOR STATIC TESTING
Static testing tools provide a cost effective way of finding more defects at an earlier
stage in the development process.
REVIEW TOOLS
• These tools assist with review processes, checklists, review guidelines and are used to
store and communicate review comments and report on defects and effort.
• They can be of further help by providing aid for online reviews for large or geographically
dispersed teams.
STATIC ANALYSIS TOOLS (D)
These tools help developers and testers find defects prior to dynamic testing by providing
support for:
enforcing coding standards (including secure coding),
analysis of structures and dependencies.
They can also help in planning or risk analysis by providing metrics for the code (e.g.,
complexity).
MODELLING TOOLS (D)
• These tools are used to validate software models (e.g., physical data model (PDM) for a
relational database), by enumerating inconsistencies and finding defects.
• These tools can often aid in generating some test cases based on the model.
TOOL SUPPORT FOR TEST SPECIFICATION
TOOL SUPPORT FOR TEST SPECIFICATION
(D) Indicates that the tools offer support more appropriate for developers
TEST EXECUTION TOOLS
• A unit test harness or framework facilitates the testing of components or parts of a system
by simulating the environment in which that test object will run, through the provision of
mock objects as stubs or drivers.
• the tools offer support more appropriate for developers
TEST COMPARATORS
These tools, through intrusive or non-intrusive means, measure the percentage of specific
types of code structures that have been exercised (e.g., statements, branches or
decisions, and module or function calls) by a set of tests.
E. g.
Statements, branches or decisions
Modules or function calls
Security tools are mostly focused on a particular technology, platform, and purpose.
TOOL SUPPORT FOR PERFORMANCE AND MONITORING (K1)
TOOL SUPPORT FOR PERFORMANCE AND MONITORING (K1)
(D) Indicates that the tools offer support more appropriate for developers
DYNAMIC ANALYSIS TOOLS (D)
Dynamic analysis tools find defects that are evident only when software is executing, for
example:
time dependencies
memory leaks.
They are typically used in component and component integration testing, and when testing
middleware.
These tools offer support more appropriate for developers
PERFORMANCE TESTING/LOAD TESTING/STRESS TESTING TOOLS
• Performance testing tools monitor and report on how a system behaves under a variety of
simulated usage conditions in terms of number of concurrent users, their ramp-up pattern,
frequency and relative percentage of transactions.
• The simulation of load is achieved by means of creating virtual users carrying out a
selected set of transactions, spread across various test machines commonly known as load
generators.
MONITORING TOOLS
• Monitoring tools continuously analyze, verify and report on usage of specific system
resources, and give warnings of possible service problems.
TOOL SUPPORT FOR SPECIFIC TESTING NEEDS
TOOL SUPPORT FOR SPECIFIC TESTING NEEDS
We will cover:
Potential Benefits and Risks of Tool Support for Testing (for all tools) (K2)
Special Considerations for Some Types of Tool (K1)
POTENTIAL BENEFITS AND RISKS OF TOOL SUPPORT FOR TESTING
(FOR ALL TOOLS)
• Simply purchasing or leasing a tool does not guarantee success with that tool.
• Each type of tool may require additional effort to achieve real and lasting benefits.
• There are potential benefits and opportunities with the use of tools in testing, but there
are also risks.
POTENTIAL BENEFITS AND RISKS OF TOOL SUPPORT FOR TESTING
(FOR ALL TOOLS)
Over-reliance on the tool (replacement for test design or use of automated testing where manual
testing would be better)
Neglecting version control of test assets within the tool
Neglecting relationships and interoperability issues between critical tools, such as requirements
management tools, version control tools, incident management tools, defect tracking tools and tools
from multiple vendors
Risk of tool vendor going out of business, retiring the tool, or selling the tool to a different vendor
Poor response from vendor for support, upgrades, and defect fixes
Risk of suspension of open-source / free tool project
Unforeseen, such as the inability to support a new platform
SPECIAL CONSIDERATIONS FOR SOME TYPES OF TOOL
• Static analysis tools applied to source code can enforce coding standards,
• but if applied to existing code may generate a large quantity of messages.
• Warning messages do not stop the code from being translated into an executable
program, but ideally should be addressed so that maintenance of the code is easier in
the future.
• A gradual implementation of the analysis tool with initial filters to exclude some
messages is an effective approach.
TEST MANAGEMENT TOOL
• Test management tools need to interface with other tools or spreadsheets in order to
produce useful information in a format that fits the needs of the organization.
MAIN CONSIDERATIONS OF INTRODUCING A TOOL