The first version of this article was written over four years ago, so as we approach the end of 2015 I thought it would be useful to revisit this topic.
1. Developer Tools
Firstly, IE8, IE9, IE10 and IE11 all have developer tools that you can access by pressing F12 whilst in Internet Explorer. These allow you to change your document and browser mode to go back to older rendering engines, which you can find on the emulation tab in the tools. If you are using Microsoft Edge, you will notice that it doesn’t have different browser modes that you can use, as this feature is only available in IE9, IE10 and IE11. It should be noted that these tools are not the same as the rendering engines used in the original browsers, so whilst they are useful if you are trying to reproduce a reported bug, they should not be used to confirm that your site is working correctly or looking pixel perfect in an older browser. To learn more about the developer tools, head over to MSDN.
2. Virtual Machines
For the most accurate results you will want to use Virtual Machines so that you can run the browsers in a real-world environment. This is by far and away the most popular way to do browser testing in my experience. The good folk at Modern.ie have produced VMs for all browsers and operating system combinations (IE6-IE11 and Edge on Windows 10). These VMs run on Windows, Linux and Mac and in numerous virtualisation flavours including Parallels, VMWare, HyperV and VirtualBox. You can download the virtual machines from modern.ie.
3. Hosted Virtual Machines
BrowserStack is a paid service that allows you to test IE6-11 and Edge (and every other major browser like Chrome, Opera, Safari, Firefox as well as iOS and Android emulators) inside your browser. There are also browser plugins available for Chrome and Firefox which make launching BrowserStack even easier.
With BrowserStack you can simply start up a new virtual machine in the cloud, running practically any OS, and then test your website in that environment.
4. Modern.ie Scanner
The Modern.ie scanner uses a node.js service (which is available on GitHub) to go fetch a website and interrogate it to locate common problems. It then provides a report which details what you may need to do to fix you website so that it works well in IE and also other standards-based browsers.