If you’ve ever woken up in the middle of the night and had to fix a bug in your production code, or if you’ve ever worked on the same project for months on end, you know the importance of testing. Traditionally there are three or four levels of testing in the software development world: unit tests, integration tests, and end-to-end tests. Unit tests validate that your code’s explicit logic does what you wanted it to do, while end-to-end tests ensure…