I have recently written a QA Engineer job description and I though I would share it.
The Quality Assurance (QA) Engineer I is primarily responsible for testing all software products—built in-house, purchased and installed locally, or configured in the cloud. The QA Engineer I partners with internal
stakeholders to plan, test, and implement all software changes to ensure that
products conform to the desired quality standard. This role requires technical skills and the aptitude required to identify and resolve critical issues. The QA Engineer I uses technical programming expertise to build automated and performance tests. The individual will be expected to contribute
towards the organizational goal of continuous process improvement. This role requires strong communication and the ability to work well with others.
- Develop automated testing strategy or performance testing strategy
- Prioritize automated test scripts or performance scripts and executes according to plan
- Develop automated test scripts to automate manual repeatable test cases
- Create and maintain automated or performance scripts using C++, JAVA, and/or VBScript
- Create new test data or leverage existing test data for automation or performance scripts
- Identify, log, and track defects to closure
- Provide reporting on defect tracking and escalate technical issues as needed
- Develop and maintain testing standards, procedures, and guidelines to ensure consistent testing procedures
- Partner with distributed teams, outside vendors or offshore testing partners
- Follow standards in accordance with company policy and regulation (SOX, Lean, Six Sigma, etc.)
II. Know-How is the sum total of every kind of skill, however acquired, necessary for acceptable job performance
- Working knowledge of HP QTP and/or HP LoadRunner required
- Ability to program with VB, JAVA, and/or C++
- Ability to write and execute SQL to retrieve data from databases
- Ability to anticipate user behavior or identify risks to systems
- Solid understanding of automation and performance testing concepts
- Broad technical knowledge, including hands-on experience, managing system testing in new computing architectures/environments. Knowledge of relevant tools, databases, and middleware
- Working knowledge of system performance including CPU and memory utilization.
- Working knowledge of automated testing methodologies, including selection, configuration, and maintenance of modern automation tools
- Understanding of basic waterfall and agile/iterative project management concepts.
- Highly focused on building quality assurance best practices
- Ability to influence change in order to improve processes and application quality.
- Comfortable working with dispersed/offshore teams.
- Able to convey calm but focused sense of operational urgency to team members.
- Assists in implementing changes in order to increase operational efficiency.
C. Human Relations Skills:
- Strong customer service focus
- Strong verbal and written communication skills. This role will regularly explain complex issues to diverse stakeholders, including top management. At times, this role will need to train non-technical business users in QA testing processes and methodology.
III. Problem Solving:
- Strong problem solving and analytical skills. This role will be required to creatively use, analyze, and improve numerous new processes.
- Strong analytical, problem-solving, and conceptual skills. This role will be required to assist in developing clear solutions to complex problems, often where no current solution exists.
Education and Experience:
- Bachelor’s in computer science or equivalent
- 1-3 years programming experience with C++, JAVA, VB, and SQL
- 1-3 years experience testing applications in accordance to required functionality and non-functional quality attributes (e.g. availability, performance)
- IT testing certification (CSTE, CSQA) is a plus.
- Master’s degree in computer science is a plus.
- Experience writing automated or performance test plans
- Experience writing automated or performance scripts
- Solid understanding of the IT project and software development lifecycles.
- Experience with automated functional GUI test tools.