Let me share with you one of the two articles that unveils common mistakes typically present in most QA and iOS work flow. In this section, I will demonstrate the number of bugs I came across within my projects. For instance, four projects were full of minor mistakes and 30-40% of general time was spent on figuring out and further elimination of these bugs. The following examples contain screenshots of the specific problems. The purpose of this article is to help iOS developers and QA testers showcase a list of common bugs, which in future must be avoided to make your projects more successful. Developers can find this article beneficial in a way that it helps to spot the bugs before QA's even see them, so it could be both preventive and time saving. If you are a QA tester, you could broaden your search spectrum and locate these common bugs faster. Let's take a closer look at these mistakes.
1. Input fields/forms
Expectations
- If there are at least two sequentially input fields available, there is transition between fields by tapping Next button on the keyboard
- After the last input field is filled, Next button is replaced with Done. Tap on Done button closes the keyboard
- Validation for input fields
- Limitation for entering characters
- Left and right margins are the same
- Cursor is visible
Typical Issues
- Next button is missing, instead there is Done/ Return etc., which closes the keyboard or in the worst case doesn’t perform any action at all
- Validation is missing
- Text in the input fields may come out of the field borders, left and right margins may be different
- Cursor is missing or is transparent
- Limitation is missing
- Transition to the next field is unavailable because Next button is disabled
2. Field validation
Expectations
- Validation of all required fields/ checkboxes /drop-downs etc.
- If validation failed, pop-up with the text displays, for example: ”Field name can’t be empty”
- Correct order of validation: step by step - from the top to the bottom, from left to right, both on the client and server sides.
Typical Issues
- Incorrect field validation order
- Incorrect validation text (different for fields within the same form)
- Error message from server side is ignored
3. Keyboard
Expectations
Keyboard is hidden with:
- Tap on Done button on the keyboard
- Tap around the keyboard but within the screen
- Opening sidebar (hamburger) menu
- Moving to other screen
- Opening date/ time picker
- Keyboard doesn’t overlap the input field which is active at the moment, there is autoscroll so active field stays above the keyboard
Typical Issues
- Done button doesn’t perform any action
- Keyboard hides only after switch to other screen
- Keyboard opens over sidebar menu
- Input field is overlapped by the keyboard, autoscroll is missing
- Keyboard and date/time picker stay opened simultaneously
4. Search
Expectations
- Hint is available
- Tap on input field opens keyboard
- After 1st character is entered, hint disappears
- After 1st character is entered, X button appears to clear entered data
- X button disappears after entered content is cleared
- No results message is displayed if search gave no results
Typical Issues
- X button is missing
- Hint is missing
- Keyboard doesn’t hide after tap on Search button and results are overlapped by
- X button doesn’t disappear after entered content is cleared
- No results message is missing
5. Camera/Gallery (Privacy)
Expectations
- If camera is disabled in Privacy settings, custom pop up with text “This app does not have access to your camera. You can enable access in Privacy Settings” is displayed. The same in case Gallery is disabled in Privacy Settings
Typical Issues
- Black camera screen opens, buttons react on taps, and there is no explanation for users why camera screen is black
- Application crashes after opening Camera/ Gallery, if Camera/ Gallery is enabled/ disabled in Privacy Settings
- Black camera screen opens and displays custom inappropriate pop-up message
6. Date/Time pickers
Expectations
- When one date picker opens, the second (if it's opened) automatically closes
- When only date should be available, time is removed
- Picker placed at the bottom of the screen scrolls up after tap on it
- Picker hides after tap on it
- Picker hides after tap within the screen
- Picker hides after tap on input field
Typical Issues
- Several pickers open at the same time
- Both date and time is displayed while only date should be visible
- Picker placed at the bottom of the screen doesn’t scroll up and only top part of it is visible
- After tap on it picker overlaps input fields placed below
- Picker doesn’t hide after tap on it / input field / within the screen
7. Selectors
Expectations
Selectors are displayed:
- After tap on buttons User’s selection is highlighted for few seconds
- After item(s) from the list is (are) selected
- After screen from sidebar menu is selected, the selector holds down, highlighting active screen from the menu
Typical Issues
- Selectors are missing
- Selectors don’t disappear after switch to other screen
- Ability to select several items simultaneously on the fields where it’s not appropriate (sidebar menu opens while switching to the screen)
- Selector obscures icon and button, making them not visible
- Selector is present on input fields or UI elements, that don’t contain transitions
8. Buttons
Expectations
- If required parameters (fields, checkboxes, drop-downs) are not selected, then Done is disabled, or after tap on it custom pop up with text (“Field’s name should not be empty”) is displayed
- Done button is enabled after required parameters are selected
Typical Issues
- Buttons are not disabled
- Validation is missing
- Incorrect pop-up message
- pop-up is missing
9. Time zone
Expectations
- Application works correctly with user’s time zone (for pushes - difference between time zones is taken into account; for schedule - week starts according to selected time zone)
Typical Issues
- Pushes are delivered one day earlier or later
- Event’s schedule starts on Sunday instead of Monday - this frequently happens when difference between time zones is +/- 8 hours
10. Scroll
Expectations
- Scrollbar is available on the list
- When there are several tabs with lists, scroll is independent on each tab
- Scroll position on the list preserves within one screen
- Scrollbar resizes according to the list
- Scrollbar is located on the right side from the content
- If keyboard is opened, it’s closes when scroll activates
- Auto scroll up makes active field visible during filling in
- Auto scroll up makes user’s message posted on the page visible
Typical cases:
- Scrollbar on the list is missing
- When there are several tabs with lists, scrolls are connected
- Scroll position on the list is not preserved, and user has to scroll to needed position again
- Scrollbar is located over the content
- Scroll is enabled when keyboard is opened
- Auto scroll up is missing, therefore, data being entered at the moment is not visible
- Auto scroll up on the page is missing, therefore, user’s message posted at the moment is not visible
SEE ALSO: