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
editWhat are the dependencies?
editDoes it use any external services?
editDon't think so, apart from database.
Is there any back-end processing?
editDeletes 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?
editNo.
Does it read or write files on the filesystem?
editWhen 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?
editThere are Selenium tests for delete and restore.
Also see User:DWalden_(WMF)/(Un)delete_associated_talk_page.
Does it cover the dependencies mentioned above?
editThe Selenium tests do not cover deleting/restoring files or deleting/restoring pages with lots of revisions.
Can it be tested on test2wiki?
editDeletion is part of MediaWiki core and can be tested anywhere.
Is it feasible to make it testable on test2wiki?
editIt already is.
Page diffs
editWhat are the dependencies?
editDoes it use any external services?
editNo, apart from the database and (if you enable live preview) the API.
Is there any back-end processing?
editNo.
Does it use external binaries?
editIf 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?
editNo?
Is there a regression or smoke testing strategy?
editNo, but see User:DWalden_(WMF)/Copy_paste_diffs.
Does it cover the dependencies mentioned above?
editN/A.
Can it be tested on test2wiki?
editYes. Also, I believe Wikidiff2 is installed on all production wikis (including test2wiki).
Is it feasible to make it testable on test2wiki?
editIt already is.
User preferences
editWhat are the dependencies?
editDoes it use any external services?
editNo, apart from database.
Is there any back-end processing?
editNo?
Does it use external binaries?
editNo.
Does it read or write files on the filesystem?
editNo.
Is there a regression or smoke testing strategy?
editNo. But see User:DWalden_(WMF)/GlobalPreferences.
Does it cover the dependencies mentioned above?
editN/A.
Can it be tested on test2wiki?
editYes.
Is it feasible to make it testable on test2wiki?
editIt already is.
Watchlist
editWhat are the dependencies?
editDoes it use any external services?
editNo.
Is there any back-end processing?
editI 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?
editNo.
Does it read or write files on the filesystem?
editNo.
Is there a regression or smoke testing strategy?
editThis Selenium test.
See also User:DWalden_(WMF)/Watchlist_Expiry.
Does it cover the dependencies mentioned above?
editI don't think so.
Can it be tested on test2wiki?
editYes.
Is it feasible to make it testable on test2wiki?
editIt already is.
TemplateWizard
editWhat are the dependencies?
editDoes it use any external services?
editIt uses the TemplateData API.
Is there any back-end processing?
editNo.
Does it use external binaries?
editNo.
Does it read or write files on the filesystem?
editNo.
Is there a regression or smoke testing strategy?
editDoes it cover the dependencies mentioned above?
editYes.
Can it be tested on test2wiki?
editYes.
Is it feasible to make it testable on test2wiki?
editIt already is.
LoginNotify
editWhat are the dependencies?
editDoes it use any external services?
editIt has to send emails.
Apparently it can integrate with Echo (to send notifications) and CheckUser.
Is there any back-end processing?
editIt uses the job queue. Possibly even DeferredUpdates.
Does it use external binaries?
editNo.
Does it read or write files on the filesystem?
editNo.
Is there a regression or smoke testing strategy?
editNo.
Does it cover the dependencies mentioned above?
editN/A.
Can it be tested on test2wiki?
editYes, I assume so.
Is it feasible to make it testable on test2wiki?
editIt already is.
CodeMirror
editWhat are the dependencies?
editDoes it use any external services?
editDon't think so.
Is there any back-end processing?
editNo.
Does it use external binaries?
editNo.
Does it read or write files on the filesystem?
editNo.
Is there a regression or smoke testing strategy?
editSome Selenium tests.
Does it cover the dependencies mentioned above?
editN/A.
Can it be tested on test2wiki?
editYes.
Is it feasible to make it testable on test2wiki?
editIt already is.
Page Curation
editWhat are the dependencies?
editDoes it use any external services?
editNo?
Is there any back-end processing?
editJob queue and DeferredUpdates.
Does it use external binaries?
editNo.
Does it read or write files on the filesystem?
editNo?
Is there a regression or smoke testing strategy?
editNo.
Does it cover the dependencies mentioned above?
editN/A
Can it be tested on test2wiki?
editYes.
Is it feasible to make it testable on test2wiki?
editIt 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