Software Testing:
Software testing is the process to make sure that the
software or application under test is working as per the
design/expectation. The purpose of any
kind of testing is to make it defect free.
The software or application is developed as per the design
or requirement . In IT projects, in most
of the situations , the design or
requirement is provided to testing team by Business Analyst . The design is
called Business Requirement Document or BRD. Another forms of design document
could be functional design document (FDD) or mapping document or User Stories.
Based on these document/s , a tester has to write Test cases and/or conduct the
testing activities.
Types of Testings:
1. Functional Testing
2. Non-Functional Testing
1. Functional
Testings
1.1 Smoke Testing:
This is the first testing after any build or release is
ready to be tested. This covers the overall basic functionalities. It does not
cover the deep testing of any particular functionality or scenario. It is to
make sure that the basic things are working in that build or release. It is generally one or two
Test cases covering basic functionalities.
1.2 Integration Testing:
In this all the components to be tested are combined as a
group and testing is conducted. This testing covers the testing of overall
components/modules of the software. There are two approaches in integration Testing.
Top Down and Button Up
1.2.1 Top Down
In this testing , the top level modules or components are tested first .
The testing moves from the higher level
components to the lower level components. If any lower level component is not present
then temporary module called STUB is
created and the testing is carried out. The STUB should give the same output as
expected from the actual module.
1.2.2 Buttom Up
In this testing , the lowest level modules or components are
tested first . The testing moves from the lower level components to the higher
level components. If any upper level
component is not present then temporary module called DRIVERS is created and
the testing is carried out.
1.3 Regression Testing
It is a testing to make sure that after fixing issues/bugs
or adding new functionality in the product , the product/program/software is
working as expected, ie, the change has not impacted other healthy components. Suppose
, a product is having four components A, B, C, D . Suppose there is error in 'C
' Then after fixing 'C' , you need to make sure that other remaining components
A, B and D should work properly like
before 'C' was failed and fixed. So in this scenario, the testing carried out to make sure that the old components A, B, D working as expected
is regression Testing. OR in the product all components A, B, C, D are
working fine and a new component/functionality 'E' is added. Now, you need to
make sure that the old components A, B, C, D should work fine like before 'E' was added. In this situation, the testing carried out to make sure that the old components A, B, C, D are working as expected is
regression Testing.
1.4 End to End Testing
It is a testing of the application from the start to finish.
This testing includes all the system dependencies, data integrity , data communication
between the systems or system components or external interfaces, database etc.
1.5 User Acceptance Testing (UAT)
This is the last phase of testing by the clients/user before
the software goes live. This is done
after functional , integration , regression testings are done. This testing is
done to make sure that the product can handle the actual challenges when it goes to the market.
1.6 Unit Testing
This testing is done by developer . After a developer
creates or fixes a component or product, he carries out the testing of that
component or unit.
1.7 Performance Testing
It is testing of the software performance under the particular
workload. Such as response time, speed, reliability, stability, resource usage,
scalability etc. The purpose of the
performance testing is not to find bug or defects but to make sure that the software
performance is meeting the given standard or not ie the software performs the
given task with given resources in the given time limit.
Types of Performance Testings:
Load Testing
Stress Testing
1.7.1 Load Testing
This testing is carried out to test the software response
with given load condition. In real time situation, the concurrent users using
the software are the actual load. So, the tester carrying out this testing can
find out how many concurrent users can
be handled meeting the given time constraint.
1.7.2 Stress Testing
Stress Testing is also called fatigue testing. In this testing , the work load is increased beyond
its normal limit to determine its breaking point ie to determine at what point
it fails. So that a safe usage limit can be determined. This testing is done to test the
reliability , stability and recovery of the system under heavy load/traffic
conditions.
1.8 White box Testing
This includes the testing of the internal code, components ,
structure or design of a software. A tester should have the knowledge of the
internal code/components/structure/design to conduct this testing.
1.9 Black box Testing
This is a testing of the functionality only with out
touching the internal code, components, structure or design. A tester does not
need to have the knowledge of the internal structure of the software to carry
out this testing.
No comments:
Post a Comment