One way to approach this is to think of a temporary table that has the following fields: product, tests, and max_runs. (i.e. identifying the max run # for each combination of product + tests). If you have such a table, you can JOIN it back to the original (inner join) to select only the row with the max run#.
Then, using your case statement on the result will work.
Putting it all together, you would get this:
select P.product,
sum(case P.tests when 'AD' then P.results ELSE 0 END) AS AD,
sum(case P.tests when 'SS' then P.results ELSE 0 END) AS SS,
sum(case P.tests when 'TD' then P.results ELSE 0 END) AS TD
from product P join
(
SELECT product, tests, max(runs) As max_runs
from product
group by product, tests
) As M
on P.product=M.product and P.tests=M.tests and P.runs=M.max_runs
group by P.product
order by P.product
Check out this SQL Fiddle if you want to play with it.