Tuesday, June 07, 2011

Sure Ways to Reduce Test Cycle Time through Automation

World is simple, we complicate the world for the sake of it – says a friend. There is a simple concept called "automation" and another one "testing cycle time". Why these terms can not be simply understood without much fuss and inquiry? he often argued with me. This friend is a manager and works for IT services company. A constant pouncing on me by this topic of test-cycle-time-reduction-through-automation and related hype, frustration and feeling of achievement, made me to think deep about basic laws or golden principles that govern this phenomenon of cycle-time-reduction.For the benefit of my blog readers, here, I make them public. Read them, understand them, implement them and be blessed. A caution here any criticism and cynicism about these laws will have harmful consequences to the beholder. These are golden principles and axiomatic about test automation!!!!

First principle - “About Testing”: Strongly believe that software testing is a deterministic, highly repeatable and structured process – somewhat akin to a step-by-step procedure to produce say a burger or car. You have to believe that given a fixed scope of testing, it always takes a finite and fixed time (effort) to complete testing. Needless to say, you have to have absolute faith in testing processes and standards. Your faith in the power of processes and standards making testing predictable and repeatable is an important success factor. It is also necessary to abandon any misconceptions you might have about relationship (or dependency) between testing and automation. You should treat testing truly as a mechanical, step-by-step and repeatable process to ensure Quality. Positive ideas about metrics to improve testing and consistency are - a sure bonus. You should resist and fiercely oppose any attempts to link automation and testing, claiming that automation can and should work independently.

Second principle – “Definition and Meaning of testing cycle”: Never challenge or probe definitions and meanings of word “Testing cycle”. Keep it (testing cycle time) loosely defined so that you can flip in any direction when confronted by a skeptic challenging your claim of cycle time reduction. The more the vagueness of the term “testing cycle and cycle time”, higher are the chances of meeting goal of reduction of cycle time through automation. Any variables and factors that make “testing cycle” somewhat unclear – should be ignored and not discussed. It is important to have faith in the fact that “testing cycle time” is universally known term and does not need to be redefined in any context. You would be looked upon as genius if you simply talk about “cycle time reduction” and omit the unnecessary qualifier “testing” or “test” (as in “test cycle time”).

Third principle - “Playing to the gallery”: Use words like “business needs”, “business outcome”, “business processes”, “success through business alignment”, “Time to market” etc., liberally during all communications related automation and testing cycles. Confront any opposition by skeptics about automation and its connection to cycle time by “calling authority” – say “Business/Market needs it”. Strongly believe in statements like “Automation will help releasing products and services faster – and hence will improve customer satisfaction and company bottom-line”. Your success in achieving cycle time reduction depends upon how often and how strongly you make reference to “business” and “business needs”. These powerful words that do all the magic required. You need right rhetoric to spread the message. Another important keyword here is “market”. Make sure you thoroughly mix up and use the terms “Testing cycle time” and “Time to market” interchangeably. The more you talk about “Time to market” and how automation can directly help it – more you look authentic and convincing.

Forth principle - “Motivations and Incentives”: Believe economists when they say “incentives” drive change and motivate people. How can this not work here? The last but not least of the measure that one needs to be aware of is to provide incentives for people to reduce cycle time through automation. Define performance goals of individuals involved in the automation in terms of cycle time they reduce through automation. Penalize those that question the idea and fail to meet the performance goals. The automation initiatives tend to be successful in their stated goals of cycle time reduction when they are integrated with performance goals of individuals involved in the game – especially automation team. Also make sure (when automation is done by a decentralized team) to define and impose the performance goals ONLY on automation team and suppress any attempts to include manual testing team. After all automation and testing are not related in anyway and it is the responsibility of automation team to bring about cycle time reduction. Right?

If you find these principles and ideas rather strange and are intrigued – one of the several possibilities is that you might be working in a software product organization as opposed to IT and IT services organization. The folks in software product organizations that build software – unfortunately approach automation some what “differently” and cycle time might not be a very familiar term to you.

If you are not from software Product Company and still confused about the ideas in post and you think they are inconsistent or incoherent with each other – do comment. That is a good sign that you are thinking about the topic.

Let me know if there are other ideas and principles that you might have successfully used to reap benefits of cycle time reduction through (and only through) automation – I would be more than happy to incorporate them with due credit.



tarun k said...

Had a look at one automation code base of late which was just opening browser for most of the tests.
Yes just opening the browser will all fancy name for test methods.

Now how long does it take to open the browser, Navigate to a location and close it. And of course it would get your test report out soon with all green. Now is not that management is looking for - quick test execution and all green report. Make sure to follow this is your project and be cynosure of super boss.

Shrini Kulkarni said...

>>> Now is not that management is looking for - quick test execution and all green report

That is first principle of assuring cycle time reduction. Think about testing as mechanical, brain dead process something that computers do faster quicker and cheaper. Unless you trivialize testing - automation cannot reduce cycle time for you.

Hidden here is also principle 2- Talk loose about cycle time - still better don't bother to define the term "cycle". When you indeed ask that question - you would be surprised what answers you get. For ensuring that automation reduces cycle time - all you need to do is to suppress all "naughty" and "problematic questions" - such as "what is after all cycle time", "what is cycle after all".

>>> Make sure to follow this is your project and be cynosure of super boss.

That is principle 3 "playing to the gallery" - much of automation is done to "please boss" or "impress the boss". And this is closely associated with principle 4 - the incentives. When automation is part of your performance assessment and appraisals - you would go out of your way to do it and show the benefits in objective as much as possible. In order to get good salary hike, promotion etc - automation is key.

Now who would care whether cycle time has any meaning that you care - you are fine as long as you meet your "materialistic" goals.


tarun k said...

One more thing to make sure is - when production defects are encountered for manual scenarios you have automated (in fact not automated). Just put the blame on manual testing team for not providing "comprehensible" test scenarios for automation and also missing those defects during manual testing. You should learn the art to put blame on others (obviously manual tester) and out shine them when your product miraculously succeeds (if at all).

I guess my evil mind will not stop thinking of more and more such circumstances, which we faced, face and will face. But Shrini, I sincerely hope others understand the real spirit behind your post.

Software Testing Services said...

Yes, I agree with you.Automated Testing minimizes the amount of manual work involved in test execution and gain higher coverage with large number of test cases which lead to cost savings and productivity gains.

Anuj Sharma said...

Shrini, thanks for the great article...
Just to let you know, I am really inspired by you and your attitude towards testing...

Anuj Sharma

Anuj Sharma said...

Thanks again for a thoughtful blog.

Just wanted to let you know that I am really inspired by your attitude towards testing...

Anuj Sharma

Roshni said...

I appreciate the labor you have put in developing this blog. Nice and informative.

Lisa Davidson said...

Thanks for sharing this article. Reducing Test Cycle Time Through Software Test Automation is a very crucial aspect.

Shrini Kulkarni said...

so ... Lisa,

What do you think you should do about achieving cycle time through automation?

Lisa Davidson said...

Identify the repetitive task that a Tester perform on daily on weekly basis. With automation you can always ship early, you have peace of mind for new built which arrives particularly when QA Testing is done in different time zone. In case of DOA builds it saves your time by huge margin.

QA Tester said...

Nice one! Even I agree with your view that automation will reduce the life cycle time for testing in an effective manner. Moreover I like your attitude towards writing the articles and keeping your point straight away.