Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

DevOps 及 TDD 開發流程哲學

說明 DevOps 及 TDD 的開發哲學

  • Sé el primero en comentar

DevOps 及 TDD 開發流程哲學

  1. 1. DevOps TDD
  2. 2. SPOOKY
 Programmer DevOps Team Leader Java 6 years Javascript 1.5 years
 
 smlsun@facebook trunk-studio.com blog.trunk-studio.com
  3. 3. OUTLINE • DevOps • DevOps • DevOps • TDD • TDD • TDD • TDD CI •
  4. 4. DevOps
  5. 5. DevOps Agile Lean DevOps IT 

  6. 6. AGILEVS LEAN • Agile: • • Lean: • •
  7. 7. DEVOPS • •
  8. 8. DEVOPS • 90 • 2 1 DevOps 1.5 18
  9. 9.
  10. 10. DevOps
  11. 11. DevOps Develop Operator
  12. 12. DevOpsTools
  13. 13. Tools as objects to think with Tools
  14. 14. DEVOPS • • • •
  15. 15. TDD 
 DevOps ...
  16. 16. • • • •
  17. 17. TEST
  18. 18. DeveloperQA
  19. 19. TEST SPEC
  20. 20. /
  21. 21. FAIL Edge of Tomorrow
  22. 22. TDD test Tools as objects to think with Tools TDD is not about test but think about better design
  23. 23. ...
  24. 24. TDD TEST CODE
  25. 25. TDD
  26. 26. XTEST vs OTEST -4 -2 -60
  27. 27. TDD NODEJS
  28. 28. Package
 Library Application Server
  29. 29. LOGIN • 3 step Login
  30. 30. INITIAL
  31. 31. var liftApp = async () => { await models.sequelize.sync({ force: config.connection.force }); await bootstrap(); app.listen(config.port); return app; } if (env !== 'test') liftApp(); module.exports = liftApp import chai from 'chai'; import request from 'supertest'; import sinon from 'sinon'; import liftApp from '../../server'; chai.should(); global.sinon = sinon; before(async (done) => { let app = await liftApp(); global.app = app; global.request = request.agent(app.listen()); done(); }); AP
 start test framework
 start
  32. 32. SPECdescribe('auth login spec', () => { before(async (done) => { let testUser = {'username': 'test', 'password': 'test'} await models.User.create(testUser); done(); }); it('login should be success.', async (done) => { let loginUserFormData = { 'username': ‘test', 'password': ‘test' }; request.post(‘/auth/login') .send(loginUserFormData).expect(200) .end((error, res) => { if (error) done(error); let loginResult = res.body; loginResult.success.should.be.true; done(); }) }
  33. 33. • Mocha test framework • Supertest API • Should or Chai spec
  34. 34. MOCK 
 EX
  35. 35. API OR
  36. 36. • sinon 
 Mock Source code Mock code
  37. 37. Spec SPEC SA/SD 

  38. 38. / SPEC
  39. 39. TDD CI
  40. 40. CI / CD
  41. 41. CI
  42. 42. AutoTrigger
  43. 43. – “ ”
  44. 44. • • • • • from Clean Code
  45. 45. DEVOPS TDD
  46. 46. • Member • • Member
  47. 47. • • • •
  48. 48. • • Member • •
  49. 49. AGILEVS LEAN AND • Agile: • • Lean: •
  50. 50. • http://qualitycoding.org/tdd-testimonial/ • http://gamesfromwithin.com/backwards-is-forward- making-better-games-with-test-driven-development • http://punnode.com/archives/18016 • http://teddy-chen-tw.blogspot.tw/2014/09/blog- post_22.html

×