Thursday, August 9, 2012

Conflict - - The key to Success!!

I know the title itself provokes an obvious question "How drunk is this guy"

I would have agreed with the same until I saw this phenomenal talk by Margaret Heffernan on TED

As it turns out in most of our daily lives whether at work or at home we as Human beings try to resort to the company of people whom think like us, and have common thought patterns and inadvertently would act like us when put under the same circumstances with the same set of input factors to work upon.....

Why do we do this?? I Why do we not have friends that hate the music we love?? Why do we avoid the uncle who does not think highly of our Career choice and it's outcome??

The answer is rather straight and perhaps a bit demeaning " Because we want to avoid Conflict"

All of us alike would not like to get into conversations or situations when we are NOT sure that we would emerge victorious....

Is this a healthy attitude??
Does it promote the best solutions and the following success??

Let us try and answer this with some more questions...

Did the early man have conflict upon a whether I wheel should be round or square??

Did scientists have conflict over whether light is matter or wave??

Did Galileo get into a conflict about Earth's shape??

The answer to the above questions is a resounding "YES"

What this hints at or probably shouts out loud is that every time we try and avoid a conflict of thought, judgements, decision....... We are depriving ourselves of the chance to take the best decision at a given point of time....

Conclusion by any means is NOT to promote fights at home and work or to create a negative image of fellow human beings in each others minds..... BUT to promote disagreement and conflict when fueled by the right rationale thoughts and to ensure that we as a part of our families and our organization believe in asking the 'Difficult Questions'

As only when you ask such questions is when you have a chance to validate an opinion / pending decision with tangible proof

So do not fear Conflict as it may actually help you to ask the question of that is on everyone's mind but is often ignored due to the fear of not conforming with a group....

Tuesday, August 7, 2012

The Test Automation Chronicles










“What is meant by that ??” . This is the first question that came to my mind when I heard the term “Test Automation” about 5 years back.



Second question was actually an alarming one and remains one of the most significant questions to date.



“Will Test Automation replace Manual testers ??”



The answer is a resounding “NO”



The Testing world has always had and will continue to have great value for Manual testers as they are the eyes, ears and decisions making hands of Business Analysts and Product Owners. Testing is an inseparable part of the Waterfall or V Model of software development and the results of ignoring the importance of Software testing has seldom being catastrophic for major projects. No-one really knows the real cost of failed software projects, but in the US alone it is estimated to be upwards of $75 billion a year in re-work costs and abandoned systems.



Let’s try and understand how does Test Automation fit in the puzzle of Testing domain.



Allow me to give you an interesting analogy for Test Automation from one of my favorite Comic Characters “Batman”.



A long time ago Bruce Wayne in his initial days as “Batman” stumbled upon a unique problem – Arkham Asylum was unable to keep track of medication details all the in-house criminals. (No “The Joker” still has no cure !!). Although doctors at Arkham strived hard to religiously feed in the details of the medication and their dosage taken by their patients at Arkham in to the database, there was no way to track these details at a facility level on a month to month basis.



Then one day the “Bat Light” was lit and Batman was pulled into this issue, database management not being his area of expertise, batman had to consult his trusted colleague Lucius Fox for this matter. Lucius was able to create a piece of Automated code which did the job of going through all the Medication profiles of each criminal housed at Arkham and generated a monthly report for the same to be submitted to the Medical in-charge. This solution had tremendous impact (Although it was never featured in any of the Batman comics !!) and now doctors were able to monitor individual patient medical profiles and trends on a month on month basis. Thanks to Batman and Lucius all the Arkham inmates are not as insane as the Joker !!



Test automation is the use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions. Commonly, test automation involves automating a manual process already in place that uses a formalized testing process.

Application of Test Automation tools and techniques across the board in EDSC would have wide ranging benefits including but not limited to the following:




Test Automation Benefit

Here's How


Save time : Generally increases the speed of the testing process and shortens the testing lifecycle

Scripts can be run in the night, effectively giving the user a day shift and night shift

Scripts can be run on multiple machines-multiple platforms simultaneously

Scripts run faster than a manual tester


Increase quality: Through repeatability, reliability and comprehensiveness

Provides reusability and repeatability that can be run each time the application is changed

Accuracy in testing is increased by reducing possibility of human error and making less dependent on individual capabilities

Facilitates creation of tests that check all aspects of the application leading to an overall increase in quality


Utilize manpower more effectively: Apply skills and time where they are needed most

Manual testing can be used for new feature validation while automation can be used for regression

Most functional and regression testing can execute unattended

Focus efforts where you didn’t have time for before, such as performance and security


Increase coverage: Ability to test how the software reacts under repeated execution of the same operations

Perform the same tests on multiple Configurations, more configurations, more benefit here

Regression suites can cover every feature in your application which may be difficult to accomplish manually depending on your application’s size

Different versions can reuse the same automation code with minor modifications


Programmable: Program sophisticated logic

Some web applications use hidden information like session id, and account information which are impossible or difficult to manually verify

Some applications have no UI, and are best suited or can only be tested with automation rather than manual testing

User can program logic to respond differently to different environments and situations




One overriding emphasis of both TDD and acceptance testing is that the tests should be automated. Scrum testing team is excited about Test Automation playing a pivotal role in streamlining day to day testing tasks and save valuable testing hours spent in the area of Regression testing. Test automation fits in perfectly into the Agile development model and would help improve the code quality for the EDSC Dev team as the automated tests are repeatable and accurate and most importantly would not require a testing resource to test the same flow manually every time a code change is made on the given product module.

As an increasing number of enterprises embrace agile software delivery approaches they realize a new set of challenges. The realities of the enterprise - geographic separation of teams, cost reductions, diminishing timelines, and limited resources - require that organizations take a practical approach to agile software delivery. Modern automated testing solutions play a vital role in supporting this evolution by enabling agile teams to implement test strategies that are flexible, repeatable, and accurate. In the end, businesses can reduce the risk of releasing applications of unknown quality or reliability with agile test automation.