User:DWalden (WMF)/IPInfo

How to find/create test IPs
To look up information for an IP that IP needs to be associated with either an edit or a log action.

The IP can then be looked up on:
 * An article's edit history

Edit

 * IPs with edits on beta: /edit
 * IPs with edits on beta in the last 24 hours: https://en.wikipedia.beta.wmflabs.org/wiki/Special:RecentChanges?userExpLevel=unregistered&limit=500&days=1&urlversion=2

Log

 * IPs with logged events on beta: /log

Edit

 * Edit any page while logged out. You can do this with a VPN to simulate IPs from different locations. (I have confirmed that I can edit from a VPN on beta.)

Log

 * 1) Pick an  which you are interested in.
 * 2) Go to   (you need to be logged in as an admin).
 * 3) On the form, pick an expiration date and click "Block" Ip log data special-block.png
 * 4) Go to   and you should see a line like , with the (i) icon next to  Log data block log.png

(N.B. this will count as an "active block" for that IP until the expiration date set in step 3 has passed. After the expiration date has passed, it will count as a "past block". If you want a "past block" on an IP address you can just set the expiration date to 1 second.)

IP Info Privileges
There are two IP information viewing privileges:

or

Test Strategy
When we worked on this previously (end of 2020), testing focused on a few quality criteria.

Accuracy

 * Are we reporting information for the wrong IP?
 * Do we display the information in a misleading way?

Security

 * Does anyone have access to IP information who should not?
 * Do we log access for non-repudiation purposes?
 * Any patterns in the behaviour/response of the application which might lead to information disclosure? (info, example)

Usability

 * Support on a range of user interface languages, including right-to-left languages
 * Support on a range of skins
 * Support on a range of browsers (and possibly devices if we want to support mobile)
 * Accessibility (e.g. people who only use keyboard or use a screen reader)

Oracles
Places to check information about IPs.
 * Block info
 * Number of times an  has been blocked:
 * Web:
 * API:  (only shows the most recent 500 blocks for the IP)
 * Edits
 * Number of edits locally:
 * Web:
 * API:  (it will only show the most recent 500 edits for the IP)
 * Number of edits globally:
 * Web: ???
 * API: ???

What we (probably) won't test

 * Correctness of the results MaxMind gives us.

Test Code

 * https://gitlab.wikimedia.org/dwalden/ipinfo-testing
 * Scripts which start with  in https://gitlab.wikimedia.org/dwalden/pywikibot-scripts/-/tree/main/scripts (sorry they have no/the wrong documentation)

Collect all data from the IPInfo popups on a page
Run the below scripts in your browser console on pages with IPInfo popups (e.g. revision history, Special:Log). All the data from the popups will be in the  variable. You can then compare this against the data MaxMind returns for that IP.

Log pages:

Revision pages: