Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

31

Share

Download to read offline

DevOps 及 TDD 開發流程哲學

Download to read offline

說明 DevOps 及 TDD 的開發哲學

Related Books

Free with a 30 day trial from Scribd

See all

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
  • Kouni

    Aug. 31, 2020
  • HaoChen13

    Dec. 1, 2019
  • guolongcang

    Sep. 13, 2019
  • hashcms

    Aug. 21, 2017
  • JamesPeng12

    Apr. 12, 2016
  • yanzefei

    Mar. 31, 2016
  • wgs0120

    Mar. 17, 2016
  • bestlong

    Jan. 29, 2016
  • JamisLiao

    Jan. 25, 2016
  • tophacker

    Jan. 17, 2016
  • yuyinghsiao

    Jan. 9, 2016
  • hema7771

    Jan. 7, 2016
  • freshmulberry

    Dec. 28, 2015
  • xijunyou

    Dec. 18, 2015
  • daniel0422

    Dec. 16, 2015
  • baibaitung

    Dec. 15, 2015
  • lhliutw

    Dec. 13, 2015
  • peihsinsu

    Dec. 13, 2015
  • warfan

    Dec. 13, 2015
  • ssuser7e8c60

    Dec. 13, 2015

說明 DevOps 及 TDD 的開發哲學

Views

Total views

4,973

On Slideshare

0

From embeds

0

Number of embeds

1,529

Actions

Downloads

92

Shares

0

Comments

0

Likes

31

×