When people hear the word Open Source, there may be more than a few negative misconceptions. After all, we’re used to anything that claims to be “free” containing some kind of hidden cost. However, there is truly no catch with accessing and using Open Source software. Open Source usage has only been rising over the past decade; in fact, 95% of companies will be using open source by 2017. So what explains the exponential rise and incorporation of Open Source? It offers a multitude of advantages over your standard software vendor, and for our purposes ends up being a perfect match in the context of test automation. Lets take a look at the overarching benefits of Open Source for test automation
Freedom & Flexibility
The philosophy behind open source can be boiled down to one word: Freedom. Open source technologies are created without proprietary standards or formats; they are accessible by anyone, without any kind of strings attached or additional dependent purchases needed. These are not made by someone trying to sell their software, but instead a community wishing to share what they have created, with complete transparency of the source code. Here are a two reasons why having software with this kind of “Freedom” is a great thing:
- No Vendor Accountability: As a “community created, community supported” piece of software, an open source product has no ulterior motive other than to exist for your usage. When buying software through a vendor, there is a level of bureaucracy that must be dealt with (licensing, DRM, subscription/purchase legality, etc.) that is removed for the convenience of the Open Source user. In fact, to be defined as Open Source, one must meet a variety of criteria to make sure their software is completely transparent, distributable, and unrestrictive
- Customization: As an open source software creator is not attempting to force you to use their software for a particular purpose, the power lies completely in your hands; any kind of resource or value that you can derive from an open source tool is completely yours. This is why mixing and matching various open source technologies is powerful; you can create exactly what you need, instead of being forced to settle for a single program that doesn’t completely meet your requirements.
This offers a high degree of flexibility that businesses can benefit from. Using Awetest as an example, you can select from a wide array of open source tools that drive different aspects of your testing. These tools do anything from powering your mobile testing (Appium), to wrapping a simple syntax language around your test steps (Cucumber). By combining the various open source tools, an Awetest user can create the ideal testing solution for their situation.
While it may sound cliche, it is an absolute truth: the heart of open source is the people. Software built by a community, FOR their community, is something you cannot beat; the developers have made something that is up to and may exceed their standards of usage. Unfortunately, a common misconception is that there is little to no support for open source. The truth is completely contrary.
Lets take a look at the support model for Cucumber, an open source wraparound language for Ruby that simplifies the syntax of your test automation. At a base, completely free level, Cucumber offers a mailing list containing over 3,000 knowledgeable users contributing to discussions and answering questions about the software. They also offer a Community Chat, allowing a user to receive an immediate answer from anyone online. The people helping you are consummate users of the program who have likely encountered the same problem you are dealing with.
Imagine suggesting an idea for an application you are using, and within the next few days seeing it implemented. It almost sounds miraculous, right? This is often how open source software products are improved. As the source code is completely available, users who find errors can point out the origin of the error in the source code, and in some cases have it fixed immediately. Check out the Selenium commits – 5 commits on a Friday afternoon – that are made available to community immediately!
None of this is done for commercial motivation; it is purely pragmatic, to make the product more usable for the user. As the user base grows, there is a wider net to catch any sort of defects or bugs, creating a positive feedback loop: better software attracting more users, who in turn catch more errors, thus creating better software. As Linus Torvalds said, “given enough eyeballs, all bugs are shallow”.
The Price is Right
Finally, a completely undeniable trait of Open Source: IT IS FREE. Now, many arguments have been made that Open Source is not truly free, citing the cost of effort put into things such as support, maintenance, and integration as issues. However, this is no different from any kind of software purchased; without knowing HOW to use your tools, there will undoubtedly be a cost of labor in learning and implementing them properly. At its foundation, there are no purchase or subscription fees necessary; download what you need, and use it however you like.
Since day one, we’ve been driving our test automation platform, Awetest, with open source tools and technologies (including Cucumber, Ruby, Appium, Galen, and many more). Both our clients and us have found open source to be an extremely flexible and efficient way to drive test automation, and the Open Source Technologies are arguably far superior to their proprietary counterparts.