Agile Software Development, Testing and making Biriyani

QA . Instrumented Tests . Agile . Delivery .

VGP
Applied Agile

--

Biriyani, one of the most famous dishes. Just like how software is made, the recipe for biriyani involves different stages of cooking which need to be handled with careful observation and timely execution.

Unit Testing the Biriyani

How it would be if the observations needed at different levels of cooking biriyani could be automated / instrumented, just like how it is done for software development.

The recipe (specification) is well defined and the execution procedure is well known (Development and Dev tools) which makes it easier to identify what and all can be unit tested and instrumented.

  1. Measure the quantity of each raw material and ensure it matches the specified quantities accurately.
  2. Measure the time taken for heating the initial base (oil, spices, vegetables).
  3. Add the next level raw materials meat, curd, masala, salt and water (quantities matching to the spec. and verified by a weighing instrument)
  4. Boil it for the specified time and continuously monitor its temperature.

If test cases are failing, make necessary fixes in the cooking procedure.

If the spec. has changed, For instance, the initial preparation was planned for 5 serves whereas the new requirement is to be served for 10. Update the test cases and make necessary fixes in the initial stage itself.

By now the base for biriyani is ready and its time to do some integration testing to check whether the blend is as required.

To verify that lets assume if all unit tests were passed (if quantity of raw materials, time taken for heating and the temperature maintained is correct) then the base would have gained a particular weight, viscosity, salinity and a consistent temperature. These aspects can be assessed by instruments for the first level of integration tests.

The final integration. Since the base is ready (Unit and Integration tested), add rice (Unit tested – measure, rinse it with right amount of water) and boil it along with the base for the specified time.

Make the final Integration test by asserting the total weight, temperature of the final product against the expected total weight and temperature after the process is complete.

If all the specifications were accurate and the instrumented tests which are derived from the specs. were precise then at this stage the final product is ready to be delivered

but

there is one another aspect which cannot be verified by instrumented tests,

the Taste of the product !

It is made for a human consumer and it is better if the taste is tested by a person impersonating an end-user before it is served to the customers.

That’s what QA is all about!

With Agile demanding quicker cycles of development, frequent reassessment and adaption of design changes (responding to changing requirements) instrumented tests are really essential to assess progress at different levels of development and at the same time it is equally important to ensure the taste of your product before it is served.

Thought of writing this as an intro to my perception about the importance of automated tests and QA for software. I’d like to write more on Agile Testing, Automations, Test Frameworks and Software Delivery.

--

--

VGP
Applied Agile

Director @ Freshworks | Interested in applications of science and engineering | Passionate about simplifying solutions through software and computer science