Using Python to build a General Purpose Test Framework

Talks | Submit a talk
Authors Rahul Verma
Level Intermediate
Topic Testing
Tags Software Testing, Django, WMI, SQLite, Apache Web Server
Summary

The talk is about using Python as the primary language for building a test automation platform that can be used by developers as well as testers to support unit testing, component testing and system testing activities for my team. The core part of the framework is fully in Python and employs Django for web interface, SQLite for DB, Apache as the web server as well as the controller mechanism, WMI for windows performance metrics collection etc.

I designed and implemented this framework from scratch and there are quite few things which I can share from my experience in doing so. I am a tester by profession. In my opinion, I couldn't have developed this without Python, which let me focus on the problem and not on programming complexities. This is especially true because I wanted to develop an object-oriented framework for the purpose.

The framework that I am going to discuss has employed very simple ways to address complex requirements, some of which were experimental at the time but proved to be very successful. It's not a talk on ROI of test automation or management related stuff; it's going to be a core technical talk on practical implementation of the framework and its internals.

Outline

Following is the high level break-up of the session:

  • Agenda / Introduction
  • High Level Design Snapshot
  • Discussion on the Key Test Automation Concepts Employed
  • How the framework is used for different types of tests
  • Walk-through of Key Modules
  • Demo
Notes

Many of the concepts that would be discussed are of generic nature and should make sense to anyone with basic knowledge of Python. But to understand some of the technical areas that I touch and to do some practical stuff based on the concepts that I discuss, the attendees should know the following:

  • OOP in Python
  • Basics of web server and HTTP
  • Basics of SQL
  • Basics of test automation
Profile of the authors

Rahul Verma is a Senior QA Technical Lead with the Anti-Malware Core team of McAfee Labs, India. He runs the Testing Perspective and Python+Testing websites. He has designed and developed the test automation framework in Python/C++ for the testing needs of developers and testers in his project. He has undertaken several weekly workshops at McAfee India on using Python for software test automation.

His interests apart from writing testing tools in Python include performance testing, security testing, and design of test automation frameworks. Rahul has presented at several conferences, organizations and academic institutions including CONQUEST, STeP-IN, ISQT, TEST2008, Yahoo! India, McAfee, Applabs, IIT Madras, STIG and BWST. His articles have been published in SecurityActs magazine and Q3 edition onwards, he is going to be a regular columnist for Testing Experience magazine with the column titled - "Notes on Test Automation".

Files
file size uploaded comment
PyConIndia2010_RahulVerma_TestAutomationFramework.ppt 890.0 KB september 10, 2010 Presentation in PPT format
PyConIndia2010_RahulVerma_TestAutomationFramework.pptx 247.5 KB september 10, 2010 My presentation for PyCon 2010 in MS Powerpoint format

You can upload or delete a file if you are author of this talk.