Software Testing:
Software Testing is a
process consisting of all life cycle activities; both static and dynamic,
concerned with planning, preparation and evaluation of software products and
related work products to determine that they satisfy specified requirements, to
demonstrate that they are fit for purpose and to detect defects.
OR
Testing is a process of
executing a program with the intent of finding an error.
OR
Testing is a process of
trying to discover every conceivable fault or weakness in the work product.
It is impossible to test
every single combination and permutation of data inputs and interfaces that
cause a system to react. The most practical means of testing is to determine the
ways in which the system is most likely to be used.
Need of Software Testing:
- To make sure that the product is as per the specifications.
- To detect defects & reduce the risk of problem occurring in production.
- To provide an indication of software’s reliability & quality.
- To help in modifying features to make it more usable & friendly.
Causes of Software Defects:
- Programming errors / Poorly documented code
- Miscommunication / No communication
- Changing Requirements
- Errors in the Specification, Design and Implementation
- Software complexity
- Time pressure
- Environmental conditions
- Ego problem
Role of a Software Tester:
Role of a Software
Tester is to find the defects & make sure that as early as possible they
get fixed.
At every point of time
Tester has to prove the Developer is wrong (along with this approach tester can
easily find every conceivable fault in software).
Skills required by a Software Tester:
- Good communication skills
- Good observation skills
- People handling skills
- Good grasping power
- Patience
- Creativity in terms of identifying problematic areas