Note: Test data should not be used for determining when to stop learning since that includes the test data to the training process. Instead, you should use a validation set that is separate from training and test sets to find appropriate parameters such as number of training epochs.
You should stop learning when the training and validation set errors are very close to each other. If you continue learning after you catch the training error on the validation data the network will overfit to the training data (it memorizes the data)
Training is a procedure to train your model. Training set shouldn't be used for evaluation of your model. As Turan suggested validation set should be used build your model, then you can use your testing set to evaluate your model
I personally have never encountered a model where testing set have given have less error than the training set though theoretically it is possible. Training set always have less error than the testing set
Most of the cases, the error occur in training of data is less than testing. In neural network first we train the network and after that based on that training data a network has designed which is used for testing of data.
You need to divide the data into a training data set and a validation data set. You train the nnet on the training data set only. The network calculates the errors on the training data set and the validtion data set. Stop training when the validation error is the minimum. This means that the nnet can generalise to unseen data. If you stop training when the training error is minimum then you will have over fitted and the nnet cannot generalise to unseen data. The validation error is usually bigger than the training error in most cases. This process is called cross validation. There are more complicated methods to do cross validation. Cross validation does not apply just to nnets, but is a way of selecting the best model ( which may be a nnet) that produces the best generalisation to unseen data.