Top Programming Skills for Software Testers

Top Programming Skills for Software Testers

This is a guest posting by Jess Ingrassellino. Jess is a software engineer in New York. She has perused interests in music, writing, teaching, technology, art and philosophy. She is the founder of TeachCode.org

With literally thousands of programming languages and new technologies being created daily, figuring out what technical skills to learn can be overwhelming for testers. Fortunately, many web and mobile apps tend to work with a similar tech stack. This means that learning some core skills can help testers work in a variety of environments, large and small. Let’s talk about the most useful skills for software testers, and where to find information and training.

“Do the thing you think you cannot do.” – Eleanor Roosevelt

Receive Popular Monthly Testing & QA Articles

Join 34,000 subscribers and receive carefully researched and popular article on software testing and QA. Top resources on becoming a better tester, learning new tools and building a team.




We will never share your email. 1-click unsubscribes.
articles

Front End Skills: HTML, CSS, JavaScript

Top Programming Skills for Software Testers

Any tester wishing to know how to write automated UI tests will need to be familiar with HTML/CSS/JavaScript. Understanding these languages, and how they work together, enables a software tester to learn more about how a web application is built.

Knowing HTML and CSS helps testers to interpret code from a browser console as they investigate a page. It is a good starting point as HTML is the foundation behind all web pages. It’s used to add structure, text, images, and other types of media. CSS is the language used to style HTML content to create visually appealing web pages.

Knowing JavaScript is also helpful because it can be executed from within Selenium scripts, if needed.

Let’s say you are a software tester and you are testing a form submission on a webpage. When you submit the form, you see an error. A tester who knows HTML/CSS/JS can open up the development tools in their browser, select the console option, and repeat their actions to reproduce the error. In the console, they will be able to see the JavaScript error that is thrown, and then use this information to either further investigate the issue or make a thorough bug report to developers.

Skills to Automate Regression: WebDriver, Ruby, Java, Python

Top Programming Skills for Software Testers

More often, testers are being asked to create automated UI tests for web applications. While there are many options, Selenium WebDriver (WebDriver) tends to be the most popular API for driving a browser. Ruby, Python, and Java are popular language choices for people wishing to work with Gherkin style syntax and WebDriver. Another reason these languages tend to be popular is that many web apps use them in other capacities, making it easier for the tester to get help from developers in creating and maintaining the test suite.

For example, a tester may be asked to design an end-to-end regression test of a website that includes logging into the site. Using HTML and CSS skills, the tester can open the browser console elements, locate the login box on the page, and inspect the element to find the id of the element. The tester can then use Ruby, Java, or Python to write commands for the WebDriver API. Some sample code in Python might look like this:

driver.get(“https://www.website.com”)
element = driver.find_element_by_id(“login-id”)
element.send_keys(“yourname”)

The above code goes to the website, locates the textbox that accepts the login, and then enters the login name into the text box. Learning the WebDriver API along with a language like Ruby, Java, or Python are key skills for building automated regression tests.

Working with Code: SVN, Git, and BASH

Top Programming Skills for Software Testers

Sometimes, a tester is lucky enough to work in a large or mature company where they can develop their tests against an environment that just “exists”. More typically, however, some environment setup is required. Also, testers who are writing UI automation will need to check in their own code. For maximum work independence and flexibility, testers should know a version control system also. Two popular version control systems are SVN and Git. Both SVN and Git can easily be learned online with free resources.

In addition, testers should get to know the command prompt/command line and some simple Bash Commands to move around both their computer and their code base. Bash Commands can help the tester navigate files easily while writing tests. Additionally, it is generally necessary to use the command prompt to run automated UI tests and investigate the results of failed scenarios or features.

For example, a tester might be starting a job at a company whose code is kept in GitHub. They can do a ‘git clone’ command to get the code onto the computer. Bash Commands would help the tester move files around, save changes to his test code, and push test changes up to Git for review. Some sample code might look like this:

git clone (gets a copy of the repository)
cd (bash command “cd” means “change directory” to your company’s repository)
git checkout -b (makes a local copy of the code just for you)
git add . (save your changes)
git push origin/your_shiny_new_branch (sends your branch to the repository)

There are, of course, many tech skills beyond this that software testers can learn, and there are no rules about where to start. Different companies can and will employ different technologies. However, these top tech skills can help software testers build a core understanding of web technologies that they can use to branch out into more varied technologies during their careers.

Places to Learn Programming Skills Online for Free

Top Programming Skills for Software Testers

Find out more at TeachCode.Org.

HTML and CSS
Learn HTML and CSS – This course takes approximately 10 hours to complete.

JavaScript
Learn JavaScript – This course will teach you the most fundamental concepts in programming JavaScript. It takes approximately 10 hours to complete.

Computer Programming – Learn the basics, starting with Intro to programming. With the Khan Academy you can learn how to use the JavaScript language and the Processing.js library to create fun drawings and animations. There are also courses available that will enable you to combine HTML and JS for interactive webpages.

WebDriver
Online Selenium Tutorial for beginners in Java – Learn Selenium WebDriver automation step by step hands-on practical examples.

Ruby
Learn Ruby – In this course you can gain familiarity in Ruby around basic programming concepts, including variables, loops, control flow, and object-oriented programming. You will also get the opportunity to test your understanding in a final project which you’ll build locally. The course takes approximately 9 hours.

Java
Learn Java – In this course you’ll learn fundamental programming concepts, including object-oriented programming in Java. You will also get the opportunity to build 7 Java projects, like a basic calculator, to help you practice along the way. This course takes approximately 4 hours to complete.

Python
Learn Python – This course is a great introduction to both fundamental programming concepts and the Python programming language. It takes approximately 13 hours.

Learn Python the Hard Way – This is the 3rd Edition of Learn Python the Hard Way. You can visit the companion site to the book at http://learnpythonthehardway.org/ where you can purchase digital downloads and paper versions of the book. The free HTML version of the book is available at http://learnpythonthehardway.org/book/.

Command Line
Learn the Command Line – Learning to use the Command Line will help you to discover all that your computer is capable of and accomplish a wider set of tasks more effectively and efficiently. This course takes approximately 3 hours.

SVN
Learn SVN – Apache Subversion which is often abbreviated as SVN, is a software versioning and revision control system distributed under an open source license.

Git
Learn Git – This course teaches you to save and manage different versions of code projects. It takes approximately 2 hours to complete.

Comments