Skip to main content

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.

Configuring a Continuous Integration pipeline that automatically runs tests upon modifications ensures 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
By connecting students all over the world to the best instructors, Udemy is helping individuals reach their goals and pursue their dreams. Udemy is the leading global marketplace for teaching and learning, connecting millions of students to the skills they need to succeed. Udemy helps organizations of all kinds prepare for the ever-evolving future of work. Our curated collection of top-rated business and technical courses gives companies, governments, and nonprofits the power to develop in-house expertise and satisfy employees’ hunger for learning and development.

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