I think the test code for this problem is incorrect.
Inputing the two strings:
Should return true based on the rules. The question mark can be come any character (it becomes "a") and the * can become any string, (it becomes "a"), making both strings "aab".
Ergo the above input should return true, but the "expected answer" is false. Am I missing something?