1 GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning,

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

System Development Life Cycle (SDLC)
Data Dependencies Describes the normal situation that the data that instructions use depend upon the data created by other instructions, or data is stored.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Systems Analysis, Prototyping and Iteration Systems Analysis.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Kendle Implementation of Clinical Data Acquisition Standards Harmonization Dr Elke Sennewald Kendle 9th German CDISC User Group Meeting Berlin, 28 September.
Objects First With Java A Practical Introduction Using BlueJ Designing object-oriented programs How to write code in a way that is easily understandable,
1 CODE TESTING Principles and Alternatives. 2 Testing - Basics goal - find errors –focus is the source code (executable system) –test team wants to achieve.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
Illinois Institute of Technology
1 GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Operations 1 What.
(c) 2007 Mauro Pezzè & Michal Young Ch 10, slide 1 Functional testing.
© 2004, The Trustees of Indiana University 1 OneStart Workflow Basics Brian McGough, Manager, Systems Integration, UITS Ryan Kirkendall, Lead Developer.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Chapter 1 Program Design
ECE122 L17: Method Development and Testing April 5, 2007 ECE 122 Engineering Problem Solving with Java Lecture 17 Method Development and Testing.
On Comparing Classifiers: Pitfalls to Avoid and Recommended Approach Published by Steven L. Salzberg Presented by Prakash Tilwani MACS 598 April 25 th.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
SystematicSystematic process that translates quality policy into measurable objectives and requirements, and lays down a sequence of steps for realizing.
Software Development, Programming, Testing & Implementation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Introduction to Systems Analysis and Design Trisha Cummings.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Overview of the Database Development Process
CC0002NI – Computer Programming Computer Programming Er. Saroj Sharan Regmi Week 7.
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Database testing Prepared by Saurabh sinha. Database testing mainly focus on: Data integrity test Data integrity test Stored procedures test Stored procedures.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Chapter 8: Systems analysis and design
Introduction Telerik Software Academy Software Quality Assurance.
Defining Digital Forensic Examination & Analysis Tools Brian Carrier.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
Course on Data Analysis and Interpretation P Presented by B. Unmar Sponsored by GGSU PART 2 Date: 5 July
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
SAS Efficiency Techniques and Methods By Kelley Weston Sr. Statistical Programmer Quintiles.
Testing Vs. Inspection Research Paper Diala T. Gammoh, Ph.D. Student Dr. Damla Turgut, Ph.D. University of Central Florida, Orlando Florida
Database System Development Lifecycle 1.  Main components of the Infn System  What is Database System Development Life Cycle (DSDLC)  Phases of the.
SE: CHAPTER 7 Writing The Program
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
 System Development Life Cycle System Development Life Cycle  SDLC Phases SDLC Phases Phase 1: Preliminary Investigation Phase 2: Feasibility Study.
Chapter 1 Program design Objectives To describe the steps in the program development process To introduce the current program design methodology To introduce.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
CS223: Software Engineering Lecture 4: Software Development Models.
1 GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning,
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Testing Integral part of the software development process.
Working Efficiently with Large SAS® Datasets Vishal Jain Senior Programmer.
OH NO!!! Quality Improvement. Objectives Define a Quality Improvement Program Identify how to get started Identify who should be involved Identify how.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Phil Tayco Slide version 1.0 Created Sep 18, 2017
Software Testing.
The Analyst Mindset in Statistical Programming
Phil Tayco Slide version 1.0 Created Oct 2, 2017
Program Design Introduction to Computer Programming By:
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
CS240: Advanced Programming Concepts
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Presentation transcript:

1 GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 1 A Case Study in Using Unit Testing as a Method of Primary Validation Ross Farrugia, Roche Products Ltd

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 2 I’d like to start with the age-old question many of you will have pondered previously…

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 3 Why did the unit test program cross the road???

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 4 What does the audience think?? A)To be used by a developer to informally test their own code B)To be used by a peer to formally validate a piece of code C) To enjoy the Berlin nightlife

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 5 A Definition of Testing Testing is the process of establishing confidence that a program does what it is supposed to do. William Hetzel, 1973 Testing is the process of executing a program with the intent of finding errors. Glen Myers, 1979

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 6 A Definition of Unit Testing Testing where a programmer proves that a module of code (the “unit”) meets its requirements using test data cases, and comparing expected results versus actual Ross Farrugia, 2010

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 7 Warning on format of slides! The 2 best things Phuse has to offer (in my opinion)… Knowledge Sharing – Slides Content Social Networking – Slides Format

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 8

9 What is a Test?  Identify the feature to be tested  Define controlled inputs  Exercise the feature with the controlled inputs  Compare the result with the expected behavior  Provide a test and incidence report (evidence)

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 10 How does this apply in Unit Testing? test Test Report create test data create expected results call module to be tested compare expected – actual actual expected Module (“Unit”) «Benchmark»

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 11 Implementation – Unit Test Design  Distinguish the following categories for test data cases Regular Cases Boundary Cases Special Cases  Identify individual features and scenarios based on the logic of the requirements  Define a set of test cases to cover each feature  Define the expected result for each test case  At this stage you may hit upon more subtle issues Use the particular test case to get clarification of the specs

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 12 Ross tweets: Example – Study Day Calculation Macro

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 13 Implementation – Unit Test Program Execution  Create a SAS program containing the following steps  A data step reading data lines containing the test cases One data set testcases with the independent variables One data set expected with the expected results  A data step Running over testcases Calling the macro for each test case Storing the result in a data set actual  Compare the expected and actual data sets Write the unit test report to an output file for proof of formal testing

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 14 Note: sometimes you may have multiple input datasets, or more than one separate expected outcome dataset Ross tweets: Example – Study Day Calculation Macro

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 15 Note: You may require repeats of this to test different macro flexibilities. Also you may need different test data cases for these, but for efficiency purposes this should be avoided. Ross tweets: Example – Study Day Calculation Macro

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 16 Proposed Usage on our Pilot Study  Commonly used solely as a method of developer testing  We proposed to use as a formal method of high risk level QC, as an alternative option to double programming  An oncology Phase II study was chosen as a pilot  Decision was taken for the pilot to still double program anything PQC’ed using unit testing

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 17 Proposed Usage (continued)  We were aware unit testing works best with a modular approach taken to the setup of your programs  Therefore our analysis dataset programs were split into a number of re- usable and flexible macro modules, usually one per derivation  Our initial thoughts were to unit test each of these macros and then just code review the entire analysis dataset program  For this study we took a number of these macros to unit test, and then additionally double programmed the analysis dataset

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 18 Actual Usage  Due to the time constraints of having to essentially perform two methods of validation in parallel, we opted to pilot this on just one key analysis dataset  The analysis dataset was broken up into 12 individual macros  These macros were given project-level flexibility for requirements we were aware of for future studies (and using learnings from past studies)  We did use unit testing for a few other project-level macros also but we’ll focus on the results from it’s major use which was on this key analysis dataset

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 19 Results of the Pilot Study  Unit testing did find some errors in code which double programming missed.  Why?? some of the possible data scenarios had yet to occur in our clinical data some of the macro flexibilities hadn’t been used on this study  Unit Testing gave confidence that our programs were worthy of validated status for all macro calls and all data scenarios not just those seen at that time

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 20  Programmers became more familiar with the requirements and data, and this lead to much clearer specifications  Unit testing initially takes longer as you have to become comfortable with this new skill, but as familiarity grows the time cost is no different to double programming  With a modular approach further time saving will be found with the re-use of the macros on future studies and not needing to update for later data  Unit testing only tests the cases you put in, so won’t cover data scenarios you haven’t anticipated! Results (continued)

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 21 Post-Study Findings  One project-level macro not unit tested was a partial date imputation macro  This passed QC and worked fine for our pilot study  During early reporting of our next study we found a new data issue that didn’t occur in our pilot study, and this has lead to an error spotted in the macro  We then had to update the macro and perform backward compatibility/regression testing for its usage in our pilot study  We now plan to unit test the macro to ensure it is correct

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 22 Conclusion - Considerations Unit testing can be a good alternative option to double programming, but there are some considerations:-  Modular programming approach is most suited  To unit test a whole analysis dataset you’d then need some form of integration testing  Unit testing relies on the quality of your test cases  A data quality checking tool (or data quality reports from DM) are helpful to be aware of any invalid data scenarios occurring

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 23 Conclusion - Considerations (continued)  Unit testing should be done on stable requirements  Where possible limit macro flexibilities to only what could ever be needed  Whether to use unit testing does depend on the macro module in question, you have to choose where appropriate

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 24 Conclusion - Benefits Here are some of the benefits we saw:-  Unit testing helped us identify issues in a program early that hadn’t been found by double programming yet, because the data scenarios had yet to occur in the data  Unit tests don’t need to be re-ran every time we have new data. Once your program is validated it stays validated  Macro modules full flexibility was tested early to reduce future updates to these programs when re-used on new studies

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 25 Conclusion – Benefits (continued)  Limited SAS knowledge needed to QC even the most complex of derivations. The best unit test programs are simple unit test programs  Unit testing requires the QC’er to really question and understand the requirements and input data, which can improve quality of specifications  Thinking of test data cases can start in parallel with first line programming, though recommendation to leave expected outcomes until specifications are definitely stable  Can get the statistician involved in reviewing our test data cases

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 26 I’d like to give thanks to…  Frederik Malfait and Ryan Copping (for review of my paper)  Cheryl Kubsch (for re-use of some training slides in this presentation)  Hinal Patel and Francis Kendall (for allowing and encouraging this pilot to go ahead)

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 27