+ All Categories
Home > Documents > Qualitätssicherung in Webprojekten

Qualitätssicherung in Webprojekten

Date post: 27-May-2015
Category:
Upload: sebastian-springer
View: 660 times
Download: 0 times
Share this document with a friend
58
© Mayflower GmbH 2012 Qualitätssicherung in Webprojekten Sebastian Springer I 06.06.2012
Transcript
Page 1: Qualitätssicherung in Webprojekten

© Mayflower GmbH 2012

Qualitätssicherung in Webprojekten

Sebastian Springer I 06.06.2012

Page 2: Qualitätssicherung in Webprojekten

@basti_springer

MY NAME IS

HELLO

Page 3: Qualitätssicherung in Webprojekten

Womit verdiene ich mein Geld?

● Mayflower GmbH

● PHP

● Javascript

● Teamleiter

Page 4: Qualitätssicherung in Webprojekten

Projekte?

Page 5: Qualitätssicherung in Webprojekten

Was erzähle ich heute?

● Qualitätssicherung in Webprojekten

● Schwerpunkt: Javascript

Page 6: Qualitätssicherung in Webprojekten

...und was nicht?

● Qualitätssicherung in PHP

● PHPCS, PHPUnit, phpcpd, pdepend,...

● http://jenkins-php.org/

Page 7: Qualitätssicherung in Webprojekten

Warum Qualitätssicherung?

Page 8: Qualitätssicherung in Webprojekten

Javascript === Quick & Dirty

Page 9: Qualitätssicherung in Webprojekten

Javascript === Quick & Dirty

Page 10: Qualitätssicherung in Webprojekten

Was ist Qualitätssicherung

● Standards

● Verlässlichkeit

● Erweiterbarkeit

● Stabilität?

Page 11: Qualitätssicherung in Webprojekten

CI

Page 12: Qualitätssicherung in Webprojekten

Continuous Inspection

Page 13: Qualitätssicherung in Webprojekten

Continuous Integration

Page 14: Qualitätssicherung in Webprojekten

Plattformen

Page 15: Qualitätssicherung in Webprojekten

CI im Großen - Jenkins

Page 16: Qualitätssicherung in Webprojekten

CI im Kleinen – die IDE

Page 17: Qualitätssicherung in Webprojekten

Und wozu das Ganze?

Page 18: Qualitätssicherung in Webprojekten

Schnelle Rückmeldung!

Page 19: Qualitätssicherung in Webprojekten

Das Beispiel

Page 20: Qualitätssicherung in Webprojekten

Ziel

Page 21: Qualitätssicherung in Webprojekten

Ziel

Datum eingeben

Page 22: Qualitätssicherung in Webprojekten

Ziel

Offset eingeben

Page 23: Qualitätssicherung in Webprojekten

Ziel

Datum berechnen

Page 24: Qualitätssicherung in Webprojekten

Ziel

Feiertage beachten!

Page 25: Qualitätssicherung in Webprojekten

Anforderungen an den Code

● JSLinted

● Kein Copy/Paste Code

● Unittests

● Akzeptanztests

Page 26: Qualitätssicherung in Webprojekten

Wie?

Page 27: Qualitätssicherung in Webprojekten

Mit Toolunterstützung und Automatisierung!

Page 28: Qualitätssicherung in Webprojekten

Anforderungen an den Code

● JSLinted

● Kein Copy/Paste Code

● Unittests

● Akzeptanztests

Page 29: Qualitätssicherung in Webprojekten

It will hurt your feelings!

Page 30: Qualitätssicherung in Webprojekten

Was macht JSLint?

● Codingstyle – Whitespaces● == & != vs. === & !==● Variablendeklarationen zu Beginn einer

Funktion● “use strict”● Globale Variablen● Verwendung vor der Definition● eval is Evil

Page 31: Qualitätssicherung in Webprojekten

JSLint in Jenkins

● jslint4java

