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 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.
Essential education, background and skills for 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 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 multi-tasker
- 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 that wouldn't hurt a bit.
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.
Software testers should consider getting one or more certifications to prove their mettle and 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 requires (1) a bachelor's degree and 2 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 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 dev 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 Software Testing Fundamentals, Testing PowerShell with Pester 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 download and online searchable formats, as well as sample ISTQB exam questions.
Interested candidates should also check out the Association for Software Testing (AST) website. The 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 sometimes it costs as little as $15. Lynda.com, a well-known subscription-based service, has several 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 about $55,000, but it can climb much higher depending on the company and city.
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. 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.