QA from A to Z: How Sensibill builds flawless receipt management

Sensibill
Sensibill
Sep 6, 2018 · 4 min read

By Arindam Bhadra, Quality Assurance Manager at Sensibill

Fast paced software development is vital for startups. This often means that early-stage startups don’t invest in a QA team, leaving developers to do the testing themselves. Zuckerberg famously said, “Move fast and break things.” Well, as Sensibill’s QA Manager, I’d like to propose a slight twist: “Move fast and have the QA standards in place so that things don’t break”. It’s not quite as catchy, but you get the idea.

At Sensibill, we work with some of the biggest banks in the world, which means having flawless quality assurance in every stage of our development lifecycle is a priority.

What is Software Quality Assurance?

I like to say that a QA ensures that all the components of a software behave like they are expected to behave and none of them behave like they shouldn’t behave (for all combinations, of every scenario, and all possible states of the whole system)… Did you get all that?

In simpler terms, software quality assurance means defining processes to attain an error-free end product. To achieve this, it’s key to have the QA team involved in each step of the software development lifecycle.

Shift Left Testing

People think of a QA analyst as someone that just bashes software till they find a bug. But at Sensibill, our QA analysts are bug preventers–not just bug detectors. The earlier you catch a bug, the fewer the resources required to fix it. Therefore, it’s important that QA tasks are performed early in the development lifecycle. This is commonly referred to as Shift Left Testing (as in, testing that happens on the left side of the project timeline).

Shift Left Testing encourages collaboration between QA analysts and other team members like business analysts, designers, developers, and DevOps. This helps ensure that from the beginning, everyone is thinking of the product from the perspective of the small business owners and self-employed professionals that use our solution.

Source: IBM Sciences Institute

So, what does a QA analyst do at each of these stages?

1. Requirements and Design Analysis

The role of the QA in the Design Phase is to harden the requirements by asking the right questions: “why?”, “what?”, and “how”? There’s a lot to think about during this phase, such as foreseeing integration or authentication issues, end user experience, positive flows, backwards compatibility, and so on.

QA analysts are responsible for advocating for our users, as well as planning for edge cases — for example, what happens when there’s irregular user behaviour, a user changes the timezone, a field has an abnormally long value, or invalid data is entered? Many bugs in a software are due to incomplete, inaccurate, or ambiguous requirements. The QA’s job is to make sure those bugs are caught before they become a problem.

2. Implementation and Testing

Here at Sensibill, QAs collaborate with developers and provide test cases in advance so that they know what the developed product is going to be tested against. Some of the things which we keep an eye out for are localization, accessibility, data accuracy, security, or negative cases.

Once the features are implemented, the QA team executes the prepared test cases and also performs exploratory testing. We proactively inform the team of critical issues. Since Sensibill’s main product is receipt capture and processing, a significant aspect of our role is testing various types of receipts and their possible different content.

Receipts can vary a lot, but here are some of the receipt conditions we have to test for:

Sensibill 2018

All these tests have to be performed on different platforms, operating system versions, different screen sizes, and on different versions of the API. At the same time, it’s important to always think about the big picture and try to create a delightful experience for the end user.

3. Maintenance

Even once the software has been rolled out to clients, the QA team remains involved. This could involve providing support to clients or diagnosing issues reported by end users. We test each new version of software that’s released, but, because it’s impossible to test for every version of every device, there are rare times when issues slip through. In those cases, we provide our clients with hot-fixes to get things back on track as soon as possible. To reduce the risk of errors, we run automated tests on as many devices as possible using a third party real device farm service.

Having a dedicated QA team is an investment, but it always pays off down the road. By involving our QAs in the full development lifecycle, Sensibill saves time, money, and (most importantly) ensures our clients and end-users never need to worry.

Want to join the team? Check out our careers page for QA openings and more!

Sensibill

Written by

Sensibill

A market-leading digital receipts solution brought to you by machine learning junkies.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade