Agile Testing: Arresting Anti-Patterns to Foster Productivity

Agile Testing: Arresting Anti-Patterns to Foster Productivity

The testing industry is blooming exponentially with new trends, tools, and patterns popping up constantly. Many of these new patterns claim to increase the productivity of testers and testing. Nevertheless, not all patterns increase productivity. Often, testers unconsciously fall into such anti-patterns. This article covers some common anti-patterns during agile testing, along with some tips and ideas on countering them.

A picture containing glass

Description automatically generated

Anti-Pattern

In your everyday life, you would have observed, read, and heard about common patterns for approaching and solving problems efficiently. The term anti-pattern, however, is often unfamiliar to many. An antipattern is a pattern that is often thought of as a standard solution to a problem, but often has negative consequences or is counter-productive in the long run.

In order to help you better understand this concept, here are a few examples of common anti-pattern during agile testing:

1. Measuring with surrogate or proxy measures.

i. For example, measuring the number of tests added by a tester to measure their productivity.

ii. The use of proxy measures to measure progress is often founded on incorrect assumptions and biases.

iii. Such measures are only used because they are easy to count.

2. Using tools or practices in the wrong context.

i. An example would be using email communication, where using chat would have been more convenient and efficient.

ii. Any tool or practice is merely a heuristic for solving a particular problem.

iii. A sapient use (the use of skill and care) and understanding of the context/purpose are essential.

iv. If all you have is a hammer, everything will look like a nail.

Now that we understand what an anti-pattern is. We’ll discuss three common anti-patterns that most testers encounter:

  • Not Documenting Things
  • Over Emphasis on GUI Tools
  • Restricting Efficiency to Test Automation

Not Documenting Things

desc

In the industry, it is a common misconception that Agile means no documentation. It’s true that Agile emphasizes building working software over “comprehensive documentation”. Nevertheless, not documenting things, at all, is one of the biggest productivity traps. It is true that we do not need overly comprehensive documentation of the entire software. Nonetheless, documenting creates a local cache about yourself that ultimately helps you be more productive, and these caches are easily retrievable from your workflow management platform for team use.

If you have ever worked in a distributed team, you are familiar with the common practice of members asking for information via chat messages or emails. These formats are often short-lived and flow down the system instantly. People often have to repeat the same or similar information when someone else asks for it. Furthermore, this creates reliance on people for project information and degrades the rollout/transition experience when someone leaves the team.

When documentation is done, it can be used as a local cache to share information that people would have otherwise gathered from you. Every time a document is read by someone, you instantly save the time you had originally invested in creating it. The returns on this investment will also compound over time, just like any other investment.

In other words, whenever you share information that isn’t documented, make sure it is documented. I consider documenting my work to be one of my most important productivity secrets. Depending on the context, I try to move important and persistent information to either of these:

  • Wiki
  • Readme
  • Test Notes
  • FAQ Doc
  • Flow Chart Documents
  • JIRA, etc.

Over Emphasis on GUI Tools

It is easy to visualize information when using GUI tools because they simplify complexity. Testers typically use GUI tools to generate data, filter data, run tests, and so on. There are, however, some limitations associated with GUI tools, such as:

  • Platform dependent
  • Distracting
  • Less Verbose
  • Requires more space & memory
  • Slow

It can be a productivity anti-pattern to place too much emphasis on GUI tools. Often, command-line interfaces are more effective for quick, basic, and quirky tasks. Having fluency with the command line improves your flexibility and productivity as an engineer in both obvious and subtle ways. CLI tools have their own benefits in the long run. Often, operating system commands, shell scripts, keyboard shortcuts, etc., are capable of doing heavy-lifting GUI tasks quickly. It is usually more convenient to work with CLI terminals when you have constrained devices that do not have enough space or are restricted from using GUI tools.

Want to learn about more about CLI & CLI Utils? Here are some references:

Restricting Efficiency to Test Automation

Testing efficiency is often associated with the automation of test procedures or the execution of tests via automated test scripts. However, the use of tools can improve efficiency in all aspects/phases of testing. The use of tools can greatly enhance testing efficiency if they are used intelligently. There is a wide range of possibilities for automation in various test activities, such as:

  • Test Environment Setup
  • Mocking Component Behavior
  • Test Data Preparation
  • Test Build Generation
  • Micro Utilities / Scripts
  • Text Fillers
  • Monitoring
  • Test Environment Cleanup

Automating your day-to-day tasks is possible in a variety of ways, and the examples above are only a few. Any task that’s repetitive or lacks creativity should be considered for automation whenever possible. Most of the time, you will find already available tools or similar ideas to build your own tool to enhance your testing efficiency.

Moreover, small utilities, macros, micro tools, and extensions can enhance your testing efficiency as well. A few examples of such small tools and extensions are listed below:

Testsigma too supports a lot of such add-ons supporting various automation actions and data generators powered by the Testsigma Team and the Community. Checkout the Testsigma add-on marketplace here: Testsigma Addons Marketplace

For all our visual readers, I have summarized this entire article in the form of this mind map.


Test automation made easy

Start your smart continuous testing journey today with Testsigma.

SHARE THIS BLOG

RELATED POSTS


Power of POC in Testing: Your Exclusive Guide to Success
Power of POC in Testing: Your Exclusive Guide to Success
performance testing tools_banner image
Test objects in software testing | Types & How to Create it?
How To Write Calculator Test Cases With Sample Test Cases
How To Write Calculator Test Cases? With Sample Test Cases