Drupaljam Testing 20090626

619 views

Published on

Sinds drupal 7 is de module simpletest geintegreerd in core. Door het maken van een core patch wordt het nut en de globale werking duidelijk gemaakt van unit testing.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
619
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Drupaljam Testing 20090626

  1. 1. Unit Testing Raymond Muilwijk Michel van de Ven Madcap BV http://open.madcap.nl http://www.madcap.nl
  2. 2. Agenda ● De theorie ● Wat zijn unit tests? ● Wat heb je er aan? ● Test-first programming ● Pointers and pitfalls ● De praktijk ● Demonstratie unit tests & refactoring, test-first programming ● Toekomst van simpletest ● Q&A
  3. 3. Wat zijn unit tests? ● Doel is verificatie en validatie: Bouwen we het systeem juist? Bouwen we het juiste systeem? ● In code geformuleerde tests die, in een bekende context, “units” van het systeem functioneel testen. (Unit = functie, module, class &c) ● Voorspelbaar, reproduceerbaar. ● Programmer Tests & Customer Tests, integratietest
  4. 4. Wat heb je er aan? (1) ● Write once, use forever: zinvolle investering. ● Levende systeemdocumentatie: samen met de code onderhouden, dus actueel. ● Controle op regressie van bugs: iedere bug zijn eigen unit test. ● Courage to change: geen onvermoede effecten. ● Hulp bij impactanalyse: Wat is de fan-out als ik deze interface verander?
  5. 5. Wat heb je er aan? (2) ● Werkt toepassen van gezonde software engineering principes in de hand: ● Functionele decompositie. ● Decoupling & isolation, reduceren afhankelijkheden. ● MVC, Law of Demeter, YAGNI, DRY. ● Voorwaarde voor het kunnen doen van refactoring. ● Kwaliteit.
  6. 6. Test-first programming ● Eerst de test, dan pas de code. ● Unit test is zeer precieze want in code geformuleerde specificatie. ● Belangrijke effecten: ● Het formuleren van de unit test dwingt tot het doen van analyse en ontwerp (JIT, XP) ● Je kunt stoppen met coderen precies wanneer de unit test slaagt. Do the simplest thing that could possibly work. You are not going to need it.
  7. 7. Pointers & Pitfalls ● Unit tests tonen, net als alle andere methoden, alleen de aanwezigheid van bugs aan, niet de afwezigheid. ● De code van de unit test kan net zo buggy zijn als het testonderwerp. ● Unit tests moeten tezamen met de code onderhouden worden. ● Hoeveel unit tests moet je maken? Test everything that can possibly break. ● Gebruik van revisie controle is voorwaarde.
  8. 8. Demo Voorbereiding CVS checkout: http://drupal.org/node/320 Testcase maken: http://drupal.org/node/325974 Refactoring Convert search module: http://drupal.org/node/394182 Test First Interesting What's next: http://buytaert.net/drupal-7-testing-status-update-and-next-steps PIFR: http://testing.drupal.org/pifr/status
  9. 9. Q&A

×