Ada for Utility Functions in the U.S. Internal Revenue Service (IRS) Product
Assurance Organization
Justice Moor
Product Assurance Division
U.S. Internal Revenue Service
The Product Assurance Division of the IRS is responsible for testing
new versions of software prior to production implementation. The
IRS gives wide latitude to its employees to use PC based tools for quick
single use programs. After reading about some of the capabilities of Ada,
a Product Assurance employee located at the Detroit Computing Center, requested
the GNAT Ada 95 compiler to be loaded on his PC. The local system administrator
granted his request.
Development
During the course of testing it often becomes beneficial to develop programs
to aid in the testing effort. Ada was used experimentally to perform
the following tasks:
-
Input Screen Capture: Those responsible for testing the tax
system at various sites throughout the nation enter transactions using
a multitude of on-line commands. An Ada program was developed to
allow a tester to display all instances where a particular command was
executed. This not only enabled the tester to reduplicate the paper
work proving that the command was tested, but also review how other testers
were using the command. When a tax processing command is entered,
behind the scenes, various audit records are generated that are used to
ensure that IRS employees are not inappropriately browsing or manipulating
accounts. Ada programs were generated to display and validate these
audit records.
-
Test Version Control: Throughout the testing process, new versions of software
are submitted to Product Assurance for testing. An Ada program was
developed by the analyst to read the disk directory and create SQL commands
that would maintain a database that kept track of the date the software
was compiled and catalogued, along with the version identification code.
Keeping track of software versions is an important task for Product
Assurance because a new version signals the need to retest, and when reviewing
test results it is useful to know if a newly discovered error was produced
by an obsolete version of the software.
-
Record Selection: During the testing process, erroneous records are sometimes
written to files. An Ada program was developed to drop erroneous records
from files.
Selecting Ada
Twice a year new versions of tax processing programs are tested by Product
Assurance and approved for use. Non data processing personel from
Service Centers are assigned to work with the Product Assurance testers.
Both enter transactions, record the transactions entered, and document
the progress of the transaction as it progresses through the mainframe
system.
Employees are allowed, within reason, to use a wide variety of tools
to accomplish tasks. I decided to use Ada because of the language
allowed me to quickly generate reliable code. I believed it would be too
expensive for me to produce the software in C. Although the job could
have been done in Perl or Tcl, that would have required those interpreters
to be installed on each computer which would complicate using the software.
Points to Consider
There always exists a need in any business environment to develop software
that will perform useful, but not task critical functions. Because
the production of this software is subordinate to the critical tasks, developmental
costs must be kept to a minimum. Ada is a high-level language that
is well equipped to produce reliable software both quickly and inexpensively.
Although the choice of languages for critical tasks is often influenced
by such factors as the availability of programmers experienced in the language,
allowing programmers to choose languages like Ada for non critical tasks
affords them an opportunity to gain experience in other proven and sophisticated
languages. The GNAT compiler is offered freely to the public for unrestricted
private and commercial use. Since federal money has sponsored and
nurtured the Ada language, it seems logical for all government installations
to reap the benefits by using the language.
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * *
THIS REPORT IS ONLY THE OPINION OF ITS AUTHOR AND NOT THE I.R.S.
by Justice Moor, Product Assurance division of IRS
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * *
last revision February 20, 2000