Attributes of this element are associated with the quality and stability of
software or interface specifications, and constraints which may present
implementation or test difficulties.
The feasibility attribute of the code and unit test element addresses
possible difficulties which may arise from poor design or design specification
or from inherently difficult implementation needs.
For example, the design may not have quality attributes such as module
cohesiveness or interface minimization; the size of the modules may contribute
complexity; the design may not be specified in sufficient detail, requiring
the programmer to make assumptions or design decisions during coding; or the
design and interface specifications may be changing, perhaps without an
approved detailed design baseline; and, the use of developmental hardware may
make an additional contribution to inadequate or unstable interface
specification. Or, the nature of the system itself may aggravate the
difficulty and complexity of the coding task.
Factors affecting unit test include planning and preparation and also the
resources and time allocated for test.
Constituents of these factors are: entering unit test with quality code
obtained from formal or informal code inspection or verification procedures;
preplanned test cases which have been verified to test unit requirements; a
test bed consisting of the necessary hardware or emulators, and software or
simulators, and test data to satisfy the planned test; sufficient schedule to
plan and carry out the test plan.
This attribute addresses the implications of
implementation constraints. Some of these are: target hardware which is
marginal or inadequate with regard to speed, architecture, memory size or
external storage capacity; required implementation languages or methods; or
differences between the development and target