Ultimate List of Programming Projects for Testers to Include in Their Repo
You’re gonna want to bookmark this page.
How can you showcase your skills?
Think like a hiring manager.
You want a new job. A manager wants to feel confident that an interviewee is competent in their skills, has clear communication, and can problem solve.
For a junior software tester position, a hiring manager may want to see a general understanding of programming. For a Senior Software Developer in Test (SDET) position, they’re going to want more complicated projects with plenty of best practices in place.
Add projects that highlight your strengths to make it easy for the interviewer to see your skills. They don’t all need to be code based. There are plenty of no-code items that you could include in your portfolio.
Here are some semi-detailed plans for what you can add to your code repo. Keep in mind, these are examples. You don’t need everything listed here.
A personal repo is not usually a requirement to apply, but it’s a great place to clarify your strengths. It helps to fluff up a resume if you’re lacking the experience as well.
Not sure if having a repo is worth it for a tester? Read this.
Pick a project or two from this list to refresh your repo. You DO NOT need to include everything in this article. This list is organized as beginner to intermediate (more or less).
− Here are some tips before we get started
− Tutorials and schoolwork aren’t the most impressive piece to add to a portfolio
−− Do these things to make your repo stand out if you’re using tutorials
−− Try these resources for coding tutorials to learn how to code as a quality assurance engineer:
− School Projects are pretty much the same as tutorials
−− Free Academic Programming Resources
− Code Pen
−− Easy HTML and CSS Projects to add to CodePen
− Front-end testing examples
−− Front-End Testing Tutorials:
− Performance Testing Examples
− API testing examples
− Create a Very Simple Free App or Browser Plug-in
−− Twitter bot
−− Browser plugin
−− To Do List Tutorials
− Note
Here are some tips before we get started
- Good branching practices is an impressive skill. Use your repo to showcase your skill.
- Learn to write a good ReadMe. Your code has to be able to stand on it’s own.
- Commit messages and commit history matter. Commit messages are treated by a lot of folks as a brain dump, but a well maintained commit history makes it easy to revert changes if needed. It’s more important to know why the commit was made, than what the code changes are.
- Keep it clean. This repo’s purpose is to be used as a portfolio. Don’t try to apply to art school using only Crayola products. It may work for some, but they’re the exception.
- But don’t be afraid to experiment. Sometimes projects get abandoned. So long as every project isn’t half-finished, feel free to stretch your coding muscles, and try new projects.
- Depending on your career level, a repo will be judged differently. A junior is held to a different standards than a senior.
- Days active is a publicly tracked metric on GitHub and most other repo systems. It will be noticeable if you start a repo two days before an interview and copy/paste a ton of code into it.
- If you’re adding projects that you’ve already completed, spread them out to make your daily coding activity look consistent. GitHub likes regular activity. So do potential employers/clients.
Tutorials and schoolwork aren’t the most impressive piece to add to a portfolio
But if you’re a junior, or someone trying to get into the industry, they aren’t a bad option.
While you could create a large portfolio of code based solely on tutorials, the practice is frowned upon.
However, if you are capturing the work done as you complete learning projects, it shows off your personal development.
Tutorials can be used to pad out a repo, and show activity prior to you gaining confidence enough to peruse tough projects. Focus on tutorials that allow you to create semi-finished items, even if it’s very simple.
Do these things to make your repo stand out if you’re using tutorials
- Include a clear Readme. This is an extension of your resume. You don’t want a manager to become confused with how you’ve organized your work, and give up before they see it.
- Follow the tutorial, but customize it. Depending on the project, you may be able to customize options from the beginning. If the tutorial is teaching you how to make a dog walking app, follow the tutorial, but make a cat feeding app. Or follow the tutorial through, and then add more functionality.
- Combine tutorials. You don’t need a separate project for each tutorial. If you’re learning Bootstrap, create new pages on the same website to show off what you’ve learned.
- Consider your repo a bragging grounds. This is your personal space, where you get to choose what you show off. Pick projects that you excel at, and tie them to software testing if needed.
Try these resources for coding tutorials to learn how to code as a quality assurance engineer:
- freeCodeCamp — They provide free programming education, that’s better than a lot of paid alternatives. With 10 free certificate paths, that take you from beginner to adequate in necessary skills with interactive lessons. They have a dedicated Quality Assurance track, but I suggest new folks start with the Responsive Web Design Certificate.
- learn-c.org — C is not the most common language for programming automated tests for web testers, however, C is used for native applications and operating systems. It’s worth it to get a simple scripting language (Python or Ruby) and a ‘crunchier’ language under your belt.
- Code.org — This website offers a variety of tutorials and courses that are designed to teach you the basics of programming. The courses are interactive and fun, and they cover a variety of topics.
- LearnPython.org — Python is a great scripting language for web testers. This site focuses on helping folks get a solid and usable base in Python using interactive lessons.
Alternatively, you could create tutorials and post them online. One or two really in-depth tutorials, or a series of smaller tutorials is a good way to showcase your knowledge.
I always suggest new programmers blog as they learn to program. It’s a great way to reinforce what you’ve learned, while giving back to the community.
Even the most basic concepts need to be explained to someone. Don’t be afraid to capture your beginner knowledge.
School Projects are pretty much the same as tutorials
Including school projects in a repo is acceptable for a junior, but school projects shouldn’t constitute the entirety of your GitHub.
If you didn’t have the opportunity to complete programming-related school work, there are plenty of free courses released to the public. Auditing these classes is free, but you generally have to pay to receive a certificate.
If you don’t have the funds for that, no worries. Take the class and the knowledge, and add any projects that you create to your repo. Document your journey.
Free Academic Programming Resources
- Harvard’s CS50 class
- MIT’s Open Coursework is a great option
- UNSW — Sydney offers a number of free MOOCs
- Scripting and Programming Foundations from WGU on edX
Code Pen
Understanding HTML and CSS are important skills for web testers.
Prove that you understand these concepts by building small projects on CodePen.
CodePen allows you to build a small environment of HTML, CSS, and JavaScript in a browser. This means setting up to practice, saving, and showcasing your work is simple.
It’s especially useful to show off small design units, or items like navigation bars. You can build the unit in isolation without needing to build a skeleton around it.
Easy HTML and CSS Projects to add to CodePen
Any projects that are added to CodePen can also be included in a traditional GitHub repo.
- freeCodeCamp’s 300+ hour certification for Responsive Front-End Web Design includes a number of projects that could be included in a CodePen portfolio, or uploaded to a traditional repo.
- Create a Bootstrap navigation bar.
- W3Schools teaches the basics of HTML/CSS with interactive tutorials.
- How To Create An Animated Image Carousel With CSS/JavaScript
- Use these interesting CSS examples to spark your imagination and build some cool stuff.
Front-end testing examples
As a software tester, learning to write automated front-end tests is an important skill. By writing automated tests, you can save time and ensure that your tests are accurate.
There are a number of different tools that you can use to write automated tests. Selenium, WebDriverIO, and Cypress are popular tools for automated testing. These tools allow you to write tests in a variety of languages, and are open source and free to use.
Wait. There’s a couple of tricks to including front-end automated tests in your repo.
Adding Selenium or Cypress tests to your personal software testing GitHub is a great way to showcase your knowledge and skills, not just the fact that you can write code, but that you can write reusable, clean, organized code.
Automated tests can be a little tricky to set up locally due to drivers, so provide an option to see and understand your tests without needing to download and run the tests.
- Include .gifs or embedded YouTube videos in your ReadMe of your tests running.
- In your ReadMe, include detailed steps on how to install your script and run it.
- COMMENT. COMMENT. COMMENT. Comment your code, so it’s easily understood by someone who only has access to read your code.
- Organize your tests. It doesn’t matter which philosophy for test organization that you use, just make sure that you choose one and stick with it within the project.
Front-End Testing Tutorials:
If you’re writing automated tests to include in your personal repo, use the tutorials below as a framework for setting up your tests.
- Udemy has some great resources, I’ve used this particular course for using Python with Selenium WebDriver, as a blueprint to set up testing frameworks in the past.
- Run your first WebDriverIO test by following this tutorial from LambdaTest.
- BrowserStack has a tutorial for setting up and running your first Cypress tests.
What website should you test with your automation? You have a couple of options.
- Use a stable common website — such as Google. You may need to maintain and update your tests as updates as made though.
- Use a Google Form that you control.
- Use a software testing practice website, such as automationpractice.com.
Performance Testing Examples
Performance testing is an important part of the software development process. By performing performance tests, you can ensure that your application is able to handle the expected load of folks actually using the product. (Performance testing, load testing, and stress testing are different, however, this section includes tutorials for all three types.)
- JMeter Youtube Tutorial for performance testing
- Guru99’s Jmeter tutorials walk you through everything from installing JMeter to running your first tests
- Azure Load Testing tutorial
- LoadRunner + Gremlin tutorial
API testing examples
As a software tester, it’s important to learn how to write API tests. This will allow you to verify that the APIs your application depends on are working correctly.
There are a number of different ways to write API tests. How a team prefers to test their API will vary from company to company, but the basics remain the same.
There are two main ways to test APIs, via dedicated tools for APIs such as Postman, or by using an API testing framework such as SoapUI.
- (LinkedIn Learning) SoapUI for API Testing
- Use the Google Maps API with this SoapUI tutorial for beginners
- Use this two hour YouTube video to learn the fundamentals for beginning API testing with Postman
- Or check out Postman’s official learning center
Create a Very Simple Free App or Browser Plug-in
Testers need to have a firm grasp on how apps are put together, and what makes a good user experience. If you can show that you understand these concepts, it will go a long way.
The best way to do this is by creating a simple app or browser plug-in. Something that solves a small problem, or enhances an existing user experience.
Remember: tutorials are great starting points, but adding and customizing will show your skills better, & always cite the tutorial that you followed in your ReadMe.
Twitter bot
Twitter is one of the few social media sites that allows the use of bots, but make sure you’ve read the terms of service for what they allow.
- Create a simple Twitter bot in python with this YouTube tutorial
- Build a Twitter bot using the tool Vapor
- QTwitter tutorial for creating a Twitter bot
Browser plugin
- FreeCodeCamp has a quick tutorial for creating a Chrome browser extension for beginners
- A 10-minute tutorial for creating a site analytics browser extension
- Mozilla’s instructions for creating your first easy firefox plugin
To Do List Tutorials
- W3Schools — To Do List Tutorial
- Javascript to-do list tutorial for beginners
- Build a to-do list with Bootstrap
Note
I’ve tried to include the highest value tutorials in each section — this means that I purposefully chose tutorials that focus on step-by-step instruction, and ignore the beginner tutorials that are too vague. Please leave a comment if any link is low-quality, or if you have a favorite tutorial for software testers or QA automation engineers.
👉 Be sure to join Hales’ publication, the Software Testing Pipeline, to get the latest tips, tricks, and news about quality assurance and software testing on Medium.