---
title: Software Testing
description: Software testing is the process of evaluating an application to verify that it functions correctly and meets requirements. You will understand how to write unit, integration, and end-to-end tests to ensure code reliability and prevent regressions.
category: programming-tech
subcategory: software-architecture
difficulty: beginner, intermediate, advanced
url: /subject/software-architecture-software-testing
---

# Software Testing

Software testing is the process of evaluating an application to verify that it functions correctly and meets requirements. You will understand how to write unit, integration, and end-to-end tests to ensure code reliability and prevent regressions.

## Available Resources

4 Books • 3 Websites

## Websites

### 1. Martin Fowler - Testing Articles

Fowler's collected writing on testing, including the test pyramid, unit test definitions, mocks versus stubs, and self-testing code. Reading it gives you the vocabulary and trade-off reasoning most team debates about test strategy actually depend on.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://martinfowler.com/tags/testing.html

**Tags:** software-testing, test-strategy, unit-testing, test-automation, software-design

### 2. Test Automation University

Free online school run by Applitools offering short video courses on test automation, including Selenium WebDriver, Cypress, Appium, API testing and visual testing. Learners can build working automated test suites for web, mobile and API applications.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://testautomationu.applitools.com

**Tags:** test-automation, selenium, api-testing, visual-testing, quality-assurance

### 3. ministryoftesting.com

Ministry of Testing is a community hub for software testers, offering articles, courses, events (such as TestBash), podcasts, and an active forum with practical resources to learn and improve testing skills, including game testing.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://ministryoftesting.com

**Tags:** websites, arts-design, game-development

## Podcasts

### 1. Test & Code

**Author:** Brian Okken

Brian Okken's long-running podcast on testing Python code, covering pytest features, test design, CI, and the packaging tools around them. Episodes are short and practical, usually walking through one tool or technique at a time.

**Difficulty:** Beginner | **Language:** en-us | **Price:** Free

**Link:** https://pythontest.com/testandcode

**Tags:** python, pytest, software-testing, test-automation, podcast

### 2. AB Testing

**Author:** Alan Page, Brent Jensen

Long-running conversation podcast by software quality practitioners Alan Page and Brent Jensen on the Modern Testing principles. Episodes discuss shifting quality ownership to whole teams, agile and lean delivery, DevOps, experimentation and data-driven quality, helping testers and engineering leads rethink the role of testing.

**Difficulty:** Intermediate | **Language:** en-us | **Price:** Free

**Link:** https://moderntesting.org

**Tags:** modern-testing, quality-engineering, test-strategy, agile, devops

## Books

### 1. Agile Testing

**Author:** Lisa Crispin, Janet Gregory

Crispin and Gregory's account of how testing works on agile teams: the tester's changing role, the agile testing quadrants, and automation strategy. Useful for shifting a team away from a separate downstream QA phase.

**Difficulty:** Intermediate | **Language:** English | **Price:** Paid

**Link:** https://www.amazon.com/dp/0321534468?tag=edmonddante07-20

**Tags:** books, technology-computer-science, software-architecture

### 2. The Art of Software Testing

**Author:** Glenford J. Myers

Myers's 1979 classic that framed testing as the process of trying to make software fail rather than confirm it works. Covers test case design, inspections, and the psychology of why developers test their own code badly.

**Difficulty:** Intermediate | **Language:** English | **Price:** Paid

**Link:** https://www.amazon.com/dp/0471043281?tag=edmonddante07-20

**Tags:** books, technology-computer-science, software-engineering

### 3. A Practitioner’s Guide to Software Test Design

**Author:** Lee Copeland

Copeland's catalogue of test design techniques: equivalence classes, boundary values, decision tables, pairwise combinations, state machines, and use-case tests. After it you can choose a technique deliberately instead of writing test cases by intuition.

**Difficulty:** Intermediate | **Language:** English | **Price:** Paid

**Link:** https://www.amazon.com/dp/158053791X?tag=edmonddante07-20

**Tags:** books, technology-computer-science, software-architecture

### 4. Lessons Learned in Software Testing

**Author:** Cem Kaner, James Bach, Bret Pettichord

Roughly 300 short, opinionated lessons from three context-driven testing veterans, spanning test strategy, bug reporting, automation, managing testers, and dealing with organizational pressure. Read as a reference rather than straight through.

**Difficulty:** Intermediate | **Language:** English | **Price:** Paid

**Link:** https://www.amazon.com/dp/0471081124?tag=edmonddante07-20

**Tags:** books, technology-computer-science, software-architecture

---

*This content is part of Dantes.io - Your Treasure Map to Knowledge*

*Curated by humans at Dantes.io. Personal study use welcome; republishing this curation requires permission (team@dantes.io).*

View this page online: https://dantes.io/subject/software-architecture-software-testing