While Re-executing the failed test cases, Test Link takes too much time to open a selected test case
Steps followed to re-execute the failed test cases are
1. Select any test plan (my testplan has more than 7k test cases) on the home page.
2. Click link "Execute Tests"
3. In "Navigation Filter & Settings" select value as "Failed" from Result filter and "myBuild" from build filter
4. Click "Apply Filters" button.
5. Now select any test case from the tree and I observe the time to display the test case.
Following are our observations:
Activity performed on Test Link for Re Execution Time Consuming in sec
Filter for Failed cases (To generate the tree) 30 ~ 40
Opening of Individual test case 35 ~ 40
Updating status for Failed cases (Pass/Fail) 35 ~ 45
To link any defect with failed cases 40 ~ 50
I debugged the application and found this query that takes 47 seconds to execute..
SELECT
NHB.parent_id AS testsuite_id, NHA.parent_id AS tc_id,
NHB.node_order AS z, T.tcversion_id AS tcversion_id,
T.id AS feature_id, TCV.active,
E.id AS exec_id, E.tcversion_id AS executed,
E.testplan_id AS exec_on_tplan, UA.user_id,UA.type,
UA.status, UA.assigner_id,
COALESCE(E.status,'n') AS exec_status
FROM
nodes_hierarchy NHA JOIN nodes_hierarchy NHB ON NHA.parent_id = NHB.id
JOIN testplan_tcversions T ON NHA.id = T.tcversion_id
JOIN tcversions TCV ON NHA.id = TCV.id
JOIN executions E ON (NHA.id = E.tcversion_id AND E.testplan_id=T.testplan_id AND E.build_id=21 )
LEFT OUTER JOIN user_assignments UA ON UA.feature_id = T.id
WHERE T.testplan_id=30397
AND (UA.type=1 OR UA.type IS NULL)
AND E.status='p'
AND E.id IN ( SELECT MAX(id) FROM executions WHERE testplan_id=30397 GROUP BY tcversion_id,testplan_id )
ORDER BY testsuite_id,NHB.node_order,tc_id,E.id ASC;
I am not an expert in mysql query optimization..
Could anybody help me to tune this query and help me get results faster?
Thanks,
Anuj