Micro Focus is now part of OpenText. Learn more >

You are here

You are here

3 skills every software tester needs right now

public://pictures/yvettef.jpg
Yvette Francino Agile Consultant
 

The world is continually changing, and if we hope to remain competitive and relevant, software testers need to keep up. Technology changes are impossible to keep up with, yet if we aren't aware of and open to learning what's new and trending in our field, we risk becoming obsolete. Yet with so many changes, how can anyone possibly keep up? These three skills every software tester needs will ensure testers stay on the leading edge of the industry: social networking, agile development, and automation.

Social networking

While social networking skills are an advantage in any industry, there are many social networks specifically geared toward the software tester, including LinkedIn. There are plenty of LinkedIn groups related to software test disciplines, and by joining them, you'll have instant access to discussions and articles related to software testing.

Next, start reading blogs and other online resources, and start participating on sites that cater to software testers, such as The Software Testing Club or StickyMinds. Take the next step and comment on blog posts to engage with other testers or write your own blog post. You should also share great blog posts and content from sites related to software testing. Connect with authors or follow them on Twitter or LinkedIn. I was initially hesitant to connect and communicate with well-known authors and speakers, until I realized they love helping and networking. A simple retweet on Twitter or share on LinkedIn not only enables the sharing of information but also forms connections with people who have common skills and interests.

If you really want to take software test networking to the next level, sign up for a crowdsource testing group such as uTest, and make a little money with some short-term testing projects.

Agile development

Agile development continues to be a growing trend in software development, and software testers need to familiarize themselves with the tasks that come along with agile testing. One of the differences between traditional, phase-gated development and agile development is agile's concept of "the whole team approach to quality." Testers should pay close attention to this difference. Agile teams are cross-functional, with business people, developers, and testers working collaboratively and communicating daily. Rather than "throwing code over the wall" and having each functional team work on its piece in a silo, agile methodologies promote iterative development and push all team members to be responsible for a high-quality product. This often means developers, product owners, or business analysts are asked to help test, while QA folks are more involved with automation and technical testing. Rather than being rigid in roles and responsibilities, members of an agile team are encouraged to step in and help in any way they can to ensure the team delivers high-quality code, even if that means stepping out of their comfort zones.

Another difference between agile and the traditional approach: software testers on an agile team take an active part in vetting requirements and early testing, often before code is written. With each user story—the agile/scrum equivalent of a functional requirement—software testers actively ask questions to better define the acceptance criteria and "definition of done" for the story. These acceptance criteria are often used as the base for test cases, and through a technique called Acceptance Test Driven Development (ATDD), they can be written before the code and even help drive the design.

Automation

Learning agile techniques such as ATDD or behavior-driven development (BDD) allows software testers who lack a formal background in software development to structure their test cases so tests can be easily automated. Using appropriate keywords and phrases that describe the test, with the help of a framework, test steps can be coded and reused in other tests. Cucumber is a language that allows software testers to write tests that can be automated without requiring coding expertise. These types of tests, though structured in a specific format, still read like English text and provide self-documenting test cases. Because the test cases are converted to actual automation code, it's not necessary to maintain a separate document when test cases are updated. You can be sure that your documentation will always match your code.

And there are many other opportunities for software testers to learn automation skills. By learning simple scripting techniques, software testers will be able to create scripts that perform tasks like comparing actual results to expected results or creating setup and cleanup test data. The popular open-source tool Selenium is available for software testers to learn, free of charge, and training and help are available for motivated software testers.

Take advantage

Take advantage of social networking and the power of the web to find groups and people who can help answer any questions you might have. Though technologies and tools change, software testers can stay current by using what's available to them for free online. Start by doing some social networking and connect with other software testers. Read and learn more about agile testing and test automation. Take the next steps by experimenting and applying what you learn. As you discover more, share what you learn with others. You'll soon find yourself helping others just as much—if not more—and before long, you'll be the expert.

Keep learning

Read more articles about: App Dev & TestingTesting