Whitebox testing-phpughh

Post on 16-Nov-2014

206 views 1 download

Tags:

description

Slides meines vortrages Whitebox Testing für PHP Entwickler bei der PHP Usergroup Hamburg - 8 April 2014 Test Examples Used https://github.com/WebconsultsEU/WhiteBoxTestingExamples

Transcript of Whitebox testing-phpughh

Whitebox TestingSystematische Testmethoden für PHP Entwickler

John Behrens

• John Behrens

• IT Berater – Entwickler - Trainer

• PHP seit 2000

• Twitter: @WebconsultsEU

• Mail: John.Behrens@webconsults.eu

• Xing, Google+, Linkedin: John Behrens

Whitebox und Blackbox

Entwicklertests = Whitebox Tests ?

• Code und Interne Strukturen Bekannt

• Testen am Code

Whitebox Testing Tools

PHP Checkstyle

Code Reviews

Was bringt mir Whitebox Testing ?

• Systematisches vorgehen beim Debugging

• Bessere Unit Tests, auf Tests Optimierter Code

• Genauer und Systematischer Testen

• Schnelleres finden von Bugs

• Systematisches vorgehen bei Code Reviews

Whitebox Testing Methoden

• Kontrollflussbasiert

• Datenflussbasiert

• Security Orientiert

• Statische Methoden

• Dynamische Methoden

Kontrollflusbasierte Testarten

• Anweisungsüberdeckungstest(Statement Coverage)

• Zweigüberdeckungstest(Branch Coverage)

• Bedingungs / Entscheidungsüberdeckungstest(decision condition coverage)

• Bedingungs / Überdeckungstest(Condition Coverage Test)

• Pfadüberdeckungstest(Path Coverage Test)

Anweisungstest / Anweisungsüberbrückung

• Eine Anweisung ist eine Entscheidung Loop, If, case etc

• Engl. Statement Coverage

• Anweisungsüberdeckung = Anzahl durchlaufene Anweisungen / Gesamtzahl Anweisungen * 100%

Zweigtest / Zweigüberdeckung

• Ein Zweig ist ein Code Teil der bedingt durchlaufen wird

• Innerhalb eines If Statements, Loop, Case

• Zweigüberdeckung = Anzahl durchlaufene Zweige / Gesamtzahl Zweige * 100%

Pfadtest / Pfadüberdeckung

• Abweichend vom Zweigtest wird hier der Test in allen oder vielen möglichen Pfaden durchlaufen.

Zyklomatische Komplexität

• Anzahl der Entscheidungen im Code

• Berechnet sich durch Anzahl der Binärverzweigungen (If Verzweigungen mit 2 Zweigen) + Anzahl der Kontrollflussgraphen

• Anzahl der Ecken und Kanten im Kontrollflussgraphen

Datenflussbasiert

• undeklariert (u): Variable hat weder einen Wert noch einen Speicherplatz.

• deklariert (d): Variable hat keinen definierten Wert, ihr wurde aber schon Speicher zugewiesen.

• initialisiert (i): Zuweisung eines Wertes an eine Variable.

• referenziert (r): Lesen/Verwenden des Variablen-Wertes.

Datenfluss Anomalien

• DU Anomalie

• UR Anomalie

• DD Anomalie

Code Review Arten

• Kollegiale Code Reviews

• Peer Review

• Formelles Review

• QA / Security Review

• Technisches Review

Fragen , Diskussion ?

• Kontakt: John Behrens

• Twitter @WebconsultsEU

• Email: john.behrens@webconsults.eu