An emulator is a piece of software that mimics the functions of a one computer system on a second computer system. Emulation is commonly used to ease testing (such as in mobile development) or to help preserve older software systems, particularly after their targeted hardware has become obsolete.