Jump to content

User:DWalden (WMF)/Test2wiki k8s migration/Anti-Harassment Tools

From mediawiki.org
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: