comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Ada and software testing
Date: Mon, 12 Jul 2021 10:40:24 +0200	[thread overview]
Message-ID: <scgv5m$obu$1@gioia.aioe.org> (raw)
In-Reply-To: 871r84cq4r.fsf@nightsong.com

On 2021-07-12 02:49, Paul Rubin wrote:

> Well, that went on for longer than I expected.  My questions are
> basically:
> 
>      Q1. Are there good recommendations for Ada testing strategies?  Do
>      the tests resemble the stuff in the Sqlite doc?
> 
>      Q2. Is fuzz testing an important part of Ada testing, and does it
>      tend to find many bugs?

I do not think so.

Here is a war story of a bug I fixed recently. A network protocol 
implementation used a callback to send the next portion of data, when 
the transport becomes available.

The callback implementation peeks a portion of data from the outgoing 
queue and *asynchronously* sends it away. *If* initiation of sending is 
successful, the queue is popped.

OK?

No, it is a bug that almost never shows itself because initiation of I/O 
would normally deprive the task of the processor. But if it does not and 
I/O completes without losing the processor, the callback is called 
recursively *before* popping the queue and the *same* portion of data is 
sent again.

Now, nether 100% coverage, nor fuzz, not even 100% black box testing can 
detect this, arguably trivial bug.

[The fix is to make recursive calls void]

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  reply	other threads:[~2021-07-12  8:40 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-12  0:49 Ada and software testing Paul Rubin
2021-07-12  8:40 ` Dmitry A. Kazakov [this message]
2021-07-14 19:56   ` Paul Rubin
2021-07-12 16:14 ` Gautier write-only address
2021-07-12 16:41   ` Dmitry A. Kazakov
2021-07-14 19:32   ` Paul Rubin
2021-07-14 19:51     ` Dmitry A. Kazakov
2021-07-14 20:02       ` Paul Rubin
2021-07-15  7:27         ` Dmitry A. Kazakov
2021-07-16 10:01 ` G.B.
2021-07-16 10:21   ` Paul Rubin
2021-07-28 15:28     ` Paul Butcher
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox