Over the past decade, open source testing tools have sprung up to revolutionize the world of QA. Here's a list of the most popular open source testing tools available today:
- Selenium: A test automation tool that automates actions in the browser
- Appium: The mobile counterpart to Selenium used for automated testing on both iOS and Android
- JMeter: A performance testing tool written in Java
- JUnit: A unit testing tool for Java applications
- Robotium: Records UI tests for Android
- Selendroid: Selenium-based automated testing for Android
This list of open source testing tools is not meant to be exhaustive. In fact, many of them are used alongside each other. Let's look at four reasons why these tools stand out from the crowd of other open source tools. Along the way, we'll see why open source testing tools are the best foundation for your software testing.
1. Community Matters
With open source tools, the single biggest factor that can go for or against any tool is the developer community supporting the tool. The more the tool is adopted by developers or organizations, the more secure, stable, and mature it will be. Just one look at the GitHub pages of each tool tells their stories. Selenium, for example, is one of the most active open source testing projects out there. Its GitHub page shows thousands of "stars," "forks," and "issues," and hundreds of contributors and releases. Similarly, a search on Docker Hub shows millions of downloads for the various Selenium container images. This shows the kind of traction Selenium has among Docker users and is another way to spot a reliable open source tool-It's widely used with other open source platforms that matter.
The GitHub pages of other projects like Appium, JMeter, JUnit, Robotium, and Selendroid also tell extended tales. All have lots of committed users and are buzzing with activity. These are the kinds of tools you want to leverage as you turn to open source testing.
2. No Vendor Lock-In
The confidence of knowing that you're committing to an open standard and not a vendor-created one is essential to enterprise software delivery. Typically, enterprise apps have a lifecycle that spans years and even decades. They adapt with changes in the technological landscape. If they're to stand the test of time, they need to be built on open standards, not proprietary ones.
This is why it's important for the industry to standardize and approve of a handful of open source tools that they commit to, and make sure it works for everyone. The tools listed above, especially Selenium and Appium, are great examples of testing tools that the industry has reached consensus on. You'll find there isn't just one vendor supporting these tools, but multiple vendors. You can download and set them up on your own in your datacenter if you want, but most organizations find it's not a good use of time or resources and opt for a managed service. When going with a managed service, you can be confident that you're not getting locked into the vendor's standards, and you can make changes at a later point without having to throw away all your investment in the platform.
3. Customizable and Extensible
If you commit to using a platform for many years, you need to be able to customize it to suit your requirements. There will always be unique features that your company needs that aren't provided out of the box by the tool, and in these cases, you need to be able to build a solution yourself or adopt one from the community.
This is why the leading open source tools provide extensions, plugins, samples, custom commands, and performance tweaks to make the tool your own. Some of these can be found on vendor-maintained properties like their websites and GitHub, and some are available from user blogs and forums. Even if you're not able to find a solution in one of these places, you should be able to build your own solution easily. For this, you need adequate resources like extensive documentation with a section on how to customize and extend the tool, and even user guides that give you a step-by-step breakdown of how to create an extension.
4. Cross-Platform, Cross-Language
Software testing in the enterprise is complex because of the variations in programming languages used across teams, and numerous platforms to support. The testing tools you use should be able to cater to the needs of all these teams and should work on multiple platforms. Selenium, with its numerous avatars like Appium and Selendroid, is a great example of how open source testing tools can be versatile. It covers testing for web apps, and any type of mobile app-native, web, or hybrid. Additionally, Appium has bindings and client libraries for pretty much any programming language you use.
We started this post talking about how these open source tools have thousands of active contributors, and millions of downloads. One key reason is that they support so many platforms and technologies that their adoption is widespread across organizations of every size and type. It's a virtuous cycle of having broad support for technologies, which leads to mass user adoption, and in turn, even broader support as technologies change and evolve.
It's a myth that open source is simply a cheap solution. Today, open source testing tools are driving innovation, and are the most mature solutions available. Anyone serious about QA won't ignore this breed of powerful tools. They have huge global communities supporting them, are built on open standards, are customizable to suit every need, and work on pretty much any platform. Plus, you can access them easily through a test grid like Sauce Labs, which provides automated testing on multiple open source frameworks. What's not to love?