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.

No comments: