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:
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.
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.
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.