What do they do?
Computer Science Career Image

  Computer Science Career Image Airplane cockpit   Computer Science Career Image Software quality engineer running test tools   Computer Science Career Image Automated insulin pump   Computer Science Career Image Frustrated boy playing video game

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.
Image Sources: See Image Credits

Summary


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. Read more...
Key Requirements Detail-oriented, thorough, persistent, with excellent communications skills and a love for puzzles and figuring out how to break software Read more...
Minimum Degree Bachelor's degree Read more...
Subjects to Study in High School Algebra, geometry, algebra II, pre-calculus, English; if available, computer science
Median Salary Bar Graph
Software Quality Assurance Engineer & Tester
  $75,150
US Mean Annual Wage
  $42,270
Min Wage
  $15,080
$0
$10,000
$20,000
$30,000
$40,000
$50,000
$60,000
$70,000
$80,000
$90,000
Projected Job Growth (2006-2016) Little or No Change (-2% to 2%)     In Demand!
Interview Read this article to see what a day in the life of a quality assurance engineer and tester is like.
Related Occupations

Source: O*Net

Try Out This Career with One of These Projects

Sponsor

Sponsored by a generous grant from the Noyce Foundation

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 career video
Being a video game tester isn’t just about playing your favorite games all day, it’s about trying to break them. Watch this video for the inside scoop on a career in video game quality assurance testing.
Return to top of page...

Work Environment

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.

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.

Other Qualifications

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.

Return to top of page...

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.

Source: BLS

Companies That Hire Software Quality Assurance Engineer & Testers

Ask Questions

Do you have a specific question about a career in Computer Science that isn't answered on this page? Post your question on Science Buddies Ask an Expert Forum.

Additional Information

Sources

Additional Support

We'd like to acknowledge the additional support of:

  • AMD
  • Motorola Solutions
  • Seagate


If this website has helped you, won't you consider a small gift so we may continue developing resources to help teachers and students?




It's free! As a member you will be the first to receive our new and innovative project ideas, news
about upcoming science competitions, science fair tips, and information on other science related initiatives.


Science Fair Project Home     Our Sponsors     Partners     About Us     Work for Us     Volunteer     Donate     Contact Us     Academic Outreach Partnerships     Site Map

Science Fair Project Ideas     Science Fair Project Guide     Ask an Expert     Teacher Resources     Science Fair Competitions    


Copyright © 2002-2012 Science Buddies. All rights reserved.
Reproduction of material from this website without written permission is strictly prohibited.
Use of this site constitutes acceptance of our Terms and Conditions of Fair Use.

Privacy Policy Science Buddies