Automated Software Testing with Python
What you’ll learn
Everything you need to know about automated software testing with Python (and how to enjoy testing, too!)
Avoid common pitfalls and implement best practices when writing automated tests
Write complete system tests using Python and tools like Postman
Automate your application testing by setting up a continuous integration pipeline using Travis CI
Browser-based acceptance testing using Behave and Selenium WebDriver
Requirements
We’ll give you a complete Python refresher, but some previous knowledge of programming will be helpful
Some knowledge of how web applications work
Understanding of REST APIs will be helpful, but not required
Description
Welcome to the most comprehensive course on Automated Software Testing with Python on Udemy.Testing automation doesn’t have to be painful. Software testing is an essential skill for any developer, and I’m here to help you truly understand all types of test automation with Python.I’m Jose, a software engineer and founder of Teclado. The focus of this course is on testing for the web—we’ll be working with REST APIs and web applications, and technologies such as unittest, Postman, and Selenium WebDriver.Fear not though, after going through this course, you’ll be able to take your new testing knowledge and apply it to any project, even non-web projects!What will you work with?This course is jam-packed with all the latest technologies for you to use professionally and in personal projects:The unittest library, Python’s standard automated software testing library;Mocking and patching, two essential tools to reduce dependencies when testing;unit, integration, system, and acceptance testing—all types of testing to have you fully covered;Postman for easy collaboration and testing while developing;Selenium WebDriver for automated browser tests;Git and Travis for continuous integration of your project.Fundamental Software Testing SkillsWe will cover every fundamental software testing skill that you need to know in order to get a job testing or to apply these skills in your existing projects.From things like mocking and patching using the unittest library, which reduce dependencies and turn complex tests to simple ones; to looking at all types of testing: simple unit tests to large system tests and even customer acceptance tests.The Testing PyramidThe Testing Pyramid says you should have a lot of unit tests, slightly fewer integration tests, even fewer system tests, and as few acceptance tests as possible.Throughout the course we work on this concept, making sure that we have full coverage of every component of our system with unit tests. Then we test the dependencies using integration tests. Finally, we cover the entire system and its assumptions using system tests. Of course, we’ll also look at what acceptance testing is, how we come up with acceptance tests, and some of the best ways to write acceptance tests for a web application using Behavior-Driven Development and Selenium WebDriver.Automated Browser Testing with Selenium WebDriverSelenium WebDriver is extremely powerful, particularly when coupled with the efficient and tried-and-tested approach recommended in this course. We’ll design our acceptance tests professionally—just the way you’d do at a software testing job. We’ll use page models, locators, and step definitions to structure the automated tests in a reusable way. The customers will be able to come up with acceptance tests that you can easily translate to code.We’ll also learn about implicit and explicit waits with Selenium WebDriver and Python, a key concept to speed up the runtime of your acceptance tests.Continuous IntegrationWe also cover how you can take automated testing much further in your projects.By implementing a Continuous Integration pipeline that runs your tests whenever you make any changes, you’ll have much higher quality in your projects and not let any pesky bugs pass you by. We’ll look at putting our projects in GitHub and liking the CI pipeline with them.I’m really excited to guide you through this course!Join me in this automated testing journey. I’ll see you on the inside!
Overview
Section 1: Welcome!
Lecture 1 How to take this course
Lecture 2 A self-assessment
Lecture 3 Installing Python and PyCharm on Windows
Lecture 4 Installing Python and PyCharm on OS X
Section 2: A Full Python Refresher
Lecture 5 Introduction to this section
Lecture 6 Access the code for this section here
Lecture 7 Variables in Python
Lecture 8 Solution to coding exercise: Variables
Lecture 9 String formatting in Python
Lecture 10 Getting user input
Lecture 11 Writing our first Python app
Lecture 12 Lists, tuples, and sets
Lecture 13 Advanced set operations
Lecture 14 Solution to coding exercise: lists, tuples, sets
Lecture 15 Booleans in Python
Lecture 16 If statements
Lecture 17 The ‘in’ keyword in Python
Lecture 18 If statements with the ‘in’ keyword
Lecture 19 Loops in Python
Lecture 20 Solution to coding exercise: flow control
Lecture 21 List comprehensions in Python
Lecture 22 Dictionaries
Lecture 23 Destructuring variables
Lecture 24 Functions in Python
Lecture 25 Function arguments and parameters
Lecture 26 Default parameter values
Lecture 27 Functions returning values
Lecture 28 Solution to coding exercise: Functions
Lecture 29 Lambda functions in Python
Lecture 30 Dictionary comprehensions
Lecture 31 Solution to coding exercise: dictionaries
Lecture 32 Unpacking arguments
Lecture 33 Unpacking keyword arguments
Lecture 34 Object-Oriented Programming in Python
Lecture 35 Magic methods: __str__ and __repr__
Lecture 36 Solution to coding exercise: classes and objects
Lecture 37 @classmethod and @staticmethod
Lecture 38 Solution to coding exercise: @classmethod and @staticmethod
Lecture 39 Class inheritance
Lecture 40 Class composition
Lecture 41 Type hinting in Python 3.5+
Lecture 42 Imports in Python
Lecture 43 Relative imports in Python
Lecture 44 Errors in Python
Lecture 45 Custom error classes
Lecture 46 First-class functions
Lecture 47 Simple decorators in Python
Lecture 48 The ‘at’ syntax for decorators
Lecture 49 Decorating functions with parameters
Lecture 50 Decorators with parameters
Lecture 51 Mutability in Python
Lecture 52 Mutable default parameters (and why they’re a bad idea)
Lecture 53 Conclusion of this section
Section 3: Your first automated software test
Lecture 54 Introduction to this section
Lecture 55 Access the code for this section here
Lecture 56 Setting up our project
Lecture 57 Important: the naming of test files
Lecture 58 Writing our first test
Lecture 59 Testing dictionary equivalence
Lecture 60 Writing blog tests and PyCharm run configurations
Lecture 61 The __repr__ method, and intro to TDD
Lecture 62 Integration tests and finishing the blog
Lecture 63 Mocking, patching, and system tests
Lecture 64 Patching the input method and returning values
Lecture 65 Taking our patching further
Lecture 66 The last few patches!
Lecture 67 The TestCase setUp method
Lecture 68 Conclusion of this section
Section 4: Testing a Flask Endpoint
Lecture 69 Introduction to this section
Lecture 70 Access the code for this section here
Lecture 71 Setting our project up
Lecture 72 Creating our Flask app
Lecture 73 Our first System test
Lecture 74 Refactoring our System Tests
Lecture 75 Conclusion of this section
Section 5: REST API Testing, Part I
Lecture 76 Introduction to this section
Lecture 77 Access the code for this section here
Lecture 78 A look at a REST API with Flask
Lecture 79 Unit testing a REST API
Lecture 80 Setting up our generic BaseTest
Lecture 81 Integration testing a REST API
Lecture 82 Conclusion of this section
Section 6: REST API Testing, Part II
Lecture 83 Introduction to this section
Lecture 84 Access the code for this section here
Lecture 85 Setting up our project
Lecture 86 Testing foreign key constraints with Python
Lecture 87 Unit testing models and SQLAlchemy mappers
Lecture 88 Finishing our Store tests
Lecture 89 Conclusion of this section
Section 7: System testing a REST API
Lecture 90 Introduction to this section
Lecture 91 Access the code for this section here
Lecture 92 Setting project up and creating User model
Lecture 93 Change to the next lecture’s code
Lecture 94 Allowing users to log in
Lecture 95 Writing our User tests
Lecture 96 The setUpClass method in the BaseTest
Lecture 97 Testing user registration
Lecture 98 Finalising user System tests
Lecture 99 Writing Store System tests
Lecture 100 Writing our Item System tests and testing authentication
Lecture 101 Conclusion of this section
Section 8: System testing with Postman and Newman
Lecture 102 Introduction to this section
Lecture 103 Access the code and Postman files here
Lecture 104 Introduction to Postman
Lecture 105 Our first Posman tests
Lecture 106 Setting and clearing environment variables in Postman
Lecture 107 Running a test folder in Postman
Lecture 108 Advanced PyCharm run configurations
Lecture 109 Installing Node and Newman
Lecture 110 Multirun in PyCharm—Running app and tests together
Lecture 111 Conclusion of this section
Section 9: Continuous Integration with Travis CI
Lecture 112 Introduction to this section
Lecture 113 The code for this section
Lecture 114 Installing Git
Lecture 115 What is a Git repository?
Lecture 116 A local Git workflow
Lecture 117 GitHub and remote repositories
Lecture 118 Adding our project to GitHub
Lecture 119 What is Travis CI?
Lecture 120 Adding our repository to Travis
Lecture 121 The Travis config file and running tests
Lecture 122 Adding our test badge to the Readme
Lecture 123 Conclusion of this section
Section 10: Acceptance testing and browser automation with Selenium
Lecture 124 Introduction to this section
Lecture 125 What is acceptance testing?
Lecture 126 Introduction to our project
Lecture 127 Our first acceptance test step
Lecture 128 Getting the Chrome webdriver
Lecture 129 Verifying everything works
Lecture 130 Finishing our first test
Lecture 131 Re-using steps with the regular expression matcher
Lecture 132 Our first content test
Lecture 133 Page locators and models
Lecture 134 The blog page
Lecture 135 Using pages in navigation
Lecture 136 Don’t over-generalise tests!
Lecture 137 Waits and timeouts with Selenium
Lecture 138 Debugging acceptance tests in PyCharm
Lecture 139 Our final complex scenario
Lecture 140 Filling in forms with Selenium
Lecture 141 Access the final code of this section here
Lecture 142 Conclusion of this section
Section 11: Bonus Material
Lecture 143 Bonus lecture: other courses and next steps
Advanced students who want to learn about testing their Python applications to build more complete solutions,Professionals wanting to learn more about automated software testing in their workplace,Automated software testers and software developers
Course Information:
Udemy | English | 13h 31m | 4.03 GB
Created by: Jose Salvatierra
You Can See More Courses in the Developer >> Greetings from CourseDown.com