In Demand

Software Quality Assurance Analysts and Testers

One time, I was trying to buy a product through an online store's app, but I kept failing to complete the purchase. Every time I tapped the "order product" button in the app, I'd end up on a blank white page with nothing on it. This happened to me more than once, which left me frustrated and annoyed, and eventually pushed me to delete that company's app from my phone entirely. Things like this bother all of us — how many times has a technical glitch happened to you in one of the programs or apps you use on your computer or smartphone? And how many times have you come across a video game that doesn't work and won't run because the developers failed to catch the bugs in it? In our era, computer programs and apps are no longer just tools for entertainment — practically every business transaction around the world now happens through them. Almost every company and institution in every country has apps, software, and systems to manage its various operations, and today there are thousands of apps and programs used by millions of people. That's why any glitches or technical problems in these programs and apps can cost the companies that own them millions of dollars in losses, and may push some of their customers to stop dealing with them altogether — a disaster for any company. Because of these many technical problems that show up in computer programs and apps, especially newly developed ones, developing companies now run what's called "quality testing" — hiring experts in computer science and information technology known as "software quality assurance testers" to handle the task of testing programs and apps, searching for technical problems in them, and trying to find the coding bugs that keep them from working properly. In the next section, we'll talk in more detail about the nature of the work of "software quality assurance testers."

Meet the Writer: Waleed Abo Omiraa

Annual Salary
$102,610/ year
Median wage · BLS🇺🇸 USA

What You'll Actually Do

The core tasks and responsibilities that fill a typical day.

  • 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.