User:DWalden (WMF)/Test2wiki k8s migration/Anti-Harassment Tools
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? |
---|---|---|---|---|---|---|
Blocks | Yes | DeferredUpdates | No | N/A | Yes | |
SecurePoll | Yes |
|
Not explicitly | Can do | No | With Product approval |
IPInfo | Yes |
|
No | N/A | No | Product approval and files uploaded to server |
CheckUser | Yes | Parsoid | No | N/A | No | Product approval |
Interaction Timeline | No | N/A | N/A | N/A | N/A | N/A |
Blocks
editWhat are the dependencies?
editDoes it use any external services?
editI don't think so, other than database.
Is there any back-end processing?
editIt uses DeferredUpdates to purge expired blocks.
Does it use external binaries?
editNo.
Does it read or write files on the filesystem?
editPossibly redis?
Is there a regression or smoke testing strategy?
editNo. I have quite a lot of experience testing it, however.
Does it cover the dependencies mentioned above?
editTo test DeferredUpdates, make a block with a very short expiry (you can set it to a custom amount, such as 1 second
). You then need to check that it eventually gets deleted from the database (you will need direct access to the database).
Can it be tested on test2wiki?
editYou should be able to test this anywhere as it is part of MediaWiki core.
Not all features of blocks are enabled everywhere, but I don't think this matters.
Is it feasible to make it testable on test2wiki?
editSee above.
SecurePoll
editWhat are the dependencies?
editDoes it use any external services?
editI don't think so, other than database.
Is there any back-end processing?
editTallying is done by the job queue.
Does it use external binaries?
edit- gpg binary
- firejail
Does it read or write files on the filesystem?
editI think it uses temp files when decrypting (and possible encrypting) election votes.
Is there a regression or smoke testing strategy?
editNot explicitly. You would want to run through a full, encrypted election from start to finish. There are some instructions here: https://wikitech.wikimedia.org/wiki/SecurePoll#Creating_the_election_on_votewiki
Does it cover the dependencies mentioned above?
editYes, if the election you test is encrypted and has a large number of voters.
Can it be tested on test2wiki?
editThe extension is installed but we have not setup the appropriate groups who will have permission to create and administer elections.
Is it feasible to make it testable on test2wiki?
editConfig change to add the appropriate SecurePoll groups. This will probably need Product approval.
IPInfo
editWhat are the dependencies?
editDoes it use any external services?
editIt uses Eventlogging on the server/PHP-side, which I think is worth testing.
Is there any back-end processing?
editLogging uses the Job Queue.
Does it use external binaries?
editNo.
Does it read or write files on the filesystem?
editIt reads from a file to lookup information about IPs. It will need access to this file on the filesystem.
Is there a regression or smoke testing strategy?
editNo.
Does it cover the dependencies mentioned above?
editAny use of IPInfo will touch most of the above dependencies.
Enabling/disabling IPInfo via Special:Preferences will touch the server-side Eventlogging.
Can it be tested on test2wiki?
editNo.
Is it feasible to make it testable on test2wiki?
edit- Needs Product approval to create the appropriate groups who have IPInfo access.
- Need to put the MaxMind file on the server.
What does not need testing on test2wiki?
edit- Interaction Timeline (it is hosted on toolforge, not on production)
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