Validation set performance increased, test set performance decreased
Don't optimize your model for the test set during development. You shouldn't even consider using your model on the test data until you're done tweaking your it, since the point of the test set is to have a ready example of "unseen" data for your model.

The idea with a train/validation/test split is that you could evaluate all the different iterations your model went through (that you feel like testing) against this completely unseen set of data and not have to worry about whether you were optimizing for fit to this data because it's completely new to your evaluation process. 

No decisions were made during development to ensure that any of the tested models would perform well on this set because you're only checking how well you did after you're done fussing with your models. It's as clean a reference point for model performance as you can get. 

If the only constraint for your final model choice is performance, then you would pick the model that performed the best on your test data. But I'd highly recommend using the train/validation/test split as intended.