A software quality engineer and tester could...
|Analyze whether an airplane's control system meets performance requirements.||Use tools to track software bugs and control code changes.|
|Design a test plan of possible human errors in an automated drug delivery system.||Ensure a video game won't crash just as the player reaches the final level.|
Key Facts & Information
|Overview||Software quality assurance engineers and testers oversee the quality of a piece of software's development over its entire life cycle. Their goal is to see to it that the final product meets the customer's requirements and expectations in both performance and value. During the software life cycle, they verify (officially state) that it is possible for the software to accomplish certain tasks. They detect problems that exist in the process of developing the software, or in the product itself. They try and make things not work (try to "break" the software) by creating errors or combinations of errors that a user might make. For example, if a user enters a period or a pound sign for a password, will that break the software? They seek to anticipate potential issues with the software before they become visible. At the end of the life cycle, they reflect upon how problems or bugs arose, and figure out ways to make the software development process better in the future.|
|Key Requirements||Detail-oriented, thorough, persistent, with excellent communications skills and a love for puzzles and figuring out how to break software|
|Minimum Degree||Bachelor's degree|
|Subjects to Study in High School||Algebra, geometry, algebra II, pre-calculus, English; if available, computer science|
|Projected Job Growth (2012-2022)||More Slowly than Average (3% to 6%) In Demand!|
|Interview||Read this article to see what a day in the life of a quality assurance engineer and tester is like.|
Training, Other Qualifications
Training requirements vary depending on the job, but many employers prefer applicants who have a bachelor's degree in computer science, or a similar degree. Relevant work experience is also very important.
Employers usually look for people who have broad knowledge and experience related to computer software development, strong problem-solving and analytical skills, and the ability to think logically. In addition, because they often deal with a number of tasks simultaneously, the ability to concentrate and pay close attention to detail is important. Although these workers sometimes work independently, they frequently work in teams on large projects. Therefore, they must have good interpersonal skills and be able to communicate effectively with computer personnel, users, and other staff who may have no technical background.
Nature of the Work
Software quality assurance engineers and testers have an eye for detail and are committed to improving the performance of the products a company sells. They ensure that the software packages being sold meet or exceed the customer's expectations in performance and value. The biggest software companies spend millions of dollars of their budget on hiring quality software assurance engineers to head their quality assurance departments. This money is well spent, because the software quality assurance engineer will make sure that the product is top quality before it is marketed and sold.
A software quality assurance engineer is involved in the entire software development process to ensure the quality of the final product. This can include processes such as requirements gathering and documentation, source code control, code review, change management, configuration management, release management and the actual testing of the software. Software quality assurance is often confused with software testing, but should not be. Testing is a big part of software quality assurance, but it is not, by any means, the only part of it.
Software quality assurance engineers must be familiar with the entire software development life cycle in order to be effective. They may start out as software engineers or as testing engineers. They should have strong communication skills, be good at documenting their work, and must be able to work well with different groups. They often become the middle person between the developers and the customers, so they need to be able to understand, and convey, both viewpoints.
In addition to running tests, software quality assurance engineers diagnose problems, recommend solutions, and determine whether program requirements have been met.
Software quality assurance engineers and testers work in offices or laboratories in comfortable surroundings. They usually work about 40 hours a week—about the same as many other professional or office workers. Evening or weekend work may be necessary, however, to meet deadlines or solve specific problems.
Like other workers who spend long periods typing on a computer, software quality assurance engineers and testers are susceptible to eyestrain, back discomfort, and hand and wrist problems such as carpal tunnel syndrome or cumulative trauma disorder.
On the Job
- Design test plans, scenarios, scripts, or procedures.
- Test system modifications to prepare for implementation.
- Develop testing programs that address areas such as database impacts, software scenarios, regression testing, negative testing, error or bug retests, or usability.
- Document software defects, using a bug tracking system, and report defects to software developers.
- Identify, analyze, and document problems with program function, output, online screen, or content.
- Monitor bug resolution efforts and track successes.
- Create or maintain databases of known test defects.
- Plan test schedules or strategies in accordance with project scope or delivery dates.
- Participate in product design reviews to provide input on functional requirements, product designs, schedules, or potential problems.
- Review software documentation to ensure technical accuracy, compliance, or completeness, or to mitigate risks.
- Document test procedures to ensure replicability and compliance with standards.
- Develop or specify standards, methods, or procedures to determine product quality or release readiness.
- Update automated test scripts to ensure currency.
- Investigate customer problems referred by technical support.
- Install, maintain, or use software testing programs.
- Provide feedback and recommendations to developers on software usability and functionality.
- Monitor program performance to ensure efficient and problem-free operations.
- Conduct software compatibility tests with programs, hardware, operating systems, or network environments.
- Install and configure recreations of software production environments to allow testing of software performance.
- Collaborate with field staff or customers to evaluate or diagnose problems and recommend possible solutions.
- Identify program deviance from standards, and suggest modifications to ensure compliance.
- Design or develop automated testing tools.
- Coordinate user or third party testing.
- Perform initial debugging procedures by reviewing configuration files, logs, or code pieces to determine breakdown source.
- Visit beta testing sites to evaluate software performance.
- Evaluate or recommend software for testing or bug tracking.
- Conduct historical analyses of test results.
- Provide technical support during software installation or configuration.
Companies That Hire Software Quality Assurance Engineer & Testers
Explore what you might do on the job with one of these projects...
- Artificial Intelligence: Teaching the Computer to Play Tic-Tac-Toe
- Computer Sleuth: Identification by Text Analysis
- Game of Life
- Power Play: How Does Animation Timing Affect Your Perception of Game Action?
- Program to Check a Sudoku Solution
- Programming NANORGs in a Virtual World
- Want to Make a Video Game? Here's How!
Do you have a specific question about a career as a Software Quality Assurance Engineer & Tester that isn't answered on this page? Post your question on the Science Buddies Ask an Expert Forum.
- Association for Computing Machinery: www.acm.org
- IEEE Computer Society: www.computer.org
- Institute for Certification of Computing Professionals: www.iccp.org
- O*Net Online. (2009). National Center for O*Net Development. Retrieved May 1, 2009, from http://online.onetcenter.org/
- Schneider, L. (2009). Career Profile — Software Quality Assurance Engineer. Retrieved September 17, 2009, from http://jobsearchtech.about.com/od/careersintechnology/p/SWQA.htm
- Richardson, K. (2005, March 30). You Can Be a Software Quality Assurance Engineer. Retrieved September 17, 2009, from http://www.hqeducation.com/jobs-careers/popular-jobs/you-can-be-a-software-quality-assurance-engineer.php
- Net Industries. (2009). Software Quality Assurance Technician and Analyst Job Description, Career as a Software Quality Assurance Technician and Analyst, Salary, Employment - Definition and Nature of the Work, Education and Training Requirements, Getting the Job. Retrieved September 14, 2009, from http://careers.stateuniversity.com/pages/184/Software-Quality-Assurance-Technician-Analyst.html
- Arnold, D. (1996, September 24). Computer Arithmetic Tragedies. Retrieved September 17, 2009, from http://www.ima.umn.edu/~arnold/455.f96/disasters.html
- Princeton Review. (n.d.). Quality Assurance Engineer. Retrieved September 17, 2009, from http://www.princetonreview.com/Careers.aspx?cid=206
- Inside EA. (2009, February 12). EA QA (Games Tester) Career Paths. Retrieved January 19, 2010, from http://www.youtube.com/watch?v=foyEgHHBcI4
We'd like to acknowledge the additional support of:
- Motorola Solutions