Repeatable Execution (2020)
blog.ploeh.dk
blog.ploeh.dk
The author talks about pure functions; "unit testing" sort-of implies a similar thing (something executable in isolation, turning arguments into return values). (Impure functions sort-of imply integration testing, etc.)
The primary difference is that time travel debugging solutions are more fully integrated because they will automatically insert exactly the necessary logging and they are integrated with interactive debugger state visualization tools so you do not need to do the state reconstruction manually/mentally, you can have the machine do it for you.