Lecture 1: Importance of Software Testing
Software testing evaluates software to find defects, errors, or bugs, and ensures software meets the requirements. It is a continuous process throughout the SDLC.
Importance of Software Testing:
- Ensure reliability, efficiency, and usability
- Detects and fixes issues
- Enhances scalability, security, and performance
Testing cannot prove a system free of defects; missed test cases can always reveal new issues.
Verification vs Validation
- Verification: Are we building the product right? (The method; how?)
- Validation: Are we building the right product? (what?)
Roles and Responsibilities in Software Quality
- Developers: Write high-quality code, conduct code reviews, and create automated tests
- Testers: Design and execute test plans, verify requirements, and provide feedback
- Product Owners: Define and prioritize clear, testable product requirements
- Project Managers: Ensure realistic timelines and adequate resources
- Business Analysts: Validate requirements and identify inconsistencies early
- UX Designers: Ensure user-friendly, accessible interfaces
- Operations Teams: Manage reliable software deployment
- Technical Writers: Create clear documentation to enhance user understanding