KeyWord driven Framework and Testing

This section is dedicated to my viewers.Here they can ask question and I will be happy to help or redirect to some page what is best suitable for them.

ur blog looking great,Especially For QTP u r sharing very useful stuff.Can u Share some ideas on Key word driven framework.----by Rajesh

Hi Rajesh
Thank you very much for writing me!!!...I have covered few topics already.Please go through..

I hope you will get more information. If you need anything specific to keyword driven ,Please let me know.I will be happy to help you.Happy Reading!!
KeyWord driven Framework and Testing KeyWord driven Framework and Testing Reviewed by Animesh Chatterjee on January 14, 2012 Rating: 5


  1. Hi Animesh,

    I read your blog on OO approach to speed up automation test execution time.

    I am a part of an automation testing team which has written around 550 test cases in Coded UI. The application being tested is a financial desktop application with many GUIs. As of now each GUI has an object repository (UIMap in Coded UI), and there is a seperate .cs file for each test case.

    It takes almost 8 hours to execute all the test cases in a sequence. ( The tests have been grouped into 5 sets and run in parallel, this approach demands additional hardware resources.)

    We are looking towards reducing the execution time of the test cases and make the system scalable in terms of number of test cases and maintainability.

    For this we have started researching Keyword driven framework and have identified a set of tests which could be made keyword driven.
    In this approach, there would be a single object repository for all the common fields and the fields specific to a single GUI would be maintained in an excel sheet.
    After developing a POC it is seen that the test execution time has increased considerably.
    By OO approach to speed test execution do you mean with respect to object repository or the scripts? Could you suggest any design pattern which we could use in our case?

  2. This comment has been removed by the author.

  3. Hi Nita,
    Thank you for writing me. Let me try to answer these..
    I am not sure which tool you are using. I am assuming that you are using QTP for desktop application.
    what I suggest for this scenario..
    1. Since the UI map and locator information are meant to be unchanged(if these are changing then please make developer understand the problem that automation will fail so ROI will be low). so put them in case Test suite level .vbs file/or a reusable script.
    Script will be faster to read from .vbs file rather than excel file.

    2. There should not be any dependency between test suite1 to test site 2.
    So create a precondition step and cleanup step to create data required for running the test and delete data, created by the script. Lesser the dependency higher chance of clean result.

    please confirm the testing tool ...i will come up with some POC on that.


  4. Hi Animesh,

    Thanks for replying. We use Coded UI tool provided by Visual Studio 2010.

    At present without the keyword driven approach, we have a seperate UIMap for each GUI and there are a lot of duplication of fields appearing between parent and child GUI.

    Each test case (.cs file in coded ui) is independent and we do have a base class which handles the initialization and clean up.

    Each test case uses a totally different set of data and so the data driven approach cannot be used.

    We want to migrate to the key word driven approach for scaling up and reduce the test execution time.

    Thanks and Regards,

  5. Hi Nita..I have never used Visual Studio to test. Hang on.. I have a senior who is chief architect for different frameworks ..Let me ask him...Will update by Monday.


  6. Hi Animesh,

    Waiting for your reply.
    Irrespective of the tool used, you have mentioned in your blog that applying an OO approach speeds up execution, please could you clarify that a little more. Is there any specific OO approach you used and noticed a change?

    Thanks and Regards,

  7. Hi Nita,
    Sorry for the late reply...Yes I have discussed the same with my senior.
    As per our discussion what we have come up with...
    1. Please put locators in a class. This will speed up your process.
    2. Keyword driven approach is actually a outdated concept now a day. As this put an extra layer in the framework. But this is useful if and only if functional people is going to design your test.
    3. For duplicate locators problem.... create a parent child relationship where child will be extending to parent and will get the locators of parents by default.<>
    4. If you are going to use same hardware for your execution then parallel processing will not help you. But if you have different hardware to test then use of hudson can really help you.Yes from hudson window you can perform parallel execution.

    5. For OO approach there can exist a few frameworks. I have designed two of them let me explain you one by one..
    1. In this scenario our manual/functional people actually develop automation script. Since they did not know about the automation tool and code more so they needed a interface to design the script. so we created an application which will help them to do that. Well , let me tell you how it works..
    1.1 We define the flow as a combination of components. The component can have only one purpose. Again each component is a sum of few steps.
    Say if Composing and sending gmail is my flow..then it can be divided into..
    a. Open browser and navigate to given url say component name as Open_Web_Application
    b. provide username and password and click on submit say component name is Login_Application
    c. Click on compose Button and type to,cc,bcc,subject mailbody and click on send can be grouped to Compose_Send_mail
    Now with the help of underlying tool you beforehand know if browser is an object then what are the different operations the tool support.
    So in the application when user select one object <> the corresponding actions pops up the second dropdown<>..So this is one OO approach which is again having blend of keyword driven as well.

  8. The second one is with hudson..This is based on selenium and java and JUnit.Let me write a description...

  9. Hi Animesh,
    I appreciate the help provided, thanks.

    The CI part is handled by a separate group. So I am not too sure about whether the CI environment could be changed.
    Can Hudson be used for Windows desktop applications? And is there any document or test performed which I could suggest to the CI team which shows that using Hudson reduces the execution time?

    Also the OO approach you suggested is already supported by Code UI. All the different GUIs are separate classes, and test cases covering a particular GUI reuse the GUI class (UIMap). Is there something I have not understood about this approach?


Powered by Blogger.