Testing Software Projects
TABLE OF CONTENTS
- Test planning
- Test case design
- Execution and Reporting
Follow all you have learned so far
You will be assigned to a project
Every day tasks will be assigned to you e.g. Test login functionality
Implement, test and commit your tests using the project's Github repository
Use the TestLink Test Management Tool to log bugs
- This STLC phase defines “WHAT” to be tested.
- We basically identify the test conditions through the requirements document, product risks and other test basis.
- The test condition should be traceable back to the requirement.
Various factors which effect the identification of test conditions
- Levels and depth of testing
- Complexity of the product
- Complexity of the product
- Product and project risks
- Software development life cycle involved
- Test management
- Skills and knowledge of the team
- Availability of the stakeholders
- We should try to write down the test conditions in a detailed way.
- The most important advantage of writing the detailed test condition is that it increases the test coverage, since the test cases will be written on the basis of the test condition, these details will trigger to write more detailed test cases which will eventually increase the coverage.
- Also identify the exit criteria of the testing, i.e determine some conditions when you will stop the testing
Test planning (2)
- In this phase we identify the activities and resources which would help to meet the testing objectives.
During planning we also try to identify the metrics, the method of gathering and tracking those metrics.
Test planning (3)
What are the main components of the good Test Plan?
- Scope (In scope and out of scope)
- Roles and Responsibilities
- Risks and Dependencies
- Resources and Environment Requirements
- Staffing and Training needs
- Test Environment and Test Tools Requirements
- Test Data
Test planning (3)
What are the main components of the good test plan?
- Test Monitoring and Reporting
- Pass/Fail criteria
Test case design
Test Design Techniques
- Test design method for deriving test cases. In this method, classes of input conditions called equivalence classes are identified such that each member of the class causes the same kind of processing and output to occur.
- Tester identifies various equivalence classes for partitioning.
- A class is a set of input conditions that are is likely to be handled the same way by the system. If the system were to handle one case in the class erroneously, it would handle all cases erroneously.
Test Design Techniques (2)
Why we should use Equivalence Partitioning when designing test cases?
- To reduce the number of test cases (by avoiding the redundant cases), hence reducing the testing time and cost.
- To assure better test coverage, by testing all input classes, hence improve the test efficiency.
Test Design Techniques (3)
Boundary Values Analysis (BVA)
- Methodology for designing test cases that concentrates software testing effort on cases near the limits of input ranges (the boundaries).
- BVA generates test cases that highlight errors better than equivalence partitioning.
- The trick is to concentrate software testing efforts at the extreme ends of the equivalence classes.
- At those points when input values change from valid to invalid errors are most likely to occur.
What are the characteristics of a good Test Case?
- Testable - easy to be executed
- Exact - consistent names of fields, not generic
- Simple - conversational language
- Don’t explain well known basics (how to start browser)
The major task in this STLC phase is of creation of the detailed test cases.
- Prioritize the test cases also identify which test case will become part of the regression suite.
- Before finalizing the test case, it is important to carry out the review to ensure the correctness of the test cases.
- Also don’t forget to take the sign off of the test cases before actual execution starts.
- If your project involves automation, identify the candidate test cases for automation and proceed for scripting the test cases.
- Again - Don’t forget to review them!
Execution and Reporting
- As the name suggests, this is the Software Testing Life Cycle phase where the actual execution takes place.
- But before you start your execution, make sure that your entry criterion is met.
- Execute the test cases, log defects in case of any discrepancy.
- Simultaneously fill your traceability metrics to track your progress.
How to write effective Bug report
- Report the pattern not an example.
- Don’t describe what's wrong, only!
- Be direct to the point (don’t tell a story!)
- Report the bug, root cause analysis if possible.
- Don’t mix between priority and severity.
- Report how many times you've tried. Don’t use the word 'Sometimes'.