1. Tool Support for Testing
Emi Rizki Ayunanda
11453201739
Sistem Informasi
Fakultas Sains Dan Teknologi
Universitas Islam Negeri Sultan Syarif Kasim Riau
2. Continue…
Sistem Informasi/Fakultas Sains & Teknologi/UIN SUSKA RIAU
PAGE 2
You may be wishing that you had a magic tool that would
automate all of the testing for you. If so, you will be disappointed.
However, there are a number of very useful tools that can bring
significant benefits. In this chapter we will see that there is tool
support for many different aspects of software testing. We will see
that success with tools is not guaranteed, even if an appropriate tool
is acquired - there are also risks in using tools. There are some
special considerations mentioned in the Syllabus for certain types of
tool: test execution tools, performance testing tools, static analysis
tools and test management tools.
3. Continue…
Sistem Informasi/Fakultas Sains & Teknologi/UIN SUSKA RIAU
PAGE 3
A) TYPES OF TEST TOOL
In this section, we will describe the various tool types in terms of their
general functionality, rather than going into lots of detail. The reason for this is
that, in general, the types of tool will be fairly stable over a longer period, even
though there will be new vendors in the market, new and improved tools, and
even new types of tool in the coming years.
We will not mention any commercial tools in this chapter. If we did, this
book would date very quickly! Tool vendors are acquired by other vendors,
change their names, and change the names of the tools quite frequently, so
we will not mention the names of any tools or vendors.
4. Continue…
Sistem Informasi/Fakultas Sains & Teknologi/UIN SUSKA RIAU
PAGE 4
1) Test Tool Classification
The tools are grouped by the testing activities or areas that are supported by a set of tools, for
example, tools that support management activities, tools to support static testing, etc.
There is not necessarily a one-to-one relationship between a type of tool described here and a tool
offered by a commercial tool vendor or an open-source tool. Some tools perform a very specific and limited
function (sometimes called a 'point solution'), but many of the commercial tools provide support for a number
of different functions (tool suites or families of tools). For example a 'test management' tool may provide
support for managing testing (progress monitoring), configuration management of testware, incident
management, and requirements management and traceability; another tool may provide both coverage
measurement and test design support.
5. Continue…
Sistem Informasi/Fakultas Sains & Teknologi/UIN SUSKA RIAU
PAGE 5
2) Tool support for management of testing and tests
What does 'test management' mean? It could be 'the
management of tests' or it could be 'managing the testing process'.
The tools in this broad category provide support for either or both of
these. The management of testing applies over the whole of the
software development life cycle, so a test management tool could be
among the first to be used in a project. A test management tool may
also manage the tests, which would begin early in the project and
would then continue to be used throughout the project and also after
the system had been released. In practice, test management tools are
typically used by special- ist testers or test managers at system or
acceptance test level.
6. 1
2
3
4
5
6
Continue…
Sistem Informasi/Fakultas Sains & Teknologi/UIN SUSKA RIAU
PAGE 6
a) Test Management Tools
Management of tests (e.g. keeping track of the associated data for a
given set of tests, knowing which tests need to run in a common
environment, number of tests planned, written, run, passed or failed)The features provided by
test management tools include
those listed below. Some tools
will provide all of these features;
others may provide one or more
of the features, however such
tools would still be classified as
test management tools.
Features or
characteristics of test
management tools include
support for:
Scheduling of tests to be executed (manually or by a test execution tool)
Management of testing activities (time spent in test design, test
execution, whether we are on schedule or on budget)
Interfaces to other tools,
Traceability of tests, test results and defects to requirements or other
sources
Logging test results (note that the test management tool does not run
tests, but could summarize results from test execution tools that the test
manage- ment tool interfaces with)
7. Continue…
Sistem Informasi/Fakultas Sains & Teknologi/UIN SUSKA RIAU
PAGE 7
b) Requirements management tools
Are requirements management tools really testing tools? Some people may say they
are not, but they do provide some features that are very helpful to testing. Because tests are
based on requirements, the better the quality of the require- ments, the easier it will be to write
tests from them. Features or characteristics of requirements management tools include support
for:
Storing requirement statements;
Storing information about requirement attributes;
Checking consistency of requirements;
Identifying undefined, missing or 'to be defined later' requirements;
Prioritizing requirements for testing purposes;
Traceability of requirements to tests and tests to requirements, functions or features;
Traceability through levels of requirements;
Interfacing to test management tools;
Coverage of requirements by a set of tests (sometimes).
8. Continue…
Sistem Informasi/Fakultas Sains & Teknologi/UIN SUSKA RIAU
PAGE 8
b) Incident management tools
This type of tool is also known as a defect-tracking tool, a defect-management tool, a
bug-tracking tool or a bug-management tool. However, 'incident management tool' is probably
a better name for it because not all of the things tracked are actually defects or bugs; incidents
may also be perceived problems, anomalies (that aren't necessarily defects) or enhancement
requests. Features or characteristics of incident management tools include support for :
Storing information about the attributes of incidents (e.g. severity);
Storing attachments (e.g. a screen shot);
Arioritizing incidents;
Assigning actions to people (fix, confirmation test, etc.);
Status (e.g. open, rejected, duplicate, deferred, ready for confirmation test, closed);
Reporting of statistics/metrics about incidents (e.g. average time open, number of incidents
with each status, total number raised, open or closed).
9. Continue…
Sistem Informasi/Fakultas Sains & Teknologi/UIN SUSKA RIAU
PAGE 9
c) Configuration management tools
Configuration management tools are not strictly testing tools either, but good
configuration management is critical for controlled testing.
Features or characteristics of configuration management tools include support for:
Storing information about versions and builds of the software and testware;
Traceability between software and testware and different versions or variants;
Keeping track of which versions belong with which configurations (e.g. operating systems,
libraries, browsers);
Build and release management;
Baselining (e.g. all the configuration items that make up a specific release);
Access control (checking in and out).
10. Continue…
Sistem Informasi/Fakultas Sains & Teknologi/UIN SUSKA RIAU
PAGE 10
a. Review process support tools
3) Tool support for static testing
It is possible to keep track of all the information for a review
process using spreadsheets and text documents, but a review tool
which is designed for the purpose is more likely to do a better job. For
example, one thing that should be monitored for each review is that
the reviewers have not gone over the document too quickly, i.e. that
the checking rate (number of pages checked per hour) was close to
that recommended for that review cycle.
11. Continue…
Sistem Informasi/Fakultas Sains & Teknologi/UIN SUSKA RIAU
PAGE 11
Features or characteristics of review process support tools include support for:
• a common reference for the review process or processes to use in different situations;
• storing and sorting review comments;
• communicating comments to relevant people;
• coordinating online reviews;
• keeping track of comments, including defects found, and providing statisti cal information
about them;
• providing traceability between comments, documents reviewed and related documents;
• a repository for rules, procedures and checklists to be used in reviews, as well as entry
and exit criteria;
• monitoring the review status (passed, passed with corrections, requires re- review);
• collecting metrics and reporting on key factors.
12. Continue…
Sistem Informasi/Fakultas Sains & Teknologi/UIN SUSKA RIAU
PAGE 12
Static analysis tools
Static analysis tools are normally used by
developers as part of the develop- ment and
component testing process. The key aspect is that
the code (or other artefact) is not executed or run.
Of course the tool itself is executed, but the source
code we are interested in is the input data to the
tool.
Features or characteristics of static
analysis tools include support to:
Calculate metrics such as cyclomatic complexity /nesting lev
(which can help to identify where more testing may be need
due to increased risk)
Enforce coding standards
Analyze structures and dependencies
Aid in code understandin
Identify anomalies or defects in the code
13. Continue…
Sistem Informasi/Fakultas Sains & Teknologi/UIN SUSKA RIAU
PAGE 13
Modeling tools
Modeling tools help to validate models of the system or software. For example a
tool can check consistency of data objects in a database and can find inconsis- tencies and
defects. These may be difficult to pick up in testing - you may have tested with one data
item and not realize that in another part of the database there is conflicting information
related to that item. Modeling tools can also check state models or object models.
Features or characteristics of modeling tools include support for:
o Identifying inconsistencies and defects within the model;
o Helping to identify and prioritize areas of the model for testing;
o Predicting system response and behavior under various situations, such as level of load;
o Helping to understand system functions and identify test conditions using a modeling
language such as UML.