Hi, I'm Vitaliy!
And this is the story of my testing journey, my first experience with Clojure, and some tips for beginners
SEPT.23.2022
ABOUT ME
Coffee lover
3
Fan of handy tools for testing
1
Ghost rider
2
A philomath — lover of learning new things
4
"First do it, then do it right, then do it better." This quote by Addy Osmani could be a good motto for the testers division.

Anyway, that's how I see my mission as a QA engineer.

Full of challenges and aha moments, the tester's career path is something worth stepping on. Here I want to share my thoughts on how to do it with joy, what tools to use, and more.

3 COMMON MYTHS ABOUT QA TESTERS

Let's start with 3 popular myths and misconceptions about software testing, and try to bust them.
Myths about QA enginners><meta itemprop=
Even without a tech background I can finish a 1-month training course and get into IT become a QA guru

Demythification: no you can't unless you are a genius
Perseverance and patience are the most important soft skills for the tester

Demythification: much more important, though, is sincere curiosity and willingness to learn
There's no room for creativity — QA testing is sooo boring!

Demythification: to be a good QA engineer, you have to find individual approaches and develop test cases that make certain both business requirements and user needs are met it's definitely not boring and requires a lot of creativity
If you're passionate about exploring software development, diving into processes, and want to improve your critical thinking skills — software testing is exactly what you need. Take your time, stay enthusiastic and let's start the journey!

HOW TO BECOME A QA TESTER OR LEAVE THIS IDEA FOREVER

Warning
Testing is not about Ctrl+C/Ctrl+V of test examples from the first Google search result. You need a deep dive into how one or the other technology is working under the hood.
The time will come when you will ask yourself, which side of the QA force to choose? The light one — to think holistically about architecture, and entities, harnessing peace and calm? Or stay on the dark side, breaking things developed and being up to tricky things missed by devs?

The truth is that with all the skills and holistic mindset, you still have to be kind of a rebel not to lose sight of risks, bugs, and others.

Here is the moment of glory: missed by dev, a corner case is caught by you. Thus, a critical error is detected. You prevent a bit of a headache. The apocalypse is canceled. Are you ready to become a superhero? :-)

Thus, in the world of QA engineering, you will be both creator and destroyer. All for a good cause — to create a superb product and shape the best customer experience.

Important point: don't start chaotic learning of anything and everything. Set a goal.

For example, you want to be good at API testing.
Aha moment: 'I want to test APIs like a pro!'
Make the checklist on what to study
Spend a week/month/time you need, studying selected topic
Prepare a breakdown of each method of API testing
Read step-by-step tutorials/watch videos about test cases and methods you are interested in
Try it in practice
PS: Here is the trio of books I'd like to recommend both for beginners and experienced quality assurance specialists to look at QA testing from a new angle and find interesting facts you didn't know.
books for QA testers what to read><meta itemprop=
«How Google Tests Software»
by Jason Arbon, Jeff Carollo, James Whittaker
«API Testing and Development with Postman»
by Dave Westerveld
«Beautiful Code: Leading Programmers Explain How They Think»
by Andy Oram and Greg Wilson

QA TOOLKIT: MY TOP TOOLS FOR TESTING AND NOT ONLY

VS Сode is a code editor with support for development operations, including debugging, task running, and version control. If I need to write any script for automation I immediately open it and enjoy the process.

