Analyzing Results

Following is the description of the AppPerfect Java Unit Test views

Source

Displays tree of packages and files present in the project. The classes defined inside Java files appear as child of that Java file, methods appear as child of classes. Following information is displayed along with each method.

the above counts for individual methods are summed and displayed along with classes, Java files and packages.

Test Classes

Displays tree of test classes available in the project. These test classes are the ones generated by AppPerfect Java Unit Test or the existing ones imported into the project. Along with each test class the following information is displayed.

Test Class OutLine

This view displays design of the test case selected in test cases tree, in the form of a hierarchy. The view displays only those test cases which are generated by AppPerfect Java Unit Test.

Execution Summary

Displays overall summary of the execution results i.e. total number of test cases succeeded against total number of test cases executed. It also displays percentage of code lines covered during test run. The bar chart allows customization, similarly the table allows you to select/hide the columns to display.

Execution Results

Displays test case wise execution results i.e. whether a test case succeeded or failed and the exception it threw. Full stack trace may be seen by clicking any exception. You may select/hide the columns that are displayed by the table.

Code Coverage

Displays percentage of code lines of individual methods that were covered during unit test execution. The view displays Code Coverage for individual methods, classes, Java files and the entire project. When double clicked it opens the class in eclipse editor with the covered and uncovered lines marked in different colors.

Code Coverage is important from quality assurance point of view. For every method, AppPerfect Java Unit Test tries to generate optimum set of unit test cases that would collectively cover maximum code lines of the method.

One should examine the lines of code which were not covered, try to add test cases (i.e. try to pass parameters to the methods) that would cover those lines too. It may also reveal some coding mistakes due to which certain lines of code became unreachable. An example of such common mistake is coding an 'if' conditions which would always evaluate to false.

Exceptions

This view displays the exceptions that were thrown during the execution and the test cases from where they originated. It considers only those exceptions which were not included in the method definition's throws clause but and thrown during execution. This might imply that there are certain conditions un handled by the method. Clicking 'View stack trace' displays the full stack trace.

Similarly it also lists the test cases that failed on it's asserts. This might represent a case where the method returned unexpected value. For example AppPerfect Java Unit Test adds a not-null-assert in the test cases of the methods returning a value. If the original method returns null while executing a test case, the assert condition fails and such test case is listed by this view.

AppPerfect Java Unit Test allows inserting several types of asserts into a test case. They may be based on method return values or class fields i.e. you may add asserts that validates method return value or you may add asserts that would validate class field values.

Memory Leakage

This view displays the amount of memory that was allocated as result of execution of individual test cases. One should check if the methods are allocating memory as per the application logic. An excessive memory allocation by a test case may pin-point a memory leak.

Problems

This view lists the syntax errors present in any of the Java files of the project.

Console

This view displays the status/progress messages logged by AppPerfect Java Unit Test during analysis. It displays the start and end time of the test execution. It also displays any console output produced by the application during execution of the unit test.