Community Stories: Matt Obee & TestNote.io

Community Stories is a collection of spotlight articles on testers and events in the community. Whether it’s a speaker from a TestBash event or a Tool Smith with a great story to tell. Community Stories hopes to highlight people doing awesome things in the testing community and encourage those in the testing community to keep pursuing their goals and dreams.

A Test Tool In the Making

By Melissa Eaden

Like many testers, Matt Obee encountered a problem trying to take testing notes for his exploratory testing sessions. While there are many tools out there, Matt never found the right one that fit his needs for his testing habits and practices. He considered existing solutions, but nothing seemed to work the way he wanted it to.

“Existing solutions were expensive, complicated, ugly or unreliable. I wanted something that could capture my notes in a structured way without forcing me to worry about formatting and presentation. I didn’t want to have to install any special software and I wanted my notes to be accessible from anywhere,” said Obee.

Matt has been a tester for more than ten years. When he wanted to teach himself the Angular framework, he saw it as an opportunity to learn Angular and create something that would help him keep track of his testing notes. After a lot of time, work, experimentation, and refinement, the project grew into something Matt thought other testers might be able to use as well. That’s when he decided to give it a name and put TestNote.io online.

TestNote.io Enters The Public Domain

Matt didn’t want to charge people for his creation. He was decidedly against making a buck off of the testing community. The core version of the application remains free to the community, and he hopes it can remain that way.

“There are lots of paid tools and services for testers but many of them are aimed at corporate teams with big budgets. They often provide a whole suite of complicated tools so you end up being invested in their ecosystem. I think it’s nice when individual testers can pick and choose their own toolsets, particularly for personal things like note taking. I’m keen for TestNote to do that one thing exceptionally well and be as open and accessible to as many people as possible. I might have to find a way to cover the costs one day, perhaps by providing paid features to people that need them, but I hope the core product will always be free,” said Obee.

While much of the project was a solo endeavor, Matt acknowledges that he needed help to get past the points he would get stuck on. Most of his development expertise was geared towards design and front-end development rather than backend work needed to complete the application. Through a network of a number of wonderful colleagues and experts contributing, he was able to bring the application to completion.

A Development Process

The vast experience Matt has designing and testing products gave him the courage to leap into developing a tool and learning from the process.

“I love to learn new skills and I think the best way to learn is by jumping in and giving it a go! I’ve been designing and testing websites and apps for more than a decade, but normally as part of a team. I didn’t know if many people would use what I created but I’d still get a lot of value out of the experience of building it!” said Obee.

Tools Of The Trade

Matt wanted to keep development as simple as possible. When you are working solo on a project you don’t need a lot of documentation or formality. Picking tools or changing them doesn’t need a large change management process when you are your own client, it happens organically as the application develops. Matt switching from Angular to React is a good example of organic application growth and maturity.

“I skipped the formal wireframe process, apart from sketches on paper, and jumped straight into prototyping in code. I used the Foundation UI framework, which I prefer to Bootstrap because it’s less opinionated when it comes to styling.

“I chose to work with Angular originally because it’s a client-side framework and something that I could pick and up get going relatively quickly using my existing JavaScript knowledge. There were also lots of tutorials and the official documentation was pretty comprehensive. I’ve been migrating to React for the next version, which is similar to Angular in many ways, but a better fit for the features and future scalability that I want.

“I also know more React developers than Angular developers. For the UI, Foundation is usually my go-to framework. I’ve used Bootstrap in the past as well but Foundation tends to be easier to work with and has an emphasis on accessibility, which is important.

“The benefit of working with a framework like Angular or React is that they have big communities of knowledgeable people who have faced similar problems and are generous with their time. A quick search in Google will often reveal a solution. I’m fortunate to have lots of knowledgeable friends too so I’ve been able to go straight to them with questions,” said Obee

Once A Tester, Always A Tester

Even though Matt was developing an application, he kept his testing efforts in mind.

