“Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!”
—The Red Queen, Through the Looking Glass
Is it me, or did someone flip the switch that sets the pace in the software testing industry from “fast” to “breakneck fast”? I started feeling the changes a few years ago while working as a QA engineer in Boston, about the time that James Whittaker published How Google Tests Software (2012). In his book, Whittaker talked about “The Software Engineer in Test” (chapter two) and “The Test Engineer” (chapter three).
Since then, testing has been redefined, first by the adoption of popular open-source automation toolsets, and then again with continuous integration and DevOps. Bas Dijkstra, in his latest TechBeacon article, “How tech giants test software: There’s no one way for QA,” compares and contrasts how traditional QA keeps getting re-evaluated at Google, Microsoft, Facebook, and Spotify.
With all these changes, what is a QA engineer to do? How can you stay marketable? Here are three things you need to do if you want to keep up with the ever-changing software industry.
Deepen your testing skills
The ideas pushing software development to go faster and faster aren’t new. It simply took several years for these concepts to be combined with DevOps and start being adopted here in the United States as the new industry standard.
The concept of continuous integration (CI), continuously adding new changes to the existing codebase after passing a series of unit and integration tests designed by the developer, has been around since before Kent Beck and Ron Jeffries formulated Extreme Programming (XP) in the late 1990s. The idea of automation also isn’t new. Ward Cunningham’s automated framework for integrated testing (FIT) was started back in 2001, according to the FitNesse User Guide.
But for most of my career, software quality assurance (QA) seemed to be a profession without a history. Training was on-the-job, a baptism by fire. Knowledge was passed from QA manager to senior QA engineer to the rest of the team. It wasn’t until I entered grad school that I started hearing about software testing gurus such as Cem Kaner, Janet Gregory, Lisa Crispin, and Elisabeth Hendrickson and began collecting their books, subscribing to their blogs, and watching them on video. That was when I first realized that there was a bigger world out there when it comes to how to test software.
My advice? Go beyond your own experience in testing. Explore what other people have done. Get in the habit of listening to testing podcasts such as Joe Colantonio’s Test Talks. Find one you like at TestingPodcasts.com. In their quest to learn automated testing, QA engineers can’t focus solely on the “automation” and forget the part about the “testing.”
Here are some people whose writings can deepen your testing knowledge:
Kaner is the author of the best-selling Testing Computer Software (1993), coiner of the term exploratory testing, professor of software engineering at the Florida Institute of Technology, and co-founder and executive vice president of the Association for Software Testing. He offers many of his Black Box Software Testing (BBST) online courses, along with slides and video, for free. Some examples of the BBST offerings:
- Foundations of Software Testing. A formal look at black box software testing. Why do testers test? How do you know testing is done? How do you measure the software testing effort? The course also has a list of required and recommended reading.
- Bug Advocacy: Effective Bug Investigation and Reporting. What exactly is a bug? How do you report it? How can you make people want to fix it? What happens if you can't reproduce a bug?
- Test Design: A Survey of Black Box Software Testing Techniques. Spec-based testing, scenario-based testing, risk-based testing, and domain testing.
- Exploratory Testing. How can you better investigate a software product by going off script? Listen to Kaner’s videos on the subject, or read his paper “A Tutorial in Exploratory Testing.”
“Pay attention to zeros. If there is a zero, someone will divide by it.”
—Cem Kaner
Crispin and Gregory published Agile Testing: A Practical Guide for Testers and Agile Teams based on their long experience dating to their days of running QA groups modeled on XP.
“We define an agile tester this way: a professional tester who embraces change, collaborates well with both technical and business people, and understands the concept of using tests to document requirements and drive development. Agile testers tend to have good technical skills, know how to collaborate with others to automate tests, and are also experienced exploratory testers. They’re willing to learn what customers do so that they can better understand the customers’ software requirements.”
—Lisa Crispin and Janet Gregory
Need more information about agile? Read Peter Varhol’s “To agility and beyond: The history—and legacy—of agile development” to get a clearer picture. Or watch John Allspaw and Paul Hammond give their talk “10+ Deploys Per Day: Dev and Ops Cooperation at Flickr” (2009) for the origins of DevOps.
Richard Bradshaw, the @FriendlyTester, is amazingly active in the software testing community and, with founder Rosie Sherry, runs the Ministry of Testing, a UK-based community of software testers dedicated to helping create smarter testers.
Curious about adding different models to your testing? Check out Bradshaw’s Whiteboard Testing series and his blog for inspiration. In August, he unveiled three free programming courses he has created covering programming basics, Java basics, and Selenium WebDriver in Java.
Michael Bolton (no, not that one ... or this one) doesn’t just want to demonstrate a better way of testing with his and James Bach’s Rapid Software Testing workshops; Michael also wants to change the very words people use to talk about testing QA. Why, he asks, should we call it “quality assurance”? How can one even begin to assure quality? He would like to stamp out the phrase and replace it with “software tester,” which he says is more accurate. And he wonders why we refer to “automated tests.” If they are not performed by a human being, he says, we instead should insist on calling them “automated checks.”
“I’m a tester, and it’s time for our craft to grow up. Whatever the organizational structure of our development shops, it’s time for us testers to get out of the Quality Assurance business.”
—Michael Bolton, DevelopSense.com, May 2010
On Twitter, you can follow dozens of other people who are trying to improve the software testing process. You can get suggestions from the article “31 software testing pros you should follow on Twitter.” And if you are looking for automation development leaders, take a look at Colantonio’s listing of “33 test automation leaders to follow on Twitter” to start you off.
Of course, Twitter is not a one-way street. If you like someone’s books, blog essay, or YouTube video of a talk he or she gave at a software testing conference, reach out. Twitter users expect it!
Broaden your technical skills
In my last TechBeacon article, “Coding is key to a test automation career: Are you prepared?” I talked about how QA engineers can learn how to code by discovering one big trick that will help them start to become automation developers. Remember, though, that, more than knowing how to code, it is important to know what is and is not a good test.
Some clues to that can be found in a recent survey.
SmartBear, a maker of automated test tools, just released the results of its State of Testing Survey 2017 in a free webinar, hosted by Jeffrey Martin and Gregory Hanson. (You can see the report in PDF format here.)
The author points out that manual testing—operating the software product the same way as the customer would, with keyboard and mouse or fingers on a touchscreen—has not been phased out of the industry. More than half (58%) of the respondents said their companies still use it.
“You can never replace manual testing. ... Nor would you want to! ... There are things you just can not automate. You cannot automate usability. You cannot automate User Acceptance Testing.”
—SmartBear’s State of Testing Survey 2017
When it comes to automation, SmartBear found that it is more than just using Selenium WebDriver or Appium to automate web or mobile user interface tests. Nearly three-quarters (72%) of the developers said they are getting into testing by writing and automating their unit tests. More than half (56%) are getting into load and performance testing. But only 12% are getting into service virtualization to reduce dependencies by using mocking and stubbing.
“Knowledge of scripting is only going to benefit your testing.”
—SmartBear’s State of Testing Survey 2017
SmartBear also found that 45% of respondents use exploratory (unscripted) testing and that it is most widely used in mid-sized companies (those with 101 to 500 employees).
Another skillset SmartBear mentioned was testing APIs, endpoints that computer systems use to pass JSON and XML data back and forth. For more information on that, see Dijkstra’s “Efficient API testing: How to get started with REST Assured” and “How to perform API testing with REST Assured” and Colantonio’s “5 top open-source API testing tools: How to choose.” You can also see which APIs you can play around with in the Programmable Web.
If you are wondering which programming languages companies use for test automation, SmartBear found that Java leads, with 61% of respondents working with it, followed by JavaScript. On the very bottom? PHP, VB.Net, Ruby, Perl, and Delphi.
Network with other QA professionals
Developers have long known the importance of learning from one another by attending networking and training events to keep abreast of an ever-changing industry. Now that coding has crept into the job description of software testers, QA engineers are starting to feel the need for similar outlets. Here are some resources:
The Association for Software Testing
The Association for Software Testing (AST) was founded in 2004 by Kaner. It explains that it “strives to build a testing community that views the role of testing as skilled, relevant, and essential to the production of faster, better, and less expensive software products. We value a scientific approach to developing and evaluating techniques, processes, and tools. We believe that a self-aware, self-critical attitude is essential to understanding and assessing the impact of new ideas on the practice of testing.” Check out its blog, as well as videos demonstrating different testing techniques.
The AST hosts a yearly conference, CAST.
Software Test Professionals
This group’s website states: “Software Test Professionals (STP) serves the global software testing and quality assurance community, providing more than 50,000 professionals with information, education, and professional networking opportunities.
“The association offers valuable white papers, conferences, training offerings, and other networking events focused on the needs of software testers and quality assurance professionals. STP stays on top of the trends shaping the industry’s future with great member resources conveniently located at SoftwareTestPro.com.”
Software Test Professionals hosts a yearly conference, STPCon.
Ministry of Testing
The Ministry of Testing offers a great way to network with other software testers worldwide, with its list of Testing Feeds, events, and free webinars. September’s Testing Challenge, 30 Days of Agile Testing, asks, “How many challenges can you do in just one month?”
Though the MoT was started in the UK, several chapters have cropped up all over the United States. The MoT hosts conferences, called TestBash, throughout the year. TestBash Philadelphia will be held November 9-10, 2017.
Or DiY
The best way to network with other QA engineers might be to write a blog that catalogs your successes and failures in testing and the techniques you have picked up. My own blog, Adventures in Automation, started out as a way to preserve my research notes as I grappled with new tools and technology. Two years later, I have libraries of programming projects others can learn from.
Blogs can be nearly viral in their networking capacity. Back in July, software testing thought leader Alan Page published a tweetstorm stating that the next big thing shouldn’t be automated testing; it should be learning how to test. Then another leader in testing, Richard Bradshaw, created a response blog entry, A Look at Test Automation and ‘Test Automators’—Inspired from Alan Page’s Tweets, with others creating responses to the responses.
Networking comes down to joining an ongoing conversation. You can do that by joining associations, attending conferences, subscribing to blogs, creating your own, or signing up for Twitter.
Keep moving
With the acceleration of change in the testing world, keeping up requires you to move at least as fast as the Red Queen. You need to deepen your testing skills, broaden your technical skills, and network with other QA professionals. The resources listed above can help you do all of those things.
Speaking of networking, if you happen to be in the Boston area, come check out the Ministry of Testing - Boston, a meetup that I organize, and be sure to follow on Twitter @MoT_Boston.
What skills do you think today’s QA engineer needs to learn? Write your feedback below!
Keep learning
Take a deep dive into the state of quality with TechBeacon's Guide. Plus: Download the free World Quality Report 2022-23.
Put performance engineering into practice with these top 10 performance engineering techniques that work.
Find to tools you need with TechBeacon's Buyer's Guide for Selecting Software Test Automation Tools.
Discover best practices for reducing software defects with TechBeacon's Guide.
- Take your testing career to the next level. TechBeacon's Careers Topic Center provides expert advice to prepare you for your next move.