Infobip Engineering Handbook
Start HereJoin Infobip EngineeringBack to Infobip.com
  • Start Here
    • Infobip At A Glance
    • What We Believe
    • Infobip Engineering Timeline
  • Become A Better Engineer
    • Are You Bored At Work?
    • Steep Learning Curve
    • Freedom To Choose Your (Engineering) Hammer
  • Tech Stack & Architecture
    • The Scale of Our Systems
    • Platform Architecture
    • Observability For Quality
  • How We Code & Deploy
    • Development Flow
    • Testing (And The Freedom To Choose Your Tests)
    • Troubleshooting
    • Incident Management
    • Deployments and Disasters RPG
    • Engineering Enablers
    • A-Team
    • Collaboration Tools
  • Engineering Culture
    • Engineering Principles - In Practice
    • How Growth Impacts Infobip's Values
    • Culture of Approachability
    • Paid Interventions
    • How We Improve Our Culture
    • Employee Feedback Process
  • Key Processes
    • LeSS
    • OKRs
    • One Backlog
  • Self-Managed Teams
    • You Build It, You Own It
    • Examples of Infobip Teams
  • Community
    • Student and Youth Programs
    • Engineering Insider
    • Dev Days Conference
    • Meetups
    • Writing for Engineers
    • Publishing your ideas
    • ShiftMag
    • Hack Days
    • Startup Tribe
    • Infobip Shift Conference
  • Career Development
    • Career Development
    • Switching Positions
  • Benefits
    • Benefits Overview
    • ESOP & Bonuses
    • Engineering Education Budget
    • Learning & Knowledge Sharing
    • Attending Conferences (And Speaking At Them)
    • Good Hardware
    • Vacation & Well-being
  • Hiring & Onboarding
    • Hiring Process - Step by Step
    • Your Onboarding Plan
    • Engineering Onboarding Program
    • Referral Program
  • A Day In The Life - At Infobip
  • An Engineer's Log: No Such Thing as a Typical Day
  • 😊Join Infobip Engineering
  • Impressum
Powered by GitBook
On this page
  1. How We Code & Deploy

Testing (And The Freedom To Choose Your Tests)

PreviousDevelopment FlowNextTroubleshooting

Last updated 3 years ago

Like the , the same applies for the types of tests used. Each team picks, defines, writes and conducts their own tests. E.g., a team developing an API backend can write in their programming language, framework and tooling, and write tests in that particular ecosystem.

Backends written in Java can use:

  • AssertJ library for writing assertions;

  • JUnit for unit tests;

  • SpringBootTest framework and Mockito testing framework for mocks for integration tests;

  • Test containers or any other tool of choice you have in your arsenal.

Other languages can use their specific testing libraries and frameworks.

However, you're not alone in all of this. Providing quality service to our customers is one of Infobip‘s top priorities. We've got you covered in two different ways, one where you can help yourself, and another where we help you even further:

  1. The CI/CD pipeline: When you create a change in code that you covered with tests, new version of your service is built inside Jenkins only if your tests pass. And once you have a proper release version, it is deployed on our proprietary Deployment Manager tool. There your service will be deployed via Canary deployment procedure - only allowing partial traffic to flow into your new instance and reverting the deployment if it encounters errors. Deployment Manager can also run smoke tests and optional pre- or post- deployment hooks for any custom testing or service logic you require. All this exists to safeguard you from deploying a faulty service to our test environment, and after that, to production.

  2. We went so far to even create a department called Quality RA (more on Requirement Areas on organizational structure part) which helps when things get hairy. Teams within Quality RA have specialized skill-set for quality control and test automation while also having vast knowledge about Infobip platform in general. They perform testing and write automated end to end tests to cover that the core product functionality works as intended on every change.

Having various test steps throughout your deployment flow shows how serious we are about quality. From static code analysis, unit and functional testing, through end-to-end and stress testing, all the way to disaster recovery testing - we do it all. And you are covered every step of the way.

freedom of choice for technology for our teams