“It does have a suite of unit tests but most of the testing is manual. It’s funny because even though I’m an experienced tester, it’s easy to miss glaring problems while I’m wearing my developer hat. It’s impossible to do proper exploratory testing at the same time as writing code so I try to separate the activities and come at both with a fresh set of eyes,” said Obee.

Matt used Jasmine with Karma test runner for the unit tests with the Angular version of the application. The second version of the application will be in React, which he’s writing unit tests for in Jest. He also created a suite of Selenium end-to-end tests in Nightwatch.js, which cover the main user tasks and journeys for the application.

Keeping An Application Going

It can be a full-time job keeping an application running and keeping a normal 9 to 5 job. Matt currently works full time, but he uses TestNote every day to keep track of his work and to keep working on the application as well.

“It’s evolved a lot since my first prototype but the central concept is the same. The first version that I made public was pretty rudimentary. There were no user accounts or authentication. Notes were all saved locally in the user’s browser,” said Obee.

Keeping the notes saved locally was causing a fundamental workflow problem. As Matt worked on the second version, he decided to move to the Google Cloud Platform. This removed the limit of only working locally, allowing testers more flexibility to work on different projects, while also being able to access them over multiple devices.

Lessons Of Development

In the process of getting an application up and running, to maintaining it, Matt learned valuable lessons and had interesting challenges along the way which don’t present themselves until you are much further into the development process. Learning and understanding how to address them has been ongoing.

“I’ve learned a lot about technical debt. If you solve a problem with a temporary solution or build something in a way that won’t scale, it will grow into a bigger problem and cause problems down the line. It’s unavoidable sometimes in order to get a working product in front of users but you have to be disciplined in keeping track of tech debt and avoid building up too much of it,” said Obee.

Technical debt wasn’t the only challenge Matt and TestNote faced. Scaling and authentication are not easy problems to solve, but Matt continues to tackle them as the application evolves.

“Authentication is one challenging aspect of building something like TestNote, particularly when you consider things like sharing and collaboration. The other challenge, and something I’m still wrestling with is the balance between structure and freedom. I’m conscious that one tester might like complete freedom capture their notes in any way they want, whereas another tester might prefer more structure in terms of how they are captured and presented. That’s why user research is important,” said Obee.

Continuing Forward

Matt wanted to focus on three key features for the application: guiding, capturing, and reporting. These were his goals moving forward with the second version. Guiding would come in the form of prompts which would suggest heuristics which could help a tester during a session. Capturing session notes was the original goal of the application. To expand on the original goal, Matt has continued to improve the capabilities by including things like file uploads. The third goal, reporting, is still a work in progress, which will allow for easier sharing and documenting of test sessions.

 

Example of a heuristic prompt from TestNote.io

What’s Next For Matt & TestNote

When a tester takes on a project they tend to use it as a way of learning more about the development process and the complexities it can create for developers. This project, according to Matt, has allowed him to explore into the architecture realm of development and expand his knowledge and experience about the development process.

“I’m doing a lot of architectural work behind the scenes at the moment, migrating from Angular to React and laying the foundations for new features. It feels a bit like rebuilding the inside of a house without the outside collapsing, but it’ll be worth it in the end to ensure TestNote.io future-proofed and scalable. Once that’s done I’ll be working through the items in the roadmap, which is open and accessible to everyone,” said Obee.

You can sign-up for Matt’s creation of TestNote.io here and follow Matt’s story via his website.

References:

Author's Bio:

Melissa Eaden has a decade of working with companies in the tech industry. She began her tech career as an internal customer service agent in Topeka, Kansas, then relocated to Austin, Texas where she later transitioned into a tester role. Melissa’s previous career in mass media continues to lend itself to her current career endeavors. She enjoys working for ThoughtWorks, in Dallas, Texas. In addition to that, she’s a Content Editor and Staff Writer for Ministry of Testing, supporting their community mission for software testers globally.