Skip to content
QA Knowledge Hub

Test cases for dropdown and multi-select

Updated 2026-11-13 · 6 min read

Thirty cases for single-select and multi-select controls with stable option IDs. Tests filtered selections, select-all boundaries, stale responses and accessible interaction.

How to answer in an interview

Ask whether the control is a native select, a searchable combobox or a multi-select listbox. Clarify required values, selection limits, disabled options and what select-all means when filtering. Separate keyboard focus from committed selection: moving through results must follow the chosen interaction model, not an assumption that all dropdowns work alike.

Scope and test data

Use a required single-select delivery city and an optional multi-select skill field with a limit of three choices. Give options stable IDs, including two labels that intentionally match but have different contextual descriptions. The multi-select retains selected items while searching, excludes disabled items and applies select-all only to visible enabled matches. Search ignores letter case and trims surrounding spaces. Unknown free text is not a valid city. These are example product rules. WAI APG distinguishes combobox and listbox patterns, and offers different multi-selection keyboard models; agree the chosen model before execution.

The 30 cases below are a test design, not an execution report. Replace the example rules with approved requirements before recording pass or fail. Performance budgets and supported device versions must be agreed before execution.

Single selection and value integrity

IDCategoryTest caseExpected result
M01FunctionalChoose a city and submitSubmitted stable option ID maps to the displayed city
M02NegativeSubmit the required city with only its placeholder visibleRequired error appears; placeholder is not stored as a real option
M03FunctionalChange from city A to city BOnly B is submitted and A is no longer selected
M04FunctionalReopen a saved formSaved city ID displays the correct label
M05NegativeAttempt to choose a disabled cityDisabled option cannot become the submitted value
M06FunctionalChoose between identical labels with distinct descriptionsContext distinguishes options and the intended ID is stored
M07NegativeType a city name that has no valid option and submitFree text is rejected with a selection prompt
M08FunctionalReset the formCity and skills return to the documented initial values

Multiple selection and limits

IDCategoryTest caseExpected result
M09FunctionalSelect one skill and then a secondBoth IDs are stored once and both show selected state
M10FunctionalDeselect one of two selected skillsOnly the remaining ID is submitted
M11BoundarySelect exactly three skillsAll three are accepted with the limit clearly indicated
M12BoundaryTry to add a fourth skillFourth selection is refused without dropping the first three
M13FunctionalSearch after selecting two skills outside the new resultsExisting selections remain visible in the selection summary and in submission
M14FunctionalClear all selected skillsEmpty list is saved because skills are optional
M15FunctionalUse select-all with two visible enabled matches and no prior selectionExactly those two IDs are selected; hidden and disabled options are excluded
M16BoundaryUse select-all when its additions would exceed threeOperation is refused with a limit message and prior selection remains intact
M17FunctionalRemove a selected chip using its remove actionCorrect ID is removed and focus lands on a usable control
M18FunctionalRepeatedly toggle one optionFinal state matches the final toggle; submitted list has no duplicate IDs

Search, dependencies and stale data

IDCategoryTest caseExpected result
M19FunctionalSearch the same label in mixed case and with surrounding spacesSame matching option IDs appear as for the unpadded label
M20NegativeSearch a term with no matchesNo-results message appears while existing selections remain intact
M21FunctionalType query A then B and deliver A response lastOnly B results remain selectable
M22NegativeFail the option-loading requestError and retry are visible; loading failure is not labelled as an empty catalogue
M23FunctionalChange parent country after selecting a cityIncompatible city is cleared and new country options are loaded
M24NegativeRemove a previously selected option on the server before submissionServer rejects the stale selection and asks for a replacement
M25SecuritySubmit an unknown or unauthorised option ID directlyServer rejects it regardless of the browser options
M26SecurityRender a fixture option label containing HTML-like textText is displayed without executing or inserting markup

Keyboard, scale and compatibility

IDCategoryTest caseExpected result
M27UINavigate and select with keyboard under the chosen APG modelFocus, committed selection and popup dismissal follow that model without a trap
M28UIInspect with a screen reader while selecting and removing itemsControl label, expanded state where applicable, and selection changes are perceivable
M29PerformanceSearch and scroll the maximum supported option datasetResponse meets budget and virtualised results remain selectable without losing selections
M30CompatibilityRepeat choose, search, clear and limit tests on supported touch and desktop platformsSaved IDs and limit enforcement agree; controls remain reachable at zoom

Evidence and prioritisation

Prioritise M06, M12, M16, M21 and M25. Capture option IDs with labels and selected-state evidence; label-only screenshots cannot distinguish duplicates. The common mistake is applying a native-select automation helper to a custom popup. First identify the widget, then select using its public interaction model. The follow-up about select-all should establish whether it means visible matches or the full dataset; this suite deliberately chooses visible matches.

Downloads

Quick answers

Does keyboard focus always select an option?

No. Selection may follow focus in some single-select designs, while multi-select usually needs a distinct action. Test the approved interaction model.

Should filtered-out selections disappear?

This suite keeps them. If a product clears them, require a clear rule and visible feedback before writing the expected result.

Sources

Want a project you can show in interviews?

The portfolio project kit walks you through testing a deliberately buggy app with Selenium or Playwright and API tests, then explaining it. The app itself is free.