This content is part of the Essential Guide: Get ahead of the game: How to be a more technical tester

Learn the skills to become a more technical tester

Technology is changing fast and your testing skills need to change, too. Expert Matt Heusser walks you through more advanced techniques in part two of his series.

In the first part of this series, we introduced servers, domain names, UNIX, C and virtualization. Those are the building blocks on which modern applications are built. This article will cover network traffic -- a code that is carried to a web browser and translated as a webpage, which will take you a step closer to becoming a technical tester.

Learn how to use curl

Most testers are familiar with URLs -- the Uniform Resource Locators -- that we type into a web browser to bring up a webpage. is a famous URL. Curl is a command-line program to download that webpage as text and send the results to a screen. It is included in Unix, Linux and Mac OS X, and is also available on Windows for free.

It's simple to store a list of URLs in a file along with expected results. In most cases, expected results won't be entire HTML pages. They will be snippets like "no results found" for a certain complex search when the search algorithm is known to return extra results. Or perhaps "1-10 of 10 results found," when using a static database that should never change.

The real power of curl is not to bring down entire webpages, but to hit a specific API. For example, the British National Center for Text Mining has a public API that returns abbreviation lists in JSON format. Here's a sample URL:

Run that through curl to get a list of terms that are abbreviated as MRH. Change the letters MRH to anything else (such as ABC) and re-run curl to see the changed values. One classic use of curl is to store a variety of test cases in a file with expected results, then loop through them.

Curl also supports basic http authentication, cookies and other methods. Now that you're a more technical tester, you can use it on a website where a login is required. A programmer's help might be required when working on how to get a cookie or to find out how a cookie is changing over time.

An inside look at TCP/IP

A URL pulls down content such as JSON, HTML, CSS or some other sort of file. That file is transferred, likely through the Transmission Control Protocol (TCP), over the Internet Protocol (IP). TCP/IP breaks a file into packets, sends one at a time and waits for an acknowledgement called an "ack." If that ack is not read, TCP will send another packet. This is different than the User Datagram Protocol; UDP does not check to see if all the packets are returned. That is helpful in environments where old and lost packets do not have a value, like streaming live video.

Most networks today run an Ethernet protocol -- a single router manages all the traffic between computers. Each computer gets all the traffic on their network, but will have a unique address.

Wireshark is a free application you can use to view, log and inspect the packets that come through a network. The number of packets will probably be initially overwhelming. While performing test work, you would probably want to limit the capture only to your internal network IP address and port 80. Double click and scroll down on that line to get details. Wireshark can even read encrypted (Secure Sockets Layer) traffic if you can get access to the appropriate keys and do a little work.

A Wireshark screen capture
A Wireshark screen capture

Most people want to view and manipulate just the packets going back and forth from their browser, including secure traffic. Ideally, this should be done without fiddling with the public and private keys.

The easiest way to avoid that is to use the tool embedded in a browser. Most browsers call these "developer tools."

Browser developer tools for a technical tester

Google Chrome has (V)iew > Developer Tools; Firefox has (T)ools > Web Developer; and Internet Explorer's developer tools appear when a user presses F12. They provide a source code for a webpage and a network tab to understand what files were downloaded and when (and the contents of those files) along with a JavaScript console. All of these can help testers figure out what went wrong along with the contents of a file.

To walk through the developer tools, create this simple HTML page as a file, which has a single button that directs a browser to

Create simple HTML page as a file

Use a browser to reach the file to see it on a screen and click the button, but nothing happens. If you read the file, you can see that the 'D' in the call to myRedirect is accidentally capitalized, but the viewer does not know what went wrong.

Reloading the page, go to the developer tools, then click the button and see something like this:

Browser developer tools

Another helpful developer tool is the network tab that will show all the files that were downloaded. Clicking on the details will show contents of that file. To learn the network tab, first go to, bring up the tab, then click and drag to load new areas of the map. See the files as they load along with status codes (200 is OK, 500 error, 404 file not found). Click on the file name to preview a file or see http headers.

Google Maps loading a page
Google Maps loads files as the user drags; read them in the network tab.

Moving forward as a technical tester

We have covered the text below a user interface, which an engine like Safari, Chrome or Internet Explorer will use to create webpages. The tutorial included the terms, tools and even a few exercises to explore the possibilities with those tools. Armed with this information, you can go deeper into your own company webpages to find out if the problem is a text of a page or the API.

Future articles in this "more technical tester" series will cover HTML and CSS, the programming language of the browser, along with finally writing code to automate routine testing tasks.

Next Steps

Why automating software testing is beneficial

Learn what's new in Internet Explorer

Possibilities with Windows 10 command-line console

Dig Deeper on Topics Archive