On Mon, 8 Oct 2001, Daniel Barker wrote:

> On Sun, 7 Oct 2001, Henrik Esbensen wrote:
> 
> > Hi,
> >
> > A beginners question:
> >
> > I'm interested in the maximum potentials of static versus dynamic checking in 
>software engineering, and I want to look at this from a real-world, 
>industry-application point of view.
> >
> > Consider all bugs being filed in some "average/typical" real-world setting against 
>some "average/typical" real-world product. Assume I have an "infinitely good" 
>collection of both static and dynamic analysis tools, that is, my static tools are 
>capable of detecting any bug which is statically detectable and my dynamic tools are 
>capable of detecting any bug which is dynamically detectable. Then my questions are:
> >
> 
> > 1) Just counting the bugs, which percentage of bugs can I find using
> > my static tools and which percentage can I find using the dynamic
> > tools ?
> 
> Infinitely good dynamic debugging could find all bugs. Infinitely good
> static debugging couldn't. 

I'm sorry, but it is the other way around.
Infinitely good static analysis finds *all* properties inherent in your
code - including all bugs. Dynamic debugging only look at some (of
the usually infinitely many) possible traces through your code. 

> Some languages are more
> static-analysis-friendly but it takes code inspection or a dynamic test to
> pick up all algorithmic mistakes such as writing "a + b" instead of "a -
> b", or "if (a < 3)" instead of "if (a > 3)".
> 
> The problem with dynamic checking is, of course, few or no test suites are
> that good and you have to develop one for each program or library.
> 


Mvh
/Lars L

Reply via email to