28
TDD & CI in FRONTEND [email protected]

Test Driven Development (TDD) & Continuous Integration (CI)

Embed Size (px)

Citation preview

Page 1: Test Driven Development (TDD) & Continuous Integration (CI)

TDD & CI in [email protected]

Page 2: Test Driven Development (TDD) & Continuous Integration (CI)

AGILE SOFTWARE DEVELOPMENT

Page 3: Test Driven Development (TDD) & Continuous Integration (CI)

COMPLEXITY

Page 4: Test Driven Development (TDD) & Continuous Integration (CI)

AGILE VS WATERFALL

Page 5: Test Driven Development (TDD) & Continuous Integration (CI)

TEST DRIVEN DEVELOPMENT (TDD)

Page 6: Test Driven Development (TDD) & Continuous Integration (CI)

WHAT IS TDD?

Page 7: Test Driven Development (TDD) & Continuous Integration (CI)

WHY TDD?

● SAFETY NET● REDUCE BUGS● FAST FEEDBACK● VALIDATE YOUR DESIGN● KEEP FOCUS ON GETTING DONE● FORCE DEVELOPER TO THINK ABOUT GOALS● EASY MAINTENANCE● EASY UPGRADE● ETC...

Page 8: Test Driven Development (TDD) & Continuous Integration (CI)

GOOD TEST

● AUTOMATED AND REPEATABLE● EASY TO IMPLEMENT● ANYONE SHOULD ABLE TO RUN IT● IT SHOULD RUN QUICKLY● IT’S RESULT SHOULD BE CONSISTENT● IT SHOULD FULLY ISOLATED● WHEN TEST FAILS, IT MUST BE EASY TO DETECT WHAT WAS EXPECTED

AND HOW TO PINPOINT THE PROBLEM

Page 9: Test Driven Development (TDD) & Continuous Integration (CI)

TDD WORKFLOW

Page 10: Test Driven Development (TDD) & Continuous Integration (CI)

UNIT TESTING

Page 11: Test Driven Development (TDD) & Continuous Integration (CI)

FRONTEND UNIT TESTING

● KARMA - TASK RUNNER● MOCHA - TESTING FRAMEWORK● CHAI - ASSERTION LIBRARY

Page 12: Test Driven Development (TDD) & Continuous Integration (CI)

FRONTEND UNIT TESTING EXAMPLE

Page 13: Test Driven Development (TDD) & Continuous Integration (CI)

FRONTEND TESTING EXAMPLE

Page 14: Test Driven Development (TDD) & Continuous Integration (CI)

END TO END TESTING

Page 15: Test Driven Development (TDD) & Continuous Integration (CI)

FRONTEND E2E TESTING

● PROTRACTOR - TASK RUNNER● MOCHA - TESTING FRAMEWORK● CHAI - ASSERTION LIBRARY

Page 16: Test Driven Development (TDD) & Continuous Integration (CI)

FRONTEND E2E TESTING EXAMPLE

Page 17: Test Driven Development (TDD) & Continuous Integration (CI)

CODE COVERAGE

A TECHNIQUE TO DETERMINE HOW MUCH CODE IS BEING TESTED

Page 18: Test Driven Development (TDD) & Continuous Integration (CI)

CODE COVERAGE TOOLS

● ISTANBUL● BLANKET.JS● COVERALLS.IO

Page 19: Test Driven Development (TDD) & Continuous Integration (CI)

CODE COVERAGE EXAMPLE

Page 20: Test Driven Development (TDD) & Continuous Integration (CI)

CLEAN CODING

Page 21: Test Driven Development (TDD) & Continuous Integration (CI)

CLEAN CODE METRIC

Page 22: Test Driven Development (TDD) & Continuous Integration (CI)

WAY TO CLEAN CODE

● ANGULAR JOHN PAPA’S STYLE GUIDE● CODECLIMATE.COM

Page 23: Test Driven Development (TDD) & Continuous Integration (CI)

CONTINUOUS INTEGRATION (CI)

Page 24: Test Driven Development (TDD) & Continuous Integration (CI)

WHAT IS CI?

Page 25: Test Driven Development (TDD) & Continuous Integration (CI)

WHY CI?

● IF YOU’RE GOING TO FAIL, THEN FAIL EARLY● ENABLE CONTINUOUS DELIVERY● ENABLE AUTOMATED TESTING● INCREASE CONFIDENCE IN OUR PRODUCT● PREVENTION AND REDUCTION OF PRODUCTION AND STAGING ERRORS● REDUCING RISK● REDUCING OVERHEAD ACROSS THE DEVELOPMENT AND DEPLOYMENT

PROCESS

Page 26: Test Driven Development (TDD) & Continuous Integration (CI)

CI TOOLS

● JENKINS● TEAMCITY● TRAVIS-CI.ORG● CODESHIP.COM

Page 27: Test Driven Development (TDD) & Continuous Integration (CI)

THANK YOU

Page 28: Test Driven Development (TDD) & Continuous Integration (CI)