The only way to test a class designed for inheritance is to write subclasses. If you omit a crucial protected member, trying to write a subclass will make the omission painfully obvious. Conversely, if several subclasses are written and none uses a protected member, you should probably make it private.
Thumbs up. But you might need to think more creatively, get more diverse ideas from others. Guaranteed someone will come up with a creative case that breaks your model....
Ah, right after this they say to create at least 3 subclasses and that at least one should be authored by someone else. Yes.