ABAP testing is like a who-dunnit novel. You need to find out the runtime murderer of you program. As a developer I wanted to know what all can be done to test my program so that the client gets the best quality possible and without any embarrassing runtime dumps.
So I found out that there are 5 tools if not more, which can trace minute details after activating your program.
- EPC- Extended program check
- Code inspector
- ABAP UNIT
- Coverage Analyzer
Many times it happens that we just do an EPC or SCI and say that the program is fine and can be delivered. But to check a program thoroughly with various test data we need to use at least 4 of the above test tools. Following is an overview of them.
Testing is generally divided between Static and Runtime Testing.
EPC and SCI are static.
ABAP UNIT, ECATT and Coverage analyzer fall in runtime testing category.
EPC (TCode: SLIN) – It checks the source code for various aspects like PERFORM/FORM interfaces, Problematic Statements etc. It’s a good tool to remove potential runtime errors. So it’s important that EPC gives your program a clean chit.
Code Inspector (TCode: SCI) – It’s mostly used to check multiple programs. We can check for all the programs by a user, in a particular package etc. There are multiple options that you can choose from using SCI for example checking if all the programs are coded according to naming standards. You can also choose what to check in your program by selecting Goto->Management of -> Tests and select the class which handles the code check.
Once we statically check the program, we need to check for the reason program is made i.e. Runtime checks.
ABAP UNIT-We can access it in TCode -SE38. Under menu Program->test->Unit test. Most of the programs are modularized unit (form, function, or method). So, each block performs a specific functionality. Suppose the code is huge but modularized and it’s giving incorrect output only for a particular field or particular functionality we can check only that particular module with test data to compare it with expected result. They are implemented as local object class in the same program whose unit is to be tested.
ECATT (TCode- SECATT) – It’s also called integration test. After checking minute details, ECATT looks at the bigger picture. It checks if components of an application work well together .Its used for automated tests, we can run it across systems as well.It’s a powerful scripting engine and editor for writing test scripts. It has many advantages like storing test data, reproduce the tests, integration of third party tools etc.
Coverage Analyzer (Tcode – SCOV) – It’s used to monitor, system-wide execution of all parts (Modularization Units) of the program are executed over a period of time. It’s also used for the execution of programs by a particular user group. There are many uses of SCOV like it helps to identify dead code , System wide execution (for RFC enabled FM ) , graphical display of program status( number of processing blocks loaded v/s Number of processing blocks used ), Option of filtering programs for monitoring ( Unicode enabled ) etc. It can be used both by Quality Managers as well as developers.
So if we make our programs go through these rigorous tests .In return we’ll get satisfaction of a high quality product as well as a Very Happy Customer!