Smoke Testing iOS Apps: The Complete Guide
What to check before every release. A practical checklist for iOS developers.
You've spent two weeks building a feature. The code looks clean. Unit tests pass. But you haven't actually used the app on a real (simulated) device. You hit "Archive" and pray.
This is where smoke testing comes in. It's the 5-minute sanity check that catches the bugs your unit tests miss — the ones that make users leave 1-star reviews.
What Is Smoke Testing?
Smoke testing is a quick, shallow test of your app's critical paths. You're not testing every edge case — you're answering one question: "Is this build fundamentally broken?"
The name comes from hardware testing: plug it in, and if smoke comes out, something's wrong. Same idea with software — launch the app, tap through the main flows, and see if anything explodes.
What to Smoke Test (The Checklist)
Every iOS app should check these before every release:
1. App Launch
- Does the app launch without crashing?
- Does the correct screen appear (not a blank white screen)?
- Do permission dialogs appear at the right time (not immediately on launch)?
2. Authentication
- Can you log in with valid credentials?
- Does the app handle wrong passwords gracefully (error message, not crash)?
- Does "Remember me" / biometric auth work?
- Does logout actually log you out?
3. Core User Journey
- Can you complete the main action? (book a ride, place an order, send a message)
- Does the confirmation screen show correct data?
- Do prices/calculations look right?
4. Navigation
- Do all tab bar items work?
- Does the back button work correctly?
- No blank or stuck screens?
5. Data Loading
- Do lists populate (not empty)?
- Does pull-to-refresh work?
- Do images load?
6. Error States
- What happens with no internet? (graceful error, not crash)
- What happens if the API returns an error?
When to Smoke Test
- Before every TestFlight build. Your beta testers shouldn't find launch crashes.
- After merging a large PR. Integration bugs hide in merges.
- Before App Store submission. App Review will reject obvious crashes.
- After updating dependencies. A CocoaPods/SPM update can break anything.
Manual vs Automated Smoke Testing
Manual smoke testing takes 5-15 minutes. You launch the app, tap through the checklist above, and eyeball the results. It's simple, but it's boring, and you'll start skipping it under deadline pressure.
Automated smoke testing runs the same checks without human effort. Tools range from scripted frameworks (XCUITest, Maestro) to AI agents that understand plain English descriptions. The key benefit: it runs consistently, every time, even when you're rushing to ship.
The smoke test you skip is the one that would have caught the bug your users find.
Common Smoke Test Failures (And What They Mean)
- Blank screen on launch: Missing data, API failure, or a crash in
viewDidLoad/body. - Login doesn't work: API endpoint changed, auth token expired, or SSL certificate issue.
- Prices show $0 or NaN: Parsing error from API response format change.
- Tab bar item crashes: Unresolved storyboard/SwiftUI reference after refactor.
- Pull to refresh does nothing: Missing API call or broken Combine/async chain.
Smoke Testing in CI/CD
The best smoke tests run automatically on every PR. Here's the pattern:
- PR is opened
- CI builds the app
- Boots an iOS Simulator
- Runs the smoke test checklist
- Posts results as a PR comment
This catches "it works on my machine" bugs before they hit main. GitHub Actions with macOS runners support this natively.
The 5-Minute Smoke Test Template
Copy this checklist and run through it before every release:
- Launch app — loads without crash
- Login — succeeds with test account
- Main screen — data populates, images load
- Core action — complete one full user journey
- All tabs — each tab loads its content
- Back navigation — no stuck screens
- Kill and relaunch — state persists correctly
If all 7 pass, ship it. If any fail, investigate before releasing.
Automate your smoke tests
Describe the checklist in plain English. AI runs it for you.
Try NoobQA Free