Home - RefreshCache/arena-rc-qachecklist GitHub Wiki

Arena QA Checklist Design (Release 1.0)

We'll use this wiki page to flesh out the design for the first release. Later, when/if we have more stuff to wiki, we'll move this content to its own page.

Wants (ie. functionality matrix)

  • allow users to define test cases (linked to their church)
  • organize test cases by category (or tag?)
  • allow users to create a result checklist for a release (linked to their church)
  • distinguish between final releases and alpha/beta releases
  • a "view" to see all result checklists -- for each release (tabs), list each test case (column 1) and each church's result-status (columns 2-n)
  • hover over result-status to see notes/comments
  • grouped by category
  • ordered by release
  • filter: show only final releases (2009.1.200, 2009.1.100, etc.)
  • able to 'favorite' particular Test Cases by clicking on the fav star.
  • filter: show only favorites
  • "add+" link for quickly adding a new release
  • "add+" link for quickly adding new test case
  • edit mode/view (? or use the view mode?)
  • ability to edit the status of your church's test case result.

Other possibilities

  • roll up status summary - shows only one status column. One pass by any church, passes the test but a single fail by any church, fails the test (with *). Hover over shows details of each church's test status.

  • Custom module compatibility testing.

Objects/Entity/Datalayer

Each object shall have the standard DateCreated, DateModified, CreatedBy and ModifiedBy properties. They are not noted below.

We'll use LINQ to SQL for the O/RM, and we'll be doing a bit of IoC/DI for the entity repositories with a factory obtaining the repository (via our FrameworkUtils ConfigurationBase) based on an Arena org setting or web.config. This follows the same approach set by Jason in the Baptism Scheduler project. We'll talk much more about this at RefreshCache 2010.

For a jump start on LINQ to SQL I recommend Guy Burstein's LINQ to SQL Attribute Based Mapping and Scott Guthrie's Part 1, Part 2 and Part 3 on LINQ to SQL.

TestCase (table=cust_refreshcache_qachk_\testcase)

Properties

  • TestCaseID (pk)
  • Name
  • Description
  • Category (this will be a lookup)

ReleaseVersion (table=cust_refreshcache_qachk_releaseversion) - Jason & Austin

Properties

  • ReleaseVersionID (pk)
  • Active (true/false)
  • Version (i.e. 2009.1.300.26801)
  • ReleaseType (alpha, beta, final -- this will be a lookup)

When displaying a release version number the following format should be observed:

  • Type Alpha: "{Version} Alpha" e.g. "2009.1.300.26801 Alpha"* Type Beta: "{Version} Beta" e.g. "2009.1.300.26801 Beta"* Type == Final: "{Version-StripBuild#}" e.g. "2009.1.300"

TestResult (table=cust_refreshcache_qachk_testresult) - Josh & Roel

Properties

  • TestResultID (pk)
  • ReleaseVersionID (fk)
  • TestCaseID (fk)
  • ChurchID
  • Status (pass/fail?)
  • Notes

Favorite (table=cust_refreshcache_qachk_favorite) - Daniel

Properties

  • TestCaseID
  • PersonID