| Version 11 (modified by jdalbey, 6 years ago) (diff) |
|---|
Lane Closure System Simulator
Functional Specification
The LCS Simulator is intended to provide TMC Academy students practice at creating an emergency lane closure and documenting changes to the status of a lane closure and notifying the responsible person. In the real-world LCS, creating a lane closure creates new icons on QuickMap.
This document will reference the User Interface Prototype extensively.
- Login
The login page has a single text field for the user to enter their username and a Submit button. The submit button validates that the text field is not empty and then opens the Home page.
- Home
The home page displays message of the day (static fields). There are only two actions that can be taken from here: Search or Request.
- Request
A new lane closure is created by submitting a request form. The fields in this form are shown in the UI Prototype. Required fields are marked with an asterisk. Upon submittal the system generates a new closureID and displays a popup dialog with an acknowledgement and the form is reset.
The new closure ID is created in the following format: The uppercase letter "T" (indicating temporary/emergency closure), followed by the highway (route) number, followed by a two letter sequence code that starts with "AA". A log number is also required, a sequential integer starting at 1. TBD: There needs to be some field in the form for the user to specify that they want a NEW closure (and thus log number = 1) versus an existing closure, in which case the next sequential log number is assigned.
- Search
The user will usually be provided a closure ID from someone in the field who calls in a request to update a closure. If only the closure ID is provided for the search, it should return all associated log numbers. If both closure ID and log number are provided, return just that specific item.
Any combination of criteria can be provided, include just a start date or just an end date. If a start date is provided, return all closures scheduled ON or AFTER that date. If an end date is provided, return all closures scheduled ON or BEFORE that date. If both start and end dates are provided, return all closures scheduled BETWEEN those dates.
- Search Results
The results page lists the closures that match the supplied search criteria. The Radio Call number is not part of the initial Request. A separate static lookup table is referenced to find the supervisor name and their radio call number. The "Limits" column is the begin and end location. "Work Description" is the Type of Work field. To view details, one or more checkboxes may be selected from left column, then click Status History or Status Form to see the corresponding details.
- Status Form
When the Status Form button is clicked, the search results are elaborated with an extra column that contains a form to update the status of the closure. When the Submit Status Form button is clicked, the closure info is updated with the data from the status form, an acknowledgement message is displayed, and the Search Results page is displayed. (Need clarification: does the user need to check the checkbox for desired items to be updated?)
- Status History
A display of the status history for one or more selected closures. The status history has one to three rows, for possible events 1097, 1022, and 1098. REQ DATE is the start/end time of the original request. STATUS DATE is the time when the a status update happened (obtained from the status form above). USER is the value from the "Field Statuser" field of the status form.
Data Dictionary
All fields in this dictionary are strings, since there are no arithmetic computations required.
closureid - a unique identifier for each closure, format described above.
lognum - a subordinate sequence number.
route - highway number
direction - traffic direction, see options in combobox.
facility - what part of the roadway is affected, see options in combobox.
startdate - calendar date when the closure will begin. The user enters MMDDYYYY but the value stored in the database must be YYYYMMDD.
enddate - calendar date when the closure ends. The user enters MMDDYYYY but the value stored in the database must be YYYYMMDD.
starttime - time of day on the start date when the closure begins. Format: HHMM (military time)
endtime - time of day on the end date when the closure ends. Format: HHMM (military time)
startcounty - County in which the closure starts. For now, Orange county is the only option.
endcounty - County in which the closure ends. For now, Orange county is the only option.
startlocation - Cross street used to identify location of the closure. The options in the drop down are obtained from the postmile book. It would be nice if the drop down was smart enough to only display cross streets on the selected route.
endlocation - same as above. closuretype - see options in combobox.
worktype - see options in combobox.
estdelay - estimated number of minutes of delay caused by the closure. (How long drivers have to wait).
tmpcozeep - yes or no
tmpdetour - yes or no
supervisor - see options in combobox. obtained from callout map.
fieldrep - same as above.
meetingplace - optional, free format field.
reason - optional, free format field.
remarks - optional, free format field.
The remaining fields are for values from the status form.
s1097date s1097time s1097user s1097phone s1098date s1098time s1098user s1098phone s1022date s1022time s1022user s1022phone
Test Strategy
See Reference: Equivalence Classes
Valid Equivalence Classes
V1: closureid not empty, all others empty
V2: closureid, log num not empty, all others empty
V3: route not empty, all others empty
V4: direction not empty, all others empty
V5: start date not empty, all others empty
V6: end date not empty, all others empty
V7: start date not empty, end date not empty, all others empty
Invalid Equivalence Classes
X2: log num not empty, closureid empty
Boundary Value Analysis
Given a closure with a start date of Jan 2, 2020 and end date of Jan 5, 2020 provide input data of
- Jan1
- Jan2
- Jan 3
- Jan4
- Jan5
- Jan 6
Branch Testing
Since search by any combination of fields is allowed, for exhaustive testing we would do each of the 7 classes above in combination with the others, but that would require 7! = 5040 tests. To simplify, we will provide tests for each field included in one combination with some other field.
- ClosureID and log number (Note that in general use when a closure id and log number are provided the other fields will NOT be provided because closure id/log number specifies a unique closure.)
- route and direction (Note that in general use direction won't be provided without a route, though it is legal to do so.)
- route and start date
- route and end date
- route and start date and end date
For each of the above cases, we want a search that succeeds and a search that finds no results.
Test Plan
Database Records
Example of the closures database:
closures.id,closures.closureid,closures.lognum,closures.route,closures.direction,closures.facility,closures.startdate,closures.enddate,closures.starttime,closures.endtime,closures.startcounty,closures.endcounty,closures.startlocation,closures.endlocation,closures.closuretype,closures.worktype,closures.estdelay,closures.tmpcozeep,closures.tmpdetour,closures.supervisor,closures.fieldrep,closures.meetingplace,closures.reason,closures.reHAL COTAs,closures.s1097date,closures.s1097time,closures.s1097user,closures.s1097phone,closures.s1098date,closures.s1098time,closures.s1098user,closures.s1098phone,closures.s1022date,closures.s1022time,closures.s1022user,closures.s1022phone 63,T5AA,1,5,NB,Mainline,2020-01-01,2020-01-02,0800,0900,ORA,ORA,BAKER,BRISTOL,Lane,AC Paving,66,NO,NO,JORGE MEJIA,,,,,20200320,1609,JORGE MEJIA,,2020-03-19,1420,APRIL MAY,,2020-03-19,1421,JORGE MEJIA, 64,T405AA,1,405,NB,Mainline,2020-02-02,2020-03-02,0800,1700,ORA,ORA,BAKER,BRISTOL,Lane,AC Paving,33,NO,NO,JORGE MEJIA,,,,,20200319,1618,JOEL ARRIA,,2020-03-19,1358,JORGE MEJIA,,2020-03-19,1417,ORALIA MENDEZ, 65,T5AB,1,5,SB,Mainline,2019-01-22,2019-01-25,0800,1700,ORA,ORA,BAKER,BRISTOL,Lane,AC Paving,33,NO,NO,JOEL ARRIA,,,,,2020-03-19,1105,,,,,,,,,, 66,T22AA,1,22,NB,Mainline,2000-01-01,2000-10-10,0800,1700,ORA,ORA,BAKER,BRISTOL,Lane,AC Paving,33,NO,NO,APRIL MAY,,,,,,,,,,,,,,,, 67,T22BB,1,22,WB,Mainline,2000-01-01,2000-10-10,0800,1700,ORA,ORA,BAKER,BRISTOL,Lane,AC Paving,33,NO,NO,APRIL MAY,,,,,,,,,,,,,,,, 68,T55AA,1,55,NB,Off Ramp,2000-10-11,2000-10-11,0800,0900,ORA,ORA,BAKER,BRISTOL,Lane,Blasting,22,YES,NO,JOEL ARRIA,,,,,20200319,1616,JOEL ARRIA,,,,,,,,, 69,T73AA,1,73,WB,Mainline,2020-03-18,2020-03-19,0800,0900,ORA,,First,Second,Full,Blasting,66,,,JOEL ARRIA,,,,,,,,,,,,,,,, 70,T1AA,1,1,SB,Mainline,2020-03-02,2020-03-26,0700,1700,ORA,ORA,AVOCADO AVE,LOS TRANCOS,Lane,Bridge Inspection,70,NO,NO,HAL COTA,,,,,20200320,1617,JOEL ARRIA,,,,,,,,, 71,T55AB,1,5,SB,Rest Area,2020-04-01,2020-05-01,0330,1000,ORA,ORA,EL CAMINO REAL,MAGDALENA,Full,AC Paving,35,NO,NO,APRIL MAY,HAL COTA,,,,,,,,,,,,,,, 72,T11AB,5,1,NB,Mainline,2020-03-01,2020-03-15,0500,0600,ORA,ORA,BAKER,BRISTOL,Lane,AC Paving,40,NO,NO,JOEL ARRIA,HAL COTA,,,,,,,,,,,,,,,
| Test Case | Description | Search Input | Expected Search Results |
| 1a | closureid not empty, all others empty | closureid = "T55A" | 63 |
| 1b | closureid = "T4AB" | None | |
Attachments
-
search_test_data.csv
(2.2 KB) -
added by ally 6 years ago.
