Automated Testing Presentation to EPICS Collaboration Meeting DESY Paul Gibbons PhD Diamond Light Source Ltd.

Slides:



Advertisements
Similar presentations
Debugging ACL Scripts.
Advertisements

Test process essentials Riitta Viitamäki,
Test-Driven Development and Refactoring CPSC 315 – Programming Studio.
Unit Tests DEFINITION AND OVERVIEW by Paul M. code of the damned. com.
A Brief Introduction to Test- Driven Development Shawn M. Jones.
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Delta Tau Coordinate Systems and PLCs at Diamond Matthew Pearson Controls Group, Diamond Light Source Overview: Delta Tau Geobrick motor controller Delta.
Programming Types of Testing.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
Testing and Debugging CS221 – 2/13/09. Airline Program.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
Bar|Scan ® Asset Inventory System The leader in asset and inventory management.
Automated Testing Nathan Weiss April 23, Overview History of Testing Advantages to Automated Testing Types of Automated Testing Automated Testing.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Introduction to Software Testing
Your Interactive Guide to the Digital World Discovering Computers 2012.
Activity 1 - WBs 5 mins Go online and spend a moment trying to find out the difference between: HIGH LEVEL programming languages and LOW LEVEL programming.
Lecture 6 Software Testing and jUnit CS140 Dick Steflik.
CSC444F'06Lecture 81 Testing. CSC444F'06Lecture 82 Quality Assurance for Software Humans are fallible. –Infeasible to completely fix the humans –Need.
Introduction to Unit Testing Jun-Ru Chang 2012/05/03.
M Gallas CERN EP-SFT LCG-SPI: SW-Testing1 LCG-SPI: SW-Testing LCG Applications Area GridPP 7 th Collaboration Meeting LCG/SPI LCG.
Implementation & Integration Phase Implementation, then integration: Implementation, then integration:  Each module is implemented by member of programmer.
© 2012 WIPRO LTD | 1 Version 1.0a, 23 rd April 2012 TTCN-3 Users Conference Practical integration of TTCN-3 with Robot test automation framework.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
14-1 © Prentice Hall, 2004 Chapter 14: OOSAD Implementation and Operation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Automatic Regression Test Facility for Support Modules Jon Thompson, Diamond Light Source Vancouver, 1 May 2009.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
TVAC Electronic Call Sheet System Team HeatWave Summer 2007.
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
T-unit: Tcl Unit Test Package Automated Unit Test Package For Tcl Procedures Final Presentation Joseph Boyle Loyola Marymount University.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Software testing Main issues: There are a great many testing techniques Often, only the final code is tested.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Finalizing Design Specifications
Well-behaved objects Main concepts to be covered Testing Debugging Test automation Writing for maintainability Objects First with Java - A Practical.
TEST-1 6. Testing & Refactoring. TEST-2 How we create classes? We think about what a class must do We focus on its implementation We write fields We write.
Micah Dowty Test-Driven Development of a new Critical Decoder.
Integrating EPICS and LabVIEW on Windows using DCOM Freddie Akeroyd ISIS Computing Group.
1 Legacy Code From Feathers, Ch 2 Steve Chenoweth, RHIT Right – Your basic Legacy, from Subaru, starting at $ 20,295, 24 city, 32 highway.
M Gallas CERN EP-SFT LCG-SPI: SW-Testing1 LCG-SPI: SW-Testing QMTest test framework LCG AppArea meeting (16/07/03) LCG/SPI LCG Software.
JUnit Don Braffitt Updated: 10-Jun-2011.
Software testing techniques Software testing techniques Object-oriented software testing Presentation on the seminar Kaunas University of Technology.
18. June 2003EPICS WS Channel Management Andreas Lüdeke Swiss Light Source / PSI 20 May 2003 EPICS Collaboration Meeting.
Automated Home Control Nick Atkinson, Matt Majeika, Ungku Afiq Ungku FaridSponsored by Terry Slattery Overview With increasing energy concerns, different.
Jan 28, 2005Elizabeth_Gallas D0_Trigger_Database 1 D0 Trigger Database Status Elizabeth Gallas Fermilab CD/D0CA Margherita Vittone, Vijay Murthi, and Steve.
12-1 © Prentice Hall, 2007 Topic 12: Implementation and Operation OOAD Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Objects First With Java A Practical Introduction Using BlueJ Well-behaved objects 2.1.
Jan Hatje, DESY SNL Editor and Debugger EPICS collaboration meeting SNL Editor and Debugger EPICS collaboration meeting 2008 Shanghai Institute.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Well-behaved objects Main concepts to be covered Testing Debugging Test automation Writing for maintainability Objects First with Java - A Practical.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
16th Oct 08 Tom Cobb - Python at DLS 1 Uses of Python at Diamond Light Source.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Diamond Light Source Data Acquisition System Paul Gibbons.
Software tools for digital LLRF system integration at CERN 04/11/2015 LLRF15, Software tools2 Andy Butterworth Tom Levens, Andrey Pashnin, Anthony Rey.
TESTING TOOLS MANUAL APPROACH BY J.ADI SESHU.
Chapter 18 Maintaining Information Systems
Chapter 8 – Software Testing
HAPS Controls Glen White ATF2 Software Review Workshop, LAL, June 2008
COS 260 DAY 17 Tony Gauvin.
TRANSLATORS AND IDEs Key Revision Points.
Introduction to Software Testing
COS 260 DAY 16 Tony Gauvin.
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
VCE IT Theory Slideshows
EPICS at Diamond Mark Heron Head of Controls Group
Presentation transcript:

