software engineer in test at dena
TRANSCRIPT
![Page 1: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/1.jpg)
Software Engineer in Testat DeNA
Masaki Nakagawa / @ikasam_aDeNA Co., Ltd.
![Page 2: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/2.jpg)
http://dena.com/topics/2013/07/swettechtalk33.php
![Page 3: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/3.jpg)
![Page 4: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/4.jpg)
About Me
• @ikasam_a
• github.com/masaki
• metacpan.org/author/MASAKI
![Page 5: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/5.jpg)
at DeNA
• JOIN (2011/10)
• Founder of QA Team (2012/01)
• (...developed tests...)
![Page 6: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/6.jpg)
Currently Status
• SWET (Software Engineer in Test)
• TE (Test Engineer)
![Page 7: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/7.jpg)
What is SWET?
• a developer role for testing
• write test framework
• build test environments
• write tests
![Page 9: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/9.jpg)
http://googletesting.blogspot.jp/2011/02/how-google-tests-software-part-two.html
![Page 10: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/10.jpg)
Several Names
• SWET @DeNA
• SET (Software Engineer in Test) @Google
• SDET (Software Development Engineer in Test) @Microsoft
• QAE (Quality Assurance Engineer) @Amazon.com
![Page 11: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/11.jpg)
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
![Page 12: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/12.jpg)
at DeNA
• JOIN (2011/10)
• Founder of QA Team (2012/01)
• (...developed tests...)
![Page 13: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/13.jpg)
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
![Page 14: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/14.jpg)
Write Codes w/ Unit Testin all Products
![Page 15: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/15.jpg)
Ruby
• RSpec, Webrat(!), Selenium, Cucumber
• Cucumber is overkill...
• make Webrat’s custom node matchers
• many monkey patches
![Page 16: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/16.jpg)
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
![Page 17: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/17.jpg)
Do Everythingwhere Automation is not enough
![Page 18: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/18.jpg)
Automation
• JavaScript
• PhantomJS
• QUnit + qunit-tap.js (for Jenkins)
• @t_wada++
• Java
• Maven2 + local repo
• replace to JMockit from djUnit
![Page 19: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/19.jpg)
QA Process
• wrote many-many automated tests
• Unit Test and Integration Test
• against conventional process
• automation v.s. manual testing
• discontinuity w/ QA dept.
![Page 20: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/20.jpg)
Testing ActivitiesSHOULD
be in Developments
![Page 21: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/21.jpg)
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
![Page 22: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/22.jpg)
QA Team at DeNA
• did not like THE name :D
• was worried misleading
• would like to do SWET
![Page 23: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/23.jpg)
QA TeamMission Statement
• For platform engineers
• To develop new features
• Should keep the quality of platform system
![Page 24: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/24.jpg)
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
![Page 25: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/25.jpg)
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
![Page 26: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/26.jpg)
Target & Level
• tests “Interfaced” components
• API, Gadget, mobage Developers, ...
• lack of integration level tests
• end-to-end
![Page 27: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/27.jpg)
Browser Game Testing
• Browser Game for Test
• Smartphone Emulated Browser
• E2E Test Codes
API ServerGadget Server
Smartphone(Emulation)
Platform
![Page 28: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/28.jpg)
API Testing
• Mobage API HTTP Client for Test
• Gray-Boxed Fixture Library
• E2E Test Codes
API ServerTest Scripts(in Platform)
Platform
![Page 29: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/29.jpg)
WebApp Testing
• App-Specialized Browser
• E2E Test Codes
mobage DevelopersPC Browser
Platform
![Page 30: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/30.jpg)
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
![Page 31: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/31.jpg)
Policy
• Test Engineering
• as an engineer (developer)
• Gray Box
• clean codes
• Readable
• Writable
• Maintainable
![Page 32: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/32.jpg)
as an Engineer
• for Gray Box
• requires Skills
• understands the Product (including code)
• behaves an product engineer, if necessary
![Page 33: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/33.jpg)
Code Quality
• Readable
• What do you testing ?
• Writable / Maintanable
• How do you add or modify ?
![Page 34: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/34.jpg)
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!
![Page 35: Software Engineer in Test at DeNA](https://reader036.vdocuments.us/reader036/viewer/2022062418/554f9fe6b4c9057b298b4846/html5/thumbnails/35.jpg)
Any Questions?