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