Windows operating system is divided into user mode and kernel mode space. Applications can run either in user mode or in the kernel mode in the form of a driver. Applications running in user mode have huge stack space and most of the times drivers are implemented in kernel mode.
The applications can communicate to the drivers either
- Calling a dynamic link library ( dll )
- Calling a win32 API
When an application call one of the routine exposed by the dynamic link library , the dll in-turn communicates with win32 API and then the API calls the appropriate kernel mode subroutines . When we break down more in-detail , win32 API calls kernel mode client driver which communicates to class drivers provided by Microsoft.
When performing application testing , test engineers have to consider
- Application interfaces being debugged
- Memory usage
- Operating system performance
- Calls made to the kernel mode drivers
- Context switch rate
There might be chances that application is waiting for the instruction to complete at the driver end , but the engineer end up debugging the application