A method for customizing a test instrument, comprising: providing a first configuration for the test instrument, wherein the first configuration comprises first code for execution by a processor of the test instrument and second code for implementation on a programmable hardware element of the test instrument; receiving user input customizing the first configuration for the test instrument, wherein the user input specifies modification to the second code, wherein the modification to the second code specifies adaptive behavior for the test instrument; storing, by the user, multiple operating modes of the test instrument in a memory; generating a hardware description for the programmable hardware element based on the first configuration and the user input, wherein, after implementation of the hardware description on the programmable hardware element, the test instrument is configured to: receive information from a system under test, SUT, coupled to the test instrument; and automatically modify operation of the test instrument based on the information such that the test instrument dynamically adjusts its operation based on the information received from the SUT during testing of the SUT, wherein said automatically modifying comprises performing the adaptive behavior specified by the user input customizing the first configuration for the test instrument, wherein the modification to operation includes configuration of the test instrument by selecting, by the SUT, an operating mode of the test instrument to be used during testing of the SUT; wherein the SUT triggers changeover from a first test mode to a second test mode by providing a stimulus signal; wherein the SUT requests a first signal at a particular frequency and power from the test instrument to perform a self-check, and then requests at least one second signal at another frequency and power. providing a first configuration for the test instrument, wherein the first configuration comprises first code for execution by a processor of the test instrument and second code for implementation on a programmable hardware element of the test instrument; receiving user input customizing the first configuration for the test instrument, wherein the user input specifies modification to the second code, wherein the modification to the second code specifies adaptive behavior for the test instrument; storing, by the user, multiple operating modes of the test instrument in a memory; generating a hardware description for the programmable hardware element based on the first configuration and the user input, wherein, after implementation of the hardware description on the programmable hardware element, the test instrument is configured to: receive information from a system under test, SUT, coupled to the test instrument; and automatically modify operation of the test instrument based on the information such that the test instrument dynamically adjusts its operation based on the information received from the SUT during testing of the SUT, wherein said automatically modifying comprises performing the adaptive behavior specified by the user input customizing the first configuration for the test instrument, receive information from a system under test, SUT, coupled to the test instrument; and automatically modify operation of the test instrument based on the information such that the test instrument dynamically adjusts its operation based on the information received from the SUT during testing of the SUT, wherein said automatically modifying comprises performing the adaptive behavior specified by the user input customizing the first configuration for the test instrument,