Page MenuHomePhabricator

The test function page is hard to understand
Open, Needs TriagePublic

Description

(Some context: I mentioned this in the chat, Denny told me you know that this page is not great and proposed me to fill this issue to get more materials)

The scenario:

  1. Go to this function page: https://wikifunctions.beta.wmflabs.org/wiki/Z10018
  2. Go to the "Details" tab
  3. Click on "Create a new test"
  4. You arrive on the 'Test creation" page

My feedback:

  1. The page is named "Create a new ZObject", which is confusing (you expect to create a new test)
  2. In the "Content" section, you get this paragraph: "Start creating your ZObject by selecting a type below. You can create a function by clicking this link: Create Function" (You don't understand why you may have to create a function)
  3. Next to the "Tester" link, you have a dropdown list. You don't understand what you're supposed to do, and when you change its value, the form changes and you cannot rollback except by refreshing (which is frustrating because you loose your changes)
  4. Below, the "function:" label is not clear, you don't know why you should fill it (also see T323677), or even have to worry about this field
  5. The "call:" label can be more clear
  6. The function for "call:" can be changed, but 99% of the times you have to select the function where you came from.
  7. The label "result validation:" is rather clear when you know how the function tests work, but it can be hard to find the right validation function.

Some suggestions (the numbers of the bullet refers to my remarks above):

1. Change the title of the page so you know you're about to create a test for a given function
4. If that's possible, I would hide the function selection, or make it available only  in an advanced more perhaps?
6. Cannot it be just preselected? You may sometimes not call directly the function you test, but most of the time you would not like to change it. 
7. It would be neat to have either prefilled or highly suggested some relevant validation functions, based on the return type (like "String equality" for functions returning a String)