QA Plan
Note: The tests in this plan build on each other assuming a passing state at the end of the previous test.
Coding Environment Development Site
Test 1: Initial Load
- Load the Coding environment
Expect:
- The page loads without any errors
- Browsers other than Chrome and Opera
- The 'Connect to Dash' button and run buttons are greyed out and not selectable.
- A message should be displayed saying that 'The Dash robot connection currently only works in Chrome.'
- In Chrome and Opera the 'Connect to Dash' is not greyed out and is selectable, and the run button is greyed out and is disabled.
In browsers other than Chrome, skip to test 5.
Test 2: Failed Connect to Dash
- Make sure Dash is near by and turned off, then Click the 'Connect to Dash' button
Expect:
- Connection modal dialog will come up with no devices available
    2. Click cancel or press esc, or click outside of the modal
Expect:
- 'Something when wrong' dialog comes up
    3. Click "Try Again"
Expect:
- Connection modal dialog will come up with no devices available
    4. Click cancel or press esc, or click outside of the modal
Expect:
- 'Something when wrong' dialog comes up
    5. Click "Cancel Connection"
Expect:
- Dialog closes
Test 3: Connect to Dash after dialog
- Make sure Dash is near by and turned off, then Click the 'Connect to Dash' button
Expect:
- Connection modal dialog will come up with no devices available
    2. Turn Dash on
Expect:
- Dash appears in the connection dialog
   3. Select 'Dash' in the dialog and click 'Pair'
Expect:
- Loading indicator stops spinning and turns into a check mark
- If there's any problem with connect to dash, error modal with cancel and retry buttonsÂ
Test 4: Connect to Dash
- Repeat test 1
- Make sure Dash is near by and turned on, then click the 'Connect to Dash' button
Expect:
- Loading indicator beside the button starts spinning
- Bluetooth modal dialog comes up
     3. Select 'Dash' in the dialog and click 'Pair'
Expect:
- Loading indicator stops spinning and turns into a check mark
- If there's any problem with connect to dash, error modal with cancel and retry buttonsÂ
Test 5: Create a simple program
- Â Click on a movement, then click on the first empty space in the program area.
Expect:
- The movement appears in the program area
- The movement stays selected after it has been placed and you can place the same movement again without clicking on it first
      2. Repeat step 1, 3 more times
Expect:
- The first four spaces in the program are filled in
Test 6: Run a simple program
- Click the run button
Expect:
- Dash performs the movements you have programmed
- The movement that is happening is highlighted
- Run button is disabled while the program is running
Test 7: Create an extended program
- Click on a movement, then click on the first empty space in the program area
- Repeat step 1, 4 more times
Expect:
- There are 9 movements in the program
- When the last empty space in the program is filled, a new empty space appears after it
Test 8: Create an extended program (use the +)
- Click the '+' then click the last space in the program
Expect:
- A new empty space appears at the end of the program (Currently there's a bug where this doesn't work the first time)
- The '+' button stays selected
     2. Click the last space in the program
     3. Repeat step 2, 2 more times
Expect:
- There's a total of 13 spaces in the program
Test 9: Run a long program
- Click the run button
Expect:
- Dash performs the movements you have programmed
- Run button is disabled while the program is running
- The movement that is happening is highlighted and scrolls into view
Test 10: Remove part of a program and run it
- Click the 'x' then click one of the movements in the program
Expect:
- The movement you clicked is removed from the program
    2. Click the run button
Expect:
- Dash performs the movements in the shortened program
Test 11: Remove all of a program
- Click the 'x' then click each of the movements in the program until there are no movements left in the program
Expect:
- Dash doesn't do anything when pressing the 'Run' buttonÂ
Test 12: Create and run a program with a single movement
- Click on a movement, then click on the first empty space in the program area
- Click the run button
Expect:
- Dash performs the movement in the program
Test 13: Create and run a program with empty spaces between movements
- Click on a movement, then click on the last empty space in the program area
- Click the run button
Expect:
- Dash performs the two movements in the program
Test 14: Remove all dialog 'Cancel'
- Click the 'x' then click delete all button
Expect:
- A modal pops up with confirmation message asking if you want to delete everything on the program
   2. Click Cancel
Expect:
- The dialog closes and the program remains the same as it was at the beginning of this test
Test 15: Remove all
- Click the 'x' then click delete all button
Expect:
- A modal pops up with confirmation message asking if you want to delete everything on the program
   2. Click 'Delete All'
Expect:
- The modal closes and all the commands on the program are removed
Test 16: Keyboard
- Do tests 1-15 using only the keyboard
Test 17: Screen reader
- Do tests 1-15 using a screen reader
Test 18: Run the Axe Accessibility testing tool
- Install the Axe Chrome extension, if needed
- Open the Chrome Developer Tools
- Select the "axe" tab
- Click "ANALYZE"
- Run the tool at different application states, such as when a dialog box is open, or when the Delete action is selected
Test 19: PWA offline access
- In Chrome, open the project website
- From the Chrome menu, select "Install Inclusive Coding Environment..."
- Click "Install"
- Verify that the Inclusive Coding Environment can be run without an internet connection