  The use of asserts in code has received increasing attention in the software
engineering community in the past few years, even though it has been a
recognized programming construct for many decades. A previous empirical study
by Casalnuovo showed that methods containing asserts had fewer defects than
those that did not. In this paper, we analyze the test classes of two
industrial telecom Java systems to lend support to, or refute that finding. We
also analyze the physical position of asserts in methods to determine if there
is a relationship between assert placement and method defect-proneness.
Finally, we explore the role of test method size and the relationship it has
with asserts. In terms of the previous study by Casalnuovo, we found only
limited evidence to support the earlier results. We did however find that
defective methods with one assert tended to be located at significantly lower
levels of the class position-wise than non-defective methods. Finally, method
size seemed to correlate strongly with asserts, but surprisingly less so when
we excluded methods with just one assert. The work described highlights the
need for more studies into this aspect of code, one which has strong links with
code comprehension.
