Post on 08-Aug-2015
transcript
J AVA S C R I P T T E S T I N G S T R AT E G I E S
D I W A D E L M U N D O , V O YA G E R I N N O VA T I O N S
M A N I L A . J S F R I D A Y S M E E T U P A P R I L 8 , 2 0 1 5 A - S PA C E , M A K A T I , P H I L I P P I N E S
S H O R T B A C K G R O U N D A B O U T M E
• Almost a decade of software dev experience
• Work exp local startups (LPI, self) and Singapore (Viki)
• Ruby on Rails, JavaScript, Linux, AWS
• CISSP, AWS Certified SA, CPISI (PCI-DSS)
T E S T I N G S P E C T R U M
UNIT INTEGRATION END-TO-END
functions, modules
components, API tests
UI, application
3 S T R AT E G I E S F O R T E S T I N G
• Enforce code standards
• Cultivate “testing” mindset
• Use good tools
1 . E N F O R C E C O D E S TA N D A R D S
• Code guideline (syntax)
• Code review
• Standard for managing continuation-passing style (CPS)
C O D E G U I D E L I N E
• Be particular about syntax (bracing, spacing, etc)
• Document, e.g. “CodeGuidelines.md”
• Project code should look like it was written by 1 person
Image From https://github.com/airbnb/javascript
C O D E R E V I E W S
• Find faults, issues, etc
• Review code quality (plato)
• Test coverage (istanbul)
O P T I O N S F O R C P S
NAMED STYLE
Promises ES6: Generators
Libraries like async, synchronize, fibers
A S Y N C + N A M E D F U N C T I O N S
F O R C E S D E V E L O P E R T O
W R I T E U N I T- T E S TA B L E
C O D E
M Y P R E F E R R E D S T Y L E
“ S H AW D O W O B J E C T S ”
2 . C U LT I VAT E T E S T I N G M I N D S E T
• Write tests. Try to do full testing spectrum
• Have discussions on how to test
• Think outside box
T E S T F R A M E W O R K :
M O C H A
A S S E R T I O N S T Y L E : C H A I
T E S T D O U B L E S : S I N O N
C O D E Q U A L I T Y: P L AT O
T E S T C O V E R A G E : I S TA N B U L
R E Q U E S T R E C O R D E R :
N O C K
E N D - T O - E N D : K A R M A