Skip to main content
CF

Automated Software Testing with Python

13h 26m 55s
English
Paid

Unlock the potential of automated software testing! Dive into a comprehensive journey with me, Jose, a seasoned software engineer and founder of Teclado. This course is tailored to help developers master test automation with Python, focusing especially on web testing—featuring REST APIs and web applications with tools like unittest, Postman, and Selenium WebDriver.

Worried about web-exclusive knowledge? Fear not! The skills you acquire here are versatile and applicable to any project, web-based or otherwise.

Technologies You'll Master

This course is rich with cutting-edge technologies designed for both professional and personal use:

  • The unittest library, Python's essential tool for automated testing.

  • Mocking and patching techniques to efficiently minimize dependencies.

  • Comprehensive coverage of unit, integration, system, and acceptance testing.

  • Utilize Postman for seamless project collaboration and testing.

  • Selenium WebDriver to conduct automated browser tests.

  • Implement Git and Travis for robust continuous integration.

Essential Software Testing Skills

Gain every foundational testing skill necessary to excel in testing jobs or enhance your current projects.

Learn to simplify complex tests with mocking and patching via the unittest library, and become adept in the full spectrum of testing from unit to customer acceptance tests.

The Testing Pyramid Explained

The Testing Pyramid emphasizes a balanced approach: many unit tests, fewer integration tests, even fewer system tests, and minimal acceptance tests.

In this course, you’ll ensure full coverage with unit tests, validate dependencies with integration tests, and check system-wide assumptions with system tests. You will also explore the creation and implementation of acceptance tests for web applications utilizing Behavior-Driven Development and Selenium WebDriver.

Mastering Automated Browser Testing with Selenium WebDriver

Leverage the full potential of Selenium WebDriver, coupled with proven professional techniques taught in this course. Design acceptance tests using page models, locators, and step definitions for reusable test structures. Translate customer requirements into executable tests swiftly.

Also, comprehend implicit and explicit waits with Selenium WebDriver and Python to optimize your testing speed.

Implementing Continuous Integration

Advance your testing capabilities with robust continuous integration methodologies.

Configure a Continuous Integration pipeline that automatically runs tests upon modifications to ensure exceptional project quality, helping you catch defects early. Learn to host your projects on GitHub and integrate them seamlessly with your CI pipeline.

