As I looked at the deficits that my current calculus students have, I worked with a colleague to compile a list of skills that our pre-calc students must master by the end of the year.  These skills form the "Brainventory" which is evaluated weekly, with each skill tested with 2 to 8 questions.  If a student scores poorly, he or she simply retakes that portion on subsequent Brainventories, and I overwrite lower grades with higher grades as students strive toward mastery.

For example, here is a student who has mastered factoring and logarithm (as far as I am concerned, anyway), but needs to improve his understanding of exponents.

This process has several benefits:

Students are highly aware of their own progress, and which skills need improvement

Assessment is both formative and summative - students use the Brainventories to improve and gauge their current understanding, and grades reflect that current level of understanding at all times.

There isn't so much "brain dumping" after a topic is assessed.

Assessment is differentiated, meeting each student's current needs.

It can be adapted to reflect concept mastery