Some testing tools require complicated setup when they are included into a project. This creates an unfortunate barrier to testing. And this barrier exists for brand new projects who’s authors intend to write tests and on projects that don’t have any tests.
This is an issue that was recently brought to my attention by a colleague. He was working on an extension to an e-commerce engine, and he wanted to write it test first. But he was frustrated by all of the setup that he had to do to get things going. He mentioned that this was not the first time he’d tried to write such an extension test first. His other efforts had run into roadblocks as well, and the roadblocks were different each time. He also mentioned that there was at least six months between attempts. Not because he was not interested, but because starting a new extension from scratch is not something that he does all that often. And when he does, he’s been frustrated to find that so many things have changed. So that even if he did remember how he set things up the previous time, he’d still be lost the next time.
After listening to this story, I was struck with empathy. This sounds incredibly frustrating. I think it’s awesome that he’s been persistent enough to keep trying. But his story got me thinking about ways to combat this barrier.
I’ve come up with a few ideas, but I’m curious if anyone else has anymore ideas.
Find a testing mentor
The way my colleague got past this barrier was to ask me for help. After a short screen sharing session, he was up and testing away.
I think this illustrates the importance of having someone that you can reach out to when you get stuck.
Hopefully, you know someone that’s more familiar with testing than you are. Take the time to let this person know you’d like to establish a mentoring relationship, because if you just start sending along frequent, random questions you might not get the help you’ll need.
If you don’t know anyone, that’s not a problem. Establishing a mentor relationship with a stranger is your best bet. This requires you to know of someone that’s more proficient at testing than you are. Reach out to this person and start the conversation. If that person declines, ask for help finding someone else. I’m confident that you’ll be able to find someone that’s willing to help you along on your journey to becoming a better tester.
If for some reason that avenue fails completely, or it just does not sound appealing to you at all, the I suggest you take a peek at some question and answer sites with communities that are familiar with testing. The following list is not exhaustive, but it should be a good start.
Encourage project maintainers to simplify setup work
Getting your project setup for testing should be easy. If you run into stumbling blocks while trying to get things going, then I encourage you to reach out to the maintainers of the tools you are using. It might be something they are unaware of, and you mentioning the issue might be the exact catalyst that’s needed for them to improve things.
If the project maintainers don’t agree to address your problem, then I suggest implementing your own solution. This solution could come in many forms, and the best form will likely be determined by the specifics of your issue.
Plan for mistakes and be persistent
You are bound to encounter snags and slowdowns while you are learning a new tool or framework. These snags are going to slow you down and frustrate you.
The best way to cope with the slowness is to plan for it. It’s unwise to assume that you’ll be able to complete a task using a new tool just as fast as you did with the old tool. Give yourself some wiggle room with your expectations. You are likely your own worst enemy in this regard. The time that you invest in learning a testing tool should pay off significant dividends later on. Rushing through it will lessen the return on your investment, however.
Frustration is a natural byproduct of encountering a roadblock. It takes a strong sense of will to continue on with the task after you get frustrated. Some problems are only fixed after you try to tackle them repeatedly, so don’t give up.
Share what you’ve learned
If you are having a problem and your search engine fails to find you a solution, then when you do figure out what was wrong, please post that knowledge somewhere. There are many places that you could do this. A blog, a wiki, a question and answer site. The goal is to post the knowledge somewhere where it can be found by a search.
There are two reasons for this. One of them is selfish and the other is altruistic.
The selfish reason is to make sure that you can find a solution if you encounter the problem again. I’ve been doing this for years, and there are many times where I just end up searching my own blog to lookup how to get around an issue.
The altruistic reason is to help others that may encounter the same problem. If you like helping people, then this can be a great motivator for sharing what you’ve learned.
There are likely more ways to cope with frustrating tools, but these are the best ones that I can think of. Please leave a comment if you have any suggestions.
Also, this content is going to be used in my upcoming book Hooked on Testing. Please sign up to be notified when the first chunk is available for purchase.