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 a long time looking for a tool that would be a good fit for our needs. 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 the loss of 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 + API, mobile + web + 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 is also flexible and powerful enough to cover the more complex use cases.

  • A product that scales well for large teams and allows geographically dispersed teams to collaborate effectively.

  • Extensibility features, so it can be applied to problems we don’t know about yet.

  • Support for the mainstream test automation practices, to allow for frictionless adoption by experienced test automation engineers.

We just couldn’t find a tool that checked all the boxes. We had many failed attempts to compromise on some of those criteria in the past, so we decided to do things differently this time. Three years later, we are very happy with the decision we made.

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. By reusing this effort your test automation engineers can focus on writing tests instead of reinventing the wheel.

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 an embedded JavaScript engine.

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?

The positive feedback we’re getting from the awesome community of OpenTest users suggests that we’re on the right track as far as the vision and design of the tool. OpenTest is leveraged every day by hundreds of testers all around the world and has become a critical asset for many internal and external teams, which is why we are committed to keep it 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?

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