2. That's me
I Diplom-Informatiker (FH)
I Zend Certified Developer
I Certified Oracle MySQL Developer
I Scrum Master
HI!
MY NAME IS
Sebastian Springer
Mayflower GmbH I 2
10. Und warum Javascript?
I Wachsende Bedeutung
I User Experience
I Mehr Logik
I Mehr LoC
·Applikation vor 4 Jahren: ca. 3% Javascript
·Aktuelle Applikation: ca. 43% Javascript
Mayflower GmbH I 10
19. Unittests – QUnit Asserts
I ok(state, msg)
I equal(actual, expected, msg)
I deepEqual(actual, expected, msg)
I strictEqual(actual, expected, msg)
I raises(block, expected, msg)
I not...(..., msg)
·notEqual(actual, expected, msg)
Mayflower GmbH I 19
30. Unittests – Blackbox testing
I Isoliert
I Positiv/Negativ testing
I Häufige Ausführung
I Blackbox testing – Input/Output
Mayflower GmbH I 30
31. Unittests – Blackbox testing
/**
* This method calculates the greatest common divisor
* and returns the result
*
* @param m integer
* @param n integer
*
* @return mixed integer result, false if invalid params
*/
calculate: function (m, n)
{
if (typeof m != 'number' || typeof n != 'number') {
return false;
}
if (n == 0) {
return m;
} else if (m == 0) {
return n;
} else {
return this.calculate(n, m % n);
}
}
Mayflower GmbH I 31
32. Unittests – Blackbox testing
/**
* This method calculates the greatest common divisor
* and returns the result
*
* @param m integer
* @param n integer
*
* @return mixed integer result, false if invalid params
*/
calculate: function (m, n)
{...}
Mayflower GmbH I 32
33. Unittests – Test First
I Isoliert
I Positiv/Negativ testing
I Häufige Ausführung
I Blackbox testing – Input/Output
I Test First/Test Parallel
Mayflower GmbH I 33
34. Unittests – Test First
calculate: function (m, n)
{
if (typeof m != 'number' || typeof n != 'number') {
return false;
}
if (n == 0) {
return m;
} else if (m == 0) {
return n;
} else {
return this.calculate(n, m % n);
}
}
test(“Check GDC“, function() {
// @TODO write testlogic
});
Mayflower GmbH I 34
35. Unittests – Test First
/**
* This method calculates the greatest common divisor
* and returns the result
*
* @param m integer
* @param n integer
*
* @return mixed integer result, false if invalid params
*/
calculate: function (m, n)
{
return 2;
}
test(“Check GDC Success, exact match“, function() {
equal(2, gcd.calculate(4, 2));
});
Mayflower GmbH I 35
43. Integrationtests – Häufig verwendete Kommandos
I waitFor...
·z.B. waitForElementPresent
I verify...
·z.B. verifyTextPresent
I click
I type
I ...
Mayflower GmbH I 43
46. Integrationtests – Locators
I identifier=username
I id=password
I name=username
I dom=document.forms[0]
I xpath=//form[@id='loginForm']/div[1]/input[1]
I link=myLinkText
I css=div#loginBox
Mayflower GmbH I 46
55. Vielen Dank für Ihre Aufmerksamkeit!
Kontakt Sebastian Springer
sebastian.springer@mayflower.de
+49 89 242054 1120
Mayflower GmbH
Mannhardtstrasse 6
80538 München
14.10.2011 Mayflower GmbH 55