Software
Testing:
Software testing is
the process of removing bugs from the software in order to function
efficiently and as per the final requirement. We need to resolve
the issues with the sodtware being built hence testing is required
to test the working of software. Testing team is appointed for the
testing of the software. Suppose we are making a mobile game
application, Now when we start making the application, we need to
step by step see the functionality of the game. Like, the
functioning of the game on various operating systems, working on
phones with low RAM etc. Now if these issues are resolved, then we
may get some more issues. Like consider a game of shooting, suppose
we get an error while having multi-player format, then testing is
done to check what type of errors we are getting and then make the
updates and changes in the code.
Need of software
testing:
- Tesing exposes the lacks in
software, errors, time equation, support on various platforms. When
the software is tested in cycles from the start to end, we have
finalized product as per the requirement.
- Testing improves the security of
the software and makes if safer.It reduces the vulnerability of the
software.
- Cost of the software product is
reduced as the testing process ensures testing from the start of
the product development life-cycle.
- Testing helps in finalizing the
product for release and helps in taking the end user in our
confidence.
Version release:
You know we get updates of the softwares we use like YouTube,
FaceBook, media player etc. The new versions are realised by
solving the issues of earlier versions. If you check the info of
the new version, you will find the list of issues resolved.
Principles of software
testing:
There are seven principles of
software testing :
- Exhaustive
Testing: Every software is teeted on the main
functionality. But exhaustive testing means that the testing of all
the possibities, all the inputs, performance checking etc. This
increases the time, cost, team member requirement, reasearch etc.
It is good to try to test the main functions of the software, but
practically impossible to test the software on all fronts. Example
:Suppose we are making an Onilne Ide for Java language, it is
impossible to test for every exception, error, and input, output of
the java language program.
- Presence of
defects: Testing shows presence of defects in the software
system and also shows how the software performs. As we test the
defects are exposed. On the contrary testing doesn't gurantee that
the defects are over and the software is perfect for use.
- Early Testing :
The software testing begins from the start of the software building
cycle. Thus it reduces the effort if we compare software testing
only after completion of the product.
- Defect Clustering:
The project is divided into modules. Certain modules have large
number of defects. Thus defect clustering states that we can
identify the defective modules who cause large number of errors and
make changes in them accordingly. Proper planning is required for
the defect clustering. Pareto principle states that 80 percent of
defects are due to 20 percent of code.
- Pesticide paradox
: The same test cases used always result in not finding
the new issues. Therefore change in test cases accordingly are
needed as per the timley requirements.
- Context
Dependancy: The testing is always done on the same context
as the application being built. The texting depends on the type of
the software being built. Like we can not use testing of gaming
application on testing of media player application.
- Absence of error:
Along with resolving of issues and bugs, the software should be of
use to the end user, If the software has no use even though it is
bug free, then that will not be accpeted by the end user.
Conclusion:
Software testing is done for making the application as feasible as
possible to the end user. It is a tool used in accordance with the
development to solve the problems and satisfy the end user before
hand.