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
  • Back-end processing
  • External binaries
  • Temp files
Not explicitly Can do No With Product approval
IPInfo Yes
  • External services
  • Back-end processing
  • Files
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: