-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Writing Test Plan Items
Test Plan Item (TPI) is an issue created with label testplan-item
for testing the feature during the endgame. It shall define the platforms it needs to be tested against and also how complex (1-5) it is to test.
-
Write the Test Plan Item with the mind set of a tester, one who does not know anything about the feature. If it involves setting up an environment then elaborate the set up instructions in a separate Set up section. It is recommended to provide as much context as possible for the tester to understand the feature and test it effectively. Examples:
-
If a Test Plan Item cannot feasibly be written in such a way that any tester on the team can test, consider choosing a specific tester to assign to the Item as described in Example 5.
-
A Test Plan Item shall not take too long to test and scoped to a specific feature. Please note that Complexity 5 is not unlimited and there shall be a time scope of one or two hours max of testing. If your Test Plan Item has multiple features to test and also goes beyond complexity 5 and time scope, please break it down into multiple complexity (1-5) test plan items.
-
Consider to write a Test Plan Item
- For any feature that will take considerable time to test or set up
- For any feature that you are looking for exploratory testing
- For any refactorings you did during the milestone and expecting sanity/regression/smoke testing in that area.
-
Writing a Test Plan Item testing Proposed and/or Latest API
- Make sure to have
npx
,yeoman
, andgenerator-code
installed - Call
yo code
and create a new TypeScript extension (accept all defaults). You now have the default "Hello World" extension - Open the extension's package.json-file and remove the
@types/vscode
dev-dependency - Delete the
node_modules/@types/vscode
-folder -
Latest API: Run
cd src && npx vscode-dts main
to fetch latest stable API -
Proposed API: Run
cd src && npx vscode-dts dev
to fetchvscode.proposed.d.ts
. Also addenableProposedApi: true
to thepackage.json
-file - Press
F5
to run your extension
- Make sure to have
There is a tool that parses all these TPIs and generates user assignments. Endgame master uses this tool to assign these TPIs to others for testing. A Test Plan Item should contain Header and Body sections which are separated by ---
(line). Header section shall contain the meta information about the TPI that is used by the tool for generating TPI assignments. Body section shall include testing details for the user to test.
Header section should be separated using ---
(line)
<!-- Header Section. -->
---
<!-- Body Section. -->
It shall contain following:
- References to issues being tested
Refs: <!-- Refer to the issue that this test plan item is testing. -->
-
Platform assignments mentioning on which platforms this TPI shall be tested. You can pre-assign them to a user you would like to test by adding the user id next to platform. Refer to the examples for how to include this information.
- macOS
- windows
- linux
- wsl
- ssh
- dev container
- web
- anyOS
- iPad
-
Complexity of the test plan item which should be between 1 till 5.
Complexity: 4
- If there are more than one authors for it, all the authors should be specified so that they will not be assigned for testing
Authors: @user1, @user2
- If a TPI requires a certain skillset (e.g. the person should be a developer), then you can specify what roles people should hold to work on the TPI. See the examples on how to format such information.
- Content Developer
- Designer
- Developer
- Engineering Manager
- Program Manager
Refs: <!-- Refer to the issue that this test plan item is testing. -->
- [ ] macOS
- [ ] linux
- [ ] windows
Complexity: 2
---
<!-- Please write your test here. -->
Refs: <!-- Refer to the issue that this test plan item is testing. -->
- [ ] anyOS
- [ ] anyOS
Complexity: 4
---
<!-- Please write your test here. -->
Refs: <!-- Refer to the issue that this test plan item is testing. -->
- [ ] windows
- [ ] anyOS
Complexity: 4
---
<!-- Please write your test here. -->
Refs: <!-- Refer to the issue that this test plan item is testing. -->
- [ ] windows
- [ ] windows
Complexity: 4
---
<!-- Please write your test here. -->
Refs: <!-- Refer to the issue that this test plan item is testing. -->
- [ ] macOS: @user1
- [ ] linux
Complexity: 4
Authors: @user1, @user2
---
<!-- Please write your test here. -->
Refs: <!-- Refer to the issue that this test plan item is testing. -->
- [ ] wsl
- [ ] ssh
- [ ] dev container
Complexity: 2
---
<!-- Please write your test here. -->
Refs: <!-- Refer to the issue that this test plan item is testing. -->
- [ ] web
- [ ] web
Complexity: 2
---
<!-- Please write your test here. -->
Refs: <!-- Refer to the issue that this test plan item is testing. -->
- [ ] windows
- [ ] linux
Complexity: 4
Authors: @user1, @user2
---
<!-- Please write your test here. -->
Refs: <!-- Refer to the issue that this test plan item is testing. -->
- [ ] linux (test cross platform)
- [ ] windows: @user1 (test 32 bit)
Complexity: 4
---
<!-- Please write your test here. -->
Refs: <!-- Refer to the issue that this test plan item is testing. -->
- [ ] linux
- [ ] windows
Complexity: 4
Roles: Developer, Engineering Manager
---
<!-- Please write your test here. -->
Project Management
- Roadmap
- Iteration Plans
- Development Process
- Issue Tracking
- Build Champion
- Release Process
- Running the Endgame
- Related Projects
Contributing
- How to Contribute
- Submitting Bugs and Suggestions
- Feedback Channels
- Source Code Organization
- Coding Guidelines
- Testing
- Dealing with Test Flakiness
- Contributor License Agreement
- Extension API Guidelines
- Accessibility Guidelines
Documentation