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
[edit]What are the dependencies?
[edit]Does it use any external services?
[edit]I don't think so, other than database.
Is there any back-end processing?
[edit]It uses DeferredUpdates to purge expired blocks.
Does it use external binaries?
[edit]No.
Does it read or write files on the filesystem?
[edit]Possibly redis?
Is there a regression or smoke testing strategy?
[edit]No. I have quite a lot of experience testing it, however.
Does it cover the dependencies mentioned above?
[edit]To 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?
[edit]You 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?
[edit]See above.
SecurePoll
[edit]What are the dependencies?
[edit]Does it use any external services?
[edit]I don't think so, other than database.
Is there any back-end processing?
[edit]Tallying is done by the job queue.
Does it use external binaries?
[edit]- gpg binary
- firejail
Does it read or write files on the filesystem?
[edit]I think it uses temp files when decrypting (and possible encrypting) election votes.
Is there a regression or smoke testing strategy?
[edit]Not 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?
[edit]Yes, if the election you test is encrypted and has a large number of voters.
Can it be tested on test2wiki?
[edit]The 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?
[edit]Config change to add the appropriate SecurePoll groups. This will probably need Product approval.
IPInfo
[edit]What are the dependencies?
[edit]Does it use any external services?
[edit]It uses Eventlogging on the server/PHP-side, which I think is worth testing.
Is there any back-end processing?
[edit]Logging uses the Job Queue.
Does it use external binaries?
[edit]No.
Does it read or write files on the filesystem?
[edit]It 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?
[edit]No.
Does it cover the dependencies mentioned above?
[edit]Any 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?
[edit]No.
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