WHO WE ARE
Information technology is the fastest moving industry and software is becoming more complex than ever. Optimum quality can only be achieved with appreciation of the underlying technological components. Black-box testing is ineffective and dying. Testing after development has been completed de-rails the core essence of Agile methodology. Lack of technical knowledge/skills within QA team leaves a lot of blind spots untested. Fullstack QA is built on modern industry standards and trends of software development. We want QA teams to help deliver working software and not act as regulatory body. We are a group of passionate technically experienced testing professionals, who ensure they understand the core technology stack very well and use that knowledge to test properly and faciliate continuously delivery.
HOW WE WORK
Understand the client
We don't believe in one size fits all. We spend time understanding the customer, their needs, their processes and how we can add value.
We respect client customs, environment, tools and processes; we always strive to improve on what client has achieved.
With QA consulting service, our consultants embed with client teams and work directly under their leadership as one team. Even when we do outsourced work, we still work with development and BA teams in a spirit of creating oneness.
360 degree review
We believe in constant improvement and we keep on reviewing our work to ensure we deliver values.
- queue overflows, de-queuing, endurance
- short circuits
- log circulation,
- http request/response interceptors
- facades, error/exception propagation
- batch chunking, re-processing
- multi threading, racing, deadlocks, runaways
- DB changes (backward, forward compatibility), replications, migration
- infrastructure as code
- transactions, sessions, load balancing
- fronend performance
It is important QA speak the same technical language. From front end technologies, to backend, middleware and infrastructure, we ensure we know the ins and outs. A deep technical knowledge allows QA to address issues not resulting directly from requirements/acceptance criteria but from knowledge of the underlying technology stack, dependencies and flows.
It is usually the effect of one process/functionality/feature/state/data that results in malfunction of another that results in critical defects in production. High value defects are found by QA who have solid knowledge of the product. This allows them to create complex scenarios and anticipate interactions, dependencies, flows, data, states, etc. Testers with poor product knowledge tend to uncover obvious defects, with critical ones escaping to production. Sound product knowledge is essential part of our fullstack QA approach and we start building this from day one; usually by pushing our way to be involved from the very beginning. We don’t buy the concept of “we don’t need QA at this stage because there is nothing to test”.
From day one of the project we start laying the foundation for continuous testing. It is vital that developers focus on implementing new features without the fear of breaking existing functionalities. Continuous testing puts in place all the necessary tools to ensure the product is tested by the whole team, thoroughly and throughout the day. Rather than spending effort on regression testing, we focus on ensuring no existing code is broken before developers can merge their code.
We focus on delivering working software as opposed to rigid testing processes that hinder development. We put in place tools that will be used by the whole team, not just for test team because quality assurance is a responsibility of every body. We measure progress by smooth releases, ideally every week if not daily! Back and forth test and fix cycles between dev and QA team is a thing of the past. We work with developers to ensure all tests have passed before they declare work complete, we call it Dev-QA pairing.
Multi layer automation
Fishermen do not use the same net to catch all types of fishes or sizes, yet for many organisations, automation centers around Selenium/Webdriver, which can only be compared to monolithic application, that is fragile, ineffective and difficult to maintain. We break automation into different layers, starting from unit, functional, integration and end to end. We also apply a lot of abstraction and re-usability throughout.