About the Author: Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 127 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 127 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Introduction to this section
All Course Lessons (127)
#Lesson TitleDurationAccess
1
Introduction to this section Demo
01:02
2
Variables in Python
08:27
3
Solution to coding exercise: Variables
02:01
4
String formatting in Python
06:27
5
Getting user input
05:17
6
Writing our first Python app
03:20
7
Lists, tuples, and sets
06:32
8
Advanced set operations
04:40
9
Solution to coding exercise: lists, tuples, sets
04:41
10
Booleans in Python
05:01
11
If statements
08:18
12
The 'in' keyword in Python
02:03
13
If statements with the 'in' keyword
08:19
14
Loops in Python
11:08
15
Solution to coding exercise: flow control
03:09
16
List comprehensions in Python
07:25
17
Dictionaries
08:32
18
Destructuring variables
08:29
19
Functions in Python
10:42
20
Function arguments and parameters
07:41
21
Default parameter values
03:55
22
Functions returning values
07:20
23
Solution to coding exercise: Functions
02:31
24
Lambda functions in Python
07:53
25
Dictionary comprehensions
04:02
26
Solution to coding exercise: dictionaries
06:17
27
Unpacking arguments
10:25
28
Unpacking keyword arguments
08:45
29
Object-Oriented Programming in Python
15:53
30
Magic methods: __str__ and __repr__
06:26
31
Solution to coding exercise: classes and objects
05:05
32
@classmethod and @staticmethod
14:04
33
Solution to coding exercise: @classmethod and @staticmethod
05:55
34
Class inheritance
08:33
35
Class composition
06:09
36
Type hinting in Python 3.5+
05:09
37
Imports in Python
09:34
38
Relative imports in Python
08:54
39
Errors in Python
12:48
40
Custom error classes
05:05
41
First-class functions
07:53
42
Simple decorators in Python
07:13
43
The 'at' syntax for decorators
03:34
44
Decorating functions with parameters
02:25
45
Decorators with parameters
04:51
46
Mutability in Python
06:04
47
Mutable default parameters (and why they're a bad idea)
04:28
48
Conclusion of this section
00:38
49
Introduction to this section
00:25
50
Setting up our project
06:43
51
Writing our first test
11:11
52
Testing dictionary equivalence
05:26
53
Writing blog tests and PyCharm run configurations
06:44
54
The __repr__ method, and intro to TDD
08:50
55
Integration tests and finishing the blog
11:58
56
Mocking, patching, and system tests
16:38
57
Patching the input method and returning values
07:30
58
Taking our patching further
16:04
59
The last few patches!
07:08
60
The TestCase setUp method
04:37
61
Conclusion of this section
00:28
62
Introduction to this section
00:27
63
Setting our project up
04:39
64
Creating our Flask app
06:51
65
Our first System test
09:57
66
Refactoring our System Tests
06:33
67
Conclusion of this section
00:34
68
Introduction to this section
00:36
69
A look at a REST API with Flask
18:19
70
Unit testing a REST API
08:16
71
Setting up our generic BaseTest
09:37
72
Integration testing a REST API
06:48
73
Conclusion of this section
00:26
74
Introduction to this section
00:21
75
Setting up our project
08:46
76
Testing foreign key constraints with Python
05:26
77
Unit testing models and SQLAlchemy mappers
11:04
78
Finishing our Store tests
11:39
79
Conclusion of this section
00:25
80
Introduction to this section
00:29
81
Setting project up and creating User model
03:59
82
Allowing users to log in
04:11
83
Writing our User tests
04:15
84
The setUpClass method in the BaseTest
05:00
85
Testing user registration
06:42
86
Finalising user System tests
07:32
87
Writing Store System tests
13:36
88
Writing our Item System tests and testing authentication
22:36
89
Conclusion of this section
00:27
90
Introduction to this section
00:41
91
Introduction to Postman
09:02
92
Our first Posman tests
05:51
93
Setting and clearing environment variables in Postman
07:05
94
Running a test folder in Postman
07:54
95
Advanced PyCharm run configurations
06:09
96
Installing Node and Newman
04:44
97
Multirun in PyCharm—Running app and tests together
03:02
98
Conclusion of this section
00:37
99
Introduction to this section
00:39
100
Installing Git
04:13
101
What is a Git repository?
05:28
102
A local Git workflow
04:32
103
GitHub and remote repositories
05:18
104
Adding our project to GitHub
04:52
105
What is Travis CI?
02:30
106
Adding our repository to Travis
01:39
107
The Travis config file and running tests
10:34
108
Adding our test badge to the Readme
02:48
109
Conclusion of this section
00:39
110
Introduction to this section
00:41
111
What is acceptance testing?
05:09
112
Introduction to our project
03:11
113
Our first acceptance test step
10:47
114
Getting the Chrome webdriver
03:39
115
Verifying everything works
05:45
116
Finishing our first test
14:52
117
Re-using steps with the regular expression matcher
04:01
118
Our first content test
09:19
119
Page locators and models
18:37
120
The blog page
07:31
121
Using pages in navigation
06:46
122
Don't over-generalise tests!
02:26
123
Waits and timeouts with Selenium
07:34
124
Debugging acceptance tests in PyCharm
03:33
125
Our final complex scenario
02:47
126
Filling in forms with Selenium
13:02
127
Conclusion of this section
00:42
Unlock unlimited learning

Get instant access to all 126 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What prerequisites should I have before taking this course?
Before enrolling in this course, it is recommended to have a foundational understanding of Python programming. Familiarity with basic programming concepts such as variables, loops, functions, and object-oriented programming, as covered in the initial lessons, will be beneficial. This ensures you can focus on learning automated testing techniques rather than basic Python syntax.
What kind of projects will I be able to build by the end of this course?
By the end of this course, you will be equipped to build automated tests for web applications and REST APIs. You'll be able to implement unit tests using the unittest library, conduct integration and system tests, and utilize Selenium WebDriver for automated browser tests. Additionally, you'll know how to use Postman for API testing and collaborate on projects.
Who is the target audience for this course?
The course is designed for software developers and engineers who want to enhance their testing skills, specifically in automated testing using Python. It is suited for those looking to apply testing in web-based projects but also provides skills applicable to non-web projects. It is also beneficial for professionals aiming to improve their testing strategies in their current roles or aspiring to testing-focused careers.
How does this course compare in depth and scope to other automated testing courses?
This course offers comprehensive coverage of automated testing with a focus on web applications. It goes beyond basic unit testing, covering integration, system, and acceptance testing extensively. The course also delves into practical tools like Postman and Selenium WebDriver, which are essential for real-world web testing scenarios. It emphasizes a balanced approach to testing through the Testing Pyramid methodology.
What specific tools and platforms are covered in the course?
The course covers several key tools and platforms essential for automated testing. You will learn to use the unittest library for Python-based testing, Postman for API testing, and Selenium WebDriver for conducting automated browser tests. Additionally, the course incorporates Git and Travis CI for continuous integration, which are vital for maintaining and deploying test suites effectively.
What topics are not covered in this course?
While the course is extensive in its coverage of automated testing, it does not cover performance testing or security testing in detail. The focus is primarily on functional testing, including unit, integration, system, and customer acceptance tests. Students looking for specialized training in performance or security testing might need to explore additional resources.
What is the expected time commitment to complete this course?
The course includes 127 lessons, and while the total runtime isn’t specified, students should be prepared to invest significant time to fully engage with the material. This includes watching video lectures, completing exercises, and practicing on their own projects. The exact time commitment will vary based on individual pace and prior experience with Python and testing concepts.