There are also a number of hidden potential dangers, which may arise from differences in the fundamental attributes of the host and target environments. The ordering of bytes within words, Word length.
Structuring and packing of compound data such as arrays and records.
Data representation, Once a designer is aware of these differences, it is relatively simple to design software, which is immune to them.
Finally, there may be differences in library routines which are supposed to be
standardized. For example, C input-output library routines such as printf and scanf often vary between compilers. Problems can be avoided by isolating the use of such routines to target specific units. Alternatively, software can be designed to be immune to differences in library routine behavior.
These design guidelines are not unique to cross-testing. Isolation and avoidance of environment dependencies are generally considered to be good design practice, so just designing with cross-testing in mind can improve the quality of software.
cross-testing, the test driver has to be portable between the host and target
environments. The target environment access and the target test environment access are both replaced with host simulations, allowing the test to be executed in the host environment,