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