java -jar jslint4java.jar --report xml /path/to/src/*.js > jslint.xml

● Violations Plugin

Page 32: Qualitätssicherung in Webprojekten

JSLint in PhpStorm

Page 33: Qualitätssicherung in Webprojekten

Anforderungen an den CodeAnforderungen an den Code

● JSLinted

● Kein Copy/Paste Code

● Unittests

● Akzeptanztests

Page 34: Qualitätssicherung in Webprojekten

Was macht CPD?

● Duplikate im Quellcode finden

● Tokens statt Strings

Page 35: Qualitätssicherung in Webprojekten

Warum?

● Verbesserungen an mehreren Stellen

● Bugfixes an mehreren Stellen

= erhöhter Wartungsaufwand

Page 36: Qualitätssicherung in Webprojekten

CPD in Jenkins

● PMD CPD

/opt/PMD/bin/run.sh cpd --minimum-tokens 12 --files /path/to/src --language ecmascript --format xml > cpd.xml

● Duplicate Code Scanner Plug-in

Page 37: Qualitätssicherung in Webprojekten

Anforderungen an den Code

● JSLinted

● Kein Copy/Paste Code

● Unittests

● Akzeptanztests

Page 38: Qualitätssicherung in Webprojekten

Warum Unittests?

● Stabilität

● Sicherheit

● Dokumentation

● Pro Bug ein Test

Page 39: Qualitätssicherung in Webprojekten

Jasmine

describe("DateCalc", function () {

it("should return false ...provided", function () {

var dateCalc = new DateCalc(),

result = dateCalc.resolveDate();

expect(result).toBeFalsy();

});

});

Page 40: Qualitätssicherung in Webprojekten

TDD

Page 41: Qualitätssicherung in Webprojekten
Page 42: Qualitätssicherung in Webprojekten
Page 43: Qualitätssicherung in Webprojekten
Page 44: Qualitätssicherung in Webprojekten

JsTestDriver

● Testing Framework

● Browser Capturing

● Coverage

● Plugins für Qunit und Jasmine

Page 45: Qualitätssicherung in Webprojekten

Jasmine in Jenkins

● JsTestDriver

java -jar JsTestDriver.jar --port 9876 --browser /usr/bin/firefox

java -jar JsTestDriver.jar --config /path/to/config.jstd --tests all --testOutput . --reset

● xUnit Plugin

Page 46: Qualitätssicherung in Webprojekten

config.jstd

server: http://localhost:9876

load:

- lib/jasmine-1.2.0.rc3/jasmine.js

- lib/jasmine-jstd-adapter/src/JasmineAdapter.js

- spec/DateCalc.js

- spec/Holiday.js

- src/DateCalc.js

- src/Holiday.js

plugin:

- name: "coverage"

jar: "/opt/JsTestDriver/plugins/coverage.jar"

module: "com.google.jstestdriver.coverage.CoverageModule"

Page 47: Qualitätssicherung in Webprojekten

Coverage in Jenkins

● JsTestDriver Coverage Plugin

● Converter

/opt/lcov-to-cobertura-xml.py jsTestDriver.conf-coverage.dat -o coverage/coverage.xml

● Cobertura Plugin

Page 48: Qualitätssicherung in Webprojekten

Jasmine in PHPStorm

Page 49: Qualitätssicherung in Webprojekten

Jasmine in PHPStorm

Page 50: Qualitätssicherung in Webprojekten

Jasmine in PHPStorm

Page 51: Qualitätssicherung in Webprojekten

Anforderungen an den Code

● JSLinted

● Kein Copy/Paste Code

● Unittests

● Akzeptanztests

Page 52: Qualitätssicherung in Webprojekten

Warum Akzeptanztests?

● Tests gegen Akzeptanzkriterien

● Anforderungen vs. Umsetzung

● Nicht von Entwicklern

Page 53: Qualitätssicherung in Webprojekten

Selenium IDE

Page 54: Qualitätssicherung in Webprojekten

Selenium in Jenkins

● Selenium Server

export DISPLAY=:5.0

java -jar /opt/selenium-server.jar -htmlSuite *firefox "http://dateCalc.basti.dev" "/srv/www/vhosts/tests/suite.html" "selenium/results.html"

● Selenium HTML report Plugin

Page 55: Qualitätssicherung in Webprojekten

Chuck Norris Plugin

Page 56: Qualitätssicherung in Webprojekten

Fragen?

Page 57: Qualitätssicherung in Webprojekten

http://joind.in/talk/view/6658

Page 58: Qualitätssicherung in Webprojekten

June 11, 2012 Mayflower GmbH 58

Vielen Dank für Ihre Aufmerksamkeit!

Sebastian Springer

[email protected]

Mayflower GmbH

Mannhardtstr. 6

80538 München

Deutschland

Twitter: @basti_springer

https://github.com/sspringer82


Recommended