PS: Lately, I've been mostly working on my laptop, and Visual Studio Code doesn't overload its system with 'heavy' processes (IDEA which I've used before froze sometimes).

Apache JMeter
JMeter is my load testing must-have. It may be too old school for someone, but for me, it's the basis. If you deeply understand how to write load tests in Apache JMeter, soon you can shift to k6 or its analogs (there are quite a lot of them).
MySQL Workbench
Almost simultaneously with Visual Studio Code, I started – by pure chance – using MySQL Workbench, the graphical visual database design tool. Once my laptop randomly turned off 5 times in a row because of an incompatible VS Code extension. So I decided to use a standard DB management tool and didn't regret it 😀
Jira
Jira is just the best management tool. With this software, it's pretty easy to:

  • describe the bug
  • set an assignee
  • add all necessary materials allowing developers to fix problems quickly
Postman
When you need to send requests to a couple of endpoints with no further automation, Postman will come in handy. I always use it for quick API testing, enjoying its simple and elegant UI, useful guides, and clear documentation.
TestRail
TestRail is the top test case management tool including everything you need to streamline your testing processes. It offers a number of test planning tools and various options for performing manual testing. One more nice bonus — you can integrate it with Jira.
Node.js|NPM
Well-known Node.js doesn't require a presentation. Fast, high-quality, trustworthy, and easy to maintain. I use npm as the package manager for Node which aids in package installation, version management, and dependency management.
ReportPortal
ReportPortal is a tool for autotest results visualization. It acquires, aggregates, and analyzes test reports with AI-powered technology and helps testers save a lot of time. ReportPortal is free, open source, and easy to integrate.

TESTING CLOJURE PRODUCT: CHALLENGES AND SOLUTIONS

I'll say right away that my first experience with Clojure was not very smooth.

Unusual syntax, macros,
and rollbacks which at first glance seemed to be something too complicated.

Since it was my first Clojure project, the first steps were to get acquainted with the documentation, analyze requirements and write user stories.

Next, our QA team faced quite a task: together with the dev team we had to choose the testing strategy that will reduce the regression test suite (by covering all the vital functionality with autotests).

By the way, a little bit about the project.

It's a Biomedical Data Science Platform (NDA) providing software for pharmaceutical companies and laboratories that analyze biomarkers needed for meds synthesizing and disease research.

I worked on test parameterization and improving the reusability of test scripts, which allowed developers to quickly check test results and work closely together.
Clojure QA Engineer><meta itemprop=
In fact, there is not much difference in QA testing methods and practices used for Clojure products and software written in other programming languages.

Unit tests, integration tests, e2e tests — everything is at your disposal. You can test with or without mocks or stubs. There are specific code coverage tools, linters, and other nice things from the gentleman's QA bag.

Some interesting points I've mentioned:

✅ Running tests on the JVM. For example, Health Samurai uses JVM for unit testing to minimize execution time and test frontend code quickly and cheaply. I like to adopt this strategy.

REPL. REPL Driven Development or, to be exact, REPL-Like Driven Development becomes a common practice for different languages. But Clojure as a Lisp-family language is about a fully-featured REPL, all-wheel drive REPL, REPL as a core idea. Clojure is true a REPL and I enjoy this experience a lot.

✅ Hot Reload. Automatic reloading of code during development is one more great thing. Debugging by using Hot Reload is something worth trying.

    It was one of the projects where we succeeded with the implementation of the testing pyramid concept promoted by Mike Cohn.
      testing pyramid Mike Cohn><meta itemprop=
      This pyramid includes the following stages: Unit Tests, Service Tests, and User Interface Tests on the top. It visualizes the principle of grouping software tests into buckets of different granularity. More high-level = fewer tests. Next time I'll tell you about it a little bit more.
        Do you like to bust myths?
        We at Freshcode LOVE it!
        That's where it all started.

        LITTLE BACKSTAGE STORY

        My typical workday is pretty simple. It starts with fresh lemon water with mint and the outdoor workout (jogging, jumping rope, etc) in the early morning.

        Then, after checking work email, Jira, Confluence, and work chats,
        the story begins. Jira tasks, Trello tickets, tests, bugs, video meetings, and evening reports — you won't get bored :-)

        And, finally, a walk along the evening park or illuminated central streets to gather thoughts and inspiration for the next workday.
        Vitaliy Mihaylyuk QA Engineer Freshcode><meta itemprop=
        Besides the professional self-development, I have three dreams:
        Set a new Guinness World Record
        but haven't decided which on
          Achieve 350km/h on a motorcycle
          because 250km/h mission is already done
          Share my knowledge with people systematically
          maybe I'll start my own blog, who knows
          I like to learn new technologies and share this knowledge with the team. Hope I'll have more time to do it.

          I am always ready to have a little talk QA or answer your questions on Linkedin. Or welcome to my Instagram page to find new posts about testing and share content you like.

          Keep in touch!

          What happens after you fill this form?
          Our representative will contact you within one business day
          We sign an NDA to keep your ideas confidential
          You share essential requirements with us
          Our analysts and developers estimate the budget and timeline
          Shall we discuss your idea?
          THE MOST popular POSTS