Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Quality Assurance

mercari
PRO
December 23, 2022

Quality Assurance

In Mercari’s fast-paced development cycle, QA is critical to the success of the application. In this course, you will learn about Mercari’s QA team and what processes, tools, and techniques are used to quickly identify and solve issues.

mercari
PRO

December 23, 2022
Tweet

More Decks by mercari

Other Decks in Technology

Transcript

  1. Quality Assurance
    Fall 2022 Dev Dojo
    @jye @theo

    View Slide

  2. 2
    Confidential - Do Not Share
    @jye
    @theo

    View Slide

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

    View Slide

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

    View Slide

  5. 5
    Confidential - Do Not Share
    About MK JP QA team

    View Slide

  6. 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

    View Slide

  7. 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

    View Slide

  8. 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

    View Slide

  9. 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?

    View Slide

  10. 10
    Confidential - Do Not Share
    QA process

    View Slide

  11. 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

    View Slide

  12. 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

    View Slide

  13. 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

    View Slide

  14. 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?

    View Slide

  15. 15
    Confidential - Do Not Share
    Release process

    View Slide

  16. 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

    View Slide

  17. 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

    View Slide

  18. 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.

    View Slide

  19. 19
    Confidential
    Metrics (iOS & Android)

    View Slide

  20. 20
    Confidential - Do Not Share
    Automation

    View Slide

  21. 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)

    View Slide

  22. 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

    View Slide

  23. 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

    View Slide

  24. 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.

    View Slide

  25. 25
    Confidential - Do Not Share
    Thank you!

    View Slide