Getting Started Documentation Glish Learn More Programming Contact Us
Version 1.9 Build 1556
News FAQ
Search Home


next up previous contents home.gif
Next: Management and Oversight Up: NOTE 209 - AIPS++ OPERATIONS Previous: Astronomer and Programmer support

Subsections


Quality Assurance

Traditionally quality assurance for software packages has been either diffused over an entire organization or, more commonly, done by the users. In keeping with the large scope of the AIPS++ Project, we have decided to designate a Quality Assurance Group that has special responsibility for ensuring the quality of official AIPS++ products. The main task for the QAG is assuring the high quality of AIPS++ products, principally via testing, including execution of software, reviewing code and documentation.

Testing

Unit testing
Currently the code review process requires that along with submitted code, unit-test software is also submitted. The complete suite of unit tests is run once a week as a check of the basic integrity of the system. We have found this to be extremely useful, and see no reason not to continue it.
Application testing
Application testing is currently weak. Some test scripts are present in the system but these are few in number. We think that two orthogonal approaches are needed. First we must perform the equivalent of periodic unit testing checking known inputs against expected outputs. Second, we should assign a group to perform blind-testing of applications, to trap unexpected behavior not caught by unit-testing.
Package testing
Does a given package do all that is required? Is the model used an appropriate one? Are there better models available? This type of high-level review will require a collaboration between the QA group and an expert in the field. One might think of this as being similar to a review of a technical textbook.
Benchmarking
The AIPS Project found that benchmarking of new systems using a pre-determined set of applications was extremely useful both for determining possible computer purchases and for uncovering systematic performance problems. They use a set of Dirty Dozen Tasks to characterize the performance.

The Quality Assurance Group will be initially consist of three people, with the following division of responsibility:

Code Cop

Rules Boss

Chief Tester

The head of the QAG will report directly to the Project Manager.

Code Reviews

Our code review process has been in place for some time now and seems to work well for the current size of the Project. The process is documented in Note 167. A code cop is currently responsible for overseeing the code review process. As the Project grows, this role would probably better be served by a group of people, perhaps in the above-mentioned Quality Assurance Group.

We need to augment the code review process with design reviews to catch problems early on in the design-implement-review-use cycle. We may also wish to use code walkthroughs or inspections.


next up previous contents home.gif
Next: Management and Oversight Up: NOTE 209 - AIPS++ OPERATIONS Previous: Astronomer and Programmer support   Contents
Please send questions or comments about AIPS++ to aips2-request@nrao.edu.
Copyright © 1995-2000 Associated Universities Inc., Washington, D.C.

Return to AIPS++ Home Page
2006-10-15