Remote Code Analysis in ATC – Working with Baseline to suppress findings in old legacy code
This is the third blog of the blog series about Remote Code Analysis in ABAP Test Cockpit (ATC).
See also blogs:
Working with Baseline – Live Demo
If you are interested in the live demonstration of working with baseline watch this YouTube Video on abap channel
Baseline concept – Focus on new or recently changed code
This problem knows almost everybody, who takes care of code quality in the SAP system landscape. At the latest you get in touch with this problem as soon as you run ATC for your whole custom code. Then you will namely get very many findings especially if you apply all standard checks like naming conventions, SLIN checks, performance checks, security checks and so on:
What to do with this long list of findings? Actually you have a lot of legacy custom code in your landscape and want now to focus your quality assurance efforts only on the new or recently changed code.
The baseline concept (available with SAP NetWeaver AS for ABAP 7.51 innovation package) offers you a solution. With baseline you can exclude after the first ATC run your well-known or legacy findings from the ATC result list (add the ATC results to the baseline) so that at the second ATC run they will be treated as a special kind of exemption and will not appear in your ATC result list. Of course you can anytime change the scope of the baseline (add or remove findings) and in this way you can always very flexible decide which findings you want to take care of.
The setup of the baseline is quite simple. You need to logon to the ATC system as administrator. In the transaction ATC under ATC Administration -> Runs double-click the Manage Results entry. In the ATC: Browse Results screen you can specify the query for ATC run series and visibility of results and press Execute button or F8. The ATC result list displays the results according to your specified query settings.
Now you can add (or remove) findings to baseline after selecting the relevant finding from the results (Baseline -> Add to Baseline to…) and by choosing the appropriate option for it (suppress, exempt, assign low priority).
After this the ATC check result gets added to the baseline (this is indicated by column Is in Baseline):
After this you can schedule a new ATC check run, and you will see, that the ATC result contains no findings (double-click the result to see the findings list):
Optionally you can still display the suppressed findings (findings which are now in the baseline):
Note: as long as you only change coding that does not affect the exempted finding (for example you change something in line 20 of an INCLUDE and the finding marks code in line 200), the exempted finding is still recognized as the same.
If you now for example change the source code and schedule the ATC check run again, the new ATC result will contain only the new findings: