1Business context
SkyWays is an airline booking engine. It must search correctly, enforce passenger rules (max 9, one infant per adult), handle fare families and seat selection, and issue an e-ticket with a PNR for one-way or round trips.
One-way or round trip with airport autocomplete and swap, passenger steppers with infant rules, filters and sort tabs, fare families, traveller forms, a seat map, payment and PNR.
2Users & roles
- 👤 Traveller — searches, books and views trips (no login)
3Modules & screens
| Screen | Route | What it does |
|---|---|---|
| Search | /apps/flights | Airport autocomplete, swap, dates, passengers, cabin |
| Results | /apps/flights/results | Stops, airline, departure-time filters, sort, fare families |
| Passengers | /apps/flights/passengers | Names per government ID, contact details |
| Seat map | /apps/flights/seats | One seat per traveller by availability |
| Payment | /apps/flights/payment | Card payment |
| E-ticket | /apps/flights/ticket | PNR and one or two legs |
| My trips | /apps/flights/trips | Booked trips |
4Main end-to-end journey
One-way flight for two
- Choose one-way, Mumbai (BOM) to Delhi (DEL), tomorrow, 2 adults, economy
- Search, tick Non-stop and sort Cheapest
- Select the first flight with the Flex fare
- Enter both passengers and contact details
- Pick one available seat per traveller
- Pay
Expected: E-ticket with a PNR, both passengers and their seats
5Business rules & validations
- Airport autocompleteBeginner
Type in from-city, pick from-option-<code>; free text without picking fails search-errors.
- Swap & same-city ruleBeginner
swap-cities exchanges both fields; the same city on both sides is rejected.
- Passenger rulesIntermediate
infants-inc is disabled once infants = adults; the total never exceeds 9.
- Round trip datesIntermediate
return-day chips before the departure date are disabled.
- Filters & sortingIntermediate
Combine stops-*, airline-*, dep-* and max-fare; sort-fastest orders by duration.
- Fare familiesIntermediate
select-flight expands fare-basic / fare-flex inside that card only.
- Seat mapAdvanced
Pick seats with data-status="available"; selection auto-advances to the next traveller (assigned-seat-*).
- Round-trip bookingAdvanced
Select outbound, then the return list appears; the ticket shows two ticket-leg rows.
6Test data & credentials
- URL
- /apps/flights
- Login
- not required
- Max travellers
- 9 (1 infant/adult)
- Card
- any 16 digits
7Glossary
- PNR
- Booking reference on the e-ticket
- Fare family
- Basic vs Flex fares within one flight
- Leg
- One flight segment — round trips have two
8Watch-outs for automation
- ⚠️Free-text cities without picking a suggestion fail validation
- ⚠️Infant count can't exceed adults; total max 9
- ⚠️Return-date chips before departure are disabled
9Suggested test strategy
1 · Smoke
4
P1 positive and end-to-end cases — run on every build.
2 · Regression
15
All cases, incl. 4 negative and 3 edge — run before release.
3 · End-to-end
3
Full user journeys — run nightly.
Start with these smoke cases
- SKYWAYS-01 — Book a one-way flight
- SKYWAYS-02 — Round trip
- SKYWAYS-E2E-01 — One-way flight for two
- SKYWAYS-E2E-02 — Round trip