Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
895
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 1
    Integrating TestComplete and Ruby
    Presented by: MykolaKolisnyk
    AUTOMATED-TESTING.INFO
  • 2. What was originally
    Win UI tests
    System tests
    Mac UI tests
    Ruby
    AQA TestComplete
    Cucumber
  • 3. Win UI tests
    System tests
    Mac UI tests
    Ruby
    Cucumber
    How it was supposed to be
  • 4. Win UI tests
    System tests
    Mac UI tests
    Ruby
    ???
    Cucumber
    AQA TestComplete
    Where is TestComplete?
  • 5. Main goals
    Provide common layer for all areas
    Give the ability to involve non-technical people into automation
    Provide common solution for distributed testing
    All improvements should be done smoothly (current solution should always work)
    06.02.11
  • 6. Win UI tests
    System tests
    Mac UI tests
    Ruby
    Cucumber
    What was decided
  • 7. Win UI tests
    System tests
    Mac UI tests
    AQA TestComplete
    Ruby
    Cucumber
    What was decided
  • 8.
    • Get command
    • 9. Set run status
    • 10. Send results
    AQA TestComplete client
    Http bridge
    Ruby client
    • Send command
    • 13. Check execution status
    • 14. Get results
    Ruby/TestComplete connection overview
  • 15. AQA TC client
    Http Bridge
    Ruby Client
    Get command
    Command
    Send command
    Set pending status
    Status
    Check status
    Run command
    Set «done» status
    Send results
    Results
    Get Results
    How it works: initial state
  • 16. AQA TC client
    Http Bridge
    Ruby Client
    Get command
    Command
    Send command
    Set pending status
    Status
    Check status
    Run command
    Set «done» status
    Send results
    Results
    Get Results
    How it works: initiate command
  • 17. AQA TC client
    Http Bridge
    Ruby Client
    Get command
    Command
    Send command
    Set pending status
    Status
    Check status
    Run command
    Set «done» status
    Send results
    Results
    Get Results
    How it works: process results
  • 18. TestComplete part
    06.02.11
    Reset status
    Process functions
  • 19. TestComplete part
    06.02.11
    Wait for command
    Execute code
    Send results
    Set “done” status
  • 20. Ruby part: runner
    06.02.11
    Verify “done” status
    Set “pending” status
    Send code to execute
    Verify completion
    Get results
  • 21. Ruby part: client code
    06.02.11
    Valid TC code
    Call TC code
  • 22. Step 2: start TC client
    AQA TestComplete client
    Step 1: start bridge
    Http bridge
    Ruby client
    Step 3: start Ruby client
    How to start it
  • 23. Results in YAML format.
    Example:
    ret_val: <return value>
    errors:
    - <error message 1>
    - <error message 2>
    AQA TestComplete client
    Http bridge
    Executable TestComplete code
    Ruby client
    Data exchange
  • 24. Data exchange
    Get results
    Transform into Ruby structure
    Fail if some errors present
  • 25. Stable communication
    Stable communication
    AQA TestComplete client
    Http bridge
    Ruby client
    Hard cases: stable areas
  • 26. Case 1: TC request failed
    Resolution:
    Resend several times until success
    AQA TestComplete client
    Http bridge
    Ruby client
    Hard cases
  • 27. Case 2: TC crashes
    Resolution: Ruby client waits for some limited time to execute
    AQA TestComplete client
    Http bridge
    Ruby client
    Hard cases
  • 28. Case 3: execution is pending when Ruby client starts
    Resolution: Ruby client sets status into «done» at the begining
    AQA TestComplete client
    Http bridge
    Ruby client
    Hard cases
  • 29. Case 4: bridge was stopped
    Resolution: clients are stopped
    AQA TestComplete client
    Http bridge
    Ruby client
    Hard cases
  • 30. AQA TestComplete client
    AQA TestComplete client
    Http bridge
    Http bridge
    Target Machine 2
    Target Machine 1
    Re-initialize client with new target
    Ruby code
    Distributed execution
  • 31. Goals achievement
    06.02.11
    Win UI tests
    System tests
    Mac UI tests
    It still works
    AQA TestComplete
    Ruby
    Distributed architecture
    Common Layer
    Cucumber
    Works for non-technical people
  • 32. Alternative
    06.02.11
    Original post at:
    http://samsagiletesting.blogspot.com/2010/03/test-complete-and-ruby.html
  • 33. Why alternative doesn’t work?
    Too tight connection to TestComplete
    Dependency on system-dependend values (UID)
    Distributed solution works for Windows only
    Complex Ruby structures
    06.02.11
  • 34. Questions?
  • 35. AUTOMATED-TESTING.INFO
    06.02.11