A Perl-based Software System for Testing Database Software: Application to Testing Quality of Care Software.

James Deich, Ph.D., Katharine Iskrant, MPH, and Alison South

Acumetrics, LLC

Friday, 1:30 in Rangos II.

Hundreds of managed care organizations (MCOs) generate yearly reports on standardized quality of care measures.  These measures are specified by and audited under the supervision of the National Committee for Quality Assurance (NCQA).   Auditing the measures has included reading the code used to process data.  Acumetrics developed a software-testing tool that is being adopted by NCQA as a more rigorous way to audit software used to report such measures. We used Perl as the underlying support for a language appropriate for formalizing the NCQA measures and to generate test files and scoring protocols.  This language is based on a control-flow approach (Beizer, 1995).

The statement:

path[member.enroll < &last(member.enroll + 45)] : do &makerec(enroll) --> node 20;

will instantiate the current enrollment to a date that meets the criterion of being less than 45 days after the previous enrollment, and make a simulated database record. The language (SAL) aided in two ways:  First, most of our coding for the NCQA measures themselves has been done by programmers with much NCQA quality measure auditing experience, but limited programming experience.  Second, the rigorous examination of the NCQA standards has
lead NCQA to further enhance  the specifications for the majority of the measures.

Perl's features made it a fine development language for SAL.  Regular expressions speed the development of a parser for SAL.  Support for references and complex structures was essential.  Perl does searches within complex networks to generate a varied set of individual test cases, and varies these cases further by choosing different values for fields along the same path.  Perl's 'eval' function was also essential.   Here we review the SAL language as applied in this testing situation, and report on the structure of the Perl parsing and test case generating system.
 

Next | Previous | Author list | Schedule | YAPC 19100