|
|
Have you ever thought why do
you need to categorize
software testing into
different types? What is the
benefits of dividing
software testing in
different types? One of the
main purpose of software
testing is to identify
defects in the software.
Defects in software testing
can be defined as variance
from requirement or user
expectation. Based on this
simple definition, it is
very easy to categorize
defects. For example:
|
- If system is
not functioning
properly, its a
functional defect.
- If system is not
performing well, its a
performance defect.
- If system is not
usable, its a usability
defect
- If system is not
secure, its a security
defect
- and so on..
Identify these different
defects require different
skill set, different
techniques and different
type of test cases. Testing
is divided into different
types to reflect, what kind
of defects can be uncovered
by those activities. This
division also helps
management in managing these
activities effectively.
Also, it is very rare to
have someone with skills in
all the types of testing and
this division helps in
getting proper resources for
team.
Hope you understand
importance of this
categorization and also how
important it is to have
understanding of different
types. This understanding
will enable you to spot more
defects which in turn will
improve quality and make you
more effective software
tester.
There are many ways in which
software testing can be categorized. Some of them are described as follows:
Categorization of testing based on
the knowledge of system
Categorization of testing based on the time it is executed in the Software Development Life Cycle
Different types of testing can be categorized based on the purpose of testing. This can be classified further into Functional Testing and Non Functional Testing.
- Functional Testing
In functional testing, the focus of testing activities is on functional aspects of the system. In functional testing, test cases are written to check the expected output. Functional testing is normally performed in all the test phases from unit to system testing.
The following types of test activities are normally performed under Functional Testing
- Non-Functional Testing
In non-functional testing,
the focus of the testing activities is on non functional aspects of the system. Non functional testing is normally carried out during the System Testing phase only. The focus of non functional testing is on the behavior and user experience of the system.
Testing can also be
categorized based on how it
is executed. Execution
could be in the form of
verification or static
analysis or it could be
validation or dynamic
analysis. Verification and
validation can be
categorized further
according to how it is done.
In very simple terms,
verification is the
human examination or
review of the work
product. There are many
forms of verification
which ranges from
informal verification to
formal verification.
Verification can be used
for various phases in
SDLC and can be in the
form of formal
inspection, walkthrough
or buddy-checking.
- Validation
Validation or dynamic
analysis is the most
frequent activity that
as a tester you perform.
Whether you are doing
black box testing, non
functional testing or
any type of testing,
chances are that you are
performing validation or
dynamic analyses.
Validation or dynamic
analyses is associated
with the execution, and
could be related to the
execution of test cases
or testing in general.
There are many ways in
which testing can be
executed, for example
|