Software Testing — Free Notes & Tutorial
Free Software Testing notes for BCA — testing types, test cases, defect tracking, automation basics at SikshaSarovar. Free Software Testing course on SikshaSarovar.
This Software Testing course is part of Siksha Sarovar and is 100% free for students in India — no sign-up required to read. It contains 16 structured lessons with examples, and pairs with our free online compiler and AI tutor.
What you will learn
- Unit testing
- Integration testing
- Test cases
- Automation
Course content (16 lessons)
- Unit 1: Overview — Unit 1: Introduction to Software Testing This unit covers the fundamental principles of software testing, including definitions, goals, the difference between verification and…
- Unit 1.1: Intro & Principles — Unit 1.1: Introduction to Software Testing 1. What is Software Testing? Definition: Software testing is a process of executing a program or application with the intent of finding…
- Unit 1.2: Terminology & Taxonomy — Unit 1.2: Error, Fault, Failure & Incident Understanding the difference between these terms is crucial in software engineering. 1. Definitions & Chain of Events 1. Error…
- Unit 1.3: V-Model & V&V — Unit 1.3: Verification vs. Validation These two terms are often confused but have distinct meanings. 1. Comparison Table Feature Verification Validation :--- :--- :--- Question…
- Unit 1.4: Static vs Dynamic — Unit 1.4: Static and Dynamic Testing 1. Definitions Static Testing: Testing involves verifying the software without executing the code . It involves reviewing documents, code, and…
- Unit 2: Overview — Unit 2: Functional & Structural Testing This unit dives into the core testing methodologies: Black Box (Functional) and White Box (Structural). It covers techniques like Boundary…
- Unit 2.1: Functional Testing — Unit 2.1: Black Box Testing & Techniques 1. Functional Testing (Black Box Testing) Definition: Black Box Testing (also known as Functional Testing) is a testing method where the…
- Unit 2.2: Structural Testing (Part 1) — Unit 2.2: White Box Testing Fundamentals 1. Structural Testing (White Box Testing) Definition: White Box Testing (also called Glass Box, Clear Box, or Structural Testing) is a…
- Unit 2.3: Structural Testing (Part 2) — Unit 2.3: Metrics & Complexity Analysis 1. Cyclomatic Complexity (McCabe's Metric) Definition: Cyclomatic Complexity is a software metric used to indicate the complexity of a…
- Unit 3: Overview — Unit 3: Levels of Testing This unit covers the different levels of testing: Unit, Integration, System, and Acceptance Testing. It explains the "V-Model" layers in detail. Visual…
- Unit 3.1: Unit & Integration Testing — Unit 3.1: Levels of Testing - Unit & Integration 1. Unit Testing: The First Line of Defense Definition: Unit testing is the process of testing the smallest testable parts of an…
- Unit 3.2: System Testing — Unit 3.2: System Testing Deep Dive 1. System Testing Overview Definition: System Testing is testing conducted on a complete, integrated system to evaluate the system's compliance…
- Unit 3.3: Acceptance Testing — Unit 3.3: Acceptance Testing & Types 1. User Acceptance Testing (UAT) Definition: The final phase of testing. It is performed by the Client or End Users , not the technical team.…
- Unit 4: Overview — Unit 4: Test Management This unit focuses on the management aspect of testing: Planning, Strategy, Resource allocation, Defect Life Cycle, and Reporting. Visual Overview Above is…
- Unit 4.1: Test Planning & Strategy — Unit 4.1: Test Planning & Strategy 1. Test Planning: The Blueprint Definition: A Test Plan is a rigorous, detailed document that describes the scope , approach , resources , and…
- Unit 4.2: Test Management & Reporting — Unit 4.2: Test Management & Reporting 1. Test Management Infrastructure Setting up the "Factory" for testing. A. Test Infrastructure Management Test Labs: Dedicated physical…
Unit 1.1: Intro & Principles
Unit 1.1: Introduction to Software Testing
1. What is Software Testing?
Definition: Software testing is a process of executing a program or application with the intent of finding the software bugs. It involves the execution of a software component or system component to evaluate one or more properties of interest.
2. Why is Testing so Hard?
- Complexity: Modern software is incredibly complex with millions of lines of code. Even a small app has thousands of states.
- Infinite Paths: The number of possible input combinations and execution paths is practically infinite. You cannot test everything.
- Hidden Defects: Some bugs only appear under very specific, rare conditions (race conditions, memory leaks over time).
- Changing Requirements: Software evolves rapidly. New features can break old ones (Regression).
- Human Factor: Developers cannot effectively test their own code due to "Confirmation Bias" (seeing what they expect to see). They unconsciously avoid edge cases that might break their logic.
3. Goals of Testing
- Find Defects: The primary goal is to catch bugs before the customer does.
- Prevent Defects: QA starts early. Reviewing requirements can find ambiguity before a single line of code is written.
- Ensure Quality: To gain confidence in the level of quality.
- Verification: Confirming that the software meets specific requirements ("Are we building the product right?").
- Validation: Confirming that the software meets user needs ("Are we building the right product?").
4. Seven Principles of Software Testing
These are the core guidelines for effective testing:
- Testing shows the presence of defects, not their absence: Testing can prove bugs exist, but cannot prove that software is 100% bug-free.
- Exhaustive testing is impossible: Testing everything (all combinations of inputs) is not feasible except for trivial cases. We use risk analysis to focus testing.
- Early testing: Testing should start as early as possible in the SDLC (Requirement Analysis phase) to save cost.
- Defect clustering: A small number of modules usually contain most of the defects (Pareto Principle: 80% of bugs are in 20% of code).
- Pesticide paradox: If the same tests are repeated over and over, they will eventually stop finding new bugs. New tests must be written.
- **Testing is context depe
Frequently asked questions
Is the Software Testing course really free?
Yes. The entire Software Testing course on Siksha Sarovar is free to read with no account required. You can optionally sign in with Google to save your progress.
Do I get a certificate for Software Testing?
Yes — finish the lessons and pass the quiz to earn a free, verifiable certificate you can share on LinkedIn or with recruiters.
Can I run code while learning?
Yes. The built-in online compiler runs C, C++, Python, Java, PHP, JavaScript, C# and SQL directly in your browser — no installation needed.