Tour of Quality in Agile World

Welcome aboard on the QA tour!
Today we are going to explore the various sights and attractions of Quality Assurance such as Agile testing, automation, test failures and much more.

Before we begin, let’s recap the Agile manifesto –

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
Let’s go!

sight 1 : The Big Picture

Before we dive deep into Quality, lets see the big picture – where does it exists within the organisation. Quality has evolved and taken various shapes since a couple of decades but the fundamental objective has not changed : user satisfaction.

Software Engineering: A Practitioner’s Approach by Roger S. Pressman
[chap 14 : Quality Concepts]

One can look at testing as : “Art of Evaluating User Satisfaction”

sight 2 : Agile Testing

I assume everyone is aware of the traditional ‘Waterfall’ testing approach.
so … what makes ‘Agile’ different?

  • There is no phase – but a continuous iterative testing. Testing begins before development : being a stakeholder in project meeting, creating canonical acceptance criteria and providing early feedback.
  • Tester focuses more on the “working software with lean documentation and has a business outlook with user satisfaction in mind.
  • Agile enforces the tester to adapt to new technology due to its 4th value : “Responding to Change Over Following a Plan. The testing team takes the burden of regression, retesting same functionality again. Tester can easily overcome this using automation and strategies.

sight 3: Testing Strategies

Before testing begins, it’s always a good idea to keep an eye on the current test pyramid. It helps to provide a better estimation.

  • Strategies vary from one story to another.
  • Profiling business customer helps with better strategy. Sometimes in order to understand pre-testing configuration and data needed for certain test scenarios, testers need to wear the customers’ hat.
  • Testers are smart enough to decide on strategies, for example :-

– Story contains : business logic + development – Exploratory, Regression, E2E– Addition of ‘middle name’ in business flow – Checking unit tests and testing the API– Hotfix deployment – Hotfix testing & Sanity automation
– Investigating customer related tickets – Manual testing
– Server upgrade – Load testing to capture baseline thresholds of various components.
…  many more  http://www.softwareqatest.com/qatfaq1.html#FAQ1_10

There are processes from traditional testing that are still needed :-

  • Following defect life-cycle 
  • Creating summary report & bug traceability matrix.
Jira dashboard

sight 4: Automation and Tools

Automation itself is quite vast and needs a dedicated tour, but here are some key takeaways –

#Basic Information

  • Test automation helps the product to achieve stability and faster delivery.
  • Just to be very clear – “100% automation is a myth”. Aiming for this is a huge waste of resources and time. Manual testing is necessary. Our CTO has given us a precise and simple view

“Human attention is the most powerful organising force in the known universe. We *must* use it to imbue our product with human qualities, not to check the correctness of software, something that can be trivially checked by a compiler, unit tests or a QA automation suite.” 

  • So what exactly is automation in testing? It is mostly focused towards Regression testing. Test coverage report and time taken are the key criteria for success of a good automation test suite.
  • Test audits are equally important for a healthy regression suite along with scripts. If ownership exists within the team, it is an optional step.

#Technology

  • The testing automation stack depends on the dev’s stack. 
  1. If development team uses c#, test framework created should be on c#. It has its own benefits in the long run.
  2. For devices, Java is an obvious choice due to Android (This might change in a few years due to Fuchsia OS using Dart). 
  • Maintaining a testing framework requires efforts – library creation, refactoring similar test scenarios, 3rd party integrations, etc.
  • At Shaadi, we adopt new technologies and paradigms as well as functional programming using NightWatch.js.
Zoom image.png
Codeless tesing using Katalon Studio
Zoom image.png
Object Oriented Programming using Java [Android + IOS] 

#Big Picture
The final piece to make a successful test framework : integrate it with CI-CD [continuous integration – continuous deployment].

Zoom image.png
Jenkins’s User Handbook

sight 5: Quality Failures

Till now everything sounds great, we have Agile testing, automation, strategies — and yet failure occurs, and below are a few of them. 

  • QA team not being a part of project kickoff.
  • Lack of ‘lean’ documentation from all stakeholders in an Agile team.
  • Lack of training and the skill-set required for automation.
  • Testing pyramid is in poor shape.

…. and finally this

Trust me I am an Engineer!

Tour ends! Thanks for reading 🙂