I wrote a little testing framework that uses 'nm' to inspect shared libraries and look for test functions. I then use Python's ctypes library to dynamically load the shared object and execute the test functions. Is there a way to do this with an executable? When I tried the same trick on an executable module Python reported that it could not dynamically load an executable.
If this is your own application you could rearrange the build so your executable is only main() { real_main(); } and real_main() is in libapp.so.  Then you could test libapp.so with your existing code.
If it's possible to load another executable it probably involves loading ld.so and getting it to do the work.  If you run /lib/ld-linux.so (on Linux) it will print a stanza with information.
Can I dynamically load an executable on linux?