20.01.2014 Views

thesis - Faculty of Information and Communication Technologies ...

thesis - Faculty of Information and Communication Technologies ...

thesis - Faculty of Information and Communication Technologies ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 7. Implications<br />

tional support to this recommendation. However, this recommendation<br />

should be extended to ensure testing covers both complex <strong>and</strong> popular<br />

classes. But, is there a specific value that can be used as the threshold?<br />

Though a specific <strong>and</strong> well defined value is appealing, different projects<br />

have different needs <strong>and</strong> hence a universally applicable threshold is not<br />

practical. However, in our study we were able to generate modification<br />

probability models (See Figure 6.8 <strong>and</strong> Figure 6.9). Depending on the<br />

risk pr<strong>of</strong>ile <strong>of</strong> a specific project (at a specific instance <strong>of</strong> time), developers<br />

can use these models to determine an appropriate modification<br />

probability threshold.<br />

7.2.4 Competent programmer hypo<strong>thesis</strong><br />

The competent programmer hypo<strong>thesis</strong> states that programmers write<br />

code that is close to being correct [211]. This hypo<strong>thesis</strong> is used as<br />

one <strong>of</strong> the fundamental assumptions to support mutation testing [212].<br />

Interestingly, though this assumption has been widely used, we were<br />

not able to find studies that verify this assumption. Our findings provide<br />

some empirical support for the competent programmer hypo<strong>thesis</strong>.<br />

Though change is unavoidable, we observe that most <strong>of</strong> the changes<br />

made to classes are minor <strong>and</strong> the number <strong>of</strong> times a class is modified<br />

in fairly small. The consistency <strong>of</strong> minor changes in our study indicates<br />

that developers tend to deliver code that adequately satisfies the<br />

requirements by the time <strong>of</strong> a formal release.<br />

Although our observations are suggestive <strong>of</strong> the competent programmer<br />

hypo<strong>thesis</strong>, a system that has an abnormal modification pr<strong>of</strong>ile does not<br />

imply that the programmers are incompetent. Rather, it should be used<br />

as a trigger to investigate potential underlying causes. For example, the<br />

unusual change pr<strong>of</strong>ile may be driven by a high degree <strong>of</strong> volatility in<br />

the s<strong>of</strong>tware requirements, or changes in the external domain.<br />

190

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!