Software testing is the systematic evaluation of software to identify defects, ensure quality, and verify that a system meets its specified requirements. It encompasses a wide range of techniques—from manual test case execution to automated testing frameworks—and plays a vital role in maintaining software reliability, performance, and security.
| Who should learn this? |
|---|
| ✅ Aspiring QA engineers and software testers |
| ✅ Software developers writing unit/integration tests |
| ✅ DevOps and CI/CD engineers |
| ✅ Technical leads and product owners ensuring quality |
- Understand the purpose and importance of software testing
- Learn types of testing: unit, integration, system, acceptance
- Explore black-box vs white-box testing strategies
- Develop test plans, cases, and traceability matrices
- Implement automated testing using modern frameworks
- Test Levels: Unit testing, Integration testing, System testing, Acceptance testing
- Testing Types: Manual, Automated, Regression, Performance, Security, Usability
- Test Strategies: Black-box, White-box, Grey-box
- Testing Artefacts: Test cases, test scripts, bug reports, test plans
- Tools & Frameworks: JUnit, PyTest, Selenium, Postman, Jest, Cucumber, TestNG
| Title | Author(s) | Level | Description |
|---|---|---|---|
| Test Driven Development: By Example | Kent Beck | Beginner | Canonical introduction to TDD; hands-on examples that shape your mindset for writing tests first. |
| Concise Guide to Software Testing | Gerard O’Regan | Beginner | Undergraduate introduction to modern testing practices, terminology, and foundations. |
| Introduction to Software Quality | Gerard O’Regan | Beginner | Quality-focused perspective including standards, metrics, and QA methodologies. |
| The Art of Unit Testing | Roy Osherove | Intermediate | Classic guide to unit test design, dependency injection, and test doubles (C#-oriented but widely applicable). |
| Unit Testing: Principles, Practices, and Patterns | Vladimir Khorikov | Intermediate | Modern, highly praised unit testing guide with theory and practice well balanced. |
| Lessons Learned in Software Testing | Cem Kaner, James Bach, Bret Pettichord | Intermediate | Anecdotal, practitioner-based insights from decades of testing experience. |
| Exploratory Software Testing | James Whittaker | Intermediate | Practical approach to heuristic and non-scripted exploratory testing. |
| Agile Testing | Lisa Crispin, Janet Gregory | Intermediate | Dev/QA collaboration, automation, and testing strategies in agile environments. |
| Software Testing Techniques (2nd ed.) | Boris Beizer | Advanced | Seminal textbook covering test types and strategies in academic depth. |
| Software Testing: Principles and Practices | Srinivasan Desikan, Gopalaswamy Ramesh | Advanced | ISTQB-aligned, good coverage of techniques, tools, and management. |
| Continuous Testing for DevOps Professionals | Eran Kinsbruner et al. | Advanced | Enterprise testing in CI/CD and DevOps pipelines with real-world tooling examples. |
| Effective Software Testing: 50 Specific Ways to Improve | Elfriede Dustin | Advanced | Focused tips for coverage, automation, and test effectiveness across SDLC. |
| How Google Tests Software | James Whittaker, Jason Arbon, Jeff Carollo | Advanced | Insight into test culture, infrastructure, and scale at Google. |
| Course Title | Provider | Level | Description |
|---|---|---|---|
| Software Testing and Automation Specialization | University of Minnesota (Coursera) | Beginner | Covers software testing lifecycle, automation tools, and hands-on project work. |
| Introduction to Software Testing | Stanford Online | Beginner | Explores fundamentals of test case design, test strategies, and defects. |
| ISTQB Foundation Level Certification Training | Udemy | Beginner | Structured prep for ISTQB FL exam. Theory-focused, useful for cert alignment. |
| Course Title | Provider | Level | Description |
|---|---|---|---|
| Software Testing | NPTEL (IIT Kharagpur) | Intermediate | Covers test models, test coverage criteria, and test case generation. |
| Test Automation with Python: Selenium WebDriver | Udemy | Intermediate | Web UI automation using Python and Selenium. Practical walkthroughs included. |
| Software Testing & Quality Assurance | George Mason University | Intermediate | Covers structural, functional, mutation-based testing methods with academic rigour. |
| CS169.1x: Agile Development Using Rails | UC Berkeley (edX) | Intermediate | Focuses on BDD, TDD, CI, and collaborative software practices. |
| Course Title | Provider | Level | Description |
|---|---|---|---|
| Advanced Software Testing Techniques | Pluralsight | Advanced | Includes advanced test design, mocks, and continuous testing integration. |
| Software Verification and Validation | MIT OCW | Advanced | Formal V&V topics in safety-critical systems; useful in defence and aerospace. |
| Testing Reactive Systems (Video/Book) | O'Reilly | Advanced | Targets concurrency, event streams, and state-based systems in modern architecture. |
| Software Construction (6.005 / 6.031) | MIT OCW | Advanced | Emphasises correctness and testability; extensive unit testing and test-first design included. |
- Write unit tests for a basic calculator or CRUD app using
pytest,JUnit, orNUnit - Automate end-to-end UI tests with Selenium or Playwright for a small web project
- Perform exploratory testing on a bug-ridden legacy app and write a detailed defect report
- Build a CI/CD pipeline using GitHub Actions or GitLab CI that runs test suites automatically
- Can you differentiate between black-box and white-box testing?
- Can you design test cases for a given module using boundary value analysis?
- Are you comfortable automating a test suite using a modern testing framework?
- Do you understand how testing integrates into CI/CD pipelines?
- DevOps & CI/CD – Explore how automated testing fits into modern pipelines
- Software Architecture – Understand how design impacts testability
- Security Testing – Learn to test systems for vulnerabilities