Originally authored by Rahul Parwal [https://testsigma.com/blog/open-source-for-testers-what-where-who-why-when-and-how-5w1h/]
The open-source movement has become the most talked-about topic in the tech industry for the past two decades. We see a huge demand, inclination, and adoption of open-source software by organizations as well as software workers. This quest for open source will only grow with time, and as testers, this opens up an array of opportunities for us as well as testing and tech communities.
In this article, I have condensed my thoughts on Open Source for Testers. I will discuss Open Source using the 5W1H (What, Where, Who, Why, When, and How) approach.
In terms of etymology, Open Source is composed of two words, Open, and Source. “Open” is a synonym for available, accessible, and transparent. “Source” stands for the source code or design.
In short, Open Source is any solution/program/project whose source code is freely available for use or modification from the original design. Open-Source solutions come under various licensing models which define the detailed terms for adoption, use, reproduction, and distribution.
i. In open source, a community or a group of people work together to achieve a common goal and share the output (updates/enhancements) back with the community.
ii. You might have already worked on open-source solutions even if you are a newbie. It’s everywhere and growing rapidly. Examples include:
a. Operating Systems
ii. RedHat Enterprise Linux (RHEL)
b. Programming Languages
c. Code-Based Automation Libraries
d. No Code Automation Tools
“Open Source is a development methodology.”
The following are some of the areas to watch out for if you are interested in knowing, learning and contributing to Open-Source:
i. Open-Source Communities
ii. Open-Source Projects
iii. Open-Source Organizations
iv. Open-Source Mailing Lists / Forums / Discord Groups
“The power of open source is the power of people. The people rule.”
A major reason for people’s enthusiasm for open-source contributions is the freedom that it gives them to work at their own pace and convenience. It can also be viewed as a passion project, hobby, or educational pathway.
“Open Source can propagate to fill all the nooks and crannies that people want it to fill.”
Hopefully, you have already grasped the basics of open source and its presence in the tech/testing industry. We will look at some of the interesting prospects opened up by open source for testers:
i. Opportunity for Everyone: From beginners to experts, the open-source world always has something for you.
ii. Collaboration: Working on such initiatives will require you to collaborate with people from different backgrounds.
iii. Practice your skills: Learning a new skill/technology? Not sure where to practice/test them? Start with any open-source project and practice your skills. If you are a programmer, pick any feature/bug and try to add your implementation to it.
iv. Contribution Opportunity: If you fix any bug or implement a new feature, you can directly send a pull request to the maintainers and be an active contributor to that project. The opportunities for participation are not limited to coding, we will discuss other aspects of this in the later sections.
v. Learning Opportunity: Open-source communities are full of experts and talented community people. If you go there with an open mind, you will learn a lot.
vi. Know about the state of the art: Open-source projects tend to use state-of-the-art solutions that provide opportunities to learn some of the most recent tech skills.
vii. Building your portfolio: As you begin your contribution journey, you will soon accumulate a nice portfolio of your contributions.
viii. Networking: Networking is often an ignored aspect of such initiatives. Nevertheless, it could open you up to many opportunities.
“Once open source gets good enough, competing with it would be insane.”
Thanks to the digital revolution, open source is no longer exclusive to a small group of people. Instead, you will find a wide variety of people from all over the world.
a. In the Open-Source world, there are many contributor roles. Typical Roles are as follows:
i. Developers / Programmers
iii. Automation Engineers
b. Similarly, contributor personas are also very diverse. Some of the common ones are:
i. Working Professionals
ii. Job Seekers
iii. College Students
“In open source, to really do something well, you have to get a lot of people involved.”
Once you understand the What, Where, Who, Why, and When, the most important question is HOW to start with the Open Source World?
Here are a few starting steps and checkpoints that will assist you in getting started with Open-Source:
Learn and get familiar with Git and Github:
i. Git is a source code versioning system. It will help you to collaborate on the source level. Git is used for source code versioning & collaboration in nearly every open-source project I have seen. Those new to Git can find a number of good tutorials on YouTube / Udemy to learn the basics. Go for it!
ii. Github is the most popular cloud-based code hosting repository which is used for the majority of open-source projects. It is quite simple to use and understand the GitHub UI, documentation, and guide.
Identify your Contribution Opportunity: As we discussed earlier, everyone has an opportunity to contribute. They can be seen under two major categories:
a. Coding Contributions: This will include contributions that would require you to work on the source code. This might be something you should take a look at if you are good at programming. You can contribute towards:
i. Product Features
ii. Bug Fixes
iii. Scripts for Unit Tests, CI-CD, etc.
b. Non-Coding Contributions: You don’t always need programming experience to contribute. One of my first contributions was adding documentation and reporting bugs. It was greatly appreciated and gave me the confidence to work more towards open source. If you’re a first-timer or not sure where to begin, you can always contribute towards:
iii. Raising Issues, Retest them, Providing feedback, etc.
Typical Flow for Contributing:
i. Learn about the existing implementation
ii. Modify / Add Something
iii. Get it Reviewed, Send a Pull Request
iv. Get Feedback
Positive feedback will most likely result in your Pull Request being accepted. Otherwise, you will most likely receive comments for improvement. Eventually, once your pull request has been reviewed and accepted, you have made your first contribution.
Take Initiative: You don’t have to always wait for someone to guide you on where to start. You can take initiatives and contribute to:
i. New Features
ii. Bug Fixes
iii. Updates to Existing Features
Hopefully, you now have a good idea of how to get started as a tester with open source. If you are a complete novice, here are some tips from my personal experience:
i. Start with small issues
ii. Build your confidence
iii. Have a Learning/Accountability Partner
iv. Have a Mentor
v. Get familiar with codebase/source
vi. Know that this is a journey and not a destination.
vii. Remember, there is always something for beginners.
viii. Coding is not the only area for contributions. You can do non-coding contributions too.
I hope this article helped you learn more about the various possibilities that open source has for testers!
“In real open source, you have the right to control your own destiny.”
Happy Testing! Happy Exploring! Happy Collaborating!
Top comments (0)