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.

Software Engineer in Test at DeNA

4,964 views

Published on

Published in: Technology

Software Engineer in Test at DeNA

  1. 1. Software Engineer in Test at DeNA Masaki Nakagawa / @ikasam_a DeNA Co., Ltd.
  2. 2. http://dena.com/topics/2013/07/ swettechtalk33.php
  3. 3. About Me • @ikasam_a • github.com/masaki • metacpan.org/author/MASAKI
  4. 4. at DeNA • JOIN (2011/10) • Founder of QA Team (2012/01) • (...developed tests...)
  5. 5. Currently Status • SWET (Software Engineer in Test) • TE (Test Engineer)
  6. 6. What is SWET? • a developer role for testing • write test framework • build test environments • write tests
  7. 7. http://en.wikipedia.org/wiki/SET
  8. 8. http://googletesting.blogspot.jp/2011/02/how-google- tests-software-part-two.html
  9. 9. Several Names • SWET @DeNA • SET (Software Engineer in Test) @Google • SDET (Software Development Engineer in Test) @Microsoft • QAE (Quality Assurance Engineer) @Amazon.com
  10. 10. Developer Productivity • to improve productivity • Base Technology Team • Development Infrastructure Team • “Dandelion” a.k.a.“Tanpopo” • as SWET • productivity of testing • productivity using test technology
  11. 11. at DeNA • JOIN (2011/10) • Founder of QA Team (2012/01) • (...developed tests...)
  12. 12. Previous Works • as a Developer • Web API (Ruby) • Web Application (Ruby) • Windows Application (VC++) • Embedded Application/Library (C++) • as a Developer Productivity • Automation of build and test • CI/CD
  13. 13. Write Codes w/ Unit Test in all Products
  14. 14. Ruby • RSpec,Webrat(!), Selenium, Cucumber • Cucumber is overkill... • make Webrat’s custom node matchers • many monkey patches
  15. 15. C++/VC++ • Google Test, Google Mock • very difficult to search freamworks • aggregate test cases automatically • easy setup and teardown • flexible mocks • monkey patching • sexyhook • can stubbing Win32API
  16. 16. Do Everything where Automation is not enough
  17. 17. Automation • JavaScript • PhantomJS • QUnit + qunit-tap.js (for Jenkins) • @t_wada++ • Java • Maven2 + local repo • replace to JMockit from djUnit
  18. 18. QA Process • wrote many-many automated tests • Unit Test and Integration Test • against conventional process • automation v.s. manual testing • discontinuity w/ QA dept.
  19. 19. Testing Activities SHOULD be in Developments
  20. 20. I met “SET” • Google Testing Blog • http://googletesting.blogspot.com • How Google Tests Software • http://googletesting.blogspot.jp/2011/01/how-google-tests-software.html
  21. 21. QA Team at DeNA • did not like THE name :D • was worried misleading • would like to do SWET
  22. 22. QA Team Mission Statement • For platform engineers • To develop new features • Should keep the quality of platform system
  23. 23. About QA Team • To verify the Platform System • To write AUTOMATION tests • To improve Platform System quality is NOT a tester, is a TEST ENGINEER
  24. 24. Mobage Open Platform (Outline) API Server Gadget Server mobage Developers (WebApp) Internal Tools / Databases / Middlewares Developer Game Server / Game Client (User) API ServerAPI Server Gadget ServerGadget Server
  25. 25. Target & Level • tests “Interfaced” components • API, Gadget, mobage Developers, ... • lack of integration level tests • end-to-end
  26. 26. Browser Game Testing • Browser Game for Test • Smartphone Emulated Browser • E2E Test Codes API Server Gadget Server Smartphone (Emulation) Platform
  27. 27. API Testing • Mobage API HTTP Client for Test • Gray-Boxed Fixture Library • E2E Test Codes API Server Test Scripts (in Platform) Platform
  28. 28. WebApp Testing • App-Specialized Browser • E2E Test Codes mobage DevelopersPC Browser Platform
  29. 29. Techniques • Gray Box Testing • mixed Black Box and White Box • Black Box-ed test cases • White Box-ed test fixtures • Multi-environmental tests • multi-region • multi-environment
  30. 30. Policy • Test Engineering • as an engineer (developer) • Gray Box • clean codes • Readable • Writable • Maintainable
  31. 31. as an Engineer • for Gray Box • requires Skills • understands the Product (including code) • behaves an product engineer, if necessary
  32. 32. Code Quality • Readable • What do you testing ? • Writable / Maintanable • How do you add or modify ?
  33. 33. Conclusions • Developing E2E Tests over the past year • acts as SWET • reduce distance between Test & Dev • SWET is hard and crazy, but FUN! • if interesting, please talk to me!
  34. 34. Any Questions?

×