For starters, formal training and gaining experience in both:
1. Manual testing, and
2. Quality Assurance
1. Understanding of systems and software
2. Programming skills are helpful
Skills a good SQA person has to have:
– ‘test to break’ attitude,
– Ability to take the point of view of the customer,
– Strong desire for quality,
– Attention to detail.
– Tact and diplomacy are useful in maintaining a cooperative relationship with developers,
– Ability to communicate with both technical (developers) and non-technical (customers, management) people
– Previous software development experience can be helpful as it provides a deeper understanding of the software development process, gives the tester an appreciation for the developers’ point of view, and reduce the learning curve in automated test tool programming.
– Judgement skills are needed to assess high-risk areas of an application on which to focus testing efforts when time is limited.
– You must be able to understand the entire software development process and how it can fit into the business approach and goals of the organization.
– Ability to understand various sides of issues
– Patience
– Ability to find problems as well as to see ‘what’s missing’ is important for inspections and reviews.
– Tenacity
– Resourcefulness
– Team spirit
– Salesmanship
– Ability to learn quickly
– Ability to research
– Perseverance

Let me know if you have some other ideas 😉 ~Himanshu~