Frequently asked questions

What is OpenTest?

OpenTest is a free and open source functional test automation tool built for scalability and extensibility, with all the features of a modern test automation tool. The development work began in 2016, at McDonald’s. In 2018 it was released as open source software under the MIT license, which means that anyone can legally use it free of charge, including for commercial purposes.

Did the world really need a new test automation tool?

We started working on OpenTest out of the realization that it was by far our best chance to succeed with test automation long term and add real value for numerous ongoing software projects. We spent quite some time looking for a tool that would be a good fit for our requirements. Here’s a partial list of things we were looking for:

  • Support for all types of functional testing, so QA teams can develop a reusable skill set and avoid decreased productivity caused by switching between tools, syntaxes and methodologies.

  • Suport for seamless distributed testing, so we can create end-to-end tests involving multiple technologies (e.g. mobile and API, mobile, web and API, etc.)

  • Permissive open source license or a reasonable license cost, so a large number of testers from internal and vendor teams can install and use it without having to go through lengthy approval processes.

  • A tool that is accessible to non-programmers, but has enough power and flexibility to cover more complex use cases.

  • A product that is scalable for teams of any size and allows geographically dispersed teams to collaborate effectively.

  • Easy extensibility, so it can be applied to solve problems we don’t know about yet.

  • Supports for mainstream technologies and practices, to allow for frictionless adoption by experienced test automation engineers.

Since we couldn’t find a tool that checked all boxes, we decided to build our own.

Why should I use OpenTest instead of building my own framework?

Hopefully we can all agree that building a good quality, full-featured test automation tool requires a lot of hard work. With OpenTest, we aimed to to solve this difficult problem once and for all by building a generic and reusable test framework that can be extended to answer all the challenges of functional testing. The outcome of this effort can now be reused over and over for any new project that comes along. We have been using this model successfully for more than two years, and we’re super excited to share this tool with the larger test automation community.

What if I need to perform a test step that OpenTest doesn’t support?

If you have a very specific need that is not covered out-of-the-box by OpenTest, you can write a custom keyword to accomplish that functionality. However, most types of complex automation scenarios can be covered by embedding JavaScript code. OpenTest has advanced scripting capabilities, powered by the Nashorn JavaScript engine that comes with the Java 8 runtime.

If you need new functionality that is not specific to your application and can benefit the larger community, you can create a GitHub issue for it and we might be able to implement it for you. At the very least, we’ll point you in the right direction.

Can the tool be used by non-programmers?

The accurate answer to this question is: yes, for most of the time. It’s always amusing (and infuriating, at the same time) to read marketing materials from various test automation tools that make the "no coding required" claim. People that have any amount of experience with test automation know that no amount of drag & drop or artificial intelligence can completely eliminate the need to write code.

We designed OpenTest in a way that minimizes the scenarios where the tester needs to write code and also reduces the complexity of the code to the point that testers can be productive with only a basic knowledge of the JavaScript language. Building a typical UI test may require no coding at all. However, some tasks require basic familiarity with programming concepts. As an example, when doing REST API testing, to validate an HTTP response, the testers must be able to write a JavaScript if statement like the following:

if (body.orderTotal != expectedTotal) {
    $fail("Order total amount validation failed!")

We believe that being able to write this type of code must be well within the grasp of any individual that is expected to do proper testing in the first place, be it manual or automated.

And, if you are a skilled programmer, do not worry - you can always exercise your hard-won skills by writing custom keywords and JavaScript code to create reusable logic that can be leveraged by your less technical coworkers.

What’s the future of OpenTest?

It’s hard to express how rewarding it is to look back to the early days and realize the progress we’ve made. The positive feedback we’re getting from the awesome community of OpenTest users further validates the fact that we’re on the right track. The tool is currently leveraged every day by hundreds of people all around the world and has become a critical asset for many internal and external teams, which is why we are committed to keep OpenTest running smoothly and continuously improve it so all these teams can move faster and deliver better results all the time. If you think OpenTest is a cool product today, you’re in for a real treat, because the best is yet to come.

Where do I get help when I get stuck?

For the time being, we are handling bug reports and assistance requests through GitHub issues. If you get stuck or think you might have found a bug, please create a new issue on GitHub and we’ll be happy to help with bug fixes and/or advice.