Software Quality Assurance

The purpose of Software Quality Assurance (SQA) at MarshallSoft is to assure that our software is as reliable and bug free as possible. To this end, our SQA procedures are as follows:

Design Criterion

All of our libraries are written in Standard ANSI C (except the DOS based Personal Communications Library which is written in assembler). Our coding standards emphasize clarity and minimal complexity.

Multiple Compilers

We use multiple compilers to compile the same code. We compile with Microsoft C/C++, Borland C/C++, Embarcadero C/C++, Watcom C/C++, LCC C/C++, MinGW C, and Digital Mars C. Thus our code is as generic as possible.

Static Code Analysis

We use PC-Lint (by Gimpel Software) to statically test our software. This is particularly useful in testing the larger libraries.

Self Testing Code

We use self-testing code where possible. For example, all dynamic memory allocation and deallocation is done by calling a set of functions which are able to cross check for memory leaks and over-written data areas at runtime.

Automated Testing

We instrument our libraries so that we can use automated testing programs which test our libraries. In automated testing, testing does not wait for the tester to enter keystrokes. The test program performs the entire test and logs the result. This way a very large number of tests can be performed.

Test Program Suite

We continually add to our suite of test programs. When a bug is found, we develop a test program that can detect the bug, and use it as part of our testing procedures.