se2016 ios vladimir lozanov "how to deliver high quality apps to the app store"

16
Mobile QA How to deliver high quality apps to the App Store

Upload: inhacking

Post on 13-Apr-2017

214 views

Category:

Mobile


1 download

TRANSCRIPT

Mobile QA How to deliver high quality apps to the App Store

What we do

QA in product company

QA in outsource company

• Responsible for a product overall • No excuses to customers (they don't care why you've f*cked up ) • Can always speak with a developer directly • Last stand between customer and a product • Have an influence to a product

• Responsible for part of the a product • Customers are not always the issue • Usually more high update pace • Can't see the big picture of a product • Can't have direct feedback on his work

Kinds of testing we do

Test methods

Black box White box

Test levels

Unit testing Integration testing

UI testing

Test types

Smoke testing Regression testing Continuous testing

Software performance testing Usability testing

Localization testing

Testing process

Waterfall Kanban

Testing toolsTest Rail

Test management system, it can: • create/import and manage test suites • assigne test plans • track test activity • be integrated with Jira

JiraComplex and agile bug tracking system, it can: • document, assign, track an issue • be used as project management system • manage Agile boards

Additional tools

Slack - team communications

Trello - task manager

Dropbox Paper - task manager

Xcode (debug testing)

Jenkins (adhoc testing)

Hockey app Amplitude

Logs

Developer tools

Crash tracking system Event tracking system (analytics )

Help to diagnose an issue

Quick run

Full run

• Can quickly show current product state to QA and development teams • Includes test cases from the different suites (incl. first start, update, on boarding etc) • Required for minor updates • Effective for smoke testing

• Guarantees product stability • Effective to find regression issues • Includes all test suites • Required for major updates

Automation Why it is necessary

When it is necessary

Balance between manual testing

Test data is as important as test case

Right test case

Make sure app works before validate test case

Automation tools

UIAutomation (JS legacy) • JS • Supports loads of framework helpers • Inconsistent • Deprecated

Xcode UI Tests (Swift) • Swift • Runs as independent process • XCTest based • More consistent • Still improving

Jenkins CI formula = xcodebuild + xcrun + iOS sim + xcpretty + ruby script

QA at Readdle is more that software tester: • engineer • manager • customer support adviser

Сollaboration with development teamDevelopers Types:

• Tests code before deployment to QA • Does not test code before deployment to QA • Cunning when explains why that issue can't be fixed • Should be convinced why this issue should be fixed • Fixes one issue but breaks other stuff • Developer - project manager

Conflict situations • Won't fix • Wrong feature implementation • Fix version • Can't reproduce

Customer Support FTW

User cases: helps to QA team to expand and amplify test cases base

User feedback: helps to project manager and team lead to plan and adjust development of a project

Customer support: direct source of feedback and user cases. It evaluates QA.

QA team should: • read customer feedback • react fast in critical situation (reproduce, document, make sure issue fixed, prepare hot fix

update) • amplify test case base

Customer support team should: • analyze customer’s feedback • filters important requests • provide all others teams with the meaningful summary • understand all the products well

Management inside the team

Every member of the team should: • Know all products • Should not has a development stoppers • Be an independent working unit • Should know how to plan and manage his time • Has complete responsibility for the final version of the product he’s tested • Share the knowledge between other members • Not afraid to always ask a question

QA can influence on product development • User experience feedback and suggestions • UI and functionality correction • Can give important feedback at the very start of a new product • Can argue the PM and developer about helpful features • Should be interested and involved in product development

QA knows product better than anyone

The Future