First Two Years - Yes-ish, Juniors: Maybe, Seniors: No
From your profile I see you are teaching high-school.
Let me preface this by saying that I favor practice-tests over test-corrections.
Some points:
- Test corrections are a security blanket for students who want to
parlay a 70 into an 85. You will be popular for it.
- Test corrections will likely never be used by those who need them
most. Your worst performing students are often your laziest, and the
kids with the lowest marks will likely not submit test corrections.
- To follow the previous point, this is a great defense against parents
offended by your inability to give their child higher grades. They
could have easily gotten more points, but didn't bother submitting corrections.
- Test corrections do not work for all types of tests: Multiple-Choice,
Fill-in-the-blank, anything overly based on memorizing something
specific. It does apply well when testing concepts and practices.
On Seniors:
If you are teaching seniors, then no, no test corrections.
When teaching seniors, you not only need to teach subject material, but also how to survive post-secondary education, which will mercilessly slaughter those who bank on second chances.
Explain to your seniors that you are preparing them for reality, and while they won't be getting murdered by a 20%/80% Midterm/Final combo strike, they'll still have to take their tests seriously.
However, I do recommend giving practice tests.
For younger students:
I don't see a problem with test-corrections. Of course, I would certainly only offer half-credit, at a maximum.
Further, I would require a write-up explaining why their first attempt was incorrect. If they want to earn some points back, they need to be able to teach the previously flawed concept back to me.
Practice Tests:
Do a practice test for half of a class period, then in the second half, grade it as a group.
Poll the class: What questions were commonly missed? What misconceptions were present? How "tricky" does the class rate each question? A class of highschoolers loves to comment on how difficult a problem is, or how sinister they believe their teacher is being.
Regarding forcing students from laziness vs allowing them to re-discover:
You are teaching high-school-students. This means you have a very mixed bag.
You absolutely have students who will go on to use none of this at all, you have students who just want to sleep all day and only work on their education later, and you have students who actually want to succeed.
In reality, if you gave devastatingly difficult tests with no test-corrections, they are still able to re-discover. The result of one test will not end their academic career. In university, yes, one test could set you back a full year, depending on how your prerequisites are structured. In high-school, no. Getting a bad grade on a test will not kill you, and, you will likely still be using the same concepts throughout the remainder of the year.
A test that you cannot re-submit for corrections is not a closed book.
It's still a learning opportunity. It still points to areas of improvement.
In CS, it is very rare that a concept will only be used once in a high-school level course, then discarded.
A student can certainly learn from their mistakes, to their benefit (using the same tested concepts on a future test or project), without receiving partial marks from a previous test.
Later in their academic career, a student will tend to value that "tough" teacher, who was harder to earn points from. I've heard: "The students who took Ms A's class actually know how to do this stuff... I got stuck with Ms B, and we all just slept through class and got perfect on everything..."
Test corrections is not for everyone. If your class is structured in a way that the grades fall where they should fall (instead of everyone getting roughly the same watered-down grade), then you have little motivation for allowing test-corrections beyond popularity. In fact, it could dramatically affect your class ecosystem.
If, however, you feel motivated to change some things. Consider allowing test-corrections with a low value of extra points awarded for considerable additional effort.
By doing this, you are rewarding aptitude and effort.
EDIT
Some teachers feel it's cruel to treat 4th year classes differently from 1st or 2nd year classes, instead favoring consistency.
While I see the value in consistency, I place more value on evolution. However, there is certainly value in both styles.
If advancing expectations are outside of your teaching style, I'd recommend against introducing a crutch that requires weaning.
There are certainly other ways to allow a student to learn concepts they are deficient in. Ensure you have an avenue for students to learn from their mistakes, and ensure that avenue travels through your teaching style and class format.