If you are familiar with my previous article Common iPhone Mistakes. Efficient guide for QAs and iOS developers.Part 1 then you already know what we are going to talk about further. The following cases contain screenshots and pictograms of the specific problems which I faced during my projects. Let's take a closer look now.
1. Store data on iCloud
Expected:
- Only kbs of data are stored on iCloud if it is needed
Typical case:
- Hundreds mbs of users’ data are stored on iCloud, that eventually causes appstore rejection
2. Duplication
Expected:
- After one tap buttons become unavailable for next tap
- After one tap pop-up becomes unavailable for next quick tap
- After one tap item from list (sidebar, list) becomes unavailable for next quick tap
Typical cases:
- After quick tap for several times on the same screen/ button/ item/ tab/ pop-up the results are displayed one by one, and it causes crash
- App crashes after quick taps on the same button for several times, as the program tries to open several identical screens
3. Opening two or more screens/pop-ups at the same time
Expected:
- When selecting several items at the same time, tap works only for one of them
- When tapping on two items (buttons, items from list), select works only for one of them
Typical cases:
- Tap reproduces every time pushing several buttons/ tabs (on sidebar menu/ on top bar etc) simultaneously
- App crashes after tap on several buttons simultaneously
- Titles from two screens overlap each other
- After tap on two items (buttons, items from list), select triggers on both
4. No Internet connection
Expected:
If the design is available, then it needs to be implemented as represented in the design, if not, then the following two items are recommended:
- default placeholder according to the design is shown
- custom pop-up “No internet connection” with two buttons Cancel (closes the pop-up) and Try Again (sends request to server again)
Typical cases:
- Default placeholder as in design is missing
- Custom pop-up is missing
- Incorrect text on pop-up
- App crashes when Internet connection is missing
5. Links/Hyperlinks
Expected:
- Links in the text open in browser or webview within app
- Links are highlighted and marked in different from general content color
- Tap on link is followed by selector
Typical cases:
- Transition to browser after tap on link is missing
- Links are not highlighted
- Selector after tap on link is missing
6. Sidebar menu
Expected:
- Opens after tap on sidebar Menu button (hamburger menu)
- Opens when swipe from left to right
- Hides after tap on sidebar Menu button
- Hides when swipe from right to left
- Right side area is not clickable when menu is opened
- Tap on element from menu is followed by selector, which preserves its position for next re-opening menu to show user where he is at this moment
Typical cases:
- Opens after tap only
- Opens after swipe only
- Menu icon is missing
- Right side area is clickable when menu is opened
- Selector is missing
- Selector hide after screen from the menu opens
7. E-mail client
Expected:
When e-mail account is not entered in device settings, pop-up notifies that e-mail client is not configured. Expected pop-up view:
- Title: No Mail Accounts
- Text: Please setup an email account in order to send email
- Button: OK
Typical cases:
- App crashes after try to open e-mail client without entered account
- Feedback button doesn’t work on tap when e-mail client is not configured
- Pop-up displays with incorrect text on it
8. Localization
Expected:
- Arabic text is displayed from right to left
- All navigation elements are localized (moved in the opposite direction)
- All system/ custom pop-ups and buttons labels are localized
Typical cases:
- Navigation elements are not localized (not moved in the opposite direction)
- Text for system/ custom pop-ups and buttons labels is not localized
- Arabic text is displayed from left to right
9. Hard Coding Data
Expected:
- All text labels are taken from the file with text resources
- All descriptions are previously approved by client or PM
- Images are downloaded from Internet
- URLs for services and web sites are correct
Typical cases:
- Reproduces in applications which support several languages. For example, pop-ups text is often hard coded instead of add it into resource file. As a result users on all localizations see message in the same language (English No Internet connection for example)
- Images are locally hard coded in app
- URLs for services and web sites are temporarily coded as fake and then not corrected to true ones
10. Data upload issues
Expected:
- If image needs to be uploaded, video/music files are not available in gallery
- Trying to upload the file that exceeds admissible size, message “File can not be uploaded because of inadmissible size” is displayed
- Trying to upload corrupted file(photos / music / videos / documents), message “File can not be uploaded, there is a problem with this file” is displayed
- Uploading / downloading several files at the same is not allowed unless it is provided in specification
Typical cases:
- App crashes trying to upload / download file that exceeds admissible size (image 20 Mb or more), or after file is not downloaded no message is displayed
- App crashes trying to upload several files simultaneously, or after file is not uploaded no message is displayed
- App crashes trying to upload corrupted file (photos / music / videos / documents), or after file is not downloaded no message is displayed
- Ability to upload video / music files instead photos or documents
11. Data migration
Expected:
- Updating v1.0 to the new v2.0, database migration means that data from v1.0 is moved to the new v2.0 database
- Saved personal info migrates to the new app version (images / profile)
- Favourites / likes etc. migrate to the new app version
- Migration from v1.0 to the new v2.0 without any saved data means v1.0 updates to the new v2.0
Typical cases:
- App crashes while migrating from v1.0 to the new v2.0, data loses
- Personal info (images/ profile) doesn’t migrate and respectively loses
- Favourites / likes etc don’t migrate and respectively lose
- App crashes while migrating from v1.0 (without user data) to the new v2.0
- After migration data is displayed incorrectly (order / completeness of data)
12. Caching data and cache removal
Expected:
- After downloading new data, the application should replace the old data with the new data
- Data update should occur in the background invisible for the user
- Data update should displaying - by using the progress bar
Typical cases:
- During the update data updates only partially (because of some error and incorrectly used database transactions not all files are downloaded/ saved). As a result, data in the database may be invalid
- Incorrectly organized update data mechanism (updates are checked using incorrect algorithm, for example, at fixed time only)
13. Problems with WEB server
Expected:
Mobile client should handle the following issues:
- Web server does not send data to mobile client
- Web server is not responding
- Mobile client received empty data
- Mobile client received invalid data
- Expected behavior of mobile client: error message from the server:
- in most cases, if request does not use data entered by the user, then user does not need to know the reason of unsuccessful request. It makes sense to distinguish only two errors: no Internet connection and no response from server. Only if the request uses data entered by the user, then message that notifies an error is displayed.
Typical cases:
- App crashes if there is no response from server
- App crashes if data received from server is incorrect
- App crashes if receives empty data
You can find my full presentation "Common iPhone mistakes. An Efficient Guide for QA's and iOS Developers" with cases on Slideshare.
Hope this article was interesting for you. Have something to add? Post your comment below.
SEE ALSO: