What is testing?
Testing
is the process of evaluating a system or its component(s) with the intent to
find that whether it satisfies the specified requirements or not. This activity
results in the actual, expected and difference between their results. In simple
words testing is executing a system in order to identify any gaps, errors or
missing requirements in contrary to the actual desire or requirements.
According
to ANSI/IEEE 1059 standard, Testing can be defined as A process of analyzing
a software item to detect the differences between existing and required
conditions (that is defects/errors/bugs) and to evaluate the features of the
software item.
Who does testing?
It
depends on the process and the associated stakeholders of the project(s). In
the IT industry, large companies have a team with responsibilities to evaluate
the developed software in the context of the given requirements. Moreover,
developers also conduct testing which is called Unit Testing. In most cases,
following professionals are involved in testing of a system within their
respective capacities:
- Software Tester
- Software Developer
- Project Lead/Manager
- End User
Different
companies have difference designations for people who test the software on the
basis of their experience and knowledge such as Software Tester, Software
Quality Assurance Engineer, and QA Analyst etc.
It is not
possible to test the software at any time during its cycle. The next two
sections state when testing should be started and when to end it during the
SDLC.
When to Start Testing?
An early
start to testing reduces the cost, time to rework and error free software that
is delivered to the client. However in Software Development Life Cycle (SDLC)
testing can be started from the Requirements Gathering phase and lasts till the
deployment of the software. However it also depends on the development model
that is being used. For example in Water fall model formal testing is conducted
in the Testing phase, but in incremental model, testing is performed at the end
of every increment/iteration and at the end the whole application is tested.
Testing
is done in different forms at every phase of SDLC like during Requirement
gathering phase, the analysis and verifications of requirements are also
considered testing. Reviewing the design in the design phase with intent to
improve the design is also considered as testing. Testing performed by a
developer on completion of the code is also categorized as Unit type of testing.
When to Stop Testing?
Unlike
when to start testing it is difficult to determine when to stop testing, as
testing is a never ending process and no one can say that any software is 100%
tested. Following are the aspects which should be considered to stop the
testing:
- Testing Deadlines.
- Completion of test case execution.
- Completion of Functional and code coverage to a certain point.
- Bug rate falls below a certain level and no high priority bugs are identified.
- Management decision.
Verification & Validation
These two
terms are very confusing for people, who use them interchangeably. Let's
discuss about them briefly.
|
S.N.
|
Verification
|
Validation
|
|
1
|
Are you
building it right?
|
Are you
building the right thing?
|
|
2
|
Ensure
that the software system meets all the functionality.
|
Ensure
that functionalities meet the intended behavior.
|
|
3
|
Verification
takes place first and includes the checking for documentation, code etc.
|
Validation
occurs after verification and mainly involves the checking of the overall
product.
|
|
4
|
Done by
developers.
|
Done by
Testers.
|
|
5
|
Have
static activities as it includes the reviews, walkthroughs, and inspections
to verify that software is correct or not.
|
Have
dynamic activities as it includes executing the software against the
requirements.
|
|
6
|
It is
an objective process and no subjective decision should be needed to verify
the Software.
|
It is a
subjective process and involves subjective decisions on how well the Software
works.
|
To be continued
You just
got a quick overview of Software Testing using this short guide. This guide has
been designed from the tutorial given at the site and
there is lot of content which has been cut short to make it a quick guide. So
if you are interested in full content then you can go through the complete
tutorial available at the site.
Testing
Methodologies
·
Agile/Scrum
·
Waterfall
·
V-Model
Assignment:
What is
the best methodology to adopt in SDLC from Agile, V-Model and Waterfall?
Support your answers with detail explanations and diagrams.
credit to www.tutorialspoint.com
No comments:
Post a Comment