Python Central HubSign in

SE 230IntermediateSoftware engineering

Software Testing and Quality

pytest, API and UI testing, static analysis and the pipelines that run them.

57 lessons, not started

What you will learn

  • Write unit and integration tests with pytest
  • Test APIs and user interfaces
  • Catch problems early with static analysis and CI

Syllabus

57 lessons in 8 sections. Take them in order, or open any lesson directly.

  1. Software Testing and Quality2 min
  2. Phase 1: Testing Fundamentals (QA Theory)8 lessons
    1. Introduction to Software Quality Assurance (SQA)1 min
    2. The Cost of a Bug - Why Testing Matters2 min
    3. Software Development Life Cycle (SDLC) vs. STLC2 min
    4. The V-Model in Software Testing2 min
    5. Verification vs. Validation2 min
    6. Principles of Software Testing (Pesticide Paradox, etc.)2 min
    7. Manual vs. Automated Testing - When to Choose?2 min
    8. Black Box, White Box, and Grey Box Testing2 min
  3. Phase 2: Levels of Testing7 lessons
    1. The Test Pyramid Strategy3 min
    2. Unit Testing - Testing Individual Components2 min, 3 exercises
    3. Integration Testing - Testing Module Interactions2 min, 3 exercises
    4. System Testing - Testing the Whole Product2 min
    5. User Acceptance Testing (UAT)2 min
    6. Regression Testing - Ensuring Old Features Still Work2 min
    7. Smoke and Sanity Testing2 min
  4. Phase 3: Unit Testing with Python (unittest)8 lessons
    1. Introduction to Python’s unittest Library1 min, 3 exercises
    2. Writing Your First Test Case1 min, 3 exercises
    3. Using assertEqual and Other Assertions2 min, 3 exercises
    4. Test Discovery and Running Tests1 min, 3 exercises
    5. Organizing Tests into Test Suites1 min
    6. The Test Lifecycle - setUp() and tearDown()1 min, 3 exercises
    7. Class-level Setup - setUpClass() and tearDownClass()2 min
    8. Skipping Tests and Expected Failures2 min, 3 exercises
  5. Phase 4: Modern Testing with pytest8 lessons
    1. Why Choose pytest over unittest?2 min, 3 exercises
    2. Writing Concise Tests with Plain assert2 min, 3 exercises
    3. Pytest Fixtures - Managing Test Dependencies2 min, 3 exercises
    4. Parameterized Testing - Running Tests with Multiple Data Sets2 min, 3 exercises
    5. Pytest Markers - Custom Tags and Filtering2 min
    6. Generating HTML Test Reports2 min
    7. Measuring Code Coverage with coverage.py2 min
    8. Mocking and Patching with unittest.mock3 min
  6. Phase 5: API & Web Testing Automation7 lessons
    1. API Testing Fundamentals4 min, 3 exercises
    2. Testing REST APIs with the requests Library2 min, 3 exercises
    3. Automating UI Tests with Selenium & Python2 min
    4. The Page Object Model (POM) Pattern2 min
    5. Introduction to Playwright for Python2 min
    6. Behavior Driven Development (BDD) with behave2 min
    7. Writing Tests in Gherkin (Given-When-Then)2 min
  7. Phase 6: Static Analysis & Code Quality7 lessons
    1. Introduction to Code Linting2 min, 3 exercises
    2. Using Pylint to Enforce Standards3 min
    3. Using Flake8 for Style Checks3 min, 3 exercises
    4. Static Type Checking with Mypy3 min
    5. Automated Refactoring with Black2 min
    6. Complexity Analysis with Radon3 min
    7. Finding Security Vulnerabilities with Bandit2 min
  8. Phase 7: CI CD & Professional QA Workflow6 lessons
    1. Introduction to Continuous Integration (CI)3 min
    2. Automating Tests with GitHub Actions2 min
    3. Setting up Pre-commit Hooks2 min
    4. Test-Driven Development (TDD) Workflow2 min, 3 exercises
    5. Writing a Bug Report - Best Practices3 min
    6. Defect Life Cycle (Bug Statuses)3 min
  9. Suggested Testing Projects5 lessons
    1. Project - Building a Test Suite for a Calculator App2 min
    2. Project - Automated API Validation for a Weather Service2 min
    3. Project - E-commerce Checkout Flow UI Test2 min
    4. Project - Refactoring "Dirty" Code using TDD2 min
    5. Project - Building a CI/CD Pipeline for a Flask App2 min

What learners say