wiki:BetaTest

Version 4 (modified by maire, 17 years ago) (diff)

--

Beta-test applications

It's important to test new applications on a wide range of hosts, since bugs may appear only with particular OS versions, memory sizes, display types, usage patterns, and so on. It's handy to use volunteers to do this testing, since they provide the needed diversity of hosts. One way to implement this is to create a separate test project. This has two disadvantages:

  • There is overhead in creating and maintaining a separate project.
  • The credit accrued by testers goes to a different project.

BOINC provides a way to do beta testing in the context of your existing project. You can let users volunteer to run test applications, warning them in advance that these applications are more likely to crash. These users will get a mixture of regular and test results, and they'll get credit for both. Here's how to do it:

  • Upgrade to the BOINC server software of Oct 25 2006 or later.
  • Create a new application using xadd. Include <beta>1</beta> in the <app> element to designate it as a beta-test application.
  • Add a validator and assimilator for the test application.
  • Include the line
    $project_has_beta = true;
    
    in your html/project/project_specific_prefs.inc file. This will add a 'Run test applications?' option to your project-specific preferences.
  • Publicize this on your web site and wait for some users to set their preferences to allow test apps. (Note: this flag is stored in XML in the project_prefs field of the user table; scan for <allow_beta_work>1</allow_beta_work>).
  • Create application versions for the test application.
  • Create work (as needed for testing) for the test application. To prevent test work from dominating regular work, either use the -allapps feeder option (and give the test app a small weight) or make a work generator for the test app that maintains only a small number of unsent results.
  • Note that for beta applications, the scheduler ignores which apps a user has allowed to run in there project specific prererences (the <app_id> element in the XML). If a project has several beta applications, a user can only either run all or none.