2. About Me
• Masaki Nakagawa
• @ikasam_a
• github.com/masaki
• CPAN Author
• Testing Casual
(metacpan.org/author/MASAKI)
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
26. Names
• SET
• SDET
• SWET
(Software Engineer in Test)
by @Google
(Software Design Engineer in Test)
by @Microsoft
by @DeNA
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
27. Definition
•
Google Testing Blog
•
How Google Tests Software
• http://googletesting.blogspot.com
• http://googletesting.blogspot.jp/2011/01/how-google-testssoftware.html
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
29. the SET
• a developer role focused on testability
• review designs
• refactor code to testable
• write testing frameworks
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
31. the TE
• a role that puts testing first
• write automation scripts
• interpret test results
• drive test execution
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
33. Focus
•
SETs primary focus is on the developer
• Individual feature quality
Enabling developers to easily test
•
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
35. our SWET = SET + TE
•
•
Developer Productivity
Quality Assurance
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
36. SWET Group
Mission Statement
•
• Improve the quality and
Keep the quality of Platform
productivity of Platform
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
37. As an Engineer
• can be developed test target
NOT a tester but a test engineer
•
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
41. Classification of Testing
Test
Levels
Who
Which
How
What
Test
Design
Techniques
Test
Types
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
42. Who
Developer or User (Customer)
• Developer Testing
Acceptance Testing
•
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
43. Which
One or More
• Unit Testing
Integration Testing
•
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
44. How
Techniques for writing tests
•
White Box Testing
•
Gray Box Testing
•
Black Box Testing
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
45. What
the Purpose of testing
•
Non-Functional Testing
•
Functional Testing
• Performance / Stress / Usability / ...
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
46. Open Platform Architecture
Mobage
Mobile
App
SDK
Game
Server
Mobage
API
RESTful API
Mobile
Browser
API
mbga.jp
API
ProxyServer
Databases / Middlewares
Mobage Developers
PC
Browser
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
47. Targets
1. Mobage RESTful API (Web API)
2. Mobage Developers (Web Application)
3. mbga.jp ProxyServer (Mobile Web)
4. Mobage SDKs (Client SDK)
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
48. A) WebAPI
Test Client
API Server
module
API Server
API Server
DB
module
module
API Server
API Server
Cache
48
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
49. Conditions
• HTTP Request to API Server
• JSON Response from API Server
• no UI
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
50. Gray Box Fixture
Test Client
API Server
module
API Server
API Server
DB
module
module
API Server
API Server
Cache
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
51. Gray Box Fixture
• DB / Cache Manipulation
• insert test-case specific data
• delete cache for continuous tests
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
52. Specific Targeting
Test Client
API Server
API Server
API Server
module
API Server
API Server
DB
module
module
API Server
API Server
Cache
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
54. Domain Specific Client
• Mobage::API::Client (Perl)
• mobage-api-client (Ruby)
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
55. Message Dumping
• keep previous request in response
• interactive debugging
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
56. B) WebApp / Mobile Web
Test Browser
Web Application
M
API Server
API Server
DB
V
C
API Server
API Server
Cache
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
57. Conditions
• HTTP Request to Web App
• HTML Response from Web App
• with JavaScript
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
58. Basic Strategy
• Selenium WebDriver
• Ruby, RSpec, Capybara
• Headless Browser
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
60. Agent Switching
• Browser can’t touch HTTP Header
• Emulator can’t parse JavaScript
• Save/Restore pseudo agent state
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
61. Domain Specific Client
• called “mobage-browser”
• We don’t use “Page Object Pattern”
• “Domain Agent Pattern”
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
62. Mobile Emulation
• FireMobileSimulator
• Mobile WebDrivers (DEPRECATED)
• AndroidDriver, IPhoneDriver
• with Real Devices
• Selendroid, ios-driver, Appium
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
63. C) Client SDKs
Test Scripts
Test
Application
Mobage
SDK
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
64. Conditions
• create test apps using specific SDK
• use SDK as a developer
• run test scripts to automate test apps
• check SDK-API behaviors
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
65. UI Automation
• Multiple Devices Support
• Android, iOS
• Test Cases Consistency
• Calabash
• Appium
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
67. Ex) Service Integration
• “Notification from Games” feature
• Game can broadcast notification
to users who is playing
• User can receive notification
at Mobage Chat Web
• User can toggle settings
to receive notification or not at mbga.jp
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
68. Scenario
Feature: Notification from Games
Scenario: User can receive notification
Given user login to mbga.jp
When user visit to settings page
And user enable to “notification” setting
And game broadcast notification using API
And user visit to Mobage Chat page
Then user can show notification message
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
69. Scenario
Feature: Notification from Games
Scenario: User can ignore notification
Given user login to mbga.jp
When user visit to settings page
And user disable to “notification” setting
And game broadcast notification using API
And user visit to Mobage Chat page
Then user can not show notification message
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
70. Multiple Sessions
• Game
• using “mobage-api-client”
• User
• using “mobage-browser”
• 3 Domain Specific Client
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
71. 今日話したこと
•
Mobage Open Platform について
•
SWETグループを作った背景
•
•
SWET って何?
SWETグループって何やってるの?
71
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.