Hello Testers,
Welcome to the special edition of Vietnam QA meet up.
We have three speakers from Carousell on this special occasion.
1. Demystifying selenium grid - Syam Sasi, Senior Software Engineer , Carousell
2. The testing culture at Carousell - Ngan Do, Software Engineer , Carousell
3. The weekly release cycle for mobile apps - Long Ly, Senior Software Engineer , Carousell
Date : Thursday, May 30th, 2019
Time: 6:00 PM to 9:00 PM
Location: 23rd floor, E. Town Central, 11 Doan Van Bo, Ward 12, District 4 Ho Chi Minh City
Register link: https://www.eventbrite.sg/e/vietnam-qa-meetup-tickets-61865212516
The event is free and drinks with snacks will be served.
Please note that the event will be conducted in mainly English.
Detail Schedule:
6PM - 6:30PM - Pizzas, Fruits and networking
6:30 - 7:10 PM - Demystifying the selenium grid
7:10 - 7:15 - Q&A
7:15 - 7:45 - Testing culture at Carousell
7:45- 7:50 - Q&A
7:55 - 8:40 - Weekly release cycle for mobile apps
8:40 - 8:45 - Q&A
8:45 - 09:00 - Kahoot
4. Syam Sasi
Senior Software Engineer @ Carousell
https://about.me/syamsasi
About Me
● 8 Years in Industry
● Ex-Oracalite
● Co-Organizer of TAQELAH Meetups in Singapore
6. Need For Selenium Grid
● Run test cases on different browsers / devices or platforms
● Minimize the test execution time
● Scaling up the test infrastructure
7. What is Selenium Grid?
https://www.youtube.com/watch?v=6nq1dOiTdC8
8. Hub And Node
● Hub – Hub will be the central machine which will redirect the commands to the
respective node based on parameter
● Node- Node will be the actual machine where the test will be executed.
9. Starting The HUB
1. Download the selenium server from here
2. Create a folder called grid and copy the downloaded jar to this folder
3. Launch the hub by the following command
java -jar selenium-server-standalone-3.x.y.jar -role hub
4. Go to http://localhost:4444/grid/console and check hub is running or not
10. Starting The Nodes
1. Register the node by the following command
java
-Dwebdriver.gecko.driver="/Users/carousell/SeleniumGridVietnam/drivers/geckodriver"
-jar selenium-server-standalone-3.x.y.jar -role webdriver -hub
http://a.b.c.d:4444/grid/register -port 5566
2. Go to http://localhost:4444/grid/console and check node is registered
12. Node using JSON Configuration
java
-Dwebdriver.gecko.driver="/Users/carousell/SeleniumGridVietnam/driv
ers/geckodriver"
-Dwebdriver.chrome.driver="/Users/carousell/SeleniumGridVietnam/dri
vers/emulator/chromedriver" -jar
selenium-server-standalone-3.x.y.jar -role node -nodeConfig
nodeConfig.json
Default Node Config file can be found here
13. Grid For Mobile Browsers
appium --nodeconfig node-config-device4724.json -p 4724 -cp
4726 --chromedriver-executable="/path/to/chromedriver"
14. Selenium Grid Extras
● Ability to control individual grid nodes, following is an incomplete list of OS level tasks:
○ Killing any browser instance by name
○ Stopping any Process by PID
○ Moving mouse to specific location
○ Get Memory usage and disk statistics
● Automatically upgrade WebDriver binaries
● Restart node after a set number of test executions
● Central storage of configurations for all nodes on the HUB server
● Screenshots at the OS level
https://github.com/groupon/Selenium-Grid-Extras
20. Ngan Do
Software Engineer @ Carousell
https://www.linkedin.com/in/do-thi-my-ngan/
About Me
● 3 Years in Industry
● 3 Years working at Carousell
● 3 Years experience in Mobile Automation
Testing
21. Quality Throughout The Development Cycle
● Plan
● Design
● Development
● Release
● Monitor
26. Fast Feedback Tests
Feedback about
functional quality to
devs
Tests that cover
critical flows
Execution time < 15 minutes
Detecting & fixing breaking
issues earlier
Fast Feedback Tests as a quality gate for pull requests
31. … to deliver Quality to the users
● It’s all about the users!
● 7 markets, ~200 million listings, ~70 million items sold
● https://blog.carousell.com/carousellstories
35. Long Ly
Senior Software Engineer @ Carousell
https://www.linkedin.com/in/longlyme/
About Me
● 5 Years in Industry
● Used to work both in outsource and product
companies
● Mainly taking care release process in Carousell
38. Why Weekly?
● Releases are time-based, rather than content-based
● As-short-as needed dev cycle
● Deliver new features to users faster
● Fix user’s bug reported faster
● Receive customer feedback faster
● Eliminates the need for hotfixes
43. Follow up Activities
➔ Checking messages in #dogfood-report (staff users) and
#support (external users) channels to know asap if any
reports for released builds!?
➔ If any issue, consider to halt the rollout process?
◆ Hotfixes
● Before submission: easy to go
● After submission: painful and take time
46. Keys Takeaway
❖ Weekly release process for quickly users’ experience and
feedback
❖ Making sure quality by shift-left testing
➢ Fast feedback test
➢ Nightly regression
➢ Weekly release testing
❖ Tools
➢ Automate all activities that we can (slack bots, CI tools)
➢ Monitor app’s health