You give best results obviously 
There is no predefined number of epochs you should run…so if your model gives best results at 2nd epoch then that’s it !
Well, technically you dont check testing results for each checkpoint…you create a validation set and check loss ONLY on the validation set. On basis of validation loss, you select the checkpoint with the lowest loss–and run it on the testing set–what you get is what you mention.