German Testing Day 2013

Some crumbs of that day:
– Great Keynote by Michael Palotas, Head of Productivity & Test Engineering Europe.
– Facebook has no manual testers at all. This reflects the testing world in 10 years.
– A tester in a scrum team may be called ’embedded tester’.
– Testers probably have the best overview of the product compared to the rest of the company.
– eBay (Francois Reynaud) has developed iOs Driver, Selendroid (which is to some extent a base of Appium) and Selenium Grid -> Selenium isn’t just a project of individual geeks, it’s also driven by the big internet companies (google, ebay, facebook, …).
– eBay Europe uses almost no test specifications, test plans, test concepts (=secondary test artifacts) or closed-source tools
– Selenium IDE has chasen away people (due to maintenance nightmare!)
– There are more than 2000 different Android devices – happy testing!
– Main challegenge with crowdtesting is the aggregation of the feedback/findings.
– Keeping up-to-date the specification is harder in JBehave (et al.) than in FitNesse.
– Selenium is also used in game-testing – think of browser games!

SKIP Mechanics in Robot Framework

I haven’t found a sophisticated solution to SKIP in Robot Framework (compare this issue).
So you have to implement such a mechanism on your own.
There are two parts:
1.) the independent testcase (or testsuite)
2.) the dependent testcase (or testsuite)
1.) The independent testcase
Execute in [Teardown] only one keyword, because Robot Framework restricts more then one (the same applies to [Setup]).
Because IMHO the SKIP mechanism belongs to the testcases, I wouldn’t put the keyword definition in a ressource file, but at the end of the test case file.
Because you typically will take a screenshot in the testcase teardown, the file would look like this:

*** Variables ***
${SkipDependenciesOfTestcase1}    False    # this declaration avoids "Non-existing variable '${SkipDependenciesOfTestcase1}'"-Error which happens non-deterministically (=sometimes).
*** Test Cases ***
Testcase 1
     Testing Keyword 1
     Testing Keyword 2
     (...)
     [Teardown]    Teardown Testcase 1
(...)
*** Keywords ***
Teardown Testcase 1
     Capture Page Screenshot    Teardown Testcase 1.png
     Run Keyword If Test Failed    Set Global Variable    ${SkipDependenciesOfTestcase1}    True

2.) The (appropriate) dependent testcase
You have to put the second part of the SKIP mechanism into the [Setup] of the dependent testcase:

*** Test Cases ***
(...)
Testcase 2
     [Setup]    Setup Testcase 2
     Testing Keyword 3
     Testing Keyword 4
     (...)
*** Keywords ***
(...)
Setup Testcase 2
     Run Keyword If    '${SkipDependenciesOfTestcase1}'=='True'    Fail    SKIPPED due to failure of testcase 1.

Some testautomaters prefer to PASS a SKIPed testcase: Pass Execution Keyword
Tip: You can test your implementation of skip mechanism with an empty page, because then the independent testcase fails certainly and quick.
For more information on Robot Framework read: https://it-kosmopolit.de/strategic-link-collection-of-robot-framework/