This course provides a complete introduction to the Python scripting language tailored towards developing automated QA skills. Delegates will learn to program using all the features of Python 2 and 3 along with unit test frameworks and GUI automation with Selenium. Object-oriented and functional aspects of Python are covered in depth including best practices.
The course duration can be tailored based upon the experience of the delegates with more or less foundational Python content.
Students should have Python 3 installed, and a development environment (PyCharm recommended).
Students will take this virtual training course using online tools, including Zoom video conferencing and Jetbrains Space. No paid accounts necessary, all materials will be provided.
Delegates will require a webcam and microphone to complete course. Laptop built-in mics and webcams are fine.
What to expect on the course
While we anticipate delegates from around the world, the course will be delivered during UK office hours (expected hours 9.30am to 4.30pm) in English.
The course will be divided into a number of micro-topics based off the outline below. Each topic will follow approximately the same pattern:
- Inform - We'll tell you what you need to know about a specific technique
- Show - You'll see a worked example completed by the instructor
- Do - You'll get a chance to practice the technique yourself by completing an
- Review - We'll show you a solution to the exercise
Introduction to Python
- The evolution of Python from Shell Scripting and Perl
- Installing Python and running / debugging simple scripts
- Differences between Python 3 and earlier versions
- Using the JVM and CLR based Python interpreters
The Basics of Python Scripting
- Declaring and modifying variables
- Reading and writing from the console
- Working with the built in data types
- Making choices and performing iteration
- Declaring functions and passing parameters
- Identity, equality and references
- Reading and writing text, data and objects from files
Working With Structured Data
- Storing individual items in sets, lists and tuples
- Storing pairs of items in dictionaries (aka hashes)
- Understanding how class declarations work in Python
- Creating classes and adding attributes and operations
- Using your own types with the built-in collections
Object Orientation in Depth
- Creating class hierarchies in Python
- Overriding methods from base classes
- Adding properties to your classes
- The intrinsic class and object attributes
- Creating your own iterator objects and generators
- Using decorators to address Aspects in your design
- Guidelines for overloading operators sensibly
- Support for meta-programming in Python
Using Python for Testing Applications
- Test-Driven verses Behavior Driven Development
- Understanding the features of a Unit Test Framework
- Picking a testing framework in Python
- Comparing doctest, unittest, py.test and Nose
- Using Selenium to test web applications
- CSS Selector and XPath Syntax
- Using Behave for BDD
- Using Robot with Selenium for BDD
Functional Programming and Advanced Python
- Using functions as inputs to other functions
- Creating and working with lambda functions
- Using lamdbas with filter, map and reduce
- Simplifying your code using list comprehensions
- Raising and catching exceptions correctly
- Organizing your code into modules and packages
Regular Expressions in Python
- What is a regular expression?
- Functions in Python that accept regular expressions
- Creating character classes and specifying multiplicities
- Meta-characters for specifying positions in the input
- Understanding greedy vs. non-greedy matching
- Using parenthesis for grouping and submatches
Delegate's experience will factor into the content and duration of the course.