Compile and run the application on a computer system with a different operating system or hardware architecture.
Resolve problems using a new or different version of the runtime environment.
Was the program making invalid assumptions that are masked by the underlying operating system or hardware architecture?
How portable is your code?
You may have only one platform available.
Compile the application with a different compiler, but target it to the same operating system and hardware architecture.
Compile the application with the same compiler, but target it to a different operating system or hardware architecture (cross-compilation).
Use this tactic when one of the following conditions is true:
When the program is a numerical application whose results may depend on the floating-point representation used.
The program uses pointers, you’re having trouble stabilizing the problem, and either the operating system doesn’t provide protection for memory locations that are outside of your static data, stack, and heap storage or the hardware permits you to address locations such as 0.
Use this tactic at least once before the program is put into production, as an additional testing strategy.