Software testers play a critical role in application development. They are quality assurance experts who put applications through the wringer to root out bugs, poor performance and funky interface issues. To do this, they run all kinds of tests – stress, performance, functional, scalability, user acceptance – at different stages of the software life cycle. Because software testing is so important to the quality and usability of the final product, testers are typically brought in at the planning and design stage, and often remain involved throughout post-release support.
Most testers work on teams that develop vendor software. Today, a lot of software is pushed through DevOps (development + operations) teams, where development, testing, and delivery are on a continuous loop using the Agile, Lean, or Scrum frameworks.
The software tester is an unsung hero for most development projects. They save end users from working with highly buggy software or applications that just don't work well, greatly reducing tech support calls from frustrated customers. They also make the development team and the software vendor look good in the eyes of customers by ensuring that there are no critical bugs that prevent the software from operating as designed and advertised.
Essential education, background and skills for software testers
Many employers look for software tester candidates with a bachelor's degree in computer science, math or engineering, although it's not always required. If you've got a lot of experience, a stable work history and solid references or letters of recommendation, it's possible to land a job without a college degree. An intermediate-level position typically requires three to six years of direct experience in software testing, or some combination of education and experience.
Regardless of how you prepare for a software testing career, here are the skills you should have or plan to develop:
- Create and document automated and manual test plans and procedures, execute tests, analyze results, and report on test problems and anomalies (document bugs)
- Perform software testing in all phases of the design-develop-test-release-maintain software life cycle
- Understand various development methodologies, such as Agile and Scrum, and software testing platforms or environments
- Possess thorough knowledge of several testing tools
- Be fluent in UNIX, Linux and/or Windows as well as scripting and command-line tools
- Be a multitasker
- Be an excellent communicator (written and verbal) with development, operations, product management and customers
Some positions require programming skills and an understanding of databases. You don't necessarily need years of programming experience to be a tester, but it doesn't hurt.
Many government or military jobs in national security and intelligence, as well as some federal contractors, require a TS/SCI clearance. TS/SCI is short for Top Secret/Sensitive Compartmented Information. It's sometimes referred to as a "TS/SCI poly clearance" because a polygraph is usually part of the process. If you already have a TS/SCI clearance, that gives you a significant competitive advantage in the software tester job market.
Software testers should consider getting one or more certifications to prove their mettle and to get the attention of hiring managers. Most software tester certifications are vendor-neutral, and recognize knowledge and skills applicable across all facets of software testing.
Here are the two most popular software tester certifications:
- ISTQB Certified Tester: The American Software Testing Qualifications Board (ASTQB) offers the vendor-neutral ISTQB Certified Tester credential at the Foundation and Expert levels. ASTQB also offers Agile Tester, Advanced Test Analyst, Advanced Security Tester, and Advanced Technical Test Analyst certifications, among others, aimed at mobile app testing, test automation engineers, test managers, and business analysts.
- Certified Software Tester (CSTE): The International Software Certification Board (ISCB) supports eight certifications for software testing, quality assurance and business analysis. In addition to passing a certification exam, the CSTE certification requires (1) a bachelor's degree and two years of experience in information services, (2) a two-year degree and four years of experience, or (3) six years of experience. Plus, you must prove you've worked in software testing within the last 18 months. If you don't meet CSTE work experience requirements, consider the Certified Associate in Software Testing (CAST) as a starting point.
Vendor-specific or platform-specific software development certifications are plentiful, but it's harder to find vendor-specific credentials that focus on testing. However, if you have experience with a specific software testing platform and want to work on projects built on that platform, find out if the vendor has a certification program and whether any of its developer certifications include a testing component.
Software tester training and resources
Candidates interested in software tester training can take advantage of some free starter courses available online. Microsoft Virtual Academy (MVA) offers several relevant courses, such as the six modules in the Software Testing Fundamentals suite and Live Unit Testing in Visual Studio 2017. And the ASTQB website has a New To Software Testing page that includes its glossary of software testing terms in PDF and online searchable formats as well as sample ISTQB exam questions.
Interested candidates should also check out the Association for Software Testing (AST) website. This site is full of resources, including a link to the AST YouTube channel, which features webinars and keynote presentations from the group's annual conference. The International Institute for Software Testing (IIST) lets anyone sign up for interactive and on-demand webinars and live seminars in select U.S. cities, when available.
If you're willing to pay for training, head back to the AST site to read about the four-week Black Box Software Testing course and then follow the link to see other AST courses on test design, bug advocacy, and so on. Udemy's QA Software Testing Training Course has 27 hours of on-demand videos. At $100, it's a bargain and can cost as little as $12 during Udemy promotional campaigns. Lynda.com, a well-known subscription-based training/learning service, also offers testing courses as does Pluralsight.
You'll find plenty of other software testing courses and boot camps by doing a quick search on the web.
Surveying software-tester opportunities
PayScale says the average salary of a software tester in the U.S. is almost $56,000, but it can climb much higher depending on the company, city and your qualifications.
Like any other career, getting started usually means spending time on job boards like Monster, Indeed, Dice and LinkedIn Jobs. Consider posting your resume on each site, and be sure to set up alerts to be notified of new software testing and quality assurance job listings so you can apply right away.
Once your resume is online, you'll probably be contacted by recruiters with inside opportunities at companies that don't necessarily advertise publicly. And if you want to work for a specific company, cruise its online job board regularly and reach out to HR to make a contact.
Take advantage of free resources like LinkedIn software tester groups, Reddit, and other forums and online communities. They can be great sources of information about good/bad employers, which tools you should learn and leads on jobs.