Unit 1
Unit 1
Unit 1
UNIT 1
TESTING CAPABILITIES
The quality of the application can and normally does vary widely
from system to system but some of the common quality attributes
include reliability, stability, portability, maintainability and usability.
Refer to the ISO standard ISO 9126 for a more complete list of
attributes and criteria.
Testing early in the life cycle reduces the errors. Test deliverables
are associated with every phase of development. The goal of
Software Tester is to find bugs, find them as early as possible, and
make them sure they are fixed.
The other category is the catch-all for what is left. Some bugs can
blamed for false positives, conditions that were thought to be bugs
but really weren’t. There may be duplicate bugs, multiple ones that
resulted from the square root cause. Some bugs can be traced to
Testing errors.
Specific
Practical
Justified
Test Plan
The test strategy identifies multiple test levels, which are going to
be performed for the project. Activities at each level must be
planned well in advance and it has to be formally documented.
Based on the individual plans only, the individual test levels are
carried out.
Entry means the entry point to that phase. For example, for unit
testing, the coding must be complete and then only one can start
unit testing. Task is the activity that is performed. Validation is the
way in which the progress and correctness and compliance are
verified for that phase. Exit tells the completion criteria of that
phase, after the validation is done. For example, the exit criterion
for unit testing is all unit test cases must pass.
The unit test plan is the overall plan to carry out the unit test
activities. The lead tester prepares it and it will be distributed to the
individual testers, which contains the following sections.
What is to be tested?
The unit test plan must clearly specify the scope of unit testing. In
this, normally the basic input/output of the units along with their
basic functionality will be tested. In this case mostly the input units
will be tested for the format, alignment, accuracy and the totals.
The UTP will clearly give the rules of what data types are present in
the system, their format and their boundary conditions. This list
may not be exhaustive; but it is better to have a complete list of
these details.
Sequence of Testing
The integration test plan is the overall plan for carrying out the
activities in the integration test level, which contains the following
sections.
What is to be tested?
This section clearly specifies the kinds of interfaces fall under the
scope of testing internal, external interfaces, with request and
response is to be explained. This need not go deep in terms of
technical details but the general approach how the interfaces are
triggered is explained.
Sequence of Integration
The system test plan is the overall plan carrying out the system test
level activities. In the system test, apart from testing the functional
aspects of the system, there are some special testing activities
carried out, such as stress testing etc. The following are the
sections normally present in system test plan.
What is to be tested?
This section defines the scope of system testing, very specific to the
project. Normally, the system testing is based on the requirements.
All requirements are to be verified in the scope of system testing.
This covers the functionality of the product. Apart from this what
special testing is performed are also stated here.
Since this is just one level of testing done by the client for the
overall product, it may include test cases including the unit and
integration test level details.
The schedule details of the various test pass such as Unit tests,
Integration tests, System Tests should be clearly mentioned along
with the estimated efforts.
Risk Analysis:
Risk Identification:
Traceability means that you would like to be able to trace back and
forth how and where any workproduct fulfills the directions of the
preceeding (source-) product. The matrix deals with the where,
while the how you have to do yourself, once you know the where.
Having this matrix, you can check whether any requirement has at
least one design solution and by checking the solution(s) you may
see whether the requirement is sufficiently solved by this (or the set
of) connected design(s).
If you have to change any requirement, you can see which designs
are affected. And if you change any design, you can check which
requirements may be affected and see what the impact is.
Use Case:
Use cases are goals (use cases and goals are used interchangeably)
that are made up of scenarios. Scenarios consist of a sequence of
steps to achieve the goal, each step in a scenario is a sub (or mini)
goal of the use case. As such each sub goal represents either
another use case (subordinate use case) or an autonomous action
that is at the lowest level desired by our use case decomposition.
There are two scopes that use cases are written from: Strategic and
System. There are also three levels: Summary, User and Sub-
function.
Strategic Scope:
The goal (Use Case) is a strategic goal with respect to the system.
These goals are goals of value to the organization. The use case
shows how the system is used to benefit the organization.,/p>
These strategic use cases will eventually use some of the same
lower level (subordinate) use cases.
System Scope:
A sub goal or step is below the main level of interest to the user.
Examples are "logging in" and "locate a device in a DB". Always at
System Scope.
Test Documentation
In this case the life cycle starts out the same with the Tester
opening the bug and assigning to the programmer, but the
programmer doesn’t fix it. He doesn’t think its bad enough to fix
and assigns it to the project manager to decide. The Project
Manager agrees with the Programmer and places the Bug in the
resolved state as a “wont-fix” bug. The tester disagrees, looks for
and finds a more obvious and general case that demonstrates the
bug, reopens it, and assigns it to the Programmer to fix. The
programmer fixes the bg, resolves it as fixed, and assign it to the
Tester. The tester confirms the fix and closes the bug.
You can see that a bug might undergo numerous changes and
iterations over its life, sometimes looping back and starting the life
all over again. Figure below takes the simple model above and adds
to it possible decisions, approvals, and looping that can occur in
most projects. Of course every software company and project will
have its own system, but this figure is fairly generic and should
cover most any bug life cycle that you’ll encounter
The generic life cycle has two additional states and extra connecting
lines. The review state is where Project Manager or the committee,
sometimes called a change Control Board, decides whether the bug
should be fixed. In some projects all bugs go through the review
state before they’re assigned to the programmer for fixing. In other
projects, this may not occur until near the end of the project, or not
at all. Notice that the review state can also go directly to the closed
state. This happens if the review decides that the bug shouldn’t be
fixed – it could be too minor is really not a problem, or is a testing
error. The other is a deferred. The review may determine that the
bug should be considered for fixing at sometime in the future, but
not for this release of the software.
The additional line from resolved state back to the open state
covers the situation where the tester finds that the bug hasn’t been
fixed. It gets reopened and the bugs life cycle repeats.
The two dotted lines that loop from the closed and the deferred
state back to the open state rarely occur but are important enough
to mention. Since a Tester never gives up, its possible that a bug
was thought to be fixed, tested and closed could reappear. Such
bugs are often called Regressions. It’s possible that a deferred bug
could later be proven serious enough to fix immediately. If either of
these occurs, the bug is reopened and started through the process
again. Most Project teams adopt rules for who can change the state
of a bug or assign it to someone else.For example, maybe only the
Project Manager can decide to defer a bug or only a tester is
permitted to close a bug. What’s important is that once you log a
bug, you follow it through its life cycle, don’t lose track of it, and
prove the necessary information to drive it to being fixed and
closed.