Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Andrew Amesbury: Using Python to test industria...

Andrew Amesbury: Using Python to test industrial control system frameworks at CERN

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Andrew Amesbury:
Using Python to test industrial control system frameworks at CERN
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
@ Kiwi PyCon 2014 - Saturday, 13 Sep 2014 - Track 1
http://kiwi.pycon.org/

**Audience level**

Novice

**Description**

This talk explores how Python has been used to develop a flexible test platform that is accessible to engineers and physicists without a formal software development background. The system enables users to automate the testing of components in the SCADA control system frameworks at the European Organization for Nuclear Research (CERN).

**Abstract**

The European Organization for Nuclear Research (CERN) has a distributed industrial control system that is in excess of 5,000,000 data points. The systems are all built upon common software frameworks developed in-house and the control system is developed by software developers, control engineers and physicists from across the world.

To ensure software quality, the software frameworks undergo rigorous testing and quality assurance procedures that include automated testing, this talk aims to explore how Python has been used to engineer a solution that provides automated regression testing for industrial control systems written in proprietary languages.

New Zealand Python User Group

September 13, 2014
Tweet

More Decks by New Zealand Python User Group

Other Decks in Programming

Transcript

  1. European Organization for Nuclear Research Using Python to test industrial

    control system frameworks at CERN Andrew Amesbury Software Engineer [email protected]
  2. European Organization for Nuclear Research Overview • Industrial control systems

    at CERN • The goal of test automation for SCADA frameworks • How does Python fit into this? • How to scale up a test automation project • The impact of automated testing • Is automation for you? • Questions
  3. European Organization for Nuclear Research SCADA Control Systems at CERN

    • Siemens WinCC-OA Control Systems • CERN develops common frameworks for physics • Experiments and accelerator all use these frameworks • In excess of 5 million data points • Distributed control system • Heating, Cooling, AC, Industrial process management, High voltage controls etc…
  4. European Organization for Nuclear Research Testing strategy • 20+ developers

    (changing) with even more contributions from experiments • 2 main frameworks, other tools as dependencies • Functional regression testing • Integration testing • Impact of bugs • Testing setup includes following the steps of an integration test and takes an hour manually • Cost to the organisation
  5. European Organization for Nuclear Research Automated approach • WinCC-OA uses

    an interpreted language (C-like) • No standard tools provided – Proprietary language • Other Siemens WinCC-OA (PVSS) users are (mostly) doing manual testing!!! • Why? • Smaller systems (100s of data points is small). • Long term production • Rarely (if ever) updated after production
  6. European Organization for Nuclear Research Using Python and Squish to

    scale up automated testing • Lots of target platforms! • Several Windows, Several Linux, then different WinCC-OA versions, Different framework versions, tool versions... • Test from a user’s point of view • Test more code (ensure coverage!) • Apply tests daily (or on demand/build)
  7. European Organization for Nuclear Research Testing tools • CERN test

    harness written in Python • Hudson CI • Squish from Froglogic – Qt object testing • Python library of common functions • Short Python scripts can be very powerful! • Lots of target platforms! • Several Windows, Several Linux, then different WinCC-OA versions, Different framework versions, tool versions...
  8. European Organization for Nuclear Research The impact • Finding bugs

    in other software blurring the lines: Important to ask “What are we testing?” • Normally Python solves our problems because of the test harness: A powerful platform for an integration automation tool. • Flexible, scalable testing across platforms! • The end result: • Better software • Stronger frameworks • Developers can use our library and harness to write their tests • LESS support requests!