Page MenuHomePhabricator

Identify and Develop crucial paths e2e tests in Wikibase
Closed, DuplicatePublic

Description

AC

  • Explore the different paths our users take to achieve tasks on our software (use-cases/jobs-to-be-done), and document how many of these were explored in depth to sort out the critical ones.
  • Conclude a set of crucial paths in Wikibase interfaces (web ui or api) from the previous step:

    A crucial path is one that a user take for a use-case when they are using Wikibase. The following are only examples:
    • readers want to be able to view and item/property, navigate through the links provided in the response and do on web ui (with and without js)
    • editors want to be able to create a new item on web ui (with and without js)
    • editors want to be able to propose a new property on web ui (with and without js)
    • editors want to be able to add/update statements on an item/property, and add qualifiers/references to them on web ui (with and without js)
    • bots want to be able to query entities through the api
    • bots want to be able to create items through the api
    • bots want to be able to add/update statements on an item/property, and add qualifiers/references to them through the api
  • end-to-end tests for these crucial paths are implemented in the form of:
    • browser tests for web ui paths
    • api tests for api paths

Notes

  • those tests should avoid depending on interfaces on the same level. For example, browser tests should avoid using the api to prepare the backend system for their tests. The backend system should be initialized for each test with appropriate fixtures.

Event Timeline

@Addshore I'd like to put this a trailblazing in the space we have until 01.08. To be followed later with more sub-tasks on the parent one in next trailblazings that focus on developer productivity ( + maintenance on our pipeline as browser tests are causing pain recently)

@Addshore I'd like to put this a trailblazing in the space we have until 01.08. To be followed later with more sub-tasks on the parent one in next trailblazings that focus on developer productivity ( + maintenance on our pipeline as browser tests are causing pain recently)

I'd be interested to see the outcomes.

My only thought is that "Small set of crucial paths" could result in the list being rather incomplete.
Of course a complete list would be most interesting.
Perhaps we should add to the AC that the trailblazers should try to identify what proportion of the paths they have probably looked at and documented?

It would also be good to clarify when we are going to run these e2e tests?

Also we currently have a hard enough time staying on top of the current sort of e2e tests, mainly browser tests.
Is any part of this going to remove browser tests in favor of some of these e2e tests, or will we just end up having more tests / more layers of tests?

My only thought is that "Small set of crucial paths" could result in the list being rather incomplete.
Of course a complete list would be most interesting.
Perhaps we should add to the AC that the trailblazers should try to identify what proportion of the paths they have probably looked at and documented?

Sounds good will add something to AC. I understand from this that the concern is that we don't really cover all the critical e2e paths in the first run. We can try to collect as many as we can, but probably we will have to add another one or two (or more) in the future as we discover them.

It would also be good to clarify when we are going to run these e2e tests?

Yeap that should definitely part of the trailblazing outcome. I can imagine it being the last type of tests to run in our build (unit -> integraiton -> e2e). But there could be surely more to it than that once we get to the details.

Also we currently have a hard enough time staying on top of the current sort of e2e tests, mainly browser tests.
Is any part of this going to remove browser tests in favor of some of these e2e tests, or will we just end up having more tests / more layers of tests?

Ideally, I think we would probably run those e2e (browser and api tests) along the rest of our browser tests until we are happy with their stability.. the next step, as in the parent's description is actually to start removing browsers tests that are not necessary, maybe by converting some of them to unit and integration tests on frontends and backends.

Let's break this down, by interface (API/UI) so that we have smaller iterations to achieve the first AC point.

Addshore added subscribers: toan, Tarrow, hoo.

@Tarrow @toan @hoo Do you think this is happening somewhat as part of the release strategy? (Perhaps at a higher level?)

@Tarrow @toan @hoo Do you think this is happening somewhat as part of the release strategy? (Perhaps at a higher level?)

It is indeed; somewhat happening. See T272414