Getty Images/iStockphoto

3 QA testing tools to consider

QA testers need to be able to put applications and APIs through their paces. Here are some examples of tools that can help with automated testing and debugging.

Successful QA engineers must have a practical mindset and an ability to pay close attention to detail. They also need the right tools.

For testing web and mobile applications, I have found three tools to be indispensable. These tools cover a wide range of applications and uses. Many similar tools are available, both proprietary and open source, that might be a better fit your specific purposes. The ones chosen here are meant to be examples of the types of tools QA engineers should be familiar with.

Test automation framework: Cypress

The foundation of any QA engineer's toolbox should be a test automation framework. Cypress is a front-end test framework built for testing anything that runs in a web browser.

One of the reasons I like Cypress is the paradigm shift it has made in the architecture of its testing framework. Selenium and other traditional testing frameworks use an interface to communicate with a web browser and to perform actions and validations on elements in the web browser. The time required to perform these actions and validations is greatly increased due to the delay in communication between the testing framework and the web browser.

Cypress runs in the web browser, alongside the web application under test. This gives it clear visibility into the application under test, increasing test speed and reducing test errors.

Cypress, which is free, open source and locally installed, has helpful built-in features. A specific favorite of mine is the debugging functionality when Cypress encounters a failed test. Cypress will show the failed step, along with a screenshot of the browser during the test, from which you can easily debug the failure.

API testing tool: Postman

A useful complement to a front-end testing framework is an API testing tool. Postman is an API platform that helps developers and testers build, design and test APIs.

A core functionality of Postman that I've used often is the capability to document requests to APIs. As developers create API endpoints, QA engineers can create suites of requests to exercise the endpoints and validate API functionalities.

Postman's design lets these documented requests be easily shared as a collection, which means other team members can access the same requests and add more to the suite as they wish. If you aren't familiar with creating API requests, Postman has comprehensive and easy-to-grasp documentation that explains both its basic and advanced features.

Debugging tool: Charles web proxy

Charles is an HTTP debugging tool that records HTTP traffic for inspection. Charles can also record calls made from connected devices, such as a mobile phone.

Charles sits between your device and the internet, recording all traffic. When debugging HTTP calls made to applications, Charles shows the details of these calls and provides the ability to copy the request as a cURL command. For scripting the creation of user accounts, I haven't found a better way to easily understand which requests are being made in order to then replay the same requests in Python or some other script.

For testing apps, a great feature of Charles is network throttling. Charles will reduce your device's internet speed to a configurable value, which then lets you observe your applications' behavior under different network conditions. There are throttling presets, such as 4G and 100 Mbps fiber, or you can specifically set your preferred speeds.

Another useful feature for developers and testers is breakpoints. A breakpoint is defined as a location-matching URL that will intercept matching requests before they're passed on through Charles. These breakpoints let users view or edit the request or response before deciding to send it or block it

One downside to Charles is its cost. Both Postman and Cypress are mostly free tools with optional paid features, but Charles offers only a free 30-day trial before requiring a license purchase.

Dig Deeper on Software testing tools and techniques

Cloud Computing
App Architecture