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
When testers hear the words “technical testing”, our minds immediately jump to “automation.” Testers are often unaware that many highly valuable technical testing skills have nothing to do with automation. It is invaluable for any tester to be able to skilfully use the different tools that help build software. There are hundreds of tools, free and paid, that can be in the tester’s arsenal; here, we look at six of the most popular tools and skills that aren’t automation.
Version control systems, like Git and SVN, are ubiquitous among software developers, with good reason. Using version control means that software can be worked on, simultaneously, by multiple developers, without them stepping on each other’s toes. If something goes wrong with a deploy, the software can easily be rolled back to the last working version until a fix is generated.
What does version control mean for testers? Testers who know a version control system like Git, can work with developer branches of code and start performing exploratory tests before that code is merged further upstream. For example, if a developer has made a branch for a new search feature, a tester who knows Git can get notifications about the status of the developer’s work. In some circumstances, testers who have sufficient test environments can pull a feature branch into a test environment before it is merged into master, and perform tests against the branch. This is a practical way to “shift left”, and give testing feedback earlier in the software development life. There are many blogs, videos, and resources to learn Git. One helpful, free resource is ProGit.
Viewing Log Files
Log files are stores of data waiting to be mined. Accessing logs can seem difficult at first, but there are several different types of log files, and many places from which to access them. Info logs, error logs, and debug logs are just some different types of logs that can be useful for testers. Info logs keep track of information such as different services starting and stopping on the product, or the processes that happen during that time. Error and debug logs have information including diagnostic messages, to help developers and testers diagnose potential issues. Some error logs may be accessed through the web console, while others will require access to internal systems where developer or production code is running.
Browser Developer Console
Accessibility Testing Tools
Websites should, ideally, be accessible to everyone. Testers who work for regulated industries may be required to do some accessibility testing. Developers who do not face a disability, such as vision or hearing impairment, may not have accessibility concerns at the forefront of their mind. Fortunately, there are some great tools that are easy to implement to check for basic accessibility requirements. The W3C markup validation service is a fast and simple way to validate all the markup on a webpage to ensure that it meets basic W3C accessibility standards. In addition, Chrome offers some free browser tools, available on GitHub, to use in developing and checking websites for accessibility.
Virtual machines and containers are helpful tools to test multiple operating systems or multiple versions of software. Often, testers are required to verify that software will work for users with a wide range of operating systems and browsers, but having several computers with different operating systems may not be realistic for some companies. Additionally, most computers will only support one version of each browser, but some companies may support older browser versions. Virtual machines are often a good solution for companies that support older machines or browser versions. Virtual machine software like Virtual Box is free, and companies like Microsoft even offer VM images of their IE and Edge browsers for download and test.
Telemetry and Analytics
DevOps skills and tools are your window into the backend of the product. Often, the DevOps team has access to monitoring tools, and monitor performance, user activity, errors in production, and other behavioral changes in the website that might indicate security concerns. Some of these changes, for instance, include how much traffic is coming into the site at any given time. Very high spikes in traffic can indicate potential problems allowing a denial of service (DDoS) attack to occur.
How can you use this DevOps information in your tests? User activity monitoring can indicate what features of the website are updated, changed, or require more robust attention during regression. Error logs from production can be quickly traced back to issues which may require testing, and subsequent fixes. Security issues can be mitigated earlier in the testing process if some security tools are used. ZAP Proxy tool is a free tool provided and maintained by OWASP. With the tool, you can scan your site for security concerns, helping prevent these issues from reaching production.
Tools applied in appropriate situations enhance problem solving by providing more information, more efficiently, with less test effort. Testers, who regularly employ technical skills to enhance their testing, can spend more test cycles investigating interesting problems, and less time doing shallow tasks. Check out the resources below to learn the skills highlighted in this article below:
- TestRail Highlight: Test Management Project History and Test Case Versioning
- 25 Challenging Tester & QA Interview Questions
- Advice on Balancing Testers for Embedded Scrum Teams
- Consider “Reasonable” UI Test Automation