Crash Consistency Testing for Non-Volatile Memory Systems