Tuesday, June 28, 2011

Why Should be Automate - Automated Regression set provide a Safety Net !

A Software tester who has worked on following projects will really appreciate the fact that regression testing is very challenging and boring at times :-

- Very large project with lakhs of lines of code a and we keep on adding new features to it.


- A badly managed code with lot of bugs and bugs are being fixed on regular basis.


- A software application which has a common code-base but released in various forms


- etc...

In most of these cases challenge is to make sure that new feature or bug-fixes in old code are not breaking any existing functionality. That effectively means retesting things which were already working and can have risk of breaking something.

Knowing code and planning regression testing in optimized way is usually a good practice but Automating such areas give much more confidence. At times regression automation may demand lot of maintenance as tester may need to update the scripts after a particular change in the code, but effort to update existing automation system should be less and easy. Also it depends upon the initial planning for automating test scenarios for a particular project. Better we understand the nature of our project, more time we shall save on maintaining the automation environment.

Another reason which I see is important in automating regression peices is fearless attitude of software team to be open for fixing old bugs to improve overall quality. I have seen teams who have been working on same code-base for last 10 years and it's a big fear to fix a severity-1/2 bug in older code. Why so, because each one in the team knows that time cost of testing that change in legacy code will increase and even after that we may not be able to figure out the side-effect. If such teams maintain a good automation harness, it should be fearless to fix any old problems as if any change impacts, can be caught by automation system.

Regression automation systems should be able to tell the developers that what you have broken by a particular change in older code :)


If you are not able to understand the context of this post, please have a look at http://computersfundamental.blogspot.com/2011/06/why-should-we-automate-our-test.html where it started from the need of Test Automation in a Software Development Team.


Monday, June 27, 2011

Why Should be Automate - Frees people to do their best work !

Automation can free up testers to do better things during the time they save due to automatic test runs. But the only thing is planning automation tasks in such a way that it cover most of the main scnearios and scripts should not be very demanding in terms of maintenance.

If whole automation setup reliable and needs less manual inputs, people can better think of other test scenarios and do exploratory testing. As we know testing an application with 100% test-cases is not possible as any application can have thousands or lacks of user scenarios. With various white-box techniques we can ensure that all the functions in a code are tested but but covering all the path conditions etc is not that practical. 


Here Automation gives as opportunity to testing team to explore more areas to test and make sure things are better with those efforts.


 

Sunday, June 26, 2011

Why Should be Automate - Manual Processes are error prone !

At times repeated testing can be boring and it becomes more sad when scripted test cases need to be run. Project deadlines create more pressure on top of that and a tester tend to miss the corners and specific scenarios which may ruin the whole effort put in past.

With all such limitations, testers may happen to miss some steps or provide some wrong inputs which may be dangerous in terms of accuracy test. At times, team has to work late and that may not be a healthy way of getting things done. As a tester reponsibility to certify something is huge and it becomes difficult at times.

E.g. - Build process and testing around it is critical and some basic automation may help in doing things fast without error. 



Why do Test Automation - Manual Testing take too Long !

This is one of the main reason for automating our test suites and becomes more important for ongoing projects with more funcitonalities each day.  Most of the application have various functionalities integrated so well that test scenarios increase exponentially. Although it's pity that sometimes higher management doesn't understand this fact. Non-Tester only understand this challenge when they see some bug after release, which is worst part. Let me control my emotions here :), as we are not discussing that part of test-teams here.

If we consider as example of Agile Software Development, after firt realease there can be an expectation to release shorter versions, dot releases or minor fixes in short duration of time OR even every day. And in this kind of situation it is close to impossible to test everything and certify. Many times Automation laso takes too much time for such projects, but that is something which can handled using Vm enviornments to run various test scenarios in parallel.

Regression is one of the area which is more challenging and difficult to handle manually. When an application is manually certified and we do some changes in code, it becomes difficult to cover everything again manually and we may miss some important bug due to this. For regression, automation gives at least some level of confidence apart from manual testing done my the team.



   

Saturday, June 25, 2011

Why Should we Automate our Test Scenarios?


Usually following reasons are main cause of thought regarding Automation in a particular Software Development Project :-

1. Manual Testing takes too much time. (But faster ways of doing the things may not be simulating actual user scenarios? What's the thought)


2. Manual Processes are error prone. (If manual ways of doing can be error prone, then we as Software development team should know the areas which are error prone and try to avoid that user get caught by those errors. Aren't we avoiding the ways to discover those error prone areas?)


3. Automation frees people to do their best work. (How many people really think that Automation really need no manual intervention. Even if we say that an automation runs on its own and don't need a single manual input. Is the person who automated, always relax while automation is running? And does our Automation scripts always work without change? If Yes, are we doing any development or not :) )


4. Automated regression tests provide a safety net. (This is one of the point which seems most reasonable...)


5. Automated Tests give feedback early and Often.


6. Automation can be good return on investment.


We shall be discussing each of these factors in details, before we move on to the things which do not promote Automation much in a Software Development Cycle !!!  

"A Developer code should always challenge a Tester and a bug should be more bugging every time for a Developer !!!"