Semantic Test Object in Ruby and Watir

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Semantic Test Object in Ruby and Watir - Presentation Transcript

    1. Semantic Test Objects in Ruby and Watir Human Readable Machine Executable Test Case Design for Web Applications
    2. How Does Traditional Testing Work? Let’s make some assertions =>
    3. Traditional Test Cases Written in Language processed and executed by Human Beings who require specialized knowledge.
    4. Traditional Test Case Notation Documents as Pages of Text bound to specialized Formatting. Presentation and data glued together.
    5. Costly to Write. Slow to Execute Requires Live Performance of a Skilled Tester. Each Replay is Another Live Performance! Long Cycle Time$
    6. TADA! Just Automate! Record and Play it Back It seems so easy, right? (maintenance nightmare)
    7. The Silver Bullet What do you get when you automate Manual, Natural Language Step By Step Procedural Tests that only a machine can read?
    8. Yes, Let’s Automate. With Human Readable and Machine Executable Notation Semantic Functional Test Object Model
    9. TestObject.message(subject) Semantic Test Objects Notation Human Readable Machine Executable
    10. Unnecessary Text Out
      • “ By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems” – Alfred North Whitehead
      • “ While what is being discussed here is software development not notation sets, the same principle is operative if one thinks of a notation set as the ability to represent a problem to one's self .” – Dr. Pam Lawhead
      • http://john.cs.olemiss.edu/~lawhead/summary.html
    11. OO dot Notation
      • Human Readable
        • Billy.clean(your_room) said Mom to her Child
        • Room.clean_up() said Billy to his Room
        • Object.message(subject) said Object to Another
      • Machine Executable
        • Can be written in any OO Language.
    12. Request, Response
      • Object Oriented Notation captures the Interaction between Objects.
        • Every request gets a reponse
      • When Mom sends a message to Billy does she get an answer?
        • Yes – but not what does the call to Billy return?
      • Tests as Concrete Examples rather than Abstract Description
    13. Understanding TestObject
      • All ‘things’ in a TestCase are TestObjects.
      • All ‘steps’ in a TestCase are about sending messages to TestObjects
      • All ‘things’ are derived from Domain Model, UseCase Model, User Inteface Model
      • All ‘things’ live in Application Test Map, a kind of Semantic Test Objects API for testing.
    14. Separate Design from Implementation
      • You’ve heard this before, right?
        • TestCases talk to TestObjects
        • TestObjects talk to the Browser
        • Abstraction Layer built from Business Domain Model
      • Decouple and Glue instead
      • TestCases speak the language of the Test Domain.
      • TestObjects speak the language of the browser, IE, FireFox, Safari, Mobile, whichever….
    15. TestCase Definition
      • TestCase is an inventory of tests
      • Executed in context (TestScope)
      • Validating expected existence and expected behavior of the System
      • Agreed by Customer
      • Resulting in pass or failure
    16. Ruby High Productivity. Object Oriented. No compile. Interpreted. Dynamically Typed. Widely used
    17. Watir WebAppTestingInRuby Pronounced [water] Ruby Library. Talks to IE DOM at runtime. Browser Automation Interface.
    18. Document Object Model Tests talk to DOM in memory. HTML + CSS + JavaScript + Ajax + UserInteraction + ??? Tests speak semantic structural DOM
    19. App Test Model Interface Construct new TestObject from API or build new ones Abstract Business Domain Model
    20. Tests > API > Browser Semantic separation. Tests talk to API Test Objects which are wired to speak to the DOM
    21. ‘ manual’ vs ‘model’
      • Process Based Testing
      • Linear step by step snapshot based testing
      • Dependent on previous run and individual implicit knowledge of the tester.
      • Many lines of text written in author’s style.
      • Deciphering meaning.
      • Abstract Description
      • Object Based Testing
      • Non linear behavior and state based.
      • Holographic view of system. Context and Perspective
      • Shared vocabulary. Standard Notation.
      • Explicit expectations
      • Concrete Examples
    22. Thank You Questions?

    + rubytester (testrus)rubytester (testrus), 2 years ago

    custom

    1244 views, 0 favs, 0 embeds more stats

    constructing oo test cases for web applications

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1244
      • 1244 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 25
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Tags