SDD/DFS L.K.Lundin VLT 2 nd Generation Instrumentation Pipelines, 19 Apr 2007 - 1 Pipeline Test methods Lars Kr. Lundin - CPL developer - NACO and VISIR.

Slides:



Advertisements
Similar presentations
Usage of the memoQ web service API by LSP – a case study
Advertisements

Abstraction and Modular Reasoning for the Verification of Software Corina Pasareanu NASA Ames Research Center.
Testing and Quality Assurance
Prashant Lambat Sr. Manager SQA Engineering Symantec Corporation, Pune Date: 29 th January 2011.
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
T-FLEX DOCs PLM, Document and Workflow Management.
Guide To UNIX Using Linux Third Edition
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Regression testing Tor Stållhane. What is regression testing – 1 Regression testing is testing done to check that a system update does not re- introduce.
Testing Test Plans and Regression Testing. Programs need testing! Writing a program involves more than knowing the syntax and semantics of a language.
Business Rules Execution via Managed Stored Procedures A Data-centric Approach Steve Cavanagh, Software Architect, Ramsey County Balaji Thiagarajan, Independent.
Unit Testing & Defensive Programming. F-22 Raptor Fighter.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Introduction to Unit Testing Jun-Ru Chang 2012/05/03.
A Visual Comparison Approach to Automated Regression Testing (PDF to PDF Compare)
Pragmatic Projects Prepared by Doug Glidden. Pragmatic Projects Pragmatic Teams Ubiquitous Automation Ruthless Testing It’s All Writing Great Expectations.
Module CC3002 Post Implementation Issues Lecture for Week 6 AY 2013 Spring.
© 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.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
The Daikon system for dynamic detection of likely invariants MIT Computer Science and Artificial Intelligence Lab. 16 January 2007 Presented by Chervet.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Testing and Debugging Version 1.0. All kinds of things can go wrong when you are developing a program. The compiler discovers syntax errors in your code.
Problem of the Day  Why are manhole covers round?
SDD/DFS R. Hook. VLT 2 nd Generation Instrumentation Pipelines, 18 Apr Richard Hook Sampo & ESO Reflex background, status and plans.
Implement Unit Test Framework for Application running on a Pocket PC 2003 device Durga Kulkarni Cyberonics Inc August 28, 2009.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
SDD/DFS Y. Jung VLT 2 nd Generation Instrumentation Pipelines, 19 Apr General Introduction Yves Jung.
Well-behaved objects Main concepts to be covered Testing Debugging Test automation Writing for maintainability Objects First with Java - A Practical.
SDD/DFS H. Lorch & M. Kiekebusch VLT 2 nd Generation Instrumentation Pipelines, 18 Apr Henning Lorch & Mario Kiekebusch et. al. The CLIP.
SDD/DFS Jonas M. Larsen VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Jonas M. Larsen Memory debugging Recipe profiling.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
SDD/DFS A. Modigliani VLT 2 nd Generation Instrumentation Pipelines, 19 Apr ACCEPTANCE TESTS Andrea Modigliani.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
MANUAL TESTING KS SESSION PRESENTED BY 26/11/015 VISHAL KUMAR.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
MNP1163/MANP1163 (Software Construction).  Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Test and Verification Solutions128 October 2009 Test and Verification Solutions Improved time to market through automated software testing Mike Bartley,
Software Quality Assurance and Testing Fazal Rehman Shamil.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Unit Testing. F-22 Raptor Fighter Manufactured by Lockheed Martin & Boeing How many parts does the F-22 have?
( = “unknown yet”) Our novel symbolic execution framework: - extends model checking to programs that have complex inputs with unbounded (very large) data.
1 Testing in Haskell: using HUnit Notes, thanks to Mark P Jones Portland State University.
Static and Integration Testing. Static Testing vs Dynamic Testing  To find defects  This testing includes verification process  without executing.
CS 5150 Software Engineering Lecture 22 Reliability 3.
1 Punishment Through Continuous Delivery If it hurts, do it more often…
 Software reliability is the probability that software will work properly in a specified environment and for a given amount of time. Using the following.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
