Software Engineer in Test at DeNA

4,439 views
4,213 views

Published on

Published in: Technology
2 Comments
14 Likes
Statistics
Notes
No Downloads
Views
Total views
4,439
On SlideShare
0
From Embeds
0
Number of Embeds
1,036
Actions
Shares
0
Downloads
21
Comments
2
Likes
14
Embeds 0
No embeds

No notes for slide

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?

×