Also: Notch, Safe area insets
Modern phones have screen areas where content can be hidden or hard to tap. Layouts should keep important content and buttons inside the safe area. Testers check edge-to-edge screens on devices with different cut-outs.
In practice: On an iPhone with a Dynamic Island, the app's back button is partly hidden behind it in landscape mode.
Related:OrientationFragmentation
Also: SameSite attribute
It helps protect against cross-site attacks. Lax is a common default; None requires the Secure flag. Wrong settings can also break legitimate logins from other sites.
In practice: After a bank redirects back from 3-D Secure, the shop logs you out because its session cookie is SameSite=Strict.
Related:CookieHttpOnly cookie
Also: License tester, Test account
Apple uses Sandbox Accounts and StoreKit testing; Google uses license testers. Subscriptions renew much faster in sandbox, so a month can pass in minutes.
In practice: A tester buys a monthly subscription with a sandbox account and watches it renew every few minutes.
Related:In-app purchaseStaging
Sanity testing is a narrow, quick check done after a small change or bug fix, to decide whether it is reasonable to continue with more testing. It is narrow but goes a little deeper into one area, and is usually unscripted.
In practice: Developers fixed the coupon field. You quickly apply a few coupons and check the total updates, before running the full checkout regression suite.
Related:Smoke testingRetestingRegression testing
Also: VoiceOver, TalkBack
A screen reader converts on-screen content into speech or braille and lets users navigate with gestures or a keyboard. VoiceOver (iOS, macOS), TalkBack (Android) and NVDA or JAWS (Windows) are common. Testers check that every element has a meaningful label, role and state, in a logical order.
In practice: With TalkBack on, an icon-only "Share" button is read as "Unlabelled button", so the user cannot know what it does.
Related:Accessibility testingWCAG
Also: Backdrop, Overlay
Tapping the scrim usually means cancel. It must block taps to the page behind; if taps pass through, users trigger actions they can't see.
In practice: Tapping the dimmed area to close the sheet also presses the + button behind it.
Related:ModalBottom sheet
Without it, scrolling inside an overlay scrolls the page underneath instead, and users lose their place.
In practice: Scrolling the open menu on a phone moves the product list behind it, which is a bug.
Related:ModalBottom sheetNavigation drawer
Scrum organizes work into sprints, with roles (product owner, scrum master, developers including testers) and events (sprint planning, daily scrum, sprint review, retrospective). Work is pulled from a prioritized product backlog.
In practice: Every morning the team has a 15-minute daily scrum where the tester mentions that the new filter screen is blocked by a crash.
Related:AgileSprintUser story
Also: Search field, Search box
Testers check the keyboard's Search key, clearing, cancel behavior, auto-capitalization and autocorrect, blank and spaces-only queries, and recent searches.
In practice: Typing 'pizza' and pressing Search on the keyboard shows pizza places; tapping × clears both text and results.
Related:AutocompleteDebounceText field
Face ID and Touch ID data never leaves the Secure Enclave. Apps only get a yes/no result and can use keys that are unlocked by it.
In practice: The banking app never receives your face data; it only learns that the Secure Enclave approved the unlock.
Related:Biometric authenticationAndroid Keystore
Security testing looks for weaknesses that could let attackers steal data, take over accounts or misuse the system. Manual testers can check basics such as session timeout, access to other users' data and how sensitive data is shown or stored.
In practice: You change the order ID in the URL from /orders/1001 to /orders/1002 and can see another customer's order. That is a serious security bug.
Related:Non-functional testingNegative testing
Also: Segmented button, Toggle button group
A segmented control is a horizontal set of two to five segments that act as one control, with one segment selected at a time. It switches between views or filters of related content. Its options are mutually exclusive.
In practice: An activity screen in a fitness app has a segmented control with "Day | Week | Month" that changes the chart below.
Related:Mutually exclusiveState persistenceTouch target
Also: Design token, Color token
Using semantic colors instead of hard-coded hex values lets the app adapt to dark mode and high contrast automatically. Hard-coded colors are a top source of dark mode bugs.
In practice: Text using the 'label' color turns white in dark mode; text hard-coded as #111 stays nearly black and becomes invisible.
Related:Dark modeContrast ratio
Also: SemVer
In 2.4.1, a major change bumps 2, new features bump 4 and bug fixes bump 1. The build number (e.g. 318) is separate and identifies the exact build.
In practice: Release notes for 3.0.0 hint at big changes, so you plan a much wider regression test than for 2.4.2.
Related:ReleaseBuildRelease notes
Also: Back-end validation
The server repeats the app's rules and adds checks only it can do, such as "email already registered", stock levels or rate limits. If the data is invalid it answers with an error (often 400 or 422) and saves nothing. Testers check it by sending invalid data straight to the API, around the app.
In practice: The app blocks users under 18, but a tester sends a sign up request from Postman with a 2012 date of birth. The server must reject it with a validation error.
Related:Client-side validationInput validationAPI
Service workers are a key part of progressive web apps (PWAs). Testers check offline behavior and that updates actually reach users instead of an old cached version.
In practice: After a release, users still see the old checkout because the service worker served cached files.
Related:CacheOffline mode
After login the server creates a session, usually tracked with a cookie or token. Sessions should expire after inactivity or logout, and should not survive in ways that put the user at risk. Testers check expiry, logout on all devices and the back button after logout.
In practice: After tapping Log out, pressing the browser back button should not show the account page again.
Related:AuthenticationCookie
Also: Auth token
After a successful login the server returns a token (often stored in a cookie or the device's secure storage). Every later request sends it. Logging out should invalidate it, and it should expire after a while.
In practice: After "Log out of all devices", a phone that was logged in should be sent back to the login screen on its next request.
Related:SessionAuthenticationCookie
Also: SBTM
Sessions (often 60–90 minutes) make exploratory work visible and reportable: what was tested, what was found and what's left. The debrief shares results with the team.
In practice: A 90-minute session on the checkout charter ends with 3 bugs, 2 questions and a note that refunds weren't covered.
Related:Exploratory testingTest charter
Severity describes the impact of a bug on the system or user: for example blocker or critical (crash, data loss, no workaround), major, minor or trivial (cosmetic). The tester usually proposes it, and it is confirmed or adjusted in triage. It is independent of how soon the bug will be fixed.
In practice: The app crashes on launch for all users: critical severity. A slightly misaligned icon: low severity.
Related:PriorityBug reportBlocker
Instead of testing only at the end, testers review requirements, designs and early builds. Questions asked in a planning meeting can prevent bugs that would otherwise take days to fix later.
In practice: Spotting that a story never says what happens when a coupon expires during checkout, before any code is written.
Related:Software development life cycleRequirementVerification
Also: iOS Simulator
A simulator imitates the software environment of a device without copying its hardware. The iOS Simulator in Xcode runs iOS apps on a Mac. It is fast and useful for layout and flows, but cannot fully test things like the camera, push notifications, real performance or battery.
In practice: You use the iOS Simulator to check the app on an iPhone SE and an iPhone 16 Pro Max screen size, then confirm camera scanning on a real iPhone.
Related:EmulatorReal device
Also: Skeleton loader, Shimmer
Skeletons feel faster than spinners and reduce layout shift. Testers check they're replaced by real content, an empty state or an error, never left on screen forever.
In practice: The orders list shows three grey bars while loading, then the real orders appear in the same places.
Related:Loading stateEmpty state
Also: Skip to content
Without it, keyboard users must tab through every header link on every page. It's a quick accessibility check on any website.
In practice: Pressing Tab on a news site shows 'Skip to content'; pressing Enter moves focus to the article.
Related:Keyboard navigationWCAG
Also: Range slider, Seek bar
Sliders suit approximate values like volume or a price range, not exact ones like age. Testers check min and max are reachable, rounding, keyboard support and what screen readers announce.
In practice: A price filter from €0 to €250 should actually reach €250, not stop at €240.
Related:Boundary value analysisFloating-point error
Also: Build verification testing, BVT
Smoke testing is a short, broad set of tests run on a new build to confirm that the critical functions work at all. If the smoke test fails, the build is rejected and deeper testing does not start. It is wide but shallow.
In practice: On a new build of a shopping app you check: the app launches, you can log in, search shows products, and you can open the cart. If login crashes, the build goes back to the developers.
Related:Sanity testingRegression testingBuild
Also: OAuth login, Sign in with Apple, Sign in with Google
The app asks an identity provider to vouch for the user instead of handling a password. Testers check first-time vs returning users, canceled consent, hidden emails (Apple relay addresses) and linking with an existing email account.
In practice: A user who signed up with email and later taps "Continue with Google" using the same address should land in the same account, not a new empty one.
Related:Authentication
Also: SDLC
The software development life cycle (SDLC) describes the phases of building software, typically requirements, design, development, testing, deployment and maintenance. Models such as Waterfall, V-model and Agile arrange these phases differently. Testing should start early in the SDLC, not only at the end.
In practice: A team building a fitness app gathers requirements, designs the screens, codes the features, tests them, publishes to the app stores and then fixes bugs reported by users.
Related:Software testing life cycleAgileRequirement
Also: Testing, QA testing
Software testing is the process of evaluating an app or website to find defects and to check that it meets its requirements and the needs of its users. It includes running the software (dynamic testing) and also reviewing documents and designs (static testing). Testing cannot prove there are no bugs, but it reduces the risk that serious ones reach users.
In practice: Before a food delivery app is released, a tester places orders, changes addresses, cancels orders and pays with different cards to see whether anything breaks or behaves unexpectedly.
Related:Quality assuranceQuality controlBugTest case
Also: STLC
The software testing life cycle (STLC) is the sequence of testing activities: requirement analysis, test planning, test case design, test environment setup, test execution and test closure. Each phase has its own inputs and outputs. It runs alongside the SDLC.
In practice: For a new "Pay with Apple Pay" feature, a tester reviews the requirements, plans which devices to use, writes test cases, prepares a test environment, runs the tests and finally writes a summary report.
Related:Software development life cycleTest planTest case
Also: Iteration
A sprint is a time-boxed iteration in Scrum, usually one to four weeks, at the end of which the team should have a potentially releasable increment. Testing happens during the sprint, not after it.
In practice: In a two-week sprint the team commits to "Save favorite stores" and "Dark mode toggle", and both must be developed and tested by the sprint review.
Related:ScrumAgileUser story
Also: Structured Query Language
SQL (Structured Query Language, said "S-Q-L" or "sequel") is how people and programs talk to databases such as PostgreSQL, MySQL, SQL Server and SQLite. Testers mostly use it to read data: to check what the app really saved, find test data and investigate bugs.
In practice: After placing an order in the app, a tester runs SELECT * FROM orders WHERE id = 1007 to confirm the total and status were saved correctly.
Related:DatabaseQueryJOIN (SQL)SQL injection
If an app builds database queries from raw user input, an attacker can type special text that changes the query. Manual testers don't need to exploit it, but entering characters like a single quote (') into fields and reporting server errors is a useful basic check.
In practice: Typing O'Brien into a name field crashes the sign-up with a database error. That's a sign the input isn't handled safely.
Related:Cross-site scripting (XSS)Security testingInput validation
Also: Responsive images
Together with the sizes attribute, it lets phones download small thumbnails while large screens get sharper images. Testers check the Network panel for oversized downloads.
In practice: A 400px-wide thumbnail should download a ~40 KB file, not the 4 MB original.
Related:Lazy loadingPerformance testing
Also: TLS certificate, HTTPS certificate
Certificates make HTTPS work. To inspect encrypted traffic, proxy tools install their own certificate on the test device. Some apps use certificate pinning and refuse that, which is why test builds often disable it.
In practice: After installing the Charles certificate on a test iPhone, you can read the JSON the app sends during checkout.
Related:Proxy toolHTTPSCertificate pinning
Also: Stacktrace, Backtrace
Developers use the stack trace to find the failing line. Testers copy the relevant part, usually starting at the exception name, into the bug report.
In practice: logcat shows 'FATAL EXCEPTION … NullPointerException at DeepLinkParser.kt:27', the line the developer needs.
Related:CrashLogcat
Also: Pre-production, Pre-prod
Staging is an environment that copies production settings, infrastructure and often realistic data. It is the final place to test a release before it goes live, to catch problems that only appear in a production-like setup.
In practice: The new release passes all tests in QA, but on staging the image uploads fail because the storage configuration is different. Better to find it here than in production.
Related:EnvironmentProduction
State persistence is the app's ability to keep data and UI state, such as form input, selected tabs or scroll position, across navigation, screen rotation, backgrounding or restarts. Lost state is a very common mobile bug.
In practice: You fill in half a long form, switch to your email app to copy a code, and come back to find all fields empty.
Related:Race conditionSegmented control
When the OS kills a backgrounded app to free memory, users expect to return exactly where they were. Apps must save and restore screens, form input and scroll positions; testers simulate the kill on purpose.
In practice: After an hour in the background, reopening the banking app should still show the half-filled transfer form, not the home screen.
Related:App lifecycleState persistence
State transition testing models the system as states and the events that move it between them, then tests valid and invalid transitions. It suits features where the same action has different results depending on the current state.
In practice: After three wrong PINs a banking app goes from "Active" to "Locked". You test that a fourth attempt stays locked, and that resetting the PIN moves it back to "Active".
Related:Decision tableBug life cycle
Also: Line coverage
It's the simplest code coverage measure (code coverage is the umbrella term). 100% statement coverage can still miss bugs, because a decision may never take its 'false' path.
In practice: Tests for a discount function run every line, but never the case where no discount applies.
Related:Branch coverageWhite-box testing
Reviews, walkthroughs, inspections and static analysis tools find problems early and cheaply. Dynamic testing, by contrast, runs the software.
In practice: Reading a user story and noticing it contradicts the design mockup is static testing.
Related:VerificationShift-leftReview
Also: Quantity stepper, Spin button
Testers check the limits, typed values, long-press repeat, rapid taps against the server, and what happens at zero.
In practice: A cart quantity stepper should stop at the 4 items in stock instead of letting you pick 5.
Related:Boundary value analysisDouble submit
Story points compare stories with each other instead of counting hours. In most teams they cover all the work to finish a story, including testing.
In practice: A story estimated at 8 points is expected to be roughly as big as two 3-point stories plus some uncertainty.
Related:Planning pokerSprintUser story
The goal is to learn the limits and make sure failures are graceful, with clear errors and full recovery afterwards.
In practice: At 3x the expected traffic the ticket shop slows down but keeps working; at 5x it shows a queue page instead of crashing.
Related:Load testingPerformance testing
Also: One link per card
It gives a large tap area with only one link for screen readers, while other buttons in the card still work on their own.
In practice: Tapping anywhere on a restaurant card opens it, and VoiceOver reads it as one link instead of five.
Related:Event bubblingScreen reader
Also: Schema.org, JSON-LD
It powers rich search results like ratings, prices and breadcrumbs. Testers can validate it with Google's Rich Results Test.
In practice: A product page includes JSON-LD with its name, price and availability, so search results show '€89 · In stock'.
Related:Breadcrumb
System testing evaluates the whole application end to end, in an environment close to production. It covers both functional and non-functional requirements and is where most manual testers spend their time.
In practice: You test the full journey in a travel app: search a flight, choose seats, pay, receive the confirmation email and see the booking in "My trips".
Related:Integration testingAcceptance testing
Also: SUS
Created by John Brooke in 1986. Participants rate 10 statements from strongly disagree to strongly agree, and the answers convert to a score from 0 to 100. The score is not a percentage; around 68 is often cited as average. It is useful for comparing versions, not for finding specific problems.
In practice: After a usability round, the redesigned checkout scores 78 on SUS, up from 61 for the old one.
Related:Usability testing