Overview

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.

Outline

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
  • Comparing Python to Ruby, JavaScript and PowerShell

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

Requirements

Delegate’s experience will factor into the content and duration of the course.