Introduction
In this article we are going to learn about testing and the person who is responsible for testing; that is, the tester.
Testing
Testing is a process of confirming that the product that has been manufactured by programmers is a quality product and to ensure that the manufactured product is working according to the specification and satisfying the customer needs.
Objectives of testing
- Identify Defects
- Ensure Product correctness
- Quality Improvement of the product
- To make sure it works according to the specifications
- To reduce the failure cost
- To reduce the risk
- To build the confidence in to software
Responsibilities of a tester
There is a misconception about the responsibilities of a tester that he/she fixes the defects. The tester's initial responsibilities are to:
- Design and develop Test cases
- Execute test cases
- Defect isolation and defect reporting
NOTE:- QA testers don't change anything. They just report that it should be changed.
Characteristics of a tester
- Logical and analytical capability.
- Creative.
- Ability to take the point of view of the customer.
- Test to break attitude.
- Must be aware of the techniques and tools.
- Must possess the domain knowledge. (Insurance, Airline).
- Relentless - keep trying.
These characteristics are required to be a productive tester.
When to stop testing
When the test manager is confident that the application will perform as expected in the production environment. This is derived by analysis conducted on:
- Deadlines (release deadlines, testing deadlines, etc.) are met
- Test cases completed with certain percentage passed
- Test budget depleted
- Coverage of code/functionality/requirements reaches a specified point
- Meantime between failures
- Risk associated with continuing to test
- Percentage of coverage achieved
- Number of open defects and their severity
Complete Testing is Impossible
- There is nearly an infinite number of paths through any non-trivial program.
- There is a virtually infinite set of combinations of data that you can feed the program.
You can't test them all
- Therefore, your task is to find bugs; not to find all the bugs.
- You want to find as many bugs as possible.
- Find the most serious bugs.
- Find bugs as early as possible.
- Your challenges will require judgement, trade-offs and efficiency.