Friday, May 22, 2015

Next Generation of Software Testing

Everyone in tesinig world is saying this, "Testing is transforming"

The developments in digital and social applications bring up new challenges and opportunities to the world of testing. After a decade of web applications are testing and two decades of legacy application testing; now the protocols of testing are changing. Indian banking space is the serving to huge customer base in the world, leading banks are launching apps to perform financial transactions. Recently ICICI Bank launched Pockets in android and IOS, to send and receive money. HDFC Bank launched Chillr app for sending and receiving money. These applications are not like traditional applications. Banks enable customer to send money using Mobile number. Airtel allows users to share their talk time to their friends and families. Actually the industries are transforming and so testing should transform.
Upcoming changes are bringing up both challenges and opportunities together. The fundamentals of testing remain same. Think out of box-> Do quality work-> Ensure the quality.
Due to the peer pressure and appetite to make quarterly profits, the space for thinking out of box was squeezed by IT services industry in recent past. I would like to recollect the words of Infosys ceo Vishal sikka.” The industry has been in a downward spiral, even the big western guys. They are hiring cheaper and cheaper, jamming people into projects faster and faster, hiring from more and more mediocre places. That is the wrong direction. That spiral goes to zero. We want to create an upward spiral, create more and more value.”
The legacy managers’ ideology of quantitatively managing projects, nothing but increasing volume by forcing resources to work in multiples projects without allowing them to read the documents of the project and showing more numbers can run the show, but not yield the result. Clients are looking for more quality work and not the useless quantity.  The next generation testing is looking for Quality testing, Out of box thinking and real confidence about their business applications.

Though we like or not the CHANGE will happen without anyone’s permission. The way mobile replacing wired phones, CD players replacing VCR players and LCD TVs replacing Fat TVs, Quality work will definitely replace the quantity work in IT services. We should decide when to join the league

Thursday, May 21, 2015

How to use Risk based Testing to Save Cost without Compromising Quality?

Risk Based Testing

The Primary job of testing is to find defects in test environments and make sure the defects are not explored in production. To do this several processes are followed and many phases of testing are crossed.
Most of the testing follows phases including Unit testing, System Testing, System integration testing, User Acceptance Testing and Performance testing phases, based on the special requirement other testing like security testing, compatibility testing, cross browser testing, Conversion testing, Containment testing, Localisation testing and few others still to name are performed . Though we develop the application or system once, we take it to several rounds of testing and that is how the testing budget slowly increased to 35% of the total spending of IT projects.

How can we cut down the cost ?

All the testing are performed for the approved requirements, especially function testing drives testing various permutations and data combinations. All the testing are done to confirm the business expectations and confidence of the business to take the product live. In most of the cases the priority of the Business is not cascading to all the subsequent teams. Hence to solve all these problems, the simplest solution is to prioritize the Business requirements based on the Risk. Testing the High risk functions first have two advantages

1.If the major function's defects were unleashed first, it can be fixed early. Early fix may reduce the risk of delay and give planned time of testing for all the test phases

2.  If the high risk function does not perform as expected, it have higher chances of having related defects in connected requirements or functions.

How to categories the risk ?

Requirements should be classified into various levels or buckets of risk .
The Risk type can be arrived by the combination of

Impact of Failure X Probability of risk 

Impact of Failure can be categorized into various levels like L-Low, M-Medium and H-High
Probability of failure can be categorized into various levels like 1-Least, 2- Medium, 3- Most

If a requirement have Medium impact of failure to business in production and  Most probably it may fail, then the category should be M3

All the requirement should be categorized in such a way that testing should start from H3 first and priority goes down till L1


  • Exhaustive testing can be eliminated
  • Limited testing but necessary testing is performed
  • High Risk requirements are testing first assures stake holder confidence about the project progress
  • Time to market is reduced
  • Cost due to rework and retesting due to late identification of defects can be eliminated
  • Last but not least, a method to do quality testing

Tuesday, May 19, 2015

Devops !

Devops an introduction 

A new terminology, and highest used word in one of the recent international conferences i attended is
I was confused, when everyone spoke about it, without defining the buzz word. I was equally excited to know more about it. It is a model or philosophy of integrating  the following

  • Development of Code 
  • Quality assurance 
  • Technology operations
After learning this, my confusion rippled, i could recollect the existing models right from waterfall to Agile, in all the models several team work integrated, then what is the beauty of this philosophy ?

Companies with high release frequencies and rapid changing scope, still face the issue of turn around time. Right from the moment the Business requirement is identified to incubate as a project, and the life cycle of the entire phases till implementation is the really a painful wait time for the Business owners or the sponsor of the project. Do we really need all the phases is their question?  what to skip is the project manager's question. Devops is not really going to solve all the problem like a magic box, but it collaborates the Development and others IT professional who are part of the project including designers, business analyst, testers, environment analyst, managers of varies streams, anyone who is part of an IT project without doing actual code. 

The Aim is to rapidly deliver the small portions, by collaborating varies teams of a project.Increasing the agility to improvise the quality without compromising the timelines. The Business is demanding time more than quality . But trading quality for time is totally unfair. 

By increasing the automation, virtualization, cloud utilization and collaboration of varies teams of a project, giving rapid releases and scaling up the productivity is the menu of Devops.