For the second request, something like that :
(not tested, not embellished)
Need to optimize to display test set without test, or test without run : left join or other flourishes...
SELECT CYCLE.CY_CYCLE, TEST.TS_NAME, TEST.TS_STEPS, TMP.NB_RUN FROM CYCLE, TEST, TESTCYCL, (SELECT RUN.RN_TEST_ID, COUNT(*) AS NB_RUN FROM RUN GROUP BY RUN.RN_TEST_ID) TMP WHERE CYCLE.CY_CYCLE_ID=TESTCYCL.TC_CYCLE_ID AND TESTCYCL.TC_TEST_ID=TEST.TS_TEST_ID AND TEST.TS_TEST_ID=TMP.RN_TEST_ID