QA Test Automation using Perl (and integration with other languages)

Below you'll find the description of both the training and consulting services offered to Perl developers and QA departments by Gabor Szabo.

  1. Four days long training on how to use Perl in test automation.
  2. Kick-starting the test automation system by setting up the framework and coaching the developers.

Training: QA Test Automation using Perl

Perl has been used for years in QA for various tasks such as preparing configuration files before the tests run and parsing log files after the test. In the past few years lots of extensions have been added to Perl. Now, in addition to the above tasks Perl can already be used in all parts of the automatic test environment.

Audience:

  • Perl developers who need to write tests for their applications
  • QA engineers with a background of Perl who need to write automated test to any application

Objectives:

  • Be able to write unit, integration and system tests in Perl.
  • Use the testing frameworks that come with Perl.
  • Overview how Perl can be used in automating tests for Quality Assurance.
  • Apply Perl in various fields of testing such as Web, Networking, Command line (CLI) and even desktop applications (GUI).

Course format

The regular length of the course is 32 academic hours including about 50% time for hands-on exercises. It is usually given in 4 days (9:00-17:00 or 10:00-18:00) but it can be spread to a longer period.

Prerequisites:

At least 6 month experience as a Perl programmer or taking an introductory Perl course prior to this class. (We can arrange to offer those classes as well, if needed.)

Content

  • First we'll learn about the basic tools of testing and the test frameworks available in Perl by looking at unit-tests of Perl modules.
  • Then, we'll expand our set of tools in order to test other kind of applications.
  • We'll look at testing of
    • Web applications
    • Command line applications (CLI)
    • Network Appliances
    • and even Desktop applications with a GUI.
  • The test will cover unit, integration, system and even acceptance testing with both white- and black-box testing in mind.
  • Topics covered in the training include an introduction to the unit testing framework of Perl using Test::Simple, Test::More and the Test::Builder ecosystem.

After the training attendees will be able to setup their own testing framework and start writing unit tests to their applications. They will also be able to develop their own specific test modules similar to those found in the Test:: name space on CPAN. Those who already have unit testing in their application will be able to extend it with the solid knowledge they get on how and why things work the way they work in TAP.

Detailed Syllabus:

  • Introduction to testing, why, when, who and how ?
  • Understanding the basic tasks of the QA engineer
  • Introduction to TAP - the Test Anything Protocol
  • Testing tools in Perl for testing Perl Modules (Test::Simple, Test::More)
  • Common reporting framework (Test::Harness, Smolder)
  • Extending the testing framework (Test::Builder)
  • Setting up continuous integration (smoke testing)
  • Command Line Interface applications
  • Testing network devices with CLI interface
  • Testing Web application
  • Web 2.0 application testing
  • Database testing
  • Testing file-systems
  • Microsoft Windows GUI applications
  • X-Windows testing
  • A few words about XP - Extreme Programming
  • Building random regression testing tool
  • Integrating with PHP, Python and Ruby unit tests
  • Integrating with JavaScript testing

Kick-starting test automation

Often the training alone will leave you with people who already know what should be done but because of the lack of experience it will take them a long time to setup and streamline the testing environment.
In addition four days of training is hard on the students.
It might be better for your organization to spread out the training to 8 days - 4 hours a day - in a period of two weeks and use the rest of the time to setup the testing environment and help the students to start writing their own tests.
While the details can be customized it would normally work like this:

  • Day 1: Gabor meeting with several of the students and their managers to analyse the exact needs of the company. Setting up the framework for writing tests.
  • Day 2-5: 4 hours training in the morning, pair-development in the afternoon one student+Gabor (one hour per student).
  • Weekend
  • Day 6-9: 4 hours training in the morning, pair-development in the afternoon.
  • Day 10: pair-development and design of further work plans for the developers.

During the non-training time Gabor will help setting up the testing environment both centrally and for the individual developers. He will also help designing the test framework and help writing tests.

About Gabor Szabo

Gabor - born in Hungary and living in Israel - has been programming since high-school. He has been using Perl since 1995 and teaching it both in Israel and overseas since 2000.

He is also providing consulting in Perl development with a focus on test and build automation to companies such as Cisco and Checkpoint.

Gabor is a CPAN author and has contributed tests to many other CPAN modules. He is the developer and maintainer of CPAN::Forum and that of the Perl Community AdServer
Gabor is the lead developer of Padre, the open source Perl IDE written in Perl.

Gabor is the organizer of the Perl mongers in Israel and he has been organizing the YAPC and OSDC conferences in Israel since 2003.
He has been giving talks on YAPC::EU and YAPC::NA conferences since 2002.

For his work in the Perl community, Gabor has received the White Camel award in 2008.

Course material

An old version of the slides can be found here:

Other Perl related pages.

Follow szabgab on Twitter
Tags
Perl (270)
Perl 5 (94)
Padre (79)
Perl 6 (42)
IDE (41)
testing (38)
CPAN (28)
business (27)
newsletter (24)
marketing (23)
training (20)
TPF (17)
open source (17)
Windows (17)
promotion (17)
Parrot (16)
YAPC (16)
Israel (15)
grants (15)
Python (14)