Yeah, I realize the Coder sensitivity should be radios instead of checkboxes ... ;)

Here's a link to the latest mockup of each type included in this issue:
Settings Page: http://drupal.org/files/AutomatedTestingTNG_settings.jpg
Git Repo Check Results: http://drupal.org/files/AutomatedTestingTNG_results_repo_check.jpg
Simpletest Branch Tests: http://drupal.org/files/AutomatedTestingTNG_simpletest_results.jpg

The idea would be that each new testing plugin would define a 'Settings' form to be included on the settings page, along with a 'Results' output to be included via a new vertical tab on the Result page.

The default 'properties' for tests associated with the given project would be set via the settings page, with advanced properties exposed through the 'advanced settings' fieldset for each plugin when needed. Additional 'properties' could then be tweaked or set for individual 'on-demand' test requests, as triggered through the 'results' page.

Comments

jthorson’s picture

StatusFileSize
new299.07 KB

Full-size.

boombatower’s picture

I am not sure I have anything better, but I feel like this is too simplistic/restrictive compared to what our TNG offers. Definitely a start showing it per branch and what not. I am still for the idea of displaying the information on the branch node as a tab, but if we are moving to version control tags I dunno....I just don't see that page scalling with lots of tags and branches.

jthorson’s picture

This would only be the initial settings page, which would determine whether a particular test plugin is enabled for a project ... There would be a new page for actually queuing a test, which would allow specifying additional test properties (dependencies, patches to be applied, etc.). I suppose you could include another fieldset to include the 'project default' settings on this page for each plugin.

To address the scalability issue with multiple branches, i suppose you could autodetect the number of options available, and change the checkboxes to a multi-select for projects with a large number of branches.

From an implementation perspective, the available options are going to vary with each new testing plugin type ... I'd envision each plugin would define the contents and processing of their settings page fieldset (and 'queue test' page fieldset) inside of a ctools plugin installed into a plugins directory with the module.

boombatower’s picture

I dunno this may sound crazy: I think we could provide an interface for the common options, but providing interface for all the conduit style options beyond a text box with documentation seems a) very hard to do, and b) I doubt will be a simple and easy a text box since the more advanced features should only be used by developers who are used to drush make files or .info or w/e.

I would really like to come up with some sort of generic settings for the plugins and options we can run on a testable unit and then that is simply repeated per granular unit (ie. project, branch, issue, patch) instead of trying to provide different options at each level. The settings then cascade down like conduit will already do.

This is definitely a good start so then in addition we could just add a textfield for "additional/advanced" settings.

As far as trying to handle lots of branches again I think we should display the settings with their logical unit so project settings are on the project node, branch on the branch node, patch on the file...etc as that will scale and should feel very natural especially when uploading a patch and getting options right there. Trying to merge two logical units the project and branches/tags on one page seems like a mistake. The way you present the plugin options and such seems fine, just provide that same interface at each location. With the ability to cascade defaults/overrides you can do so at a high-level like project and not have to set it per-branch, like I believe you want, without having to put it all on one page.

jthorson’s picture

I find the 'textbox with documentation' approach somewhat non-intuitive ... if for no other reason than the fact that most people won't read the documentation. ;) My goal here would be to provide a UI for the common options that make the most sense on a per-plugin basis, and then probably an expandable fieldset/textbox for any 'advanced' settings or customization which would be tweaked by the power users.

I also prefer to centralize the testing settings instead of distributing them, so that we can take full advantage of the inheritance ... patches inherit the sensible defaults from their associated branch, and branches inherit from their associated project - I'd be concerned with the ability to track these dependencies from one element to the next (and suspect we'd see a lot of unnecessary settings duplicated in each location as a result). And when we extend the concept to things outside of the realm of 'unit testing' (such as the 'repository health check' test I use as my common project apps example), then we start to run into items which may not necessarily have an obvious home outside of the parent 'project' level - which is where this tab sits now. In any case, we can mock up both approaches and run them by other folks to get a better idea of what is more intuitive from the 'newbie' perspective.

My splitting of simpletest patch versus simpletest branch may have been a little misleading ... my intention was to have the default settings for each 'testing plugin' located on one page; but I split apart branch testing and patch testing as two different plugins. My thought at the time was that some projects might want to run only branch tests, but not patch tests - but not that we'd split branch from patch for every single test plugin. (One use case for the above split is when a contrib project has a test suite that doesn't actually pass. The module author may commit test fixes in an attempt to get them to pass, and will want to see the results after each commit ... but you wouldn't want to turn on 'per patch' testing within the issue queue until you've reached that first 'known good' state.)

I'll work on an update of this mockup, and try to start down the path of how to render the various 'results' summaries - As a 'set and forget' interface, I think having each of the plugin settings forms on one page is workable ... but I've struggled a bit in visualizing an efficient 'testing results' page for the d.o side of things.

boombatower’s picture

I find the 'textbox with documentation' approach somewhat non-intuitive ... if for no other reason than the fact that most people won't read the documentation. ;) My goal here would be to provide a UI for the common options that make the most sense on a per-plugin basis, and then probably an expandable fieldset/textbox for any 'advanced' settings or customization which would be tweaked by the power users.

Providing a UI for common options and a text box for either more advanced ways of setting up common options or taking advantage of any other complex options is fine and I what I attempted to say. So I think we are on the same page.

Otherwise, I am still not 100% sure about putting everything in one place...if anything we should see if we can get in the discussions for redesigning projects settings page and see if we can use the same model they are using (ie distributed or central) and use the same scaling mechanisms they do. Perhaps they can build in some place for plugins or at least an idea of where they would be placed.

jthorson’s picture

StatusFileSize
new254.04 KB

New version.

jthorson’s picture

StatusFileSize
new289.46 KB

First crack at a 'Git Repo Health Check' results page ...

jthorson’s picture

Project: Drupalcon Testbot Sprint Items » Drupal.org Testbots
Issue summary: View changes

Updated issue summary.

jthorson’s picture

Project: Drupal.org Testbots » Drupalcon Testbot Sprint Items
StatusFileSize
new247.98 KB

First crack at a 'Simpletest Branch Testing' results page. (Patch results would be within the issue queues themselves.)

jthorson’s picture

Project: Drupalcon Testbot Sprint Items » Drupal.org Testbots
Issue summary: View changes

Updated issue summary.

jthorson’s picture

Title: Testbot TNG - Automated Testing Settings Tab Mockup » Testbot TNG - Various Automated Testing Tab UI Mockups
Project: Drupal.org Testbots » Drupalcon Testbot Sprint Items
jthorson’s picture

Project: Drupalcon Testbot Sprint Items » Drupal.org Testbots
Issue summary: View changes

Added simpletest branch result mockup

jthorson’s picture

rfay’s picture

Project: Drupal.org Testbots » Drupalcon Testbot Sprint Items

You use "delete" several places on the page, but it's not clear what one would be deleting. Test results? Test requests?

I think we can come up with a better description. Or do we even need it?

Perhaps the link should say "stop testing" ?

rfay’s picture

Project: Drupalcon Testbot Sprint Items » Drupal.org Testbots

Good old d.o forms swappling projects and status. Setting back to testbot

jthorson’s picture

#12: "Remove from list" is probably a better fit for what I meant that link to do ... but things are starting to run up against real-estate issues now, unless we drop the standard project sidebar.

jthorson’s picture

Issue summary: View changes

Updated issue summary.

isntall’s picture

Project: Drupal.org Testbots » DrupalCI: Drupal.org Integration (Modernizing Testbot Initiative)
Issue summary: View changes