Future of 'QA Test reports' tool
| From: | Olivier Doucet | Date: | Wed, 05 Oct 2011 15:14:03 +0000 |
| Subject: | Future of 'QA Test reports' tool | ||
| Groups: | php.qa php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-12311@lists.php.net to get a copy of this message | ||
Hello everyone,
I'm glad to see that my PHP QA Report tool (http://qa.php.net/reports/) is
helpful to many PHP core developers. Unfortunately, it is not running as
fast as I wanted : I didn't think there would be so much reports, and DB
design was far from perfect. As we are using SQLite, this tool is slower
every day...
I think it's time to rewrite a part of it and this is good time to see if
there are any features that you would want in the future. I don't have much
time atm, but at least the new DB scheme will be created with all these
features in mind :)
First, here are the missing feature of my tool I can think of :
- add test-failures from gcov.php.net, with a way to filter them from
user-reported failures
(source: http://gcov.php.net/viewer.php?version=PHP_5_3&func=tests)
- prepare for a future version of "make test", if there is one day (
http://svn.php.net/viewvc/php/phpruntests/trunk/).
As an example, it would
be helpful to report successfull tests too, and see if a particular test is
failing for everyone or not.
DB conception (may be changed in the future based on your comments and
feature requests)
--------------------------------------------
We'll have two sqlite file per PHP version (against one today) :
* one "metadata" sqlite file, with two tables :
* info for each test (test name as PK, failed tests reported by user or
gcov - in two columns -, successful tests reported)
* some other informations in a specific key/value table (date of last
report, ... other ideas ?)
This file will be often read, that's why I want to keep it small.
The other sqlite file will handle the data itself in three tables:
* the current "report" table (information about each report : date,
phpinfo, user email, ...)
* one with test_name output and diff (PK on test_name/output or signature
of it).
* one to link first table to second table; to know who reported this
specific output.
With this scheme, a failed test with same output will be written only once,
even if thousands of users reported it. It will save space and speed, as we
use sqlite.
If you have any comments (features, suggestions, etc.) feel free.
If you have some spare time to help me on this task, it would be great too !
Olivier