7. A method for adding checkpoints to a computer program having source code, the method comprising: adding to the computer program a plurality of checkpoints each assigned to a checkpoint group of a plurality of checkpoint groups by a respective group name for the checkpoint, each checkpoint in the plurality of checkpoints including an assertion statement that tests whether a specified condition is true, and a breakpoint that halts execution of the computer program, the assertion statement including an argument to activate logging with programmer-controlled granularity, the argument being used to determine whether to update a log entry when the assertion statement fails, the assignment of each checkpoint to a checkpoint group being specified in a statement defining the respective checkpoint, and each checkpoint group including a respective identification; associating each checkpoint group with one of a plurality of activation variants that indicates a behavior based on a result of the assertion statement, wherein checkpoint groups associated with an activation variant behave in accordance with the activation variant; selectively activating at least one checkpoint group based on the respective identification; indicating the activation variant of the plurality of activation variants, in accordance with the at least one checkpoint group is to behave; and executing the computer program based on selectively activating the at least one checkpoint group and indicating the activation variant, wherein only the at least one checkpoint group of the computer program is executed, and a remainder of the plurality of checkpoint groups, if any, is not executed.
7. A method for adding checkpoints to a computer program having source code, the method comprising: adding to the computer program a plurality of checkpoints each assigned to a checkpoint group of a plurality of checkpoint groups by a respective group name for the checkpoint, each checkpoint in the plurality of checkpoints including an assertion statement that tests whether a specified condition is true, and a breakpoint that halts execution of the computer program, the assertion statement including an argument to activate logging with programmer-controlled granularity, the argument being used to determine whether to update a log entry when the assertion statement fails, the assignment of each checkpoint to a checkpoint group being specified in a statement defining the respective checkpoint, and each checkpoint group including a respective identification; associating each checkpoint group with one of a plurality of activation variants that indicates a behavior based on a result of the assertion statement, wherein checkpoint groups associated with an activation variant behave in accordance with the activation variant; selectively activating at least one checkpoint group based on the respective identification; indicating the activation variant of the plurality of activation variants, in accordance with the at least one checkpoint group is to behave; and executing the computer program based on selectively activating the at least one checkpoint group and indicating the activation variant, wherein only the at least one checkpoint group of the computer program is executed, and a remainder of the plurality of checkpoint groups, if any, is not executed. 10. The method of claim 7 , further comprising adding to the computer program at least one checkpoint as a non-activatable checkpoint, which non-activatable checkpoint is executed regardless of an activation status of the checkpoint group.