Learning through testing