Top Banner
Software Engineer in Test at DeNA Masaki Nakagawa / @ikasam_a DeNA Co., Ltd.
35
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Engineer in Test at DeNA

Software Engineer in Testat DeNA

Masaki Nakagawa / @ikasam_aDeNA Co., Ltd.

Page 3: Software Engineer in Test at DeNA
Page 4: Software Engineer in Test at DeNA

About Me

• @ikasam_a

• github.com/masaki

• metacpan.org/author/MASAKI

Page 5: Software Engineer in Test at DeNA

at DeNA

• JOIN (2011/10)

• Founder of QA Team (2012/01)

• (...developed tests...)

Page 6: Software Engineer in Test at DeNA

Currently Status

• SWET (Software Engineer in Test)

• TE (Test Engineer)

Page 7: Software Engineer in Test at DeNA

What is SWET?

• a developer role for testing

• write test framework

• build test environments

• write tests

Page 10: Software Engineer in Test at DeNA

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

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

at DeNA

• JOIN (2011/10)

• Founder of QA Team (2012/01)

• (...developed tests...)

Page 13: Software Engineer in Test at DeNA

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

Write Codes w/ Unit Testin all Products

Page 15: Software Engineer in Test at DeNA

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

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

Do Everythingwhere Automation is not enough

Page 18: Software Engineer in Test at DeNA

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

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

Testing ActivitiesSHOULD

be in Developments

Page 21: Software Engineer in Test at DeNA

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

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

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

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

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

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

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

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

WebApp Testing

• App-Specialized Browser

• E2E Test Codes

mobage DevelopersPC Browser

Platform

Page 30: Software Engineer in Test at DeNA

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

Policy

• Test Engineering

• as an engineer (developer)

• Gray Box

• clean codes

• Readable

• Writable

• Maintainable

Page 32: Software Engineer in Test at DeNA

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

Code Quality

• Readable

• What do you testing ?

• Writable / Maintanable

• How do you add or modify ?

Page 34: Software Engineer in Test at DeNA

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

Any Questions?