for each release should have a story the users want to see. Something we can tell them to give them a reason to download. In practice, this usually means a release includes • 1-2 stories from business • 1 tech backlog story • 1 story for users (feedback from app store reviews)
updates to your iOS app: -‐ Low frequency updates -‐ new features -‐ Apps with new features should be submi:ed on a periodic, monthly basis. A high frequency of new feature updates suggests poor development planning and can be confusing to your customers.'
roll fix quickly) Android - gradually rollout release 1% -> 5% -> 20% -> 50% -> 100% of users IOS - Hockey App Beta Release (after green tests) TestFlight while waiting for App Store approval
sizes, have other apps running on devices) • Write automated tests to cover new functionality • Unit tests • UI tests for important flows what would you hotfix if its broken? FUNCTIONAL TESTS
VoiceOver mode) • Google Analytics - Is tracking good enough so we can tell if feature is success/failure • A/B Testing. Two different designs live to see which performs better • Will it break any other platform or older versions of apps? OTHER TESTS
a human readable language Scenario: Title of test shown on test reports Given: any Pre Requisite like navigation to correct screen or creating test data, logging in correct user When: the action under test is performed Then: the assertion to check if expected behaviour happened
Given the user searches for a term that is in the description of an ad When they refine the search to include title and description Then the search results includes ads where the search term is in the description
is in the description of an ad$/) do @search_term = Time.now.to_i.to_s description = "search by description test #{@search_term}" @ad = Ad.new("description test title") @ad.description = description @ad.place_ad Search.new.new_search(@search_term) end
multiple platforms • tests can be written by QA and developers • runs on emulator and device • supports webviews • BDD • JVM based (can reuse desktop test libs)
platforms • tests can be written by QA and developers • runs on emulator and device • supports webviews • BDD • JVM based (can reuse desktop test libs)
used as an identifier. i.e. “Prijs” Remember that this is read to visually impaired users when VoiceOver is on so should be a functional explanation of the element in the users own language
and unit tests are run on VMs HockeyApp Alpha The calabash smoketests run on Device Cloud for fast feedback Nightly all calabash tests are run on device cloud After all tests green on iOS 7 & 8 iphone/ipad portait/landscape HockeyApp Beta is created
and buggy but getting better. iOS Simulators have lots of bugs - every new Xcode release brings new problems. iOS local device cloud - our attempts unsuccessful so far
linking Place ad -> wait for index -> start search -> type ad title into search box -> wait for results -> select ad from list -> view ad OR…… Place ad -> open deep link -> view ad Keep same user logged in as much as possible