The ‘Automated Software Testing with Python Course’ is a comprehensive training program for automated software testing using Python. The course is taught by Jose Salvatierra. He is a software developer by profession and has been teaching students coding and software development for the past 7 years.

The course primarily focuses on testing for the web. Students will be working with REST APIs, web applications, Selenium, Postman and WebDriver. The course is usually available for INR 2,799 on Udemy but students can click on the link and get the ‘Automated Software Testing with Python Course’ for INR 449.

Who all can opt for this course?

  • Experienced students or professionals who wish to learn about testing their Python programmes in order to create more comprehensive solutions
  • Individuals in the workforce who want to learn more about automated software testing
  • Software engineers and automated testers

Course Highlights

Key HighlightsDetails
Registration LinkApply Now!
PriceINR 449 (INR 2,79984% off
Duration13.5 hours
Student Enrollment30,353 students
InstructorJose Salvatierra
Topics CoveredREST APIs, web applications, Selenium, Postman, WebDriver, unittest library, etc.
Course LevelIntermediate (Students must be familiar with the basics of web applications. Knowledge of Python & REST APIs will be beneficial)
Total Student Reviews4,427

Learning Outcomes

  • Learn everything about software testing using Python.
  • Learn how to avoid common mistakes and follow the best practices while writing automated tests.
  • Create complete system tests using Python and Postman.
  • Create a continuous integration pipeline using Travis CI to automate the application testing.
  • Browser-based acceptability testing with Selenium WebDriver and Behave.

Course Content

S.No.Module (Duration)Topics
1.Welcome! (01 minute)How to take this course
A self-assessment
Installing Python and PyCharm on Windows
Installing Python and PyCharm on OS X
2.A Full Python Refresher (05 hours 14 minutes)Introduction to this section
Access the code for this section here
Variables in Python
Variables (Python 3.10)
Solution to coding exercise: Variables
String formatting in Python
Getting user input
Writing our first Python app
Lists, tuples, and sets
Advanced set operations
Lists, tuples, and sets (Python 3.10)
Solution to coding exercise: lists, tuples, sets
Booleans in Python
If statements
The ‘in’ keyword in Python
If statements with the ‘in’ keyword
Loops in Python
Flow control—loops and ifs (Python 3.10)
Solution to coding exercise: flow control
List comprehensions in Python
Destructuring variables
Functions in Python
Function arguments and parameters
Default parameter values
Functions returning values
Functions (Python 3.10)
Solution to coding exercise: Functions
Lambda functions in Python
Dictionary comprehensions
Dictionaries and students (Python 3.10)
Solution to coding exercise: dictionaries
Unpacking arguments
Unpacking keyword arguments
Object-Oriented Programming in Python
Magic methods: __str__ and __repr__
Classes and objects (Python 3.10)
Solution to coding exercise: classes and objects
@classmethod and @staticmethod
@classmethod and @staticmethod (Python 3.10)
Solution to coding exercise: @classmethod and @staticmethod
Class inheritance
Class composition
Type hinting in Python 3.5+
Imports in Python
Relative imports in Python
Errors in Python
Custom error classes
First-class functions
Simple decorators in Python
The ‘at’ syntax for decorators
Decorating functions with parameters
Decorators with parameters
Mutability in Python
Mutable default parameters (and why they’re a bad idea)
Conclusion of this section
3.Your first automated software test (01 hour 44 minutes)Introduction to this section
Access the code for this section here
Setting up our project
Important: the naming of test files
Writing our first test
Testing dictionary equivalence
Writing blog tests and PyCharm run configurations
The __repr__ method, and intro to TDD
Integration tests and finishing the blog
Mocking, patching, and system tests
Patching the input method and returning values
Taking our patching further
The last few patches!
The TestCase setUp method
Conclusion of this section
4.Testing a Flask Endpoint (29 minutes)Introduction to this section
Access the code for this section here
Setting our project up
Creating our Flask app
Our first System test
Refactoring our System Tests
Conclusion of this section
5.REST API Testing, Part I (44 minutes)Introduction to this section
Access the code for this section here
A look at a REST API with Flask
Unit testing a REST API
Setting up our generic BaseTest
Integration testing a REST API
Conclusion of this section
6.REST API Testing, Part II (38 minutes)Introduction to this section
Access the code for this section here
Setting up our project
Testing foreign key constraints with Python
Unit testing models and SQLAlchemy mappers
Finishing our Store tests
Conclusion of this section
7.System testing a REST API (01 hour 09 minutes)Introduction to this section
Access the code for this section here
Setting project up and creating User model
Change to the next lecture’s code
Allowing users to log in
Writing our User tests
The setUpClass method in the BaseTest
Testing user registration
Finalising user System tests
Writing Store System tests
Writing our Item System tests and testing authentication
Conclusion of this section
8.System testing with Postman and Newman (45 minutes)Introduction to this section
Access the code and Postman files here
Introduction to Postman
Our first Posman tests
Setting and clearing environment variables in Postman
Running a test folder in Postman
Advanced PyCharm run configurations
Installing Node and Newman
Multirun in PyCharm—Running app and tests together
Conclusion of this section
9.Continuous Integration with Travis CI (43 minutes)Introduction to this section
The code for this section
Installing Git
What is a Git repository?
A local Git workflow
GitHub and remote repositories
Adding our project to GitHub
What is Travis CI?
Adding our repository to Travis
The Travis config file and running tests
Adding our test badge to the Readme
Conclusion of this section
10.Acceptance testing and browser automation with Selenium (02 hours 00 minutes)Introduction to this section
What is acceptance testing?
Introduction to our project
Our first acceptance test step
Getting the Chrome webdriver
Verifying everything works
Finishing our first test
Re-using steps with the regular expression matcher
Our first content test
Page locators and models
The blog page
Using pages in navigation
Don’t over-generalise tests!
Waits and timeouts with Selenium
Debugging acceptance tests in PyCharm
Our final complex scenario
Filling in forms with Selenium
Access the final code of this section here
Conclusion of this section
11.Bonus Material (47 seconds)Bonus lecture: other courses and next steps

Resources Required

  • Although the course contains a Python refresher section, it will be useful if students have some prior Python programming knowledge.
  • Although not necessary, knowledge of REST APIs and web applications will be beneficial.

Featured Review

Anders Albert (5/5): The number one feature of this course is the instructor. He seems to be a professional with lot of experience developing code. He manage to convey a complex topic in an understandable way. I am also impressed with the amount of content in this course. Just section 3 alone covered more than a similar course I took spent 9.5 hours covering.


  • Antony Fuentes Artavia (5/5): This course was just wonderful! He covered the QA automation cycle from end to end.
  • David Carrasquilla Retana (5/5): I am at 35% and I just can say, at this moment this is the best course that I’ve found on Udemy.
  • Tobias Kuhn (5/5): Jose is a very good instructor and I like his courses.
  • pseudo reality (5/5): I think this is a very good continuation of Jose’s flask rest API intro course which was also a very good course.


  • Rung-Yi H. (2/5): Most contents are not relevant to unittest.
  • Irekgd (1/5): Sadly if You are a Windows user this course will be a big pain.
  • Vinh N. (1/5): This course is really hard and not easy to understand, foremost this course doesn’t fit with beginners though.
  • Manjunath K. (1/5): It was fast and couldn’t understand

About the Author

The course is taught by Jose Salvatierra. He works as a software engineer and is the founder of Teclado. With a 4.6 instructor rating and over 60k reviews on Udemy, he offers 9 courses and has taught over 2.7 lakh students so far.

  • Jose likes to assist students in their pursuit of software development and coding skills.
  • He has been teaching students coding and software development online for more than 7 years.
  • Jose helps students solve Python and JavaScript-related problems with respect to web and backend programming.
  • He has worked with libraries and tools like Flask, React, React Native, and AngularJS.
  • He also has a lot of experience with complex system architecture design, MongoDB, PostgreSQL, and UNIX platforms.

Comparison Table

ParametersAutomated Software Testing with PythonThe Complete Python/PostgreSQL Course 2.0REST APIs with Flask and Python in 2023
OffersINR 449 (INR 2,799) 84% offINR 455 (INR 3,499) 87% offINR 455 (INR 3,499) 87% off
Duration13.5 hours13.5 hours12 hours
Rating4.5/54.6 /54.6 /5
Student Enrollments30,35012,162110,576
InstructorsJose SalvatierraCodestars • over 2 million students worldwide!Jose Salvatierra
Register HereApply Now!Apply Now!Apply Now!

Leave feedback about this

  • Rating