Week2
Week2
Testing
• Testing all combinations of input data values and scenarios are impossible
• Testing all combinations would cost more time and money
• Smarter ways of testing should be adopted in order to complete the project timelines
• Prioritize important tests based on risk
Example:
• Assume you are testing the email subscription feature of an application. There are 1000 users subscribed.
Testing email subscription is working for 1000 users consumes a lot of time and cost. Instead, identify
sample or prioritize the important test based on the requirement.
Early Testing
• Software testing starts from requirement gathering
• Testing should be done parallelly along with other product development phases.
• Finding defects early on will save a lot of money and rework time
Example:
• Consider product requirement gathering is completed and developer started coding. Once the development
is done, tester identifies a defect in the requirement gathering and found that the requirement should be
changed. This costs lots of money and time loss for the company and also finally end up in rework. Instead, if
it’s found early on that would have saved the company a lot of money and time.
Defect Clustering
Pesticide Paradox
• Executing same test cases, again and again, will not help us to identify new defects
• To overcome this, it is really important to review test cases regularly and modify them if required
• Different and new test cases should be added to find more defects in the software
Example:
• Executing the functional test cases, again and again, will not help to identify defects regarding the
performance of the software or the defects regarding the security threat. Our test cases should be
different to potentially identify new defects
Absence-of-errors fallacy
• Finding and fixing defects doesn’t help if the built software fail to meet user’s requirements
• Test designed should catch most defects and also should cover all client’s requirements and specifications before shipping the
product
• Software tester completely tested the product and the software is 100% defect free. Is that mean the product is ready to be
shipped? No! Software tester should verify the test design covers the customer’s requirements and specifications. If the built
software fails to meet requirements, then finding and fixing bugs doesn’t really help.
Example:
• Zero defects do not mean the software solves end-user problems successfully. Linux always had very few bugs, while
Microsoft Windows was (is?) notorious for its bugs. However, most people used Microsoft Windows as their operating
system because they found it easier to use and solved their problems better. Linux is becoming more and more
mainstream today as it started focusing on end-user experience.
Planning and Control
Test Planning
The first phase in the test process involves creating a robust test plan. During this,
we plan for the test by creating a document highlighting the overall test approach
and its objective.
Here, creating a document is important as it serves as the guide for the complete
test process. You may question why to make a test plan before proceeding with the
test process. Well, the following is the main purpose of to test plan that makes it a
crucial step in the test process:
• Test Execution
Tests are executed once the test cases are implemented, and the test data is prepared. Test execution involves running the specified test cases on the target system or software. It
can be done manually by following predefined steps or automated using specialized test execution tools. During test execution, you can observe and record the actual outcomes or
results of the tests.
• Outcome Comparison
After executing each test case, you can compare the actual results obtained during the test execution with the expected results specified in the test cases. This comparison helps
identify any discrepancies or deviations from the expected behavior. You can log the outcomes of each test, noting whether the test passed or failed based on the comparison. This
information is valuable for further analysis and troubleshooting.
Evaluating Test Exit Criteria and
Reporting
The evaluating exit criteria and reporting phase in the testing process are crucial for determining when to conclude the testing activities and
communicating the results to stakeholders. This phase consists of two key components: evaluating exit criteria and generating test reports.
The evaluating exit criteria and reporting phase helps ensure that testing activities are well-managed and decisions
regarding test completion are based on predefined criteria and project considerations.
The test reports facilitate effective communication with stakeholders, providing them with the necessary information to
assess the quality of the software or system and make informed decisions regarding its release or further testing.
Test Closure Activities
These activities are performed when the software applications are ready to be released or when testing needs to be closed for other reasons, like project
cancellation or achievement of targets. During this phase, completed planned deliverables and resolved incident reports are checked.
Following this, finalize and archive the test artifacts, such as test scripts and environments, for future reuse is done. You must also evaluate the testing process
and identify lessons learned for future projects.
The test closure activities phase marks the conclusion of the testing process and involves several important tasks. Let's explore each of these activities in detail:
• Checking Planned Deliverables and Incident Reports
During this phase, the testing team verifies whether all planned deliverables have been completed per the initial test plan. It includes ensuring that all test cases have been
executed, test environments have been set up and utilized, and any other testing-related tasks or milestones have been achieved.
Additionally, any open incident reports or defects identified during testing are reviewed to ensure they have been resolved or appropriately addressed.
• Lessons Learned
One of the important aspects of the test closure activities phase is capturing lessons learned from the testing experience. It involves gathering feedback from the testing team,
stakeholders, and project members to identify areas of improvement, best practices, and potential pitfalls encountered during testing. Lessons learned can be documented in a
formal report or knowledge base, ensuring valuable insights gained from the testing process are utilized to enhance future testing endeavors.
Following these phases ensures a well-planned and controlled testing process, with thorough analysis, design, implementation, execution, and evaluation, leading to effective and
reliable software application delivery.