SlideShare a Scribd company logo
Technology supporting
the release of HOME'S
Naoto Kishino (Software Engineer in Test at LIFULL)
April 19th, 2019 at Selenium Conf Tokyo
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。2
Introduction
Naoto Kishino
(木住野 奈夫人)
Software Engineer in Test Group
(3 members)
Test Automation/CI/CD
Group vision :
自動化と高速化を進め、プロとして最高のDXを実現する
Create the best DX (Developer Experience) in the world.
@naotospace
NA070
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。3
Overview
We accelerated release frequency
from two times a week to four times a
week.
We achieved this goal by solving some
problems in the automated system testing
which is executed before release.
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。4
Agenda
1.About LIFULL HOME’S
2.About development process
3.Problems in our automated system testing
4.Solutions
5.Conclusion
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。5
About LIFULL HOME’S
Do you know LIFULL HOME’S?✋
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。6
About LIFULL HOME’S
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。7
About LIFULL HOME’S
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。8
About LIFULL HOME’S
● Information service about Real Estate
in Japan.
● Registration number’s No.1 in Japan
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。9
Development process
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。10
About development process
Team A Team B Team C
Multiple teams create
many new features at the same time.
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。11
About development process
Team B Team C
These new features become
one release package.
Team A
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。12
Test
About development process
Team B Team CTeam A
Release!
Teams do some tests for their function.
After passing all the tests, package will be release.
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。13
Release!
Test
About development process
Hundreds of new features release per month.
It was able to release on Tuesday and Thursday.
Monday Tuesday Wednesday Thursday Friday
◯ ◯
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。14
About development problem
Large-scale features can only released on Tuesday.
Monday Tuesday Wednesday Thursday Friday
X (Delay😥) → → →
→ Release
Release!
Too Slow….
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。15
About development Team
Change the number of releasable day in a week
Monday Tuesday Wednesday Thursday Friday
◯ ◯
Monday Tuesday Wednesday Thursday Friday
◯ ◯ ◯ ◯
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。16
Problems in our
automated system testing
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。17
Problems in our automated system testing
Release!
• E2E(End-to-End) test using Selenium.
• Executed before release.
• To make sure no incident is increasing by degrades.
System testing
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。18
High cost!
We almost spent 4 person-day on per test.
Bottleneck!!!😥
Problems in our automated system testing
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。19
Why bottleneck?
1. Too many test cases
2. Too flaky
3. Maintainability was too low
Problems in our automated system testing
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。20
1. Too many test cases
● No test plan
● What we want to assure is not clear
Problems in our automated system testing
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。21
2. Too flaky
● Test code were implemented
in complex processing
● Some cases include unsuitable step
in automated testing
Problems in our automated system testing
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。22
3. Maintainability was too low
● Complex test code
● Low readability
Problems in our automated system testing
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。23
Solution 1
Recreate test plan
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。24
Solutions
1. Too many test cases -> Test plan
2. Too flaky
3. Maintainability was too low
Solution 1 Recreate test plan
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。25
Solution 1 Recreate test plan
Define the scopes about
manual testing and automated testing
• Manual:Specification based
– New features and regression test
• Automated:Risk based
– Comprehensive regression test
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。26
Solution 1 Recreate test plan
All functions in LIFULL HOME’S
Manual
Testing
Automated
Testing
New
Feature
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。27
Solution 1 Recreate test plan
All functions in LIFULL HOME’S
Manual
Testing
Automated
Testing
New
Feature
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。28
Solution 1 Recreate test plan
All functions in LIFULL HOME’S
Manual
Testing
Automated
Testing
New
Feature
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。29
Solution 1 Recreate test plan
Prioritize test scopes
• Page views and page’s values on Google Analytics
– Business critical
• Incidents of the production
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。30
Solution 1 Recreate test plan
● Decreased to suitable number
○ 1000 cases -> 600 cases
● Defined the rule of adding test cases
○ Unsuitable test case prevented.
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。31
Solution 2
New testing framework “Bucky”
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。32
Solutions.
1. Too many test cases -> Test plan
2. Too flaky -> Bucky
3. Maintainability was too low -> Bucky
Solution 2 New testing framework “Bucky”
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。33
Solution 2 New testing framework “Bucky”
$ bucky run -case case_1
Data
base
Save
test result
Execute test
TestC
ode
TestC
ode
Test
Case
Page
object
Element
LocaterElement
Location
Page
object
Make
test report
Bucky-core Bucky-management
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。34
Solutions.
1. Too many test cases -> Test plan
2. Too flaky -> Retest
3. Maintainability was too low
Solution 2 New testing framework “Bucky”
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。35
Improve retest function
Solution 2 New testing framework “Bucky”
$ bucky run -r 3 $ bucky rerun --job_id 1 -r 3
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。36
Solutions.
1. Too many test cases -> Test plan
2. Too flaky -> Retest
3. Maintainability was too low-> Test code in YAML
Solution 2 New testing framework “Bucky”
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。37
Test code in YAML
Solution 2 New testing framework “Bucky”
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。38
What’s YAML?
https://yaml.org/spec/1.2/spec.html
Solution 2 New testing framework “Bucky”
# YAML example
american:
- Boston Red Sox
- Detroit Tigers
- New York Yankees
national:
- New York Mets
- Chicago Cubs
- Atlanta Braves
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。39
Solution 2 New testing framework “Bucky”
- case_name: favorite_1
func: Save to favorite.
desc: Save Real Estate to favorite from detail page
procs:
- proc: Open Real Estate’s detail page.
exec:
operate: go
url: www.homes.co.jp/chintai/b-0000000000000/
- proc: Save to favorite.
exec:
operate: click
page: bukken_detail
part: favorite
- proc: Check whether target Real Estate is saved as
favorite.
exec:
verify: assert_exist_part
page: bukken_detail
part: complete_favorite
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。40
Test code in YAML
● Very simple
○ No programming skills dependence
○ No if and loop
○ Reduce complexity
-> Improved maintainability
-> Stabilization test execution
Solution 2 New testing framework “Bucky”
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。41
Solution 2 New testing framework “Bucky”
# Open Real Estate’s detail page.
self.driver.get('www.homes.co.jp/chintai/b-0000000000000/’)
# Save to favorite.
page = bukkenluist.Page(self.driver)
page.favorite.click
# Check whether target Real Estate is saved as favorite.
self.verify.is_true(self.is_exist_part(page, 'complete_favorite’))
def is_exist_part(page, part_name):
try:
getattr(page, part_name)
return True
except NoSuchElementException:
return False
except Exception as e:
raise Exception(e.message)
- case_name: favorite_1
func: Save to favorite.
desc: Save Real Estate to favorite from detail page
procs:
- proc: Open Real Estate’s detail page.
exec:
operate: go
url: www.homes.co.jp/chintai/b-0000000000000/
- proc: Save to favorite.
exec:
operate: click
page: bukken_detail
part: favorite
- proc: Check whether target Real Estate is saved
as favorite.
exec:
verify: assert_exist_part
page: bukken_detail
part: complete_favorite
Bucky-coreOld(Python)
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。42
Conclusion
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。43
Solutions.
1. Too many test cases -> Test plan
2. Too flaky -> Retest
3. Maintainability was too low-> Test code in YAML
Conclusion
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。44
Testing cost per day decreased.
Conclusion
0
5
10
15
20
25
30
35
2 days 4 days
32h (4 people * 8h)
6h (3 people * 2h)
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。45
The number of releasable days increase!!
Conclusion
Monday Tuesday Wednesday Thursday Friday
◯ ◯
Monday Tuesday Wednesday Thursday Friday
◯ ◯ ◯ ◯
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。46
Bucky have many useful functions!
We published as OSS.
Please take a look and have a try of Bucky!
https://github.com/lifull-dev/bucky-core
https://github.com/lifull-dev/bucky-management
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。47
Thank you for listening.
Have a good Selenium life.

More Related Content

What's hot

Continuous Testing in DevOps
Continuous Testing in DevOpsContinuous Testing in DevOps
Continuous Testing in DevOpsTechWell
 
Why Everyone Needs DevOps Now: 15 Year Study Of High Performing Technology Orgs
Why Everyone Needs DevOps Now: 15 Year Study Of High Performing Technology OrgsWhy Everyone Needs DevOps Now: 15 Year Study Of High Performing Technology Orgs
Why Everyone Needs DevOps Now: 15 Year Study Of High Performing Technology OrgsGene Kim
 
Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryJohn Ferguson Smart Limited
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle IntroductionGanesh Samarthyam
 
The Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOpsThe Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOpsTEST Huddle
 
Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009sstolberg
 
[DevSecOps 工作坊] 強化基礎設施安全性
[DevSecOps 工作坊] 強化基礎設施安全性[DevSecOps 工作坊] 強化基礎設施安全性
[DevSecOps 工作坊] 強化基礎設施安全性CPHT
 
DevOps 及 TDD 開發流程哲學
DevOps 及 TDD 開發流程哲學DevOps 及 TDD 開發流程哲學
DevOps 及 TDD 開發流程哲學謝 宗穎
 
MeetingPoint 2015 - Swimming upstream in the container revolution
MeetingPoint 2015 - Swimming upstream in the container revolutionMeetingPoint 2015 - Swimming upstream in the container revolution
MeetingPoint 2015 - Swimming upstream in the container revolutionBert Jan Schrijver
 
What is quality, and how do we build it in
What is quality, and how do we build it in What is quality, and how do we build it in
What is quality, and how do we build it in Maryam Umar
 
Chaos Engineering: Why the World Needs More Resilient Systems
Chaos Engineering: Why the World Needs More Resilient SystemsChaos Engineering: Why the World Needs More Resilient Systems
Chaos Engineering: Why the World Needs More Resilient SystemsC4Media
 
Continuous deployment-at-flipkart
Continuous deployment-at-flipkartContinuous deployment-at-flipkart
Continuous deployment-at-flipkartPankaj Kaushal
 

What's hot (20)

Agile Evolution
Agile EvolutionAgile Evolution
Agile Evolution
 
Continuous Testing in DevOps
Continuous Testing in DevOpsContinuous Testing in DevOps
Continuous Testing in DevOps
 
Why Everyone Needs DevOps Now: 15 Year Study Of High Performing Technology Orgs
Why Everyone Needs DevOps Now: 15 Year Study Of High Performing Technology OrgsWhy Everyone Needs DevOps Now: 15 Year Study Of High Performing Technology Orgs
Why Everyone Needs DevOps Now: 15 Year Study Of High Performing Technology Orgs
 
Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous Delivery
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
The Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOpsThe Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOps
 
Codifying Devops -The Devops Story
Codifying Devops -The Devops Story  Codifying Devops -The Devops Story
Codifying Devops -The Devops Story
 
Devops
DevopsDevops
Devops
 
Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009
 
Devops
DevopsDevops
Devops
 
[DevSecOps 工作坊] 強化基礎設施安全性
[DevSecOps 工作坊] 強化基礎設施安全性[DevSecOps 工作坊] 強化基礎設施安全性
[DevSecOps 工作坊] 強化基礎設施安全性
 
Continuous Delivery e-book
Continuous Delivery e-bookContinuous Delivery e-book
Continuous Delivery e-book
 
DevOps 及 TDD 開發流程哲學
DevOps 及 TDD 開發流程哲學DevOps 及 TDD 開發流程哲學
DevOps 及 TDD 開發流程哲學
 
MeetingPoint 2015 - Swimming upstream in the container revolution
MeetingPoint 2015 - Swimming upstream in the container revolutionMeetingPoint 2015 - Swimming upstream in the container revolution
MeetingPoint 2015 - Swimming upstream in the container revolution
 
What is quality, and how do we build it in
What is quality, and how do we build it in What is quality, and how do we build it in
What is quality, and how do we build it in
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
Chaos Engineering: Why the World Needs More Resilient Systems
Chaos Engineering: Why the World Needs More Resilient SystemsChaos Engineering: Why the World Needs More Resilient Systems
Chaos Engineering: Why the World Needs More Resilient Systems
 
Continuous deployment-at-flipkart
Continuous deployment-at-flipkartContinuous deployment-at-flipkart
Continuous deployment-at-flipkart
 
DevOps, beyond agile
DevOps, beyond agileDevOps, beyond agile
DevOps, beyond agile
 

Similar to Technology supporting the release of HOME'S

Being a Professional Software Developer
Being a Professional Software DeveloperBeing a Professional Software Developer
Being a Professional Software DeveloperAnton Keks
 
Testing in a DevOps team
Testing in a DevOps teamTesting in a DevOps team
Testing in a DevOps teamLaurent PY
 
Unit Testing Case Study for COJUG - 05.11.2010
Unit Testing Case Study for COJUG - 05.11.2010Unit Testing Case Study for COJUG - 05.11.2010
Unit Testing Case Study for COJUG - 05.11.2010Nick Watts
 
Release Automation: Better Quality, Faster Deployment, Amazing ROI
Release Automation: Better Quality, Faster Deployment, Amazing ROIRelease Automation: Better Quality, Faster Deployment, Amazing ROI
Release Automation: Better Quality, Faster Deployment, Amazing ROITechWell
 
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityContinuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityJosiah Renaudin
 
Optimizely NYC Developer Meetup - Experimentation at Blue Apron
Optimizely NYC Developer Meetup - Experimentation at Blue ApronOptimizely NYC Developer Meetup - Experimentation at Blue Apron
Optimizely NYC Developer Meetup - Experimentation at Blue ApronOptimizely
 
Testing experience - Vision team, Mar 2016
Testing experience - Vision team, Mar 2016Testing experience - Vision team, Mar 2016
Testing experience - Vision team, Mar 2016Van Huong
 
Continuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsContinuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsSOASTA
 
Keynote AST 2016
Keynote AST 2016Keynote AST 2016
Keynote AST 2016Kim Herzig
 
Experimentation at Blue Apron (webinar)
Experimentation at Blue Apron (webinar)Experimentation at Blue Apron (webinar)
Experimentation at Blue Apron (webinar)Optimizely
 
DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015Yuval Yeret
 
Taking Your Product Development to the Next Level with Full Stack
Taking Your Product Development to the Next Level with Full StackTaking Your Product Development to the Next Level with Full Stack
Taking Your Product Development to the Next Level with Full StackOptimizely
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationBasma Alkerm
 
Boston MeetUp 10.10
Boston MeetUp 10.10Boston MeetUp 10.10
Boston MeetUp 10.10Solano Labs
 
Orchestrate Your End-to-end Mainframe Application Release Pipeline
Orchestrate Your End-to-end Mainframe Application Release PipelineOrchestrate Your End-to-end Mainframe Application Release Pipeline
Orchestrate Your End-to-end Mainframe Application Release PipelineDevOps.com
 
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
Why Your Selenium Tests are so Dang Brittle, and What to Do About ItWhy Your Selenium Tests are so Dang Brittle, and What to Do About It
Why Your Selenium Tests are so Dang Brittle, and What to Do About ItJay Aho
 
Non equilibrium Molecular Simulations of Polymers under Flow Saving Energy th...
Non equilibrium Molecular Simulations of Polymers under Flow Saving Energy th...Non equilibrium Molecular Simulations of Polymers under Flow Saving Energy th...
Non equilibrium Molecular Simulations of Polymers under Flow Saving Energy th...ORAU
 

Similar to Technology supporting the release of HOME'S (20)

Being a Professional Software Developer
Being a Professional Software DeveloperBeing a Professional Software Developer
Being a Professional Software Developer
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
Testing in a DevOps team
Testing in a DevOps teamTesting in a DevOps team
Testing in a DevOps team
 
Unit Testing Case Study for COJUG - 05.11.2010
Unit Testing Case Study for COJUG - 05.11.2010Unit Testing Case Study for COJUG - 05.11.2010
Unit Testing Case Study for COJUG - 05.11.2010
 
Petri for kyiv.pptx
Petri for kyiv.pptxPetri for kyiv.pptx
Petri for kyiv.pptx
 
Release Automation: Better Quality, Faster Deployment, Amazing ROI
Release Automation: Better Quality, Faster Deployment, Amazing ROIRelease Automation: Better Quality, Faster Deployment, Amazing ROI
Release Automation: Better Quality, Faster Deployment, Amazing ROI
 
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityContinuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
 
Optimizely NYC Developer Meetup - Experimentation at Blue Apron
Optimizely NYC Developer Meetup - Experimentation at Blue ApronOptimizely NYC Developer Meetup - Experimentation at Blue Apron
Optimizely NYC Developer Meetup - Experimentation at Blue Apron
 
Testing experience - Vision team, Mar 2016
Testing experience - Vision team, Mar 2016Testing experience - Vision team, Mar 2016
Testing experience - Vision team, Mar 2016
 
Continuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsContinuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and Jenkins
 
Keynote AST 2016
Keynote AST 2016Keynote AST 2016
Keynote AST 2016
 
Experimentation at Blue Apron (webinar)
Experimentation at Blue Apron (webinar)Experimentation at Blue Apron (webinar)
Experimentation at Blue Apron (webinar)
 
DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015
 
Taking Your Product Development to the Next Level with Full Stack
Taking Your Product Development to the Next Level with Full StackTaking Your Product Development to the Next Level with Full Stack
Taking Your Product Development to the Next Level with Full Stack
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Boston MeetUp 10.10
Boston MeetUp 10.10Boston MeetUp 10.10
Boston MeetUp 10.10
 
Orchestrate Your End-to-end Mainframe Application Release Pipeline
Orchestrate Your End-to-end Mainframe Application Release PipelineOrchestrate Your End-to-end Mainframe Application Release Pipeline
Orchestrate Your End-to-end Mainframe Application Release Pipeline
 
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
Why Your Selenium Tests are so Dang Brittle, and What to Do About ItWhy Your Selenium Tests are so Dang Brittle, and What to Do About It
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
 
Reliability as a Discipline
Reliability as a DisciplineReliability as a Discipline
Reliability as a Discipline
 
Non equilibrium Molecular Simulations of Polymers under Flow Saving Energy th...
Non equilibrium Molecular Simulations of Polymers under Flow Saving Energy th...Non equilibrium Molecular Simulations of Polymers under Flow Saving Energy th...
Non equilibrium Molecular Simulations of Polymers under Flow Saving Energy th...
 

Recently uploaded

Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxMd. Shahidul Islam Prodhan
 
Laundry management system project report.pdf
Laundry management system project report.pdfLaundry management system project report.pdf
Laundry management system project report.pdfKamal Acharya
 
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...Amil baba
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopEmre Günaydın
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxR&R Consult
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacksgerogepatton
 
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdfDanfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdfNurvisNavarroSanchez
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfAbrahamGadissa
 
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES  INTRODUCTION UNIT-IENERGY STORAGE DEVICES  INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES INTRODUCTION UNIT-IVigneshvaranMech
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfKamal Acharya
 
Event Management System Vb Net Project Report.pdf
Event Management System Vb Net  Project Report.pdfEvent Management System Vb Net  Project Report.pdf
Event Management System Vb Net Project Report.pdfKamal Acharya
 
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsRS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsAtif Razi
 
2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edge2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edgePaco Orozco
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Electivekarthi keyan
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdfAhmedHussein950959
 
Arduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectArduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectRased Khan
 
A case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfA case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfKamal Acharya
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdfKamal Acharya
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturingssuser0811ec
 

Recently uploaded (20)

Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
 
Laundry management system project report.pdf
Laundry management system project report.pdfLaundry management system project report.pdf
Laundry management system project report.pdf
 
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering Workshop
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdfDanfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdf
 
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES  INTRODUCTION UNIT-IENERGY STORAGE DEVICES  INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
 
Event Management System Vb Net Project Report.pdf
Event Management System Vb Net  Project Report.pdfEvent Management System Vb Net  Project Report.pdf
Event Management System Vb Net Project Report.pdf
 
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsRS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
 
2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edge2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edge
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
 
Arduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectArduino based vehicle speed tracker project
Arduino based vehicle speed tracker project
 
A case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfA case study of cinema management system project report..pdf
A case study of cinema management system project report..pdf
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturing
 

Technology supporting the release of HOME'S

  • 1. Technology supporting the release of HOME'S Naoto Kishino (Software Engineer in Test at LIFULL) April 19th, 2019 at Selenium Conf Tokyo
  • 2. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。2 Introduction Naoto Kishino (木住野 奈夫人) Software Engineer in Test Group (3 members) Test Automation/CI/CD Group vision : 自動化と高速化を進め、プロとして最高のDXを実現する Create the best DX (Developer Experience) in the world. @naotospace NA070
  • 3. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。3 Overview We accelerated release frequency from two times a week to four times a week. We achieved this goal by solving some problems in the automated system testing which is executed before release.
  • 4. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。4 Agenda 1.About LIFULL HOME’S 2.About development process 3.Problems in our automated system testing 4.Solutions 5.Conclusion
  • 5. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。5 About LIFULL HOME’S Do you know LIFULL HOME’S?✋
  • 6. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。6 About LIFULL HOME’S
  • 7. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。7 About LIFULL HOME’S
  • 8. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。8 About LIFULL HOME’S ● Information service about Real Estate in Japan. ● Registration number’s No.1 in Japan
  • 9. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。9 Development process
  • 10. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。10 About development process Team A Team B Team C Multiple teams create many new features at the same time.
  • 11. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。11 About development process Team B Team C These new features become one release package. Team A
  • 12. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。12 Test About development process Team B Team CTeam A Release! Teams do some tests for their function. After passing all the tests, package will be release.
  • 13. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。13 Release! Test About development process Hundreds of new features release per month. It was able to release on Tuesday and Thursday. Monday Tuesday Wednesday Thursday Friday ◯ ◯
  • 14. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。14 About development problem Large-scale features can only released on Tuesday. Monday Tuesday Wednesday Thursday Friday X (Delay😥) → → → → Release Release! Too Slow….
  • 15. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。15 About development Team Change the number of releasable day in a week Monday Tuesday Wednesday Thursday Friday ◯ ◯ Monday Tuesday Wednesday Thursday Friday ◯ ◯ ◯ ◯
  • 16. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。16 Problems in our automated system testing
  • 17. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。17 Problems in our automated system testing Release! • E2E(End-to-End) test using Selenium. • Executed before release. • To make sure no incident is increasing by degrades. System testing
  • 18. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。18 High cost! We almost spent 4 person-day on per test. Bottleneck!!!😥 Problems in our automated system testing
  • 19. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。19 Why bottleneck? 1. Too many test cases 2. Too flaky 3. Maintainability was too low Problems in our automated system testing
  • 20. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。20 1. Too many test cases ● No test plan ● What we want to assure is not clear Problems in our automated system testing
  • 21. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。21 2. Too flaky ● Test code were implemented in complex processing ● Some cases include unsuitable step in automated testing Problems in our automated system testing
  • 22. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。22 3. Maintainability was too low ● Complex test code ● Low readability Problems in our automated system testing
  • 23. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。23 Solution 1 Recreate test plan
  • 24. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。24 Solutions 1. Too many test cases -> Test plan 2. Too flaky 3. Maintainability was too low Solution 1 Recreate test plan
  • 25. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。25 Solution 1 Recreate test plan Define the scopes about manual testing and automated testing • Manual:Specification based – New features and regression test • Automated:Risk based – Comprehensive regression test
  • 26. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。26 Solution 1 Recreate test plan All functions in LIFULL HOME’S Manual Testing Automated Testing New Feature
  • 27. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。27 Solution 1 Recreate test plan All functions in LIFULL HOME’S Manual Testing Automated Testing New Feature
  • 28. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。28 Solution 1 Recreate test plan All functions in LIFULL HOME’S Manual Testing Automated Testing New Feature
  • 29. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。29 Solution 1 Recreate test plan Prioritize test scopes • Page views and page’s values on Google Analytics – Business critical • Incidents of the production
  • 30. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。30 Solution 1 Recreate test plan ● Decreased to suitable number ○ 1000 cases -> 600 cases ● Defined the rule of adding test cases ○ Unsuitable test case prevented.
  • 31. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。31 Solution 2 New testing framework “Bucky”
  • 32. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。32 Solutions. 1. Too many test cases -> Test plan 2. Too flaky -> Bucky 3. Maintainability was too low -> Bucky Solution 2 New testing framework “Bucky”
  • 33. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。33 Solution 2 New testing framework “Bucky” $ bucky run -case case_1 Data base Save test result Execute test TestC ode TestC ode Test Case Page object Element LocaterElement Location Page object Make test report Bucky-core Bucky-management
  • 34. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。34 Solutions. 1. Too many test cases -> Test plan 2. Too flaky -> Retest 3. Maintainability was too low Solution 2 New testing framework “Bucky”
  • 35. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。35 Improve retest function Solution 2 New testing framework “Bucky” $ bucky run -r 3 $ bucky rerun --job_id 1 -r 3
  • 36. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。36 Solutions. 1. Too many test cases -> Test plan 2. Too flaky -> Retest 3. Maintainability was too low-> Test code in YAML Solution 2 New testing framework “Bucky”
  • 37. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。37 Test code in YAML Solution 2 New testing framework “Bucky”
  • 38. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。38 What’s YAML? https://yaml.org/spec/1.2/spec.html Solution 2 New testing framework “Bucky” # YAML example american: - Boston Red Sox - Detroit Tigers - New York Yankees national: - New York Mets - Chicago Cubs - Atlanta Braves
  • 39. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。39 Solution 2 New testing framework “Bucky” - case_name: favorite_1 func: Save to favorite. desc: Save Real Estate to favorite from detail page procs: - proc: Open Real Estate’s detail page. exec: operate: go url: www.homes.co.jp/chintai/b-0000000000000/ - proc: Save to favorite. exec: operate: click page: bukken_detail part: favorite - proc: Check whether target Real Estate is saved as favorite. exec: verify: assert_exist_part page: bukken_detail part: complete_favorite
  • 40. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。40 Test code in YAML ● Very simple ○ No programming skills dependence ○ No if and loop ○ Reduce complexity -> Improved maintainability -> Stabilization test execution Solution 2 New testing framework “Bucky”
  • 41. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。41 Solution 2 New testing framework “Bucky” # Open Real Estate’s detail page. self.driver.get('www.homes.co.jp/chintai/b-0000000000000/’) # Save to favorite. page = bukkenluist.Page(self.driver) page.favorite.click # Check whether target Real Estate is saved as favorite. self.verify.is_true(self.is_exist_part(page, 'complete_favorite’)) def is_exist_part(page, part_name): try: getattr(page, part_name) return True except NoSuchElementException: return False except Exception as e: raise Exception(e.message) - case_name: favorite_1 func: Save to favorite. desc: Save Real Estate to favorite from detail page procs: - proc: Open Real Estate’s detail page. exec: operate: go url: www.homes.co.jp/chintai/b-0000000000000/ - proc: Save to favorite. exec: operate: click page: bukken_detail part: favorite - proc: Check whether target Real Estate is saved as favorite. exec: verify: assert_exist_part page: bukken_detail part: complete_favorite Bucky-coreOld(Python)
  • 42. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。42 Conclusion
  • 43. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。43 Solutions. 1. Too many test cases -> Test plan 2. Too flaky -> Retest 3. Maintainability was too low-> Test code in YAML Conclusion
  • 44. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。44 Testing cost per day decreased. Conclusion 0 5 10 15 20 25 30 35 2 days 4 days 32h (4 people * 8h) 6h (3 people * 2h)
  • 45. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。45 The number of releasable days increase!! Conclusion Monday Tuesday Wednesday Thursday Friday ◯ ◯ Monday Tuesday Wednesday Thursday Friday ◯ ◯ ◯ ◯
  • 46. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。46 Bucky have many useful functions! We published as OSS. Please take a look and have a try of Bucky! https://github.com/lifull-dev/bucky-core https://github.com/lifull-dev/bucky-management
  • 47. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。47 Thank you for listening. Have a good Selenium life.