Slide 1

Slide 1 text

Quality Assurance Fall 2022 Dev Dojo @jye @theo

Slide 2

Slide 2 text

2 Confidential - Do Not Share @jye @theo

Slide 3

Slide 3 text

3 Confidential - Do Not Share Why do cars have brakes?

Slide 4

Slide 4 text

4 Confidential - Do Not Share ● About MK JP QA team ● QA process ● Release process ● Automation Agenda

Slide 5

Slide 5 text

5 Confidential - Do Not Share About MK JP QA team

Slide 6

Slide 6 text

6 Confidential - Do Not Share Organization Structure Organization Structure Quality Assurance QA 1 QA 2 Engineering Mercari / Japan Region / Marketplace Product Engineering QA 4 QA 3

Slide 7

Slide 7 text

7 Confidential - Do Not Share Vision Meet customers requirements and expectations with faster pace Mission ● Focus on customer experience ● Maximize our product quality ● Increase testing quality across Camps The QA team

Slide 8

Slide 8 text

8 Confidential - Do Not Share ● Analyze & visualize product quality ○ Build comprehensive quality assurance process and organization ● Implement a data-driven improvement process for customer experience ○ Use data we already have available in Mercari and link it to Quality metrics ● Expand areas of quality assurance ○ Product Accessibility, Internationalization and Performance QA Focus area

Slide 9

Slide 9 text

9 Confidential - Do Not Share ● Process improvement ● Regression testing ● Review of feature specifications and test cases ● Measure and visualize product quality ● Flexible contribution to high priority projects ○ E.g.: , GroundUp, Robust Foundation for Speed (RFS) ● Provide QA portal for testing related information How do we collaborate with Camps?

Slide 10

Slide 10 text

10 Confidential - Do Not Share QA process

Slide 11

Slide 11 text

11 Confidential - Do Not Share ● QA collaborates with the team as part of the Camp, with the main goal of improving how testing is conducted and implementing Camp QA. Everybody on the team is responsible for the product's quality. ● Focus is set on increasing the quality from a product/customer perspective. ● Hybrid role with both manual & automation tasks. ● Assistance to Camps without QA members to implement their QA processes. ● FY2023 Camp/QA assignations Team structure Team PM SWE Camp QA EM Team PM SWE Camp QA EM Team PM SWE Camp QA EM

Slide 12

Slide 12 text

12 Confidential - Do Not Share ● Camp QA is a model of testing ○ Engineer & PM join Quality Assurance and Testing ○ Everyone understands what QA & Testing means, and implement the QA process properly in the Software Development Life Cycle ● The sprint team creates test cases and executes them ○ This includes automated tests (unit, API, integration, e2e, etc.) ○ And manual test cases, exploratory testing, dogfooding, etc. ● QA acts as a team member in Camps and project teams ○ Reviews specifications & test cases, keeps overview of product quality ○ Plans testing to be conducted alongside development ■ Taking into account the test pyramid (next slide) ○ Helps organizing exploratory testing, dogfooding, etc QA process

Slide 13

Slide 13 text

13 Confidential - Do Not Share Goal of the test process Additional information: https://martinfowler.com/bliki/TestPyramid.html https://engineering.mercari.com/en/blog/entry/20201211-quality-assurance-is-engineering-excellence/ (very good read from our CTO) https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html https://medium.com/eventmobi/quality-without-qa-how-eventmobi-keeps-the-bar-high-81a6446e6dae https://hackernoon.com/common-excuses-why-developers-dont-test-their-software-908a465e122c

Slide 14

Slide 14 text

14 Confidential - Do Not Share ● To plan feature testing alongside QA ● To the planned tests, automated and manual ● Execute test cases & check what has been implemented ● Keep traceability of test cases and results ○ Most team use TestRail (test cases management tool) ● Write unit, integration, API and e2e tests for developed features ● Maintain automated tests alongside QA ● Assure the quality of released features ○ Test on first Release Judgement / first production build ○ Have enough automated tests to keep checking the feature’s health What is expected of Developers & PMs?

Slide 15

Slide 15 text

15 Confidential - Do Not Share Release process

Slide 16

Slide 16 text

16 Confidential QA deadline Client Apps Release Train Feature Branch B Feature Branch A Release judgement test ○ Fri. ○ Thu. ○ Wed. ○ Tue. ○ Tue. ○ Mon. Release cycle ★ Release date ○ Mon. Master branch Branch cut 16:00 (Merge deadline) Merge ◆ Release branch Submit to App Store / Play Store Release Skip to next release Merge diff to master Please change Github milestones and JIRA fixversion! Feature Branch C Release blocker issue found and bug fixes merged ◆

Slide 17

Slide 17 text

17 Confidential Web Release Train ● Similar process to the Client Apps release Train ● But in a shorter period of time ○ Release branch cut: Tuesday 14:00 ○ Release day: Wednesday 12:00 approx ● For more information please check this Confluence page

Slide 18

Slide 18 text

18 Confidential Release Judgement Test ● QA runs Release Judgment Tests after branch cut ○ Automated (approx 60% of tests for Client Apps) & Manual ● If changes are made to the release branch, we need to re-test ● Avoid merging to the release branch (after branch cut) ● Avoid last minute merges before branch cut without proper testing. ○ Unstable features will likely have release blocker bugs ○ When a critical bug is production, we release an ad hoc Hotfix version (overhead). ● If you need to merge to the release branch, contact the release facilitator on the QA side so that QA can update the build links and plan re-testing.

Slide 19

Slide 19 text

19 Confidential Metrics (iOS & Android)

Slide 20

Slide 20 text

20 Confidential - Do Not Share Automation

Slide 21

Slide 21 text

21 Confidential - Do Not Share What is automation? “Test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing.” (wikipedia: Test automation)

Slide 22

Slide 22 text

22 Confidential - Do Not Share Why? ● Automated tests can help reduce the amount of manual repetitive tasks ● Focus on regression and release judgement tests ○ Can cover multi browsers/devices when needed ○ Green light for safe release ● Fast development release cycles (supported by CI solutions) ● Increase quality on early stages of development

Slide 23

Slide 23 text

23 Confidential - Do Not Share Coverage ● We use TestRail for as our test cases management tool ○ You can request access from #group-testrail ● ~ 60% of our regression test suite is covered by automated UI tests ○ Login, Home, Search, Listing, ItemDetail, Purchase ● ~ 40% tests are done manually ■ Awaiting to be automated ■ Cannot be entirely automated or not automated at all ■ Automation cost is high and benefit is low

Slide 24

Slide 24 text

24 Confidential - Do Not Share Tech stack Framework XCUITest Jetpack Compose Playwright Languages Swift Kotlin TypeScript Runs against Simulator Firebase Test Lab The Moon The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.

Slide 25

Slide 25 text

25 Confidential - Do Not Share Thank you!