Saturday, April 1, 2006

Automation - Where, When and How?!

So I finally realized what doing work is!! It is a good feeling and you are all tensed up and ready to get heckled up at any single pretext. I have been going through a lot of these learning phases as one can call it. It all started when our PM asked me when I had just joined this company that there were a lot of problems with the current setup and we had just toooo many platforms on which to test our builds for. I finally got to know what these toooo many platforms were, when I realized that they were calling each Service Pack installed and each file system (3 for each OS - FAT16, FAT32 and NTFS) a separate platform.

So counting all the OS and their respective platforms I came up with the 'magic number' of 51 and then suddenly realized that it was more (about 74) in all, on which we ultimately would have to execute our test framework. Coming to the framework part, this is another interesting story; and typical of the was a software development project works: First comes a super geek, who just sees the problem, codes and leaves with the basic framework setup completed, at the time the application was conjured. Then comes another who has to upgrade it to the latest version of the framework and the product. This person along with a few other underlinings, checks the same and does a modification of the existing framework. Now along comes me... :-) [I know self praise can be harmful, but everybody must take it sometime or the other, as in small doses, it really helps... :-D ]

With the complete documentation training that I have had till date and specially in my first job, I start with just documenting the code, and suddenly find that there is a lot more than documentation which is pending in the code. So, I get down to revamping the same so that it is workable with my new logic [this might have been the thing that the second person who got the code might have done, but not documented as properly] which is rather a lot of comments than code and the comments soon start becoming clear and the code starts to disappear... :-)

Coming back to the issue on hand - that of automating a system which has already been created by someone whose logic and understanding of the problem might be a bit different from what I have been doing, I came to the final conclusion that until I try and do a complete revamp of the existing code and either update or remake the code from scratch, I will not be successful. So, I start with the basics, which is all test cases should run. Now, the code for executing these test cases should run and finally the code should be in a structured manner.

The lesson I think I learn from the many failures of the system when you are trying to get something working is this thing to add FAULT TOLERANCE. In automation, this is one thing which I think I need to learn, should be built-in so that at any point the tests fail, the framework created should auto-recover and start with the next test case. This will be the final step before I finally automate the said framework for all images...

Next will be the actual automation process I employed for setting/installing and executing the test framework on multiple images and multiple systems at the same time. Which hopefully I should be able to do earlier than later...

No comments: