Types of Testing:
1. Unit Testing:
In
software development, with multiple stages of testing process, unit testing is
one of the
imperative
stages. In this stage, the corresponding
programmers follow program testing
techniques
to verify the internal structure of every coding module like program. These
program
based
testing techniques are also known as white box testing or glass box testing.
Since white box testing requires a deeper understanding of the software
development process, software engineers with a development background are
placed on white box testing assignments for the duration of a project.
The
purpose of white box testing as
performed by the project team is to:
l
Initiate a strategy
to build quality throughout the life cycle.
l
Provide a
complementary function to next stage of testing.
l
Perform complete
coverage at the unit level.
l
Improve the quality
by optimizing performance.
The
following are the some unit testing techniques:
Segment coverage: Ensure that each code statement is executed once.
Branch
Coverage or Node Testing:Coverage of each code branch in from all possible was.
Compound
Condition Coverage: For multiple condition test each condition with multiple paths and combination
of different path to reach that condition.
Basis
Path Testing:Each independent path in the code is taken for testing.
Data
Flow Testing (DFT): In this approach you track the specific variables through each possible
calculation, thus defining the set of intermediate paths through the code.DFT
tends to reflect dependencies but it is mainly through sequences of data
manipulation. In short each data variable is tracked and its use is verified.
This approach tends to uncover bugs like variables used but not initialize, or declared but not used, and so on.
This approach tends to uncover bugs like variables used but not initialize, or declared but not used, and so on.
Path
Testing: Path testing is where all possible paths through the code are defined and
covered. Its a time consuming task.
Loop
Testing: These strategies relate to testing single loops, concatenated loops, and nested
loops. Independent and dependent code loops and values are tested by this
approach.
2. Integration Testing:
Integration testing
is a systematic technique for constructing the program structure while at the
same
time conducting tests to uncover errors associated with interfacing. The
objective is to take
unit
tested components and build a program structure that has been dictated by
design.
Usually,
the following methods of Integration testing are followed:
1.
Top-down Integration approach.
2. Bottom-up Integration approach.
3. System Integration(Big-bang Integration)
2.1 Top-down Integration:
Top-down
integration testing involves testing the topmost modules interface with other
bottom modules in order to cover all the modules. For example, consider a
product/software application development where modules become available one
after the other in the order specified in the below diagram.
Top-down
integration testing is an incremental approach to construction of program structure.
Modules
are integrated by moving downward through the control hierarchy, beginning with
the
main
control module. Modules subordinate to the main control module are incorporated
into the
structure
in either a depth-first or breadth-first manner.
The
Integration process is performed in a series of five steps:
l
The main control
module is used as a test driver and stubs are substituted for all components directly
subordinate to the main control module.
l
Depending on the
integration approach selected subordinate stubs are replaced one at a time with actual components.
l
Tests are conducted
as each component is integrated.
l
On completion of each
set of tests, another stub is replaced with the real component.
l
Regression testing
may be conducted to ensure that new errors have not been introduced.
2.2 Bottom-up Integration:
Bottom-up
integration testing begins construction and testing with atomic modules (i.e. components at the
lowest levels in the program structure). Because components are integrated from
the button up, processing required for components subordinate to a given level
is always available and the need for stubs is eliminated.
A
Bottom-up integration strategy may be implemented with the following steps:
l
Low level components
are combined into clusters that perform a specific software sub function.
l
A driver is written
to coordinate test case input and output.
l
The cluster is
tested.
l
Drivers are removed
and clusters are combined moving upward in the program structure.
2.3 System Integration(Big-bang Integration): Instead of integrating module-by-module and testing,
this approach waits till all the modules arrive and one round of integration
testing is done. This approach is also called Big-bang integration. It reduces
the testing effort and removes duplication in testing. Big-bang integration is
ideal for a product where the interfaces are stable with less number of
defects.
3. System Testing: System testing is the only phase of testing, which
tests the usability, functional and other non-functional aspects of the
product. System testing may be started once the unit and integration testing
are complete, which ensures that the more basic program logic errors and
defects have been corrected. Including
the validation of the business requirements of the product, system testing is
done to make sure that the product is ready for moving to the user acceptance
test level.
4. Usability Testing: Testing for
'user-friendliness'. Clearly this is subjective, and will depend on the
targeted end-user or customer. Usability is a combination of factors that
influence users experience with a product of a system. It is a methodical
evalution of the graphical user interface to measure the quality of a user's
experience when interacting with a system.
5. User Interface
Testing: In user Interface
testing, we have to test three factors on every screen of the application:
Ø Ease of use
Ø Look and feel
Ø User should able to easily navigate through
the application (Short Navigation).
6. Functional Testing: Functional Testing
involves testing applications functionality and features. Functional testing
helps in validating what the system is supposed to do. It has only two results
as far as fulfillment is concerned – met of not met.
7. Functionality
Testing: It is also known as
Requirements testing. Functionality testing must verify that the software can
perform its function correctly.
8. Smoke Testing: Typically an initial testing effort to determine if a new software
version is performing well enough to accept it for a major testing effort. For
example, if the new software is crashing systems every 5 minutes, bogging down systems to a crawl, or
corrupting databases, the software may not be in a 'sane' enough condition to warrant further
testing in its current state.
9. Recovery
Testing: Testing
how well the system recovers from crashes, hardware failures and catastrophic
problems is
known as Recovery Testing(also called Reliability Testing). In this testing,
with the help of backup
and recovery procedures application can go to abnormal to normal state.
10. Regression
Testing:
Regression testing is the re-execution of
some subset of tests that have already been
conducted to ensure that changes have not
propagated unintended side affects.
Regression may be conducted manually, by
re-executing a subset of al test cases or
using automated capture/playback tools.
The Regression test suit contains three
different classes of test cases:
l A representative sample of tests that will
exercise all software functions.
l Additional tests that focus on software
functions that are likely to be affected by the change.
l Tests that focus on the software components
that have been changed.
11. Re-Testing:
Testing
the already tested functionality with different sets of test data to validate
the behavior of
the
application.
12. Load testing:
Testing an application under heavy loads, such
as testing of a web site under a range of loads to
determine at what point the system's response
time degrades or fails.
13. Stress testing:
Term often used interchangeably with 'load' and
'performance' testing. Stress testing is done to
evaluate a system performance beyond the limits
of specified requirements, to ensure that system does not break. It is used to evaluate the behavior of the product under extreme conditions.
14. Performance testing:
The testing performed to evaluate the response
time, throughput and utilization of the system to execute its required
function in comparison with different versions of the same product or
different competitive product.
15. Security
Testing:
Security
testing attempts to verify that protection mechanisms built into a system will, in fact,
protect
it from improper penetration. During Security testing, password cracking,
unauthorized
entry
into the software, network security are all taken into consideration.
16. Alpha
Testing: The
Alpha testing is conducted at the developer sites and in a controlled environment by the end-user
of the software.
17. User
Acceptance Testing:
User
Acceptance testing occurs just before the software is released to the customer. The end-
users
along with the developers perform the User Acceptance Testing with a certain
set of test
cases
and typical scenarios.
18. Beta
Testing:
The
Beta testing is conducted at one or more customer sites by the end-user of the software. The
beta
test is a live application of the software in an environment that cannot be
controlled by the
developer
19. Exploratory
Testing:
Often
taken to mean a creative, informal software test that is not based on formal
test plans or
test
cases; testers may be learning the software as they test it.
20. Ad-hoc
Testing:
Similar
to exploratory testing, but often taken to mean that the testers have
significant
understanding
of the software before testing it.
21. Installation Testing:
Testing
the installing and uninstalling the build in the customer site like
environment.
l
In
this the following factors to be tested:
l
Setup
Program Execution
l
Easy
Screens during installation
l
Occupied
Disk space
l
Check
Uninstallation
No comments:
Post a Comment
If any suggestions or issue, please provide