Software Testing with Python
Duration: 3 Days
Description
Most developers write tests the way they learned to — informally, inconsistently, and usually after a bug has already shipped. This three-day course replaces that habit with an actual practice: a fast Python refresher, then straight into software testing fundamentals (test levels, types, and where testing fits in the development lifecycle), hands-on work with PyUnit — Python’s built-in testing framework — and testing techniques like equivalence partitioning and boundary value analysis that catch the edge cases developers reliably miss when testing their own code from memory. The closing modules on test management, reporting, and how automated testing fits into continuous integration make this immediately applicable to teams already running CI pipelines, not just a standalone skill.
Audience
This course is written for developers who write and maintain their own tests, not dedicated QA specialists working in isolation — though QA professionals moving into Python-based testing will get real value from it too. For a developer, the direct payoff is fewer regressions and faster code review: writing a properly structured PyUnit test case, rather than an ad hoc script that only checks the happy path, catches problems before a reviewer or a user does. It’s especially valuable for developers on teams without a dedicated QA function, where testing discipline has to live inside the development process itself, and for anyone who inherited a codebase with little to no test coverage and needs a practical, not theoretical, way to start closing that gap.
Objectives
- Understand the role and importance of software testing in the software development lifecycle
- Apply core Python programming concepts in the context of writing test scripts
- Design and implement effective test case using PyUnit
- Utilize standard testing techniques such as equivalence partitioning and boundary value analysis
- Plan, document, and execute test cases systematically
- Generate test execution reports and track defects effectively
- Understand the fundamentals of test automation and its integration into CI pipelines
Prerequisites
Participants should have a basic knowledge of Python programming (data types, control flow, functions) and familiarity with software development processes.
Related Python Courses
See the full Python training roadmap and course directory for how this fits into a broader learning path.
For a deeper, certification-aligned foundation in testing theory, see PCET Introduction to Python Testing, and for advanced techniques like TDD, BDD, and mocking, see PCAT Python Testing. Developers who also want to strengthen general Python skills alongside testing should pair this with Advanced Python. New to Python entirely? Start with Introduction to Python. Testing AI-integrated applications? See Python OpenAI API for Developers.
Course Outline
Module 0: Python Basics
- Strings and Data Types
- Conditional Statements
- Collections
- Functions and Classes
Module 1: Software Testing Fundamentals
- Introduction to Software Testing
- Software development Life Cycle
- Testing Principles and Concepts
- Test Levels and Types
Module 2: Introduction to Testing with PyUnit
- Introduction to PyUnit
- Writing Test Cases
- Test Discovery and Execution
- Test Coverage
Module 3: Testing Techniques
- Equivalence Partitioning
- Boundary Value Analysis
- Error Guessing
Module 4: Test Design and Execution
- Test Planning
- Test Case Design
- Test Execution and Logging
Module 5: Test Management and Reporting
- Test Management Overview
- Test Metrics
- Test Execution Reports
- Defect Tracking
- Test Automation and Continuous Integration