AJE Consulting Standards
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. An overview of our design
process is detailed below.
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.
VERIFICATION AND VALIDATION
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
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
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
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.