TEST NUMBER #1
Functionality: Baseline
Use Case: Client creates account and log into the system
Test Sequence:
- Select “1: Create New Account” in the welcome page
- Enter user name, password, first name and last name
- Server should print the following to the display: “Account created”
- Select “2: Log in” in the welcome page
- Enter user name and password
- Server should print the following to the display: “User XXX logged in.”
Known problems:
- All information should not be longer than 250 characters
TEST NUMBER #2
Functionality: Baseline
Use Case: Client places a limit buy order
Test Sequence:
- Select “2 Place Buy Order”
- Enter ticker symbol, order type(limit), no. of shares, price of your order
- Server should print the following to the display: “Order to BUY XXX units of XXX Placed”
TEST NUMBER #3
Functionality: Baseline
Use Case: Client lists his or her own transaction.
Test Sequence:
- Select “4 List Transactions”
- Your transaction history should display on the terminal.
TEST NUMBER #4
Functionality: Baseline
Use Case: Client places a market order that the number of shares is greater than the
total volume of sell orders.
Test Sequence:
- Select “2 Place Buy Order”
- Enter ticker symbol, order type(market), no. of shares(larger than the total sell order volume), price of your order
- Server should print the following to the display: “Order to BUY XXX units of XXX Placed”
- When you list the order book of that stock, there is a order queuing in the order list which has a price of INT_MAX and there should be no sell order.
TEST NUMBER #5
Functionality: Reliability
Use Case: Kill server while client sending incremental orders, database displays all orders
Test Sequence:
- Start 6 servers on different machines.
- Start test clients that places BUY orders with ascending prices starting from 1.00 and descending SELL orders from price 2000.00 every 500 miliseconds.
- While sending orders, kill the primary server.
- Replication Manager will switch the next available server as primary server.
- Client will resend the order that doesn't recieve any confirmation with the same transaction ID to avoid duplicates.
- Continue killing the servers one by one, killing servers in sequence and not in sequence of priority order
- The database should display all order with prices incrementing from 1 to N without any gaps.
Outcome:
- Prices were all in order and without gaps and without duplicates.