In a country where there are a number of laws and regulations that are not informed to the general public it becomes quite easy to gain a criminal history. Felons cannot vote but there are more people who are not felons that have a criminal history then there are felons.
Lets make a Hypothetical. "Say Person A has a history of beating his wife and has a number of speeding tickets. Just because of his criminal history you would dismiss his testimonial that he saw a man rape and kill a woman in the park?"
Hypothetical #2 " Person B in his teens got addicted to Meth from the age 14-18. After he graduated high school he went on to become a doctor but the history remained on his record. His grades were good because his had ADD and meth has been known to improve those with ADD's scores in grades. Now he is still addicted to Meth but is prescribed to him called Desoxyn. He witnesses malpractice from a fellow doctor. You claim he cannot testify in court do to his habit?"
In the real world, everything is shades of gray there is no absolute yes or no answers because different individuals have different problems mental and physical. You cannot make a single solution for a problem since everyone handles things in a different way.
Felons can't vote , gain residence, employment, or own firearms, but you can work for the government. Not at the post office , state or city but you can work hand in hand with judges , prosecutors , and law enforcement. Now if this same person attempted to testify in favor of a alleged criminal this would be dismissed immediately . Is this justice? 2 wise guys operate a criminal enterprise 1 rats against his brother and is protected. The other heads upstate based on testimony of the person who was committing the same acts. How did we allow this to happen? Snitching on your spouse, parents , brothers is honorable? Yet Snowden is a traitor or whistle blower. You only need to remember 2 things. 1. Never rat on your friends. 2. Always keep your mouth shut.