Skills you need to further your software testing career

Skills you need to further your software testing career

I am working as a black box tester on Web applications. I want to improve my technical skills and am wondering what type of skills I should learn to help me further my career.

    Requires Free Membership to View

    When you register, you'll receive targeted emails designed to keep you informed of the most relevant information on Agile development, application security, testing & QA, software requirements, and more.

    Hannah Smalltree, Editorial Director

    By submitting your registration information to SearchSoftwareQuality.com you agree to receive email communications from TechTarget and TechTarget partners. We encourage you to read our Privacy Policy which contains important disclosures about how we collect and use your registration and other information. If you reside outside of the United States, by submitting this registration information you consent to having your personal data transferred to and processed in the United States. Your use of SearchSoftwareQuality.com is governed by our Terms of Use. You may contact us at webmaster@TechTarget.com.

When it comes to testing, as a manager I am concerned about two things: effectiveness and efficiency. Effectiveness is about how well we measure the quality of the system under test (meaning what level of confidence we can gain about its adherence to requirements) and how many defects we discover, fix, and regress. Efficiency is about how many resources it takes to accomplish that task. So when a tester asks me how they can improve their skills, I focus on learning and development, which includes those areas.

More information on software tester skills:
Skills for entry-level software testers

Ten skills of highly effective software testers

How to specialize in performance testing

First, let's look at effectiveness. Anything that helps you test more deeply, cover more ground, or find more bugs is going to be beneficial. In Web testing, I find that having a strong knowledge of HTML and CSS, HTTP and HTTP Web servers, JavaScript, and now rich Internet application (RIA) technologies such as Ajax, Silverlight, and Flash are extremely helpful. Knowing HTML and CSS is self-evident. You want to be able to quickly find errors in layout and styling, freeing the developers from debugging this on their own. Understanding HTTP and Web servers is important for lower-level communications issues and for troubleshooting communication problems. Finally, scripting languages are the basis of nearly every commercial website. Script errors abound (especially because JavaScript is a runtime language and really can't be stepped through easily), and testers need to be able to catch those errors with code reviews and other methods.

Efficiency to me is mostly about automation — it's about being in more than one place at the same time. By writing good automation (catches true failures, does not report false passes, runs in many environments, and lasts the product cycle), you accomplish several things. First, you continue to validate product quality even if you, personally, are not executing the tests. Second, you generally execute test cases more quickly — this encourages developers to run these cases even before checking in. You speed up the turn-around time (known as the feedback loop) on the code-defect discovery-defect remediation cycle. Finally, you enable yourself to test on many configurations at the same time. Common automation skills are familiarity with xUnit test harnesses, ability to use Selenium and Selenium RC, Watij or Watin, and good skills in development in languages such as Java and .NET.

You're probably thinking that I failed to bring up skills using tools such as IBM's Rational Robot, HP's Loadrunner, HP's Winrunner, and such. These are very important niche skills that a Web application tester can use to differentiate himself. (They really didn't fit well in my effective/efficient paradigm though.) Understanding how and when to apply tools in performance, stress, and security testing realms is a great way to improve your career. The logical step in a tester's career is to branch out and select specific tools to excel in.

If you want to stay at your current company, pick tools most commonly used for those automated testing categories. If you are looking to move to another company or into another industry niche, understand the tools in common use and develop skills in them. Many commercial tools have limited trial versions available. You may not be able to run a full load test with trial versions of the tools, but you can definitely learn how to use them. But keep in mind: Understanding what's happening in your system when you run these tools is more important than just learning how to use them.

In 2007, I wrote a series of articles on my blog titled "How to Become a Better Tester." This blog series will give you more detailed steps you can take in developing your career.

All the best!

This was first published in December 2008