...
The process by which we map the end user’s behaviour into a set of data points. Currently there is a data point generated at a variable cadenscadence, approx 4-6 mins between data points.
The same process applied to an infected person. If they use the Safe Paths app for location tracking, this is the same algorithm as 1. If they use 3rd party location data such as Google Takeout, it may be higher resolytion (approx every 2 mins, I believe). This data could potentially be normalized to a cadence closer to Safe Paths data under 3.
The processing performed by Safe Places on an infected user’s data export. Currently this is just Redaction. Exact redactio policies are yet to be clearly defined - they include redaction of home address, and associates hme addresses for privacy reasons. Private car journeys may also be redacted, primarily for reasons of efficacy (on the understanding that people inside cars are unlikely to receive r transmit COVID-19).
Is the algorithm by which we filter the public data about points of concern, into a data set to expose to the user. Currently we do this simply by filtering for +/-20m, +-/4 hours, within the points in the user’s data trail. We treat the user as if he teleports from one point to the next, every 4-6 minutes, which can cause detection problems when two users' GPS logging cadences are in anti-phase - see #516. We do not currently incorporate any other data into this algorithm, though there may be reasons to do so - see e.g. User Stories: What info about diagnosed cases & their trails do users really want from an App?
Is the algorithm by which we determine what to display to the user. I’ve not seen details of this but is appears that we condense the set of filtered data points into a single number of minutes exposure in that day. It would be possible to provide more information, such as specific place and time (though there may be privacy risks for infected persons in doing so - which may be what is behind the current design). Potentially the user’s own location data, and other known information such as their home address could be factored into the presentation, though that is not the case today.
...
None of the above elements works in isolation - as can be seen from e.g. the example in GtHub #516, the nature of 1. and 2., and specifically the fact that the independence of these two processes means the data sets can be in anti-phase, has implications for what might be an effective algorithm in 3.
How to Test It?
So now we have a model for what’s going on, this can help us to think about how to test this.
...
(Note: I am not claiming the above is an especially interesting test case, or that the UP categorization is correct - just intended to be an illustration).
Getting Closer to the Real World
The above model could work, but it;s still a bit abstract and hard to generate test cases for.
...
All the above is a more abstract representation of a test idea I posted a few days ago (but didn’t yet manage to execute on). If you are stuggling to get the general ideas, that may be a useful read too: User Story Location Mapping: Bus Journey #1
Implementation
I’m a big fan of incremental implementation. I’m also aware that if we were to rework the UX on User Presentation that would cause us to need to substantially rework any code validating UXs.
...