canmove, Confirmed users
2,850
edits
ChrisCooper (talk | contribs) |
ChrisCooper (talk | contribs) |
||
| Line 94: | Line 94: | ||
** Litmus::DB::Test.pm | ** Litmus::DB::Test.pm | ||
* Add the following new perl modules: | * Add the following new perl modules: | ||
** Litmus::DB:: | ** Litmus::DB::TestRun.pm | ||
One of the problems with the current Litmus Class::DBI-based design is that many times fully populated entity objects (e.g. a testcase) are looked up from the database to satisfy trivial conditions (e.g. getting a count of the # of testcases in a subgroup). One particularly egregious example is the current select testgroup/subgroup page from the Run Tests interface and the Percentage Coverage functions. If there are any more than a small number of testgroups present, the page takes a very long time to load, e.g. for a product with 7 testgroups (firefox), the page takes 15-20 seconds to load. | |||
** Litmus::DB:: | |||
** Litmus::DB:: | Given the new many-to-many relationships, it makes sense to replace some of these slow, generic lookups with more targetted methods for each class. | ||
** | |||
** | Since Class::DBI does not have a very good method for handling many-to-many relationships (join tables), it also makes sense to create methods for each class that will perform the necessary linkages. Here is a (hopefully) complete list of the linkages that need to occur, and the class in which they should live: | ||
* Litmus::DB::Testgroup | |||
** sql method EnabledByBranch (interim step before Test Runs) | |||
** sql method EnabledBySubgroup | |||
** replace exisiting coverage functions with targetted functions | |||
* Litmus::DB::Subgroup | |||
** sql method EnabledByTestgroup | |||
** sql method EnabledByTestcase | |||
** sql method NumEnabledTestcases (returns simple count) | |||
** replace exisiting coverage functions with targetted functions | |||
* Litmus::DB::Testcase | |||
** sql method EnabledBySubgroup | |||
** sql method CommunityEnabledBySubgroup | |||
** sql method MatchesByName (for full-text matching by summary) | |||
** sql method FullTextMatches (for full-text matching by all text fields) | |||
=== CGI Scripts === | === CGI Scripts === | ||