Being a programmer does help your chances for being a driver. Though after a week of "could you run over to the controls and hit this button for me? I want to test something" most of the people who come regularly know 90% of the controls. Of course, I can just change them all again.
The most dedicated people is a good way of deciding who gets to drive. The most dedicated ones know the most about the abilities and limitations of the robot.
Seniority is kindof related to most dedicated. Those who know more about how the robot works tend to be better drivers.
In my experience, driver practices never work, especially with large obstacle courses. Robot performance is constantly changing with low batteries and hot motors that affect the robot a lot and happen often. You can try and hook up a better battery with 60 amp fuses on the motors, but I'd worry about damaging the robot.
And though it may be unfair, using drivers from previous years is a good way to go, unless you found out from their driving that year that they aren't good. Why bother training someone new when you know you have someone who can already drive well.
Another factor that can't really be determined until the actual competition is the drivers' ability to operate under pressure, especially if the drivers have to perform a task by themselves, in front of thousands of people, with three alliance partners whose scores depend entirely on what you do in just 10 seconds (2001).
I don't like written tests either. Sure you need to have a way of cutting down the number of people who want to drive before you actually get them on the controls, but I think it would be better to base that on dedication to the team than on the test. Just take the top 10 most dedicated or something and say only those people can tryout.