CS 5150 Software Engineering Lecture 21 Reliability 2.
TESTING BASED ON ERROR GUESSING Rasa Zavistanavičiūtė, IFME-0/2.
1 © Agitar Software, 2007 Automated Unit Testing with AgitarOne Presented by Eamon McCormick Senior Solutions Consultant, Agitar Software Inc. Presented.
Software testing techniques TESTING BASED ON ERROR GUESSING
Unit Testing.
YAHMD - Yet Another Heap Memory Debugger
Chapter 8 – Software Testing
Verification and Testing
CS-3013 Operating Systems C-term 2008
Testing and Test-Driven Development CSC 4700 Software Engineering
Linking & Loading CS-502 Operating Systems
Regression testing Tor Stållhane.
Chapter 7 Software Testing.
Integration Testing.
Software Testing Software Testing is a process of evaluating a system by manual or automatic means and verify that it satisfies specified requirements.
Presentation transcript:

SDD/DFS L.K.Lundin VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Pipeline Test methods Lars Kr. Lundin - CPL developer - NACO and VISIR developer - SPHERE Contact Person

SDD/DFS L.K.Lundin VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Presentation Outline Static code analysis Unit test Integration test Regression test Testing via nightly pipeline builds

SDD/DFS L.K.Lundin VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Static Code Analysis Static Code Analysis: The analysis of the source code without program execution. Find programming errors and non-conforming code. Tools:  gcc: Various warning-options (-Wall, -Wextra, …)  splint  Other C-compilers (e.g. Solaris)

SDD/DFS L.K.Lundin VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Unit test: Validate the individual units (i.e. functions) of the source code. Each unit test should be implemented before the functionality it is validating: Its initial failure will validate its testing ability. Benefits:  Exemplifies the intended usage of the tested function  Reduces complexity of integration testing  Errors in later changes will be exposed (regression bugs)  Unit testing can be automated Unit Test

SDD/DFS L.K.Lundin VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Unit test - build system iiinstrument/tests/Makefile.am : check_PROGRAMS = iiinstrument_my1st_module-test \ iiinstrument_my2nd_module-test iiinstrument_my1st_module_test_SOURCES = \ iiinstrument_my1st_module-test.c iiinstrument_my2nd_module_test_SOURCES = \ iiinstrument_my2nd_module-test.c TESTS = iiinstrument_my1st_module-test \ iiinstrument_my2nd_module-test

SDD/DFS L.K.Lundin VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Unit test – code example iiinstrument/tests/iinstrument_my1st_module-test.c: int main (void) { /* Test error handling and normal call */ assert( iiinstrument_my1st_function(NULL) == CPL_ERROR_NULL_INPUT); assert( iiinstrument_my1st_function(“OK”) == CPL_ERROR_NONE); return 0; }

SDD/DFS L.K.Lundin VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Integration Test Integration test: Test the combination of individual software components as a group, i.e. a complete pipeline recipe with a front-end, i.e. esorex and gasgano. Involves (manual) validation of the science products. Science validation is time consuming, thus done only after all automated tests are successful. Creates reference set of validated pipeline output data for subsequent regression testing.

SDD/DFS L.K.Lundin VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Regression Test Regression test: Uncover regression bugs, i.e. when functionality that used to work as required stops doing so. Regression bugs are typically introduced as an unintended consequence of a software change, possibly in a support library. Regression testing becomes essential once the development proceeds beyond the first working version.

SDD/DFS L.K.Lundin VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Regression Test Continued Partial automation of regression tests using the esorex regression test tool, esoreg.pl:  Execution of multiple tests (during lunch, night/week-end).  Detection of crashes, failures, missing products, memory-errors (valgrind).  Find differences in product-headers.  - report only largest change in a numerical FITS card.  Find largest change in every data unit.  Filter out insignificant changes (DATE related keys).

SDD/DFS L.K.Lundin VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Nightly Pipeline Builds Nightly Pipeline Builds:  Tests run every night using latest CPL release  Unit tests  Simple integration test with esorex  Various static checks (splint, staticcheck)  Memory errors in Unit and Integration tests (valgrind)  Multi-platform tests (Linux, Solaris, MacOS, HP-UX)  Multi-compiler tests (new and older gcc, Solaris/HP-UX cc) 