Translation:I know that I am going to do well on my test tomorrow.
Interpreting this as a question about English, not the tranlation: I think you could say "at the test" but it would be less common, only in strict parallel with somewhat fixed phrases using "at".
Without listing endless fixed-phrases that use "on" or "at" or "in" but that don't really have any pattern of reasoning behind the choice of preposition, I can say that one pattern is that generally "on the test" will suggest focus on your test result, your grade. "At the test" might suggest 'during the test time, in the location of the testing place'. Ultimately they mean the same thing. But you could imagine the example of a first-time test proctor being asked if he did "well at the test". You couldn't ask the proctor if he did "well on the test". Unless he also took the test after/before proctoring it.
Not really, not in this sentence: since the subject of the main clause is "я", the default assumption is that the dropped subject of the subordinate clause remains the same. So if you want to talk about him, it's either "Я знаю, что он завтра хорошо напишет контрольную" or "Он знает, что завтра хорошо напишет контрольную".
Even in this case dropping "он" in a new sentence that already contained another subject would sound bad. You could, however, drop it in this sentence: "Он много учился и, я думаю, завтра хорошо напишет контрольную." - "He studied a lot and, I think, will do well on his test tomorrow." Note that in tis case you can simply drop "я думаю" from the sentence and it will still be a complete, normal sounding sentence. Hence "я думаю" does not really set or reset the default subject here.
контрольную is a short form of контрольную работу, which is the accusative form of nominative контрольная работа = "test" (literally "work-check" or "job-control"). It's an idiomatic phrase, so that the two words together have come to mean "test/exam", and the word работа has been omitted.
It's important to remember that контрольная is basically an adjective, not a noun; it doesn't mean "a control" or "the control", but is a modifier which in normal usage would attach to a noun and signify a means of controlling or checking on (determining the status of) the noun. It is transformed here by idiomatic usage that treats it as a noun, when the noun it modifies has been omitted. There seem to be a lot of these "adjective-nouns" in Russian.
"I know that I will do good on the test tomorrow" Versus "I know that I am going to do well on my test tomorrow." I would only say the first one in common speech. The second one is too formal and sounds a little robotic. Not to mention; there is no mention of "my test" but only an unspecified "Контрольную". No свою, no мою.
The second one is too formal
Whereas the first one is plain wrong. Doing good (unlike doing well) means that you are contributing something good (e.g. to the society). Have yo ever heard of the slogan "Doing well by doing good"? What do you think it means? (And is that what you normally do on your tests?)
I don't know whether he is an English native speaker or not, but on this point he is correct. You need the adverb "well". Your answer is not good (adjective).
If you say "I will do good on my test" you will sound as though you are eight years old, poorly educated, a foreign speaker, or some combination of those.