Ch 1 Introduction to Software Testing
Ch 1 Introduction to Software Testing
6. Saves Money: Fixing issues early is cheaper than fixing them later.
7. Ensures Standards: Keeps the software compliant with rules and regulations.
9. Prevents Failures: Avoids major problems that could damage the company’s reputation.
2. Test Analyst
● Responsibilities:
○ Analyze requirements and create test cases.
○ Define test objectives and design test scenarios.
○ Identify potential risks in the software.
○ Ensure all functional requirements are tested.
3. Test Engineer/Tester
● Responsibilities:
○ Execute test cases and document results.
○ Report bugs and track their resolution.
○ Perform functional, regression, and integration testing.
○ Collaborate with developers to understand the software.
6. Security Tester
● Responsibilities:
○ Identify vulnerabilities in the software.
○ Test for potential threats like data breaches or unauthorized access.
○ Ensure compliance with security standards.
○ Simulate attacks to evaluate software resilience.
7. Quality Assurance (QA) Engineer
● Responsibilities:
○ Ensure that testing processes align with organizational quality standards.
○ Monitor the overall software quality throughout the lifecycle.
○ Review and refine test plans and cases.
○ Facilitate communication between teams.
Immediate Goals
1. Detect Bugs Early: Find and report defects as soon as possible.
2. Validate Functionality: Ensure all features work as expected.
3. Ensure Stability: Confirm that the software is stable during development.
4. Verify Requirements: Validate that the software meets specified
requirements.
5. Facilitate Development: Provide quick feedback to developers for issue
resolution.
Long-Term Goals
1. Improve Quality: Build a robust and reliable product.
2. Optimize Performance: Ensure the software handles expected loads and
stresses effectively.
3. Enhance Security: Identify vulnerabilities to create a secure application.
4. Support Scalability: Verify that the software can grow with user demands.
5. Reduce Costs: Minimize the need for costly fixes after deployment through
thorough testing.
Post-Implementation Goals
1. Monitor Performance: Track the application in real-world scenarios to ensure
smooth operation.
2. Address User Feedback: Gather and resolve any user-reported issues.
3. Ensure Compatibility: Test for continued compatibility with updates to
operating systems or other software.
4. Maintain Security: Perform regular security testing to address new threats.
5. Support Continuous Improvement: Use testing data to enhance the product
over time.
Testing Classification
1.Functional Testing
2. Non-Functional Testing
2. Regression Testing
Software Testing Strategies
1. Unit testing – Tests individual units or components of the software to ensure they are
functioning as intended.
2. Integration testing – Tests the integration of different components of the software to
ensure they work together as a system.
3. System testing – Tests the complete software system to ensure it meets the specified
requirements.
4. Performance testing – Tests the software to determine its performance characteristics
such as speed, scalability, and stability.
Fault,Errors & Failure
What is Error ?
The fault may occur in software because it has not added the code for fault
tolerance, making an application act up.
A fault may happen in a program because of the following reasons:
○ Lack of resources
○ An invalid step
○ Inappropriate data definition
What is Failure?
Many defects lead to the software's failure, which means that a loss specifies a fatal
issue in software/ application or in its module, which makes the system unresponsive or
broken.
In other words, we can say that if an end-user detects an issue in the product, then that
particular issue is called a failure.
Possibilities are there one defect that might lead to one failure or several failures.
For example, in a bank application if the Amount Transfer module is not working for
end-users when the end-user tries to transfer money, submit button is not working.
Hence, this is a failure.
Testing Objectives
1. Detect Defects
● Identify bugs, errors, and flaws in the software before release.
2. Validate Functionality
● Confirm that the software performs as per the specified requirements.
3. Ensure Reliability
● Verify that the software functions consistently under various conditions.
4. Improve Quality
● Enhance the overall quality of the software by ensuring it meets user expectations.
5. Ensure Security
6. Optimize Performance
7. Validate Compatibility
● Ensure the software works across different devices, platforms, and environments.
8. Prevent Failures
Validation is the process of checking whether the software product is up to the mark
It is the process of checking the validation of the product i.e. it checks what we are
developing is the right product.
1. Requirement Analysis
● Objective: Understand the testing requirements from the software requirements
document.
● Activities:
○ Analyze functional and non-functional requirements.
○ Identify testing needs, tools, and resources.
2. Test Planning
● Objective: Plan the testing process and set goals.
● Activities:
○ Develop a test strategy and test plan document.
○ Estimate effort, costs, and schedule.
○ Identify risks
5. Test Execution
● Objective: Execute test cases and identify defects.
● Activities:
○ Run test cases as per the plan.
○ Log defects in a defect tracking system.
○ Retest after defects are fixed.
6. Test Closure
● Objective: Wrap up the testing process and evaluate the outcomes.
● Activities:
○ Ensure all planned test cases are executed.
○ Analyze test metrics and prepare the test closure report.
○ Archive test artifacts for future use.