Automated Testing Presentation to EPICS Collaboration Meeting DESY Paul Gibbons PhD Diamond Light Source Ltd.

Automated Testing – Why? Code Guru –Edit –Compile –Link –Publish No testing needed. (Also turn off all compiler warnings as I never write incorrect code.)

Automated Testing – Why? We live in the real world

Automated Testing – Why? Others will need to change it. Can you trust them not to mess up?

Automated Testing – Why? Build 0.1 Test 0.1 Develop Build 0.2 Test 0.2 Release 0.2 New Requirement Initial Requirements Develop Build 0.3 Test 0.3 Release 0.3 Time

Automated Testing – Why? Manual testing is: –Expensive –Time consuming –Error prone.

Automated Testing – Why? Automated Testing: –Repeatable. –Running the test requires little human intervention. –Can encapsulate the requirements better than a requirements document – is always up to date. –Tests not only the code you know you have changed but also the code you think you have not. –Expensive up front investment.

Automated Testing – Why? Late night call out to modify Fred’s module.  Make modification.  Automated tests show no problems.  Manually test new feature.  Go home confident. Next day review change with Fred and add test to automated tests.

Automated Testing – Why? New requirement calls for re-factoring –Before adding any new feature you gradually refactor the code. –At each point run automated test. –At end of refactoring you have confidence that the software still behaves correctly and you are ready to add new features.

Automated Testing – Why? Testing on its own is not a panacea. –Different defect-detection techniques Reviews, formal/informal design/code inspections, personal desk checking, prototyping, unit test, integration test, system test, beta tests –Defect Detection Rates: None above 75% Testing gives 30-40% –A combination is required to get > 95%.

Automated Testing – Why? Many other advantages of thinking about testing up front. See books on Test Driven Development.

Automated Testing – How Module to Be tested Test Script Interface being tested. Report. OK or Failure? Environment in which module Executes.

Automated Testing – EPICS Types of IOC software at Diamond. Serial Device InterfaceVME Register Interface Device Independent Records – e.g. Motor Groups of ‘standard’ records that together provide functionality – aperture slits, diffractometer table. Gensub records with logic built into C function Frameworks: asyn, stream Sequences

Automated Testing – EPICS Current testing is 99% manual. Normally requires a complete system with hardware.

Automated Testing - EPICS Option 1.Integration Test. Create a complete test system that includes hardware. –The expense precludes this for all software. –Testing is only possible once hardware is available Option 2. Isolation –Requires simulation of environment.

Automated Testing - EPICS You want to test the logic of code. Use the language of the interface. A test environment should : –not impose any constraints on the interface –be simple and quick to construct.

Automated Testing – IOC Logical Units that interface via records: Accompanying Test IOC Channel access script to perform the tests and generate a report. What about the environment it requires? Simulation mode to be used in Test IOCs of other modules.

Automated Testing – IOC C functions that can be built for Linux e.g. genSub systems: Use CPPUnit

Automated Testing – Device Simulation Module to Be tested Device Simulation Test Script Interface being tested. Back door Report. OK or Failure?

Automated Testing – Device Simulation Serial( RS232/IP) - VME Register – simulation device drivers. Hardware loopback asyn IP client Java – COSYLAB asynPort that runs Python Record Simulation Mode

Automated Testing – Plan Many options. Need to agreed on standards for: –Test language – Should match interface being tested. For Channel Access use Python or Jython. –How to build the test. –How to run the test. –Reporting success and failure. xUnit XML format Provide parsers to convert from other formats Current work: PyUnit + serial device simulation + use of record simulation mode

Automated Testing - References Code Complete, Second Edition by Steve McConnell. ISBN-10: Various work by Kent Beck a founder of the Agile Manifesto.