Sunday, September 5, 2010

Web application Automation testing -Part 2 - Approach

In my previous post, we talked about the introduction to “designing a test automation framework”. In this post, I will discuss about the factors that needs to be considered before finalizing test automation frameworks.

Before stepping into phase of test automation, we must be clear on certain facts

1. We cannot really implement 100% automation in the project. There are certain types of testing which we can do more efficiently using manual testers and we don’t really need to invest our time in writing or evaluating scripts for it. Some of the examples can be Usability testing, Extensibility testing etc.

2. Manual tester should be willing to learn some OOPS concept of programming and should be at least aware about concepts of writing a program. You cannot really create efficient scripts with any paid tool also if you are not aware about concepts of programming.

3. Base of any test automation is test cases designed by manual testers. All of your functional test cases should be managed properly in order to execute proper test automation phase.

4. People who are actually participating in test automation framework designing should be clear on what actually they are expecting from a test automation framework.

5. No automation can replace manual testers’ participation in successful delivery of any product development lifecycle.

6. In some applications, some part might have designed using flex or any other platform which might not be supported by tools that I have explained in my previous post. So in order to avoid surprises in between we must be clear about which part and what level automation we are going to achieve in our project.

7. Myth about test automation is that one should not do test automation if record and playback is not available but with the tools I have listed we can design it in a way that we don’t even need record and playback however we will need so background of programming which can be built up among team with few trainings.

8. Collaboration with dev team is important because you might need to ask dev people to make changes in code in order to support some tweaks in test automation e.g. Most of the ajax calls related to dropdown value change in a webpage should be based upon change event rather than click

Above are some of the facts which we should know before starting any test automation framework designing else we might not get what we have expected!!!

Expectation from test automation framework

1. Framework should be robust, flexible and easy to maintain.

2. Framework should be designed in a way so that it can support frequent changes in the requirements

3. It should not add overhead to team for creating new test scripts and maintaining old ones else most of their time will go into modifying and fixing old scripts.

4. It should be adoptable to new tool support if we find any good tools for automation in future

5. It should support strong reporting of scripts failures for analysis

6. It should be integrated with continuous integration framework like cruise control if we have any in our project.

7. It should support data driven approach for test scripts and should have strong exception handling.

8. It should be used by dev team to create their own unit test cases for Web automation testing

9. It should handle complex scenarios like ajax calls

But is it really possible to cover all these expected behavior from a test automation framework??

Let’s see and discuss it in details using a tool Web Driver i.e. selenium 2.0…

1 comment:

  1. One point about design of web application. The "presentation" part should be segregated with "business" part. The business part would be found in libraries which are loaded by web application. The web application automation should be backed by testing methods exposed by backend interfaces.

    ReplyDelete