Indigo DQM Data Management System Indigo DQM
Software Standards Indigo DQM Help

All our products have been developed and tested to the highest standards. As a rule all our products undergo rigorous design and testing methods to ensure the highest level of quality, functionality and reliability.

AJE Software is always looking to improve the quality of our software products and would welcome any feedback or suggestions on how any product may be improved. Please send any comments or suggestions to us by visiting the site and filling out the feedback form.


Verification involves checking that the product conforms to its specification. Validation involves checking that the product meets the expectations of the customer.

Requirements validation techniques, such as prototyping are useful here. However, flaws and deficiencies in the requirements can sometimes only be discovered when the system implementation is complete.

To satisfy the objectives of the Verification and Validation process, both static and dynamic techniques of component checking and analysis are used. Static techniques are concerned with the analysis and checking of product representations such as the requirements document, design diagrams and the source code and may be applied at all stages of the process. Dynamic tests involve exercising an implementation and can only be used when a prototype is available.

Static tests include product inspections, analysis and formal verification. Static techniques can only check the correspondence between a product and its specification. They cannot demonstrate that the product is operationally useful.

Product testing is still a good way of testing and involves exercising the product using data like the real data processed by the product. The existence of product defects or inadequacies is inferred from unexpected system outputs. Testing may be carried out during the implementation and after.

When defects are found these are removed by debugging. Defects in the code are located and the product modified to meet the requirements. Testing is repeated to ensure that the change has been made correctly.


The testing process proceeds in stages where testing is carried out incrementally in conjunction with system implementation.


Individual components are tested to ensure that they operate correctly. Each component is tested independently, without other system components.


A module is a collection of dependent components such as a collection of procedures or functions. A module encapsulates related components so that it can be tested without other system modules.


This phase involves testing collections of modules that have been integrated into sub-systems. The Sub-system test will concentrate on the detection of interface errors by rigorously exercising these interfaces.


The sub-systems are integrated to make up the entire system. The testing process in concerned with finding errors that result from unanticipated interactions between sub-systems and system components. It is also concerned with validating that the system meets its functional and non-functional requirements.


A testing strategy is a general approach to the testing process rather than a method of devising particular system or component tests. Different testing strategies may be adopted depending on the type of product to be tested and development process.


Thread testing is an event based approach where tests are based on the events that trigger system actions. As part of the testing process the product is analyzed to identify as many threads as possible. Threads are not just associated with individual events but also with combinations of inputs that can arise.

Threads are identified from an architectural model of the system that shows interactions and from descriptions of system input and output.