sftwre engg.testng
TRANSCRIPT
Software testing is a process of evaluating a
software, there are some definitions regarding
testing:
A good testing can be said one that has the
higher probability of finding undiscovered errors
and bugs.
It is giving expected output or not.
It is used to check the quality , correctness
and completeness of a developed software.
Testing is done in order to find possible risks in
implementation.
Definitions of testing by various authors:
“Testing is the process of executing a program
with the intention of finding errors.” – Myers
“Testing can show the presence of bugs but
never their absence.” – Dijkastra
“Testing is the process of establishing
confidence that a program or system does what
it is supposed to.” by Hetzel
Testing on various levels used to identify
missing areas and prevent any incompatibility
and repetition in various phases.
Levels of testing include different
methodologies that can be used while
conducting software testing.
Software testing can be basically categorized
in two ways:
Functional Testing
Non-functional Testing
Functional testing is concerned with testing that
resulting software functions properly or not ,
functional testing includes:
Unit testing
Integration testing
System testing
Validation testing
Regression testing
Alpha testing
Beta testing
Acceptance testing
UNIT TESTING
It is a level of testing where individual units or
Components of software tested.
A unit is the smallest testable part of an
application like functions , classes, procedures,
interfaces.
Unit testing is a method by which individual
units of source code are tested to determine
whether they are error free or not.
This testing is mostly done by white box
testing method.
Unit Testing is normally performed by software
developers.
The motive of unit testing test that the
individual parts are working correctly or not.
INTEGRATION TESTING
Integration testing is defined as the testing done
after combining individual units of an
application to determine whether they function
correctly or not.
Individual
developed
modules
joined and
then tested.
TYPES OF INTEGRATION TESTING
a) Big bang integration testing
b) Top down
c) Bottom up
d) Functional incremental
‘Big bang integration testing’
In Big Bang integration testing all components
or modules are integrated simultaneously, after
which everything is tested as a whole.
In this approach individual modules are not
integrated until and unless all the modules are
ready.
TOP-DOWN INTEGRATION TESTING
Top-down integration testing is an integration
testing technique used in order to simulate the
behavior of the lower-level modules that are not
yet integrated.
Stubs are the modules that act as temporary
replacement for a called module and give the
same output as that of the actual product.
BOTTOM-UP INTEGRATION TESTING
In this approach testing is conducted from sub
module to main module, if the main module is
not developed a temporary program called
DRIVERS is used to simulate the main module.
Each component at lower hierarchy is tested
individually and then the components that rely
upon these components are tested.
FUNCTIONAL – INCREMENTAL TESTING
In this method integration and testing takes
place on the basis of the functions and
functionalities, as documented in the functional
specification.
Another extreme is that all programmes are
integrated one by one, and a test is carried out
after each step.
SYSTEM TESTING
System testing tests the system as a whole.
Once all the components are integrated, the
application as a whole is tested rigorously to see
that it meets the specified Quality Standards or
not.
This type of testing is performed by a
specialized testing team.
System testing is the first step in the Software
Development Life Cycle, where the application
is tested as a whole.
The application is tested thoroughly to verify
that it meets the functional and technical
specifications.
The application is tested in an environment
that is very close to the production environment
where the application will be deployed.
System testing enables us to test, verify, and
validate both the business requirements as well
as the application architecture.
VALIDATION TESTING
Determining if the system complies with the
requirements and performs functions for which it
is intended and meets the organization’s goals
and user needs.
Validation is done at the end of the
development process and takes place after
verifications are completed.
It answers the question like: Am I building the
right product ? Am I accessing the right data (in
terms of the data required to satisfy the
requirements).
‘REGRESSION TESTING’
Whenever a change in a software application is
made, it is quite possible that other areas within
the application have been affected by this
change.
Regression testing is performed to verify that a
fixed bug hasn't resulted in another functionality
or business rule violation.
The intent of regression testing is to ensure
that a change, such as a bug fix should not
result in another fault being uncovered in the
application.
‘ALPHA TESTING’
This test is the first stage of testing and will
be performed amongst the teams (developer
and QA teams).
Unit testing, integration testing and system
testing when combined together is known as
alpha testing.
During this phase, the following aspects will
be tested in the application:
Spelling Mistakes.
Broken Links.
Cloudy Directions.
This test takes place at the developer’s site.
Alpha testing is final testing before the
software is released to the general public. It has
two phases:
In the first phase of alpha testing, the
software is tested by in-house developers. The
goal is to catch bugs quickly.
In the second phase of alpha testing, the
software is handed over to the software QA
staff, for additional testing in an environment.
‘BETA TESTING’
Beta testing normally involve sending the
product to beta test sites outside the company
for real-world exposure or offering the product
for a free trial download over the Internet.
Beta testing is often preceded by a round of
testing called alpha testing.
It is also known as field testing that takes
place at customer’s site.
The goal of beta testing is to place your
application in the hands of real users outside of
your own engineering team.
It discover any flaws or issues from the user’s
perspective that you would not want to have in
your final, released version of the application.
‘ACCEPTANCE TESTING
Acceptance testing is a test conducted to
determine if the requirements of a
specification or contract are met.
After the system test has corrected all or most
defects, the system will be delivered to the user
or customer for acceptance testing.
Acceptance testing is basically done by the
user or customer although other stakeholders
may be involved as well.
The goal of acceptance testing is to establish
confidence in the system.
Acceptance testing is most often focused on a
validation type testing.
Acceptance testing may occur at more than
just a single level, for example:
A Commercial Off the shelf (COTS) software
product may be acceptance tested when it is
installed or integrated.