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