anchor
Freshcode
  /  
Insights
  /  

QA's Notes: My Toolset, Testing Myths, and First Clojure Project

QA's Notes: My Toolset, Testing Myths, and First Clojure Project

Last updated:

September 23, 2022

7 min read

Technology

By
No items found.

Contents

See more

This is some text inside of a div block.

Hi, I'm Vitaliy! And this is the story of my testing journey and my first experience with Clojure + some tips for beginners.

TL;DR
  • Three QA myths debunked: (1) you can't become a QA guru in 1 month without tech background, (2) curiosity and willingness to learn matter more than patience, (3) QA requires creativity—developing test cases and analyzing user scenarios isn't boring
  • Essential QA toolkit: VS Code (scripting/automation), Apache JMeter (load testing), MySQL Workbench (database management), Jira (bug tracking), Postman (quick API testing), TestRail (test case management), Node.js/NPM, and ReportPortal (autotest visualization)
  • Testing Clojure differences: uses JVM for fast unit testing, REPL-Driven Development (fully-featured REPL is core to Clojure), and Hot Reload for debugging; otherwise standard methods apply (unit, integration, e2e tests)
  • Successfully implemented Mike Cohn's testing pyramid (Unit Tests → Service Tests → UI Tests) on biomedical platform project; worked on test parameterization and script reusability for faster developer collaboration
  • About me

    icon
    Fan of handy tools for testing
    icon
    Ghost rider
    icon
    Coffee lover
    icon
    A philomath — lover of learning new things

    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 is the path worth stepping on. Here, I want to share my thoughts on how to do it with joy, what tools to use, and more.

    Three common myths about QA testers

    Let's start with three popular myths and misconceptions about software testing and try to break them.

    icon
    Even without a tech background, I can finish a 1-month training course and become a QA guru

    Demythification: no, you can't (unless you are a genius)
    icon
    Patience are the most important soft skills for a tester

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

    Demythification: to be a good QA engineer, you have to find individual approaches, develop different test cases, and analyze various user scenarios — it's not dull at all and requires a lot of creativity

    If you 1. are passionate about exploring software development and diving into processes 2. 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 os working under the hood.

    The time will come when you 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 and delving to tricky issues missed by developers?

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

    Here is the moment of glory: missed by devs, a corner case is caught by you. A critical error is detected. You prevent a headache. The apocalypse is canceled. Are you ready to become a superhero? 😎

    In the world of QA engineering, you will be both creator and destroyer. And all for a good cause: to create a superb product and shape the best possible user 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.

    icon
    Aha moment: I want to test APIs like a pro!
    icon
    Make a checklist of what to study
    icon
    Spend a week/month studying the selected topic
    icon
    Prepare a breakdown for each method of API testing
    icon
    Read step-by-step tutorials or watch videos about test cases and methods that interest you
    icon
    Try it in practice

    P. S.: Here are three books I'd recommend for both beginners and experienced specialists to look at QA testing from a new angle and discover interesting facts you might not have known.

    books for QA testers what to read
    1
    «How Google Tests Software»
    by Jason Arbon, Jeff Carollo, James Whittaker
    2
    «API Testing and Development with Postman»
    by Dave Westerveld
    3
    «Beautiful Code: Leading Programmers Explain How They Think»
    by Andy Oram and Greg Wilson

    QA toolkit: my top tools for testing and beyond

    QA toolkit
    visual code studio
    Visual Studio Code
    VS Сode is a code editor supporting development operations, including debugging, task running, and version control. If I need to write any script for automation, I open it and enjoy the process.
    apache jmeter
    Apache JMeter
    JMeter is my must-have for load testing. It may be too old school for someone, but it's the basis for me. If you deeply understand how to write load tests in Apache JMeter, you can soon shift to k6 or its analogs.
    mysql workbench
    MySQL Workbench
    Almost simultaneously with Visual Studio Code, I started using MySQL Workbench, a 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 switch to a standard DB management tool and didn't regret it 😀
    jira
    Jira
    Jira is simply 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
    Postman
    Postman will come in handy when you need to send requests to a couple of endpoints with no further automation . I always use it for quick API testing, enjoying its simple and elegant UI, useful guides, and clear documentation.
    testrail
    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
    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
    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 seemed too complicated at first glance.

    Since it was my first Clojure project, my initial steps involved:

    1. learning documentation

    2. analyzing requirements

    3. writing user stories

    Our QA team faced a task: together with the developers, we had to choose the testing strategy that could reduce the regression test suite (by covering all critical functionality with autotests).

    By the way, here's a little bit about the project.

    It's a biomedical data science platform (NDA) that provides software for pharmaceutical companies and laboratories analyzing biomarkers needed for synthesizing and disease research.

    I worked on test parameterization and improving the reusability of test scripts, enabling developers to quickly check test results and collaborate more closely.

    In fact, there isn't much difference between the QA testing methods 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 lovely things from the gentleman's QA bag.

    Some interesting points I've mentioned:

    okey
    Testing on the JVM
    For example, Health Samurai uses JVM for unit testing to minimize execution time and test frontend code quickly and cheaply.
    okey
    REPL. REPL Driven Development
    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 & I enjoy this experience a lot.
    okey
    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 in implementing the testing pyramid concept promoted by Mike Cohn.

    testing pyramid Mike Cohn

    This pyramid includes the following stages: Unit Tests, Service Tests, and User Interface Tests at the top. It visualizes the principle of categorizing software tests into buckets of different granularity. More high-level = fewer tests.

    Do you want to break down myths about Clojure?
    Enjoy the book

    Little backstage story

    My typical workday is pretty simple. It starts with fresh lemon-mint water and an outdoor workout (jogging or jumping rope) 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 brightly illuminated central streets to gather thoughts and find inspiration for the next workday.

    Besides professional self-development, I have three dreams:

    1
    Set a new Guinness World Record
    but haven't decided which on
    2
    Achieve 350km/h on a motorcycle
    because 250km/h mission is already done
    3
    Share my knowledge with people systematically
    maybe I'll start my own blog, who knows

    I enjoy learning new technologies and sharing this knowledge with the team. Hopefully, I'll have more time for this. I am always open to a discussion or answering your questions. Contact me on Linkedin or welcome to my Instagram page to find new posts about testing and share content you like.

    Build Your Team
    with Freshcode
    Author
    No items found.

    Share your idea

    Uploading...
    fileuploaded.jpg
    Upload failed. Max size for files is 10 MB.
    Thank you! Your submission has been received!
    Oops! Something went wrong while submitting the form.
    What happens after
    you fill this form?
    We review your inquiry and respond within 24 hours
    A 30-minute discovery call is scheduled with you
    We address your requirements and manage the paperwork
    You receive a tailored budget and timeline estimation

    Talk to our expert

    Kareryna Hruzkova

    Kate Hruzkova

    Elixir Partnerships

    Our team scaling strategy means Elixir developers perform from day one, so you keep your product on track, on time.

    We review your inquiry and respond within 24 hours

    A 30-minute discovery call is scheduled with you

    We address your requirements and manage the paperwork

    You receive a tailored budget and timeline estimation

    elixir logo

    Talk to our expert

    Nick Fursenko

    Nick Fursenko

    Account Executive

    With our proven expertise in web technology and project management, we deliver the solution you need.

    We review your inquiry and respond within 24 hours

    A 30-minute discovery call is scheduled with you

    We address your requirements and manage the paperwork

    You receive a tailored budget and timeline estimation

    Looking for a Trusted Outsourcing Partner?