Pretty nice. AppVerifier works by attaching to the program you want to test, and performing configurable tests whenever the program is accessed. There are five main areas you can configure for testing:
"AppVerifier encompasses areas that are specifically designed to test for commonly encountered application compatibility issues, and some very subtle kernel issues."
- Memory: This ensures that virtual memory API's are used correctly
- Thread Local Storage: This just ensures that the TLS API's are used correctly.
- Low Resource Simulation: This simulates a low resource environment
- Limited User Account Predictor: This lets you know whether a non-Admin user can properly use the program
- Misc: Dirty stacks and dangerous API's, according to the website