Testing and
Validating SAS Programs OR Beyond Debugging: Program
Validation
Neil Howard / Ingenix Pharmaceutical Services
Powerpoint presentation from the meeting
Overheard at an interview for a SAS programming position: "But you don't have to test SAS programs!!!" As the interviewers quickly escort the confused candidate out the door, they recall how often it is assumed that a fourth generation language "does so much for you" that you don't have to test the code. The SAS system is easy to use, and the learning curve to productivity is relatively short. But SAS is just as easy to ABUSE. Programmers and analysts must not lose sight of the indisputable facts: data is seldom clean, logic is too often faulty, and fingers walk clumsily over keyboards. Condition codes and clean logs are not accurate indicators of successful programs.
Good debuggers make good programmers. And good analysts and problem-solvers make good programmers. And just because a SAS� program is free of errors, warnings, notes, and bugs does not guarantee that the program is doing what it is supposed to do. This paper addresses the process of debugging, testing and validating SAS programs and the tools available in the SAS language to facilitate the process. It covers techniques for ensuring that the logic and intent of the program is correct, that the requirements and design specifications are met, and that data errors are detected. Since as much as 80% of a programmer's time is invested in testing and validation, it's important to develop a personal approach to testing and a routine testing methodology in your group.
Neil Howard is Manager of Statistical Programming at i3 Data Services in Basking Ridge, NJ; she was with Pfizer previously. A SAS user for more than twenty years, Neil has been an invited speaker since 1983 on such topics as: efficiency techniques, DATA step processing and internals, advanced DATA step techniques, testing and validation, graphics, effective presentations, and interviewing/hiring SAS programmers. She was a contract instructor for SAS Institute for seven years teaching fundamentals, programming, macro, report writing, graphics and the annotate facility. She has been a member of the SUGI Executive Committee since 1993 and was proud to chair SUGI 20 in Orlando. She is currently the Academic Chair for SESUG '04 to be held in Nashville in October 2004.
ODS on SAS V9.1
Sandy McNeil, SAS (Eric Gebhart replaced Sandy for the
talk )
Eric has been with SAS since 1995. He is one of the original ODS developers and is responsible for HTML and the new MARKUP destination and Tagsets.
Sandy McNeill is the manager of the Output Delivery and Reporting department at SAS. The ODR department is responsible for ODS and the BASE reporting procedures -- Print, Tabulate, and Report. Sandy joined SAS in 1995 to support PROC REPORT, for which she is still the lead development support person.
Prior to joining SAS, Sandy worked at Square D where she wrote firmware for Programmable Logic Controllers, and then was the programming lead for the graphical user interface used to program the PLCs. Sandy's previous experience before Square D was six years with GTE Government Systems where she worked on the firmware for a communication device used by the Army during Operation Desert Storm. Sandy graduated Magna Cum Laude in 1985 with a B.S. in Computer Science from North Carolina State University.
Spring meeting - Tuesday, June 8, 2004, 9am
Mrs. Clean Tackles Dirty Data
Janet Stuelpner / Independent
Consultant
What is clean data and how do you clean it? This is an age-old question that has some pretty easy answers. There are some techniques that can be used to find invalid data values in both numeric and character data, missing values and duplicate observations. Simple procedures and DATA steps can be used to ferret out inappropriate observations. This presentation will illustrate some of the techniques used after data entry is complete and the data has to be reviewed and cleansed.
Janet Stuelpner provides programming support in the areas of clinical trials, outcomes research and the financial industry. She also provides both individual and group technical training when needed at the client sites. Janet has several degrees in the sciences. She has been a SAS user for 20 years on many different platforms. Originally a systems programmer, she has now turned her focus to applications programming and teaching. She has been a presenter at users groups at all levels.
The Input Statement: Where It's @
Ron Cody / Professor, Robert Wood Johnson Medical School
Dr. Ron Cody is a Professor in the department of Environmental and Community Medicine at the Robert Wood Johnson Medical School, Piscataway, New Jersey. He has been a SAS user since the late 70's and is the author of "Applied Statistics and the SAS� Programming Language" (fourth edition), published by Prentice Hall. He has also authored or co-authored the following books for the SAS Institute as part of their Books by Users series: SAS Functions by Example (just published), The SAS Workbook, SAS Programming by Example, Cody's Data Cleaning Techniques, and Longitudinal Data and SAS: A Programmer's Guide. Ron has presented invited papers for numerous local, regional, and national SAS conferences.
Early Autumn meeting - Friday, September 24, 2004, 9am
ODS: Step by StepWendi Wright, Educational Testing Service
The Output Delivery System (ODS) was developed by SAS� to create professional looking output reports, among other reasons. This paper introduces the beginning ODS user to the basic concepts of creating RTF and HTML files using SAS ODS on the MS Window platform. This paper is based on the same set of steps that I used when I was first learning ODS.
Wendi Wright has been working at Education Testing Service since 1986. She has been using SAS for almost that long and currently is responsible for teaching the language to new hires in her department as well as using the language for programming assignments.
PROC SQL - Is It a Required
Tool of Good SAS�Programming?
Dr. Ian Whitlock
No one SAS tool can be the answer
to all problems. However, it should be hard to consider a SAS
programmer well versed in SAS, who does not use DATA steps. SQL
should be classified with the DATA step rather than procedures
because it is really a programming language in itself.
In the past many good SAS programmers have resisted learning
PROC SQL on the basis that it is a database tool and that they
can get along without it. It is time (or past time) to
reconsider the question and change that belief.
SQL has dramatically changed the nature of what good SAS macro
code looks like. It can simplify and standardize a number of
common SAS programming patterns involving combinations of the
DATA step, PROC SUMMARY, PROC SORT, and PROC PRINT.
This tutorial will focus on problem examples with code where
PROC SQL has a distinct advantage in terms of code simplicity
over use of the more traditional SAS tools mentioned above.
Dr. Ian Whitlock has been programming largely in SAS since 1981 using an interactive environment to develop programs for execution in a batch environment. He is active on SAS-L, and has presented many different papers at national, regional, and local SAS User Group meetings.
Late Autumn meeting - Friday, 10Dec2004, 9am
SAS 9 and Business
Intelligence
Terry Druckman, SAS, Bedminster, NJ
This presentation will highlight some of the major V9
enhancements and focus on the Business Intelligence Tools
Product Demonstration will consist of the following:
Terry is a presales Senior Systems Engineer in the Health and
Life Sciences Division of SAS since the summer of 1997. He is
based in Bedminster, New Jersey and supports the sales force
across pharma, healthcare providers and healthcare insurers.
He is currently focused on the Business Intelligence Tools
that SAS offers much of which are new for SAS V9.
Prior to SAS, Terry worked for a small software development
company that specialized in a 3rd and 4th generation Business
Basic Language and various Accounting applications. He holds
the BS degree from Villanova University and also has
experience in the accounting field.
%SYSFUNC; a powerful SAS
tool
Foster Kerrison
%SYSFUNC is a very powerful and flexible component of the SAS
� system. This presentation is designed to teach you how to
understand the basic elements of %SYSFUNC, and how to apply it
to your daily tasks. You don't need to be a macro guru to use
it. %SYSFUNC allows you to undertake a wide range of tasks
related to your data by using consistent syntax. Understanding
how to use %SYSFUNC is the key to success, and this
presentation will teach you how.
Paper
Foster Kerrison is a self taught SAS programmer. He is the
founder, and first President, of the New Hampshire & Vermont
SAS users group. He is a strong believer in self help amongst
SAS programmers, and is always interested in learning and
teaching new ways to use SAS. A graduate of Harvard
University, he is currently a masters student in Healthcare
Informatics at the Royal College of Surgeons/University of
Bath in the UK. He is a self employed contractor, who has
worked in the Healthcare, Direct Marketing, and financial
services industry, so he has a broad perspective on SAS
applications.