tdd with php

49
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance TDD with PHP สมเกียรติ ปุ๋ยสูงเนิน SPRINT3R โดย บริษัท สยามํานาญกิจ จํากัด บริษัท ออด-อี (ประเทศไทย) จํากัด และพันธมิตร

Upload: somkiat-puisungnoen

Post on 14-Dec-2014

673 views

Category:

Technology


2 download

DESCRIPTION

Test Driven Development (TDD) with PHP Thailand PHP User Group

TRANSCRIPT

Page 1: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

TDD with PHPสมเกยรต ปยสงเนน

SPRINT3R โดย บรษท สยามานาญกจ จากด บรษท ออด-อ (ประเทศไทย) จากด และพนธมตร

Page 2: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 3: TDD with PHP

Unit Test คออะไร

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 4: TDD with PHP

วนหนงของ code

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

ทเรยกใงานวนอนๆ ของ code

Page 5: TDD with PHP

ใตรวจสอบ

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

สมมตฐานวาถกตองหรอไม

Page 6: TDD with PHP

Unit = Unit of Work

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 7: TDD with PHP

โครงสรางของ Unit Test

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 8: TDD with PHP

กาหนด precondition และ input

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

การกระทาบน method ทตองการทดสอบ

งทคาดหวงจากการทดสอบ

Page 9: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 10: TDD with PHP

ถาระบบมนบอนละ ?

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 11: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

O R D E R S E R V I C E

O R D E R R E P O S I T O R Y

E M A I L S E N D E R

K E E P L O G G I N G

Page 12: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 13: TDD with PHP

T E S T D O U B L E

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 14: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

O R D E R S E R V I C E

O R D E R R E P O S I T O R Y

E M A I L S E N D E R

K E E P L O G G I N G

Mock Dependencies

Page 15: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 16: TDD with PHP

แนวปฏบตการเขยน Unit Test ?

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 17: TDD with PHP

Test Last

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Test After Development

Plain Old Unit Test

Page 18: TDD with PHP

Test Last

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

ขนตอนท 1 เขยน code

ขนตอนท 2 เขยน test

Page 19: TDD with PHP

Test First

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

ขนตอนท 1 เขยน test

ขนตอนท 2 เขยน code

Page 20: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 21: TDD with PHP

แลว TDD ละ คออะไร ?

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 22: TDD with PHP

Design technique

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

that drive the development process

through testing

Martin Fowler

Page 23: TDD with PHP

Good design is Testability

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Robert C. Martin

Page 24: TDD with PHP

สรป TDD ดวย 3 รป

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 25: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 26: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 27: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 28: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

T D D C Y C L E

Page 29: TDD with PHP

TDD มประโยชนอะไร ?

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 30: TDD with PHP

มนจะกลายเปนเอกสาร

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

ตวอยางการใงาน code

Page 31: TDD with PHP

วยเรอง Regression test

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

ไมกลวการเปลยนแปลง

Feedback loop

Page 32: TDD with PHP

ความยากกคอ

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

จะเรมตนอยางไรด ?

Page 33: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

B U G D R I V E N D E V E L O P M E N T

Page 34: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

L E G A C Y C O D E

Page 35: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

S TA R T S M A L L

Page 36: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

P A I R P R O G R A M M I N G

Page 37: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

K ATA / D O J O

Page 38: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

ไมเขยน test กอน

เปาหมายคอ Code Coverage

ใเวลาทดสอบนาน

Test ทเขยนใหมไม fail

ทาการทดสอบ method โดยไมสนใจ behaviour

ไมทาการ Refactor code

Skip test

อแย โครงสรางหวย

Page 39: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

G O O D T E S T

Page 40: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 41: TDD with PHP

แลวยงไงละ !!

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 42: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 43: TDD with PHP

T E S T D R I V E N D E V E L O P M E N T

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 44: TDD with PHP

A C C E P TA N C E T E S T D R I V E N D E V E L O P M E N T

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 45: TDD with PHP

L A R G E R F E E D B A C K L O O P

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 46: TDD with PHP

เครองมอในภาษา PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 47: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 48: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

Page 49: TDD with PHP

SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance