SPONSORS:






User Tag List

Page 1 of 2 12 LastLast
Results 1 to 10 of 13
  1. #1
    Junior Member
    Join Date
    Nov 2000
    Location
    Roswell, GA, USA
    Posts
    2
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Data-Driven Testing with SilkTest

    Hi,

    I'm in the process of developing a "totaly data-driven automated testing" process using SilkTest.
    http://www.sqa-test.com/w_paper1.html

    According to the article above, the screen names are to be listed in the appropriate column. My question is how SilkTest will find a screen or an object on the screen, because a frame that contains desired object could be within a frame, and each of the items (screen or object) has a tag to it?

    For Example: MainWindow.EditUserWindow.FirstNameTextBox

    or

    MainWindow.ListOfUsers.UsersTable.NamesColumn.User NameLink

    I have saved windows declarations in include files, which are used during the test. How the "Utility" script (see the article) will identify screens and objects on the screens?

    Thanks a lot,

    Lena

  2. #2
    Member
    Join Date
    Nov 2000
    Location
    Tampa, FL USA
    Posts
    90
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Data-Driven Testing with SilkTest

    You will want to read the Silk User Guide documentation on Data Driven testing since it will give you a better feel of what you need to do since the article you are referring to is a general discussion and does not specifically refer to Silk.
    Also, check out the section on the reference operator - I used this operator a lot in data driven tests where I looped through lists of window. There is also some discussion in the Advanced OO 4Test class on data driven testing that will help clarify as well. Good luck.

  3. #3
    Junior Member
    Join Date
    Dec 2000
    Location
    Camberley, UK
    Posts
    15
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Data-Driven Testing with SilkTest

    Lena, as someone who has just switched technologies from QARun to SilkTest I can appreciate the problems of performing data driven testing of the style described in the white paper.

    The main point is that SilkTest just isn't geared up to deal with this type of testing. SilkTest works by having the full framework of the target application pre-described and can only work with the objects in this framework. Other automated tools e.g. QARun are considerably different by having the capability to determine objects on the fly - i.e. retrieving the name and class of any object that is in focus and to effectively treat individual controls as parent widows. The pseudo object orientation in SilkTest as you say restricts you to using full names when describing an object, so the only way to perform data driven testing would be to include these full names in the Key Word Scripts but this and the setup time required to describe the application could be prohibitively time consuming. Whereas QARun doesn't use the parent child approach and just uses an attach name or window handle to work out which field you were refering to, making for the simple script demonstrated in the paper.

    There are some ways round the problem, but they are not particularly ideal. One method is to use the tabbing sequence of the window to find fields and then use the TypeKeys method on the parent window to enter data. So in the Field Name column you would have the fields tab sequence number. Of course in SilkTest the only way to get results from the application without pre-defining all the output fields is by bitmaps checks or direct database interogation (if applicable), so even this method using silktest is extremely limited.

    Overall I suggest you use a different tool if you are dead set on doing the 'Key Word' method descibed in the white paper or switch to the 'Functional Decomposition' method which SilkTest is far more suited to.

  4. #4
    Senior Member
    Join Date
    Jun 2000
    Location
    Sunyyvale CA USA
    Posts
    422
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Data-Driven Testing with SilkTest

    Lena,

    Let me know the kind of application you are testing. You can have the data in a file and read the data for entering on UI. We did it and was successful. If you are having data in any backend db, you can do the same by using db commands.

    The way Silk help describes this is little different from other tools and leads to confusion.
    Sree

  5. #5
    Junior Member
    Join Date
    Dec 2000
    Location
    Camberley, UK
    Posts
    15
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Data-Driven Testing with SilkTest

    Sree,

    yes you can have your data in read in from a file but how do you pass in the field attach names without them being so long and unmaintainable? If you know I would very interested to find out. I think there needs to be distinction between 'Totally' data driven and data driven methods.


  6. #6
    Junior Member
    Join Date
    Nov 2000
    Location
    Roswell, GA, USA
    Posts
    2
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Data-Driven Testing with SilkTest

    Hi, everyone,

    Thank you so much for replying to my posting.

    I was thinking about using format below.
    If you create an Excell document, where you'd specify a Parent Window, a Child Window and all objects to the Child window, then you could loop through a subroutine until you move to another window. You could use keywords as a flag to move on.

    KEYWORD VALUE DATA

    PARENTWIN MainWindow

    WINDOW EditUserWindow
    ENTER FirstNameTextBox John
    ENTER LastNameTextBox Doe

    WINDOW ListOfUsers
    Table
    Column
    CLICK UserNameLink

    PARENTWIN = MainWindow is used through out the whole test case. All other windows (WINDOW) are assumed to be within that window.

    So, as the result you will get:
    MainWindow.EditUserWindow.FirstNameTextBox ("John")
    And
    MainWindow.EditUserWindow.LastNameTextBox ("Doe")

    When you see next keyword WINDOW, you will know that now you're moving to the next window and you will get:
    MainWindow.ListOfUsers.Table.Column.UserNameLink

    However, names of the windows are must be the same as they are in the include files.

    Let me know what do you think.

    Thanks,
    Lena


  7. #7
    Junior Member
    Join Date
    Dec 2000
    Location
    Camberley, UK
    Posts
    15
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Data-Driven Testing with SilkTest

    Hi Lena, I agree that that method you described would work fine. However I would ask whether you are getting any significant advantage by using this method (a genuine question by the way, as I'm unaware of what you are exactly testing). By including all of the field name parts in the data loses you the instant error validation you'd get from just simple scripting your tests within SilkTest.

    The primary benfits of data driven testing is its ability to simplify the appearance of test scripts and to allow unskilled testers to write automated scripts. Will your system give you these benfits?

  8. #8
    Junior Member
    Join Date
    Jul 1999
    Location
    Los Angeles, CA, USA
    Posts
    3
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Data-Driven Testing with SilkTest

    Lena,
    I am the author of the White Paper you are using, and I may be able to shed some light on the subject. First of all, the examples used were geared mainly for WinRunner, which has the ability to call tests. SilkTest cannot "call" one test from another - instead there is one test from which functions can be called. So the way you must design the solution has to fit the tool you're using. Rather than an "Enter" utility script, write it as a function.
    Next, the solution you came up with is correct. Since the "MainWindow" must be appended always, just define a variable containing this and automatically append it within the script or function. If the "Parent Window" had to change for some reason, then you could just construct a KeyWord to set the ParentWindow value whenever you needed to. Lastly, this method is used (as someone else replied) in the situation where you have a number of non-technical manual testers, who know how to write test cases, but may not have the technical skill level to deal with an automated test tool (and may not want to). This method allows them to do the job they know best, and let the "test tool person" deal with the tool. Unless you have a pressing need to use the spreadsheet method, the Functional Decomposition method is more suited to SilkTest.
    Best,
    Keith Zambelich

  9. #9
    SQA Knight
    Join Date
    Jul 1999
    Location
    Grand Rapids, MI
    Posts
    3,727
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Data-Driven Testing with SilkTest

    Steve Mayes wrote on 12/7:

    <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>
    SilkTest works by having the full framework of the target application pre-described and can only work with the objects in this framework. Other automated tools e.g. QARun are considerably different by having the capability to determine objects on the fly...
    <HR></BLOCKQUOTE>

    [My itallics in above quote].

    This is not correct. While somewhat difficult to master, Silk provides many powerful built-in functions and methods to dynamically discover objects in any part of a window hierarchy at runtime. I use these features extensively in most of my web testing. If you are interested in investigating a good starting point for your review is the GetChildren() method--there are many more.

    The following code fragment also shows how you can search an Html Table specified by wTable [a WINDOW] column by column to find an object of class sHtmlClass [a STRING], whos tag is specified sTag [a STRING], at runtime:

    The full function is much more complicated [as it recursively searches for the object in any table found within wTable], but I think you get the drift on how Silk supports dynamic object discovery.

    -fyi, Terry Horwath




  10. #10
    Senior Member
    Join Date
    Sep 1999
    Location
    San Jose,CA,USA
    Posts
    340
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Data-Driven Testing with SilkTest

    Lena

    How could I have missed this topic??
    There are so many interesting ideas that are being conveyed,
    under a very broad umbrella! First let me say I have taken an approach
    much like Terry's esp by using operator notation, and get children method
    to pin down targeting of windows and controls even in non data driven
    tests.

    However I must respectfully disagree with Steve's observation:
    >> The primary benefits of data driven testing is its ability to simplify the appearance
    >> of test scripts and to allow unskilled testers to write automated scripts.


    Not only does data driving tests (function,suite or case) make things more complex
    but unskilled testers would be absolutely frustrated with this fairly advanced concept.
    Instead consider that the Primary benefit of data driving a test is REUSABILITY.

    The same data driven test (function,suite or case) can be reused with different
    data files (CSV, dictionary .. etc). Reusability is almost synonymous with data driving
    a test and in my opinion is THE major reason why one would bother with the technique
    in the first place.

    The big reasons for reusability are that instead of writing the same test with different
    hard coded values for entries into tables, text fields and picks for lists etc for
    different situations, roles, frameworks, etc you need only employ a wrap of a test
    (function,suite or case) pointed to a different data file. Thus freeing you up in
    keeping test maintenence down to a single point of maintanece.

    Also picking windows is such a small part of DDT! Why go for that first?
    Why not instead have your test with fully qualified names substitute the CSV values
    under a given column name for entering text, picking DD Values, and generally
    parameterizing DATA through this mechanism. You would basically write a test the same way
    you normally would but when it comes to the values for picks, text and even clicking buttons
    you simply substitute from symbolic references directly even to that last button!

    For instance the operator notation is wonderful for this! You could easily have
    a CSV resolved parameter within the context of a test for a button with the last
    button identifier filled in. Let us look at a normal script along side a DDT with
    the button value stored in the variable btn_value filled in by the DDT technique of your preferance:

    Both work wonderfully but the second one is easily parameterized and data driven.
    Thus allowing the re use of your test in as many ways as one can generate data
    files for it!


    [This message has been edited by rick_weth (edited 12-24-2000).]
    Smoke me a kipper, I'll be back for breakfast!
    Sincerely
    Richard Weth
    Sr. QA Engineer

 

 
Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

vBulletin Optimisation provided by vB Optimise v2.6.0 Beta 4 (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
User Alert System provided by Advanced User Tagging v3.0.9 (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
Questions / Answers Form provided by vBAnswers (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
vBNominatevBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
Feedback Buttons provided by Advanced Post Thanks / Like (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
Username Changing provided by Username Change (Free) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
BetaSoft Inc.
Digital Point modules: Sphinx-based search
All times are GMT -8. The time now is 09:21 PM.

Copyright BetaSoft Inc.