Document version 0.1
Status: Test plan development in progress
Document Version | Description | Date |
---|
0.0 | Initial version | 04/14 |
0.1 | | 04/16 |
Summary
This document details the tests for Incident Response plugin v0.2.0. The tests are derived from the user stories in Incident Responseoverview.
The Test Areas in this document are arranged based on the vertical columns of the user storyboard.
The plugin will be available (see assumption) for Mattermost version starting 5.12 and up. This test plan consists of test cases to be run on Mattermost server version 5.22; however a subset of smoke tests will be executed on server versions 5.12, 5.14, 5.16, 5.18 and 5.20.
The tests in this document, together with the tests for other versions of the Incident Response plugin will be migrated to TM4J, upon the major plugin feature completion.
Scope
This test plan covers the tests for the user stories as outlined in the Incident Response MVP Overview for v0.2.0 and excludes tests for any other plugin version.
While some tests in this document also cover the bugs and stories resolved for the plugin v0.1.0, the tests for most bugs found during v0.1.0 testing are maintained in Test Plan - Incident Response v0.1.0.
Glossary remains the same as defined in Test Plan - Incident Response v0.1.0
Assumptions
The tests outlined in this document is to be executed against the Incident Response plugin v0.2.0.
This version of the plugin can be installed and used in Mattermost instances that aren’t equipped with any enterprise license.
The Incident Response plugin can function as a standalone plugin that does not require to talk to any other plugin.
The Incident Response plugin will function in Mattermost version and later
The tests will be executed in Mattermost version 5.22.
Testing is primarily done on the webapp, with spot checks on the desktop app, RN mobile app and mobile web browser app.
The tests in this document are executed as a normal user (see glossary above) unless otherwise specified.
The test cases that pass for a normal user will also pass for a system administrator.
Plugin uploads is enabled in server instance
“EnableUploads” option under “PluginSettings” in mattermost-server’s config.json is set to 'true'.
Setup
Document Setup
For the practicality of running tests easily, test cases are arranged in sequential order when necessary, following the preceding test case.
Some details in the test procedures have been omitted to reduce the redundancy in test steps if they are clear enough and extensively covered in the test plan for v0.1.0.
Test Setup
The following setup will be necessary in order to begin testing:
Tests
Test Server:
Build Hash:
Test Date:
Test Area - Plugin Setup |
---|
Test ID | Test Case | Test Procedure | Result | Notes |
1 | Admin can install plugin in a non-EE instance | Log in to a non-enterprise Mattermost, as admin From System Console > PLUGINS > Plugin Management, upload the Incident Response plugin. Verify that the plugin can be installed.
| | |
2 | Admin can install plugin in an E10 instance | Log in to Mattermost that has an E10 license, as admin. From System Console > PLUGINS > Plugin Management, upload the Incident Response plugin. Verify that the plugin is successfully installed.
| | |
3 | Admin can install plugin in an E20 instance | Log in to Mattermost that has an E20 license, as admin From System Console > PLUGINS > Plugin Management, upload the Incident Response plugin. Verify that the plugin can be installed.
| | |
4 | Admin can enable plugin | Once installed in the “Installed Plugins” section, find the Incident Response plugin v0.2.0 and click on the “Enable” button. Verify that the plugin starts normally without errors.
| | |
5 | Plugin functionality is available to admin | Switch to a normal channel. Type /incident in the post input box. Verify that /incident is listed as a slash command option. Verify that the channel header has Incident Response icon for RHS. Create a post. Click post action menu for the post. Verify that Start Incident is available as a post action menu option.
| | |
6 | Plugin functionality is available to normal user | Log in as a non-admin user. In a normal channel, type /incident in the post input box. Verify that /incident is listed as a slash command option. Verify that the channel header has Incident Response icon for RHS. Create a post. Click post action menu for the post. Verify that Start Incident is available as a post action menu option.
| | |
7 | Admin can disable plugin | Log out and log back in as admin. From System Console > PLUGINS > Plugin Management, find the Incident Response plugin. Click on the “Disable” button. Verify that the plugin is disabled. In the main channel’s post input box, type /incident . Verify that /incident option is not present in the slash command list.
| | |
8 | Admin can remove plugin | From System Console > PLUGINS > Plugin Management, find the Incident Response plugin. Click on the “Remove” button. Verify that the plugin is no longer installed in the instance.
| | |
For the next set of tests, begin with the following steps:
Test Area - Monitor |
---|
Test ID | Test Case | Test Procedure | Result | Notes |
9 | User is taken to incident channel after starting an incident | As a normal user, start an incident. Once the incident is started, verify that the user is taken to the new incident channel. If the same user has multiple sessions open, it would only change to the new incident channel in the session where the incident was started.
| | |
10 | In RN mobile app, user is notified with an ephemeral message with link to the incident channel | Start an incident in RN mobile app. Verify that the user remains in the same channel where the incident was started. Verify that an ephemeral message is shown with the link to the incident channel.
| | |
11 | A newly started incident does not have any checklist | As a normal user, start a new incident. Open up the Incident RHS. Find the incident started in step1 and click. Verify that the incident does not have any checklist. Verify that there is an “Add new checklist item”.
| | |
12 | Commander can create a checklist for an incident started by them | Start a new incident. Open up the Incident RHS. Find the incident started in step 1 and click on it to open the details. Click the “Add new checklist” button. Verify that an input box asks for the checklist item name. Input a checklist item name and hit enter. Verify that the checklist item is created. Verify that the “Add new checklist item” button is present at the bottom of the checklist.
| | |
13 | Commander can create a checklist for an incident from a different channel than the incident channel | Start a new incident. Navigate to a different channel from the incident channel. Open up the Incident RHS. Find the incident started in step 1 and click on it to open the details. Click the “Add new checklist” button. Verify that an input box asks for the checklist item name. Input a checklist item name and hit enter. Verify that the checklist item is created. Verify that the “Add new checklist item” button is present at the bottom of the checklist.
| | |
14 | Checklist item creation can be cancelled. | Start a new incident. Open up the Incident RHS. Find the incident started in step 1 and click on it to open the details. Click the “Add new checklist item” button. Verify that an input box asks for the checklist item name. Input a checklist item name. Press escape. Verify that the checklist item is not created.
| | |
15 | Commander can remove checklist item from an incident started by them | Start a new incident. Open up the Incident RHS. Find the incident started in step 1 and click on it to open the details. Create a new checklist with a few items. Click the button to remove the checklist item. Verify that the checklist item is removed from the incident.
| | |
16 | Checklist item can be removed from a different channel than the incident channel | Start a new incident. Open up the Incident RHS. Create a checklist and add a few items to it. Navigate to a different channel from the incident channel. Find the incident started in step 1 and click on it to open the details. Click the button to remove the checklist item. Verify that the checklist item is removed from the incident.
| | |
17 | User can see checklist in RHS for active incidents | For this step, ensure there are a few incidents already started. For each incident add checklists. As normal user, open the Incident Response RHS. Click on the incidents one at a time. Verify that each incident has checklists as setup in step 2.
| | |
18 | User can access read-only incident checklist even if user is not an incident channel member | As user A, start an incident (don’t add user B to incident channel). Create a checklist by clicking the “Add new checklist” button. As user B, open the Incident Response RHS. Click on the incident started in step 1. Verify that the checklist appears as setup in step 2.
| | |
19 | User cannot add checklist to an new incident started by a different user | As user A, start a new incident (don’t add user B to incident channel). As user B, click on the incident started by user A in step 1 to open the incident details. Verify there is no “Add new checklist item” button for user B.
| | |
20 | User cannot add items to a checklist, with existing items, for an incident started by a different user | As user A, start a new incident (don’t add user B to incident channel). Create a checklist and add a few items to the checklist. As user B, click on the incident started by user A in step 1 to open the incident details. Verify that the checklist setup by user A in step 2 is visible. Verify that there is no button to add new checklist item.
| | |
21 | User cannot remove checklist item from an incident started by a different user | As user A, start a new incident (don’t add user B to incident channel). Create a checklist and add a few items to the checklist. As user B, click on the incident started by user A in step 1 to open the incident details. Verify that checklist items setup in step 2 does not have the “-” button to remove the items.
| | |
22 | User can add checklist item to a new incident started by a different user once added to the incident channel | As user A, start a new incident. Add user B to the incident channel. As user B, click on the incident started by user A in step 1 to open the incident details. Verify there is “Add new checklist item” button for user B. Click on the “Add new checklist item”. Verify that an input box asks for the checklist item name. Input a checklist item name and hit enter. Verify that the checklist item is created. Verify that the “Add new checklist item” button is present at the bottom of the checklist.
| | |
23 | User can add items to a checklist, with existing items, for an incident started by a different user | As user A, start a new incident. Add user B to the incident channel. Create a checklist and add a few items to the checklist. As user B, click on the incident started by user A in step 1 to open the incident details. Verify that the checklist setup in step 3 is visible. Verify there is “Add new checklist item” button at the end of the checklist for user B. Click on the “Add new checklist item”. Verify that an input box asks for the checklist item name. Input a checklist item name and hit enter. Verify that the checklist item is created. Verify that the “Add new checklist item” button is present at the bottom of the checklist.
| | |
24 | User can remove item from an incident once added to the incident channel. | As user A, start a new incident. Add user B to the incident channel. Create a checklist and add a few items to the checklist. As user B, click on the incident started by user A in step 1 to open the incident details. Verify that the checklist setup in step 3 is visible. Verify that the checklist items have a “-” button to remove the items. Click on the button to remove the items. Verify that the items are removed from the checklist.
| | |
25 | Checklist changes reflect accurately for a different user not added to incident channel | Open two separate browser windows. Log in as 2 different users (user A and user B) in the two browsers. In both browsers, open up the Incident Response RHS. As user A, create a new incident. Do not add user B to the incident channel. As user B, find the incident created in step 4 by user B and click to view the details. While user B is also viewing the RHS, have user A create a checklist with a few items. As user B verify that the checklist is updated accurately. Reversing the actions of user A and B, repeat steps 4-7. Repeat the tests for checklist item removal.
| | |
26 | Checklist changes reflect accurately for a different user added to incident channel | Open two separate browser windows. Log in as 2 different users (user A and user B) in the two browsers. In both browsers, open up the Incident Response RHS. As user A, create a new incident. Add user B to the incident channel. As user B, find the incident created in step 4 by user B and click to view the details. While user B is also viewing the RHS, have user A create a checklist with a few items. As user B verify that the checklist is updated accurately. Reversing the actions of user A and B, repeat steps 4-7. Repeat the tests for checklist item removal.
| | |
27 | Checklist can be edited by 2 users at the same time | Open two separate browser windows. Log in as 2 different users (user A and user B) in the two browsers. In both browsers, open up the Incident Response RHS. As user A, create a new incident. Add user B to the incident channel. As user B, find the incident created in step 4 by user B and click to view the details. Have both users add and remove checklist items for the incident. Verify that the checklist is updated accurately for each change made in step 7.
| | |
Test Area - Coordinate |
---|
Test ID | Test Case | Test Procedure | Result | Notes |
28 | Commander can check off items in incident checklist | Start an incident. Create a checklist with a few items. Verify that the commander can check items off.
| | |
29 | Commander can uncheck items in incident checklist | Start an incident. Create a checklist with a few items. Check off the items. Verify that the commander can uncheck items.
| | |
30 | Non-commander who is not added to incident channel cannot check off items in incident checklist | Start an incident as user A. Create a checklist with a few items. Log in as user B. Verify that user B cannot check off items in step 2.
| | |
31 | Non-commander who is not added to incident channel cannot uncheck items in incident checklist | Start an incident as user A. Create a checklist with a few items. Check off a few items in the list. Log in as user B. Verify that user B cannot uncheck items in step 3.
| | |
32 | Non-commander user, who is added to the incident channel, can check off items in incident checklist | Start an incident as user A. Create a checklist with a few items. Add user B to the incident channel. Verify that user B can check items off.
| | |
33 | Non-commander user, who is added to the incident channel, can uncheck items | Start an incident as user A. Create a checklist with a few items. Add user B to the incident channel. Verify that user B can check off items added in step 3. Verify that user B can uncheck items checked off in step 4.
| | |
34 | Non-commander user, who is added to the incident channel, can uncheck items checked off by the commander | Start an incident as user A. Create a checklist with a few items. Check items on the list. Add user B to the incident channel. Verify that user B can uncheck items that were checked off in step 3.
| | |
35 | Ending an incident shows a confirmation modal | Start an incident. Open the RHS and find the incident just started. Click to view details. Verify there is an “End Incident” button at the bottom. Click on the button. Verify a confirmation modal pops up asking whether to end the incident. Go to the incident channel. In the post input box type /incident end Verify a confirmation modal pops up asking whether to end the incident.
| | |
36 | Commander can end incident | Continue from the above test: Click to confirm ending the incident. Verify that the incident is ended.
(Incident end verifications in Test Plan - Incident Response v0.1.0 ) | | |
37 |
| As user A start an incident. As user B, verify that the incident is visible in RHS. Click the incident to view details. Verify that there is no “End Incident” button. As user A, add user B to the incident channel. As user B, navigate to the incident channel. In the RHS, find the incident and click to view details. Verify there is no “End Incident” button. Click on the “End Incident” button and confirm to end. Verify that the incident is ended.
| | Fix from 0.1.0 |
38 | Non-commander cannot can end incident with /incident command. | As user A, start an incident. As user B, verify that the incident is visible in RHS. Navigate to any channel. In the post input box, type `/incident'. Verify that there is no /incident option present in the slash commands. As user A, add user B to the incident channel. As user B, navigate to the incident channel. In the post input box, type `/incident'. Verify that there is no /incident option present in the slash commands. In incident channel, issue /incident end command. When the end-incident-confirmation pops up, confirm to end. Verify that the incident is ended.
| | |
39 | Incident cannot be ended from outside the incident channel | Create an incident. Ensure the user is navigated to the incident channel. Open RHS and find the incident. Click on it to view the details. Verify the “End Incident” button exists in RHS. Navigate to a different channel than the incident channel. Verify that the “End Incident” changes to an inactive button, notifying the user that the incident can only be ended from within the incident channel.
| | |
Test Area - Measure |
---|
Test ID | Test Case | Test Procedure | Result | Notes |
40 | A bot message is posted in incident channel when an item is added to an incident checklist | As a normal user, start an incident. The user is navigated to the incident channel. Open the Incident Response RHS. Find the incident started in step 1 and click to open details. Create a checklist and add an item. In the incident channel, verify that a bot message similar to the following is posted:
@username added checklist item "[checklist item title]"
| | |
41 | “Item added to incident checklist” post in incident channel shows the username of user who added the item | Continue from the above test: Verify that the bot message from the above test shows the username of the user who added the checklist item.
| | |
| | | | |
42 |
| Continue from the above test:
In the RHS, verify that the correct timestamp of when the item was added to the checklist is displayed beside the checklist item title.
| | https://mattermost.atlassian.net/browse/MM-23476 only talks about timestamp for checking off item |
43 | A bot message is posted in incident channel when an item in checklist is checked | As a normal user, start an incident. The user is navigated to the incident channel. Open the Incident Response RHS. Find the incident started in step 1 and click to open details. Create a checklist and add an item. Check the item in step 5. In the incident channel, verify that a bot message similar to the following is posted:
@username checked off checklist item "[checklist item title]"
| | |
44 | “Item checked” post in incident channel shows the username of user who checked the item | Continue from the above test: Verify that the bot message from the above test shows the username of the user who checked off the checklist item.
| | |
45 | Checking an item shows the timestamp to the right of the checklist item of when the item was checked off | Continue from the above test: In the RHS, verify that the correct timestamp of when the item was checked off is displayed beside the checklist item title.
| | |
46 | A bot message is posted in incident channel when an item in checklist is unchecked | As a normal user, start an incident. The user is navigated to the incident channel. Open the Incident Response RHS. Find the incident started in step 1 and click to open details. Create a checklist and add an item. Check the item in step 5. Uncheck the item. In the incident channel, verify that a bot message similar to the following is posted:
@username unchecked item "[checklist item title]"
| | |
47 | “Item checked” post in incident channel shows the username of user who unchecked the item | Continue from the above test: Verify that the bot message from the above test shows the username of the user who unchecked the checklist item.
| | |
48 |
| Continue from the above test:
In the RHS, verify that the correct timestamp of when the item was unchecked is displayed beside the checklist item title.
| | https://mattermost.atlassian.net/browse/MM-23476 only talks about timestamp for checking off item |
49 | A bot message is posted in incident channel when an item is removed from an incident checklist | As a normal user, start an incident. The user is navigated to the incident channel. Open the Incident Response RHS. Find the incident started in step 1 and click to open details. Create a checklist and add an item. Remove the checklist item. In the incident channel, verify that a bot message similar to the following is posted:
@username removed checklist item "[checklist item title]"
| | |
50 | “Item removed from incident checklist” post in incident channel shows the username of who removed the item | Continue from the above test: Verify that the bot message from the above test shows the username of the user who removed the checklist item.
| | |
51 | | Continue from the above test: Verify that the bot message from the above test shows the timestamp of when the item was removed from the checklist.
| | |
52 | Starting a next incident will start with empty checklist | Start an incident. Create a checklist for the incident. Check a few items and leave some unchecked. Start a new incident. View the incident details of the new incident. Verify that the incident does not have any checklist.
| | |
Smoke tests for server versions 5.12, 5.14, 5.16, 5.18 and 5.20
Subset of tests to run on different server versions, mobile app and mobile browser
Installation
Enabling the plugin
Disabling the plugin
Starting an incident
Viewing an incident
Ending an incident