User:DWalden (WMF)/Test2wiki k8s migration/Community Tech
Feature | Need testing? | Does it have dependencies? | Existing regression or smoke testing strategy? | Does the regression/smoke testing strategy cover the dependencies? | Can it be tested on test2wiki? | Feasible to make it testable on test2wiki? |
---|---|---|---|---|---|---|
Page deletion | Yes |
|
Some | No | Yes | |
Page diffs | Yes | External binary | No | N/A | Yes | |
User preferences (including GlobalPreferences) | Yes | No? | No | N/A | Yes | |
Watchlist | Yes | Some sort of back-end processing (I think) | Yes | No? | Yes | |
Wikisource | Yes | Various | No | No | No | I don't think it is possible |
TemplateWizard | Not sure | API | Yes | Yes | Yes | |
LoginNotify | Yes |
|
No | N/A | Yes | |
CodeMirror | Not sure, it is mostly UI | No | Yes | N/A | Yes | |
Page Curation | Yes |
|
No | N/A | Yes |
Page deletion edit
What are the dependencies? edit
Does it use any external services? edit
Don't think so, apart from database.
Is there any back-end processing? edit
Deletes of pages with lots of revisions (greater than Manual:$wgDeleteRevisionsBatchSize, usually 1000) are done in batches via the Job queue.
Does it use external binaries? edit
No.
Does it read or write files on the filesystem? edit
When deleting or restoring files, it needs to modify the files (images, etc.) in the filestore (to at least move them from one directory to another).
Is there a regression or smoke testing strategy? edit
There are Selenium tests for delete and restore.
Also see User:DWalden_(WMF)/(Un)delete_associated_talk_page.
Does it cover the dependencies mentioned above? edit
The Selenium tests do not cover deleting/restoring files or deleting/restoring pages with lots of revisions.
Can it be tested on test2wiki? edit
Deletion is part of MediaWiki core and can be tested anywhere.
Is it feasible to make it testable on test2wiki? edit
It already is.
Page diffs edit
What are the dependencies? edit
Does it use any external services? edit
No, apart from the database and (if you enable live preview) the API.
Is there any back-end processing? edit
No.
Does it use external binaries? edit
If a package called "wikidiff2" is installed on the server, it will use that to calculate the diffs.
Does it read or write files on the filesystem? edit
No?
Is there a regression or smoke testing strategy? edit
No, but see User:DWalden_(WMF)/Copy_paste_diffs.
Does it cover the dependencies mentioned above? edit
N/A.
Can it be tested on test2wiki? edit
Yes. Also, I believe Wikidiff2 is installed on all production wikis (including test2wiki).
Is it feasible to make it testable on test2wiki? edit
It already is.
User preferences edit
What are the dependencies? edit
Does it use any external services? edit
No, apart from database.
Is there any back-end processing? edit
No?
Does it use external binaries? edit
No.
Does it read or write files on the filesystem? edit
No.
Is there a regression or smoke testing strategy? edit
No. But see User:DWalden_(WMF)/GlobalPreferences.
Does it cover the dependencies mentioned above? edit
N/A.
Can it be tested on test2wiki? edit
Yes.
Is it feasible to make it testable on test2wiki? edit
It already is.
Watchlist edit
What are the dependencies? edit
Does it use any external services? edit
No.
Is there any back-end processing? edit
I think there must be something keeping an eye on:
- edits to watched pages
- purging expired watchlist items
but haven't found where yet.
Does it use external binaries? edit
No.
Does it read or write files on the filesystem? edit
No.
Is there a regression or smoke testing strategy? edit
This Selenium test.
See also User:DWalden_(WMF)/Watchlist_Expiry.
Does it cover the dependencies mentioned above? edit
I don't think so.
Can it be tested on test2wiki? edit
Yes.
Is it feasible to make it testable on test2wiki? edit
It already is.
TemplateWizard edit
What are the dependencies? edit
Does it use any external services? edit
It uses the TemplateData API.
Is there any back-end processing? edit
No.
Does it use external binaries? edit
No.
Does it read or write files on the filesystem? edit
No.
Is there a regression or smoke testing strategy? edit
Does it cover the dependencies mentioned above? edit
Yes.
Can it be tested on test2wiki? edit
Yes.
Is it feasible to make it testable on test2wiki? edit
It already is.
LoginNotify edit
What are the dependencies? edit
Does it use any external services? edit
It has to send emails.
Apparently it can integrate with Echo (to send notifications) and CheckUser.
Is there any back-end processing? edit
It uses the job queue. Possibly even DeferredUpdates.
Does it use external binaries? edit
No.
Does it read or write files on the filesystem? edit
No.
Is there a regression or smoke testing strategy? edit
No.
Does it cover the dependencies mentioned above? edit
N/A.
Can it be tested on test2wiki? edit
Yes, I assume so.
Is it feasible to make it testable on test2wiki? edit
It already is.
CodeMirror edit
What are the dependencies? edit
Does it use any external services? edit
Don't think so.
Is there any back-end processing? edit
No.
Does it use external binaries? edit
No.
Does it read or write files on the filesystem? edit
No.
Is there a regression or smoke testing strategy? edit
Some Selenium tests.
Does it cover the dependencies mentioned above? edit
N/A.
Can it be tested on test2wiki? edit
Yes.
Is it feasible to make it testable on test2wiki? edit
It already is.
Page Curation edit
What are the dependencies? edit
Does it use any external services? edit
No?
Is there any back-end processing? edit
Job queue and DeferredUpdates.
Does it use external binaries? edit
No.
Does it read or write files on the filesystem? edit
No?
Is there a regression or smoke testing strategy? edit
No.
Does it cover the dependencies mentioned above? edit
N/A
Can it be tested on test2wiki? edit
Yes.
Is it feasible to make it testable on test2wiki? edit
It already is.
What features do not need testing on test2wiki? edit
- SVG Translate (hosted on VPS)
- Wikisource Export (hosted on VPS)
- Event Metrics (hosted on VPS)
Definitions edit
- test2wiki
- https://test2.wikipedia.org/wiki/Main_Page. An environment hosted on production servers but with test data, so is appropriate for testing. The code it is running is updated every Tuesday.
- To find a list of extensions already installed on test2wiki, see https://test2.wikipedia.org/wiki/Special:Version.
- Need testing?
- Features may not need testing. For example, this might be because:
- it is not hosted on Production
- it is mainly a UI feature
- it is considered low-risk
- External services?
-
- Inside our ecosystem like database, APIs, Parsoid
- Outside our ecosystem like third-party APIs
- Back-end processing?
- Including DeferredUpdates, job queue. See How_to#Find_out_if_my_feature/extension_does_back-end_processing.
- External binaries?
- See How_to#Find_out_if_my_feature/extension_uses_external_binaries.
- Existing regression or smoke testing strategy?
- This could include:
- Selenium tests (see How_to#Find_pre-existing_Selenium_tests)
- API tests (see How_to#Find_pre-existing_API_tests).
- Documented test procedures
- Exploratory testing