Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Any given program, when running, is obsolete.


tech / sci.electronics.design / Tracking bug report frequency

SubjectAuthor
* Tracking bug report frequencyDon Y
+- Re: Tracking bug report frequencyJohn Larkin
+- Re: Tracking bug report frequencyAnthony William Sloman
`* Re: Tracking bug report frequencyMartin Brown
 +* Re: Tracking bug report frequencyJohn Larkin
 |+* Re: Tracking bug report frequencyJoe Gwinn
 ||+* Re: Tracking bug report frequencyMartin Brown
 |||+* Re: Tracking bug report frequencyDon Y
 ||||`* Re: Tracking bug report frequencyMartin Brown
 |||| `* Re: Tracking bug report frequencyDon Y
 ||||  `- Re: Tracking bug report frequencyDon Y
 |||`* Re: Tracking bug report frequencyJoe Gwinn
 ||| +* Re: Tracking bug report frequencyDon Y
 ||| |`- Re: Tracking bug report frequencyDon Y
 ||| `* Re: Tracking bug report frequencyMartin Brown
 |||  `* Re: Tracking bug report frequencyJoe Gwinn
 |||   `* Re: Tracking bug report frequencyMartin Brown
 |||    `* Re: Tracking bug report frequencyJoe Gwinn
 |||     `* Re: Tracking bug report frequencyMartin Brown
 |||      `* Re: Tracking bug report frequencyJoe Gwinn
 |||       `* Re: Tracking bug report frequencyMartin Brown
 |||        +* Re: Tracking bug report frequencyPhil Hobbs
 |||        |`* Re: Tracking bug report frequencyMartin Brown
 |||        | `- Re: Tracking bug report frequencyPhil Hobbs
 |||        `* Re: Tracking bug report frequencyJoe Gwinn
 |||         `* Re: Tracking bug report frequencyMartin Brown
 |||          `- Re: Tracking bug report frequencyJoe Gwinn
 ||+* Re: Tracking bug report frequencyJohn Larkin
 |||`* Re: Tracking bug report frequencyJoe Gwinn
 ||| +* Re: Tracking bug report frequencyJohn Larkin
 ||| |`* Re: Tracking bug report frequencyJoe Gwinn
 ||| | `- Re: Tracking bug report frequencyDon Y
 ||| `- Re: Tracking bug report frequencyDon Y
 ||`- Re: Tracking bug report frequencyDon Y
 |`* Re: Tracking bug report frequencyMartin Brown
 | +- Re: Tracking bug report frequencyJohn Larkin
 | `* Re: Tracking bug report frequencyDon Y
 |  `- Re: Tracking bug report frequencyJohn Larkin
 `* Re: Tracking bug report frequencyDon Y
  `- Re: Tracking bug report frequencyDon Y

Pages:12
Tracking bug report frequency

<ud4m67$1g6me$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128130&group=sci.electronics.design#128130

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Tracking bug report frequency
Date: Mon, 4 Sep 2023 06:30:44 -0700
Organization: A noiseless patient Spider
Lines: 3
Message-ID: <ud4m67$1g6me$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 4 Sep 2023 13:30:47 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="cdbb3d55d1e5466786c046833469deb1";
logging-data="1579726"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19ANM3JU/nW2mzjn/xrEcUw"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.2.2
Cancel-Lock: sha1:VnzI3HcRI/u6Okvj+Nk2TYcIeUM=
Content-Language: en-US
 by: Don Y - Mon, 4 Sep 2023 13:30 UTC

Anyone else use bug reporting frequency as a gross indicator
of system stability?

Re: Tracking bug report frequency

<q9tbfili0hpd1gnva2vud72kruba0buscg@4ax.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128135&group=sci.electronics.design#128135

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!Xl.tags.giganews.com!local-1.nntp.ord.giganews.com!nntp.supernews.com!news.supernews.com.POSTED!not-for-mail
NNTP-Posting-Date: Mon, 04 Sep 2023 15:19:09 +0000
From: jlar...@highlandSNIPMEtechnology.com (John Larkin)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Mon, 04 Sep 2023 08:19:08 -0700
Organization: Highland Tech
Reply-To: xx@yy.com
Message-ID: <q9tbfili0hpd1gnva2vud72kruba0buscg@4ax.com>
References: <ud4m67$1g6me$1@dont-email.me>
X-Newsreader: Forte Agent 3.1/32.783
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 8
X-Trace: sv3-JhcMrOsginDnkRwfPjl5yzdgmcZZrfLxPm9JbAnHSJINCt+NGztWdvJgFelQSVlywRlP9/tnyO9bvI0!54Cxga5LUknKNqGSDt/xVTTyTTdPxUSEYl929aWTU+Ore7rxb34Z8TOSfLtx2WOjVMV7LX9xUEyc!DAl2RA==
X-Complaints-To: www.supernews.com/docs/abuse.html
X-DMCA-Complaints-To: www.supernews.com/docs/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Received-Bytes: 1456
 by: John Larkin - Mon, 4 Sep 2023 15:19 UTC

On Mon, 4 Sep 2023 06:30:44 -0700, Don Y <blockedofcourse@foo.invalid>
wrote:

>Anyone else use bug reporting frequency as a gross indicator
>of system stability?

One bug is an engineering failure and should be fixed immediately.

Re: Tracking bug report frequency

<ad1bb571-14e6-480f-81c9-178891a25f04n@googlegroups.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128136&group=sci.electronics.design#128136

  copy link   Newsgroups: sci.electronics.design
X-Received: by 2002:a05:6214:17c3:b0:649:d110:9746 with SMTP id cu3-20020a05621417c300b00649d1109746mr243686qvb.11.1693841703065;
Mon, 04 Sep 2023 08:35:03 -0700 (PDT)
X-Received: by 2002:a05:6a00:158a:b0:68b:de2e:74f9 with SMTP id
u10-20020a056a00158a00b0068bde2e74f9mr4484512pfk.1.1693841702602; Mon, 04 Sep
2023 08:35:02 -0700 (PDT)
Path: i2pn2.org!i2pn.org!news.1d4.us!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: sci.electronics.design
Date: Mon, 4 Sep 2023 08:35:01 -0700 (PDT)
In-Reply-To: <ud4m67$1g6me$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=210.84.11.143; posting-account=SJ46pgoAAABuUDuHc5uDiXN30ATE-zi-
NNTP-Posting-Host: 210.84.11.143
References: <ud4m67$1g6me$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ad1bb571-14e6-480f-81c9-178891a25f04n@googlegroups.com>
Subject: Re: Tracking bug report frequency
From: bill.slo...@ieee.org (Anthony William Sloman)
Injection-Date: Mon, 04 Sep 2023 15:35:03 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1612
 by: Anthony William Slom - Mon, 4 Sep 2023 15:35 UTC

On Monday, September 4, 2023 at 11:30:55 PM UTC+10, Don Y wrote:
>
> Anyone else use bug reporting frequency as a gross indicator
> of system stability?

IBM claimed to be doing that some thirty years ago. They also claimed to have used their debugging system on Bill Gates MS/DOS software and made it much more reliable.

It must have been truly appalling when Bill Gates originally offered it to them for the IBM PC.

--
Bill Sloman, Sydney

Re: Tracking bug report frequency

<ud7621$1vf3l$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128176&group=sci.electronics.design#128176

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: '''newsp...@nonad.co.uk (Martin Brown)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 5 Sep 2023 13:13:51 +0100
Organization: A noiseless patient Spider
Lines: 19
Message-ID: <ud7621$1vf3l$1@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 5 Sep 2023 12:13:53 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="10a7006cebc843a0d9384d0af4bcc7d3";
logging-data="2079861"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX186LL7obuwv6tvhqtIvUUKvOFHQ30lj4o6vKfPXXG9ViA=="
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.15.0
Cancel-Lock: sha1:MnCs0qix2wGgqVsPpqn5iMEccdc=
Content-Language: en-GB
In-Reply-To: <ud4m67$1g6me$1@dont-email.me>
 by: Martin Brown - Tue, 5 Sep 2023 12:13 UTC

On 04/09/2023 14:30, Don Y wrote:
> Anyone else use bug reporting frequency as a gross indicator
> of system stability?

Just about everyone who runs a beta test program.
MTBF is another metric that can be used for something that is intended
to run 24/7 and recover gracefully from anything that may happen to it.

It is inevitable that a new release will have some bugs and minor
differences from its predecessor that real life users will find PDQ.

The trick is to gain enough information from each in service failure to
identify and fix the root cause bug in a single iteration and without
breaking something else. Modern optimisers make that more difficult now
than it used to be back when I was involved in commercial development.

--
Martin Brown

Re: Tracking bug report frequency

<j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128183&group=sci.electronics.design#128183

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!border-1.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-2.nntp.ord.giganews.com!nntp.supernews.com!news.supernews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 05 Sep 2023 15:57:25 +0000
From: jlar...@highlandSNIPMEtechnology.com (John Larkin)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 05 Sep 2023 08:57:22 -0700
Organization: Highland Tech
Reply-To: xx@yy.com
Message-ID: <j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
X-Newsreader: Forte Agent 3.1/32.783
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 40
X-Trace: sv3-hJILjvXsLBuq6OjXSGLjc9SSXvGmiCn1E0pUpsQnQcOwoxfBl+jmm5Zb8hQT3H9K2inn1m6S5wyUtIa!5xWTDrGO2tdRhJ0OQzAJgARolvAkXTzIRMOoTQdzlFPSeQbOoassCFr3U3RliwX0jOv0dM56YQ16!k40NuQ==
X-Complaints-To: www.supernews.com/docs/abuse.html
X-DMCA-Complaints-To: www.supernews.com/docs/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Received-Bytes: 2925
 by: John Larkin - Tue, 5 Sep 2023 15:57 UTC

On Tue, 5 Sep 2023 13:13:51 +0100, Martin Brown
<'''newspam'''@nonad.co.uk> wrote:

>On 04/09/2023 14:30, Don Y wrote:
>> Anyone else use bug reporting frequency as a gross indicator
>> of system stability?
>
>Just about everyone who runs a beta test program.
>MTBF is another metric that can be used for something that is intended
>to run 24/7 and recover gracefully from anything that may happen to it.
>
>It is inevitable that a new release will have some bugs and minor
>differences from its predecessor that real life users will find PDQ.

That's the story of software: bugs are inevitable, so why bother to be
careful coding or testing? You can always wait for bug reports from
users and post regular fixes of the worst ones.

>
>The trick is to gain enough information from each in service failure to
>identify and fix the root cause bug in a single iteration and without
>breaking something else. Modern optimisers make that more difficult now
>than it used to be back when I was involved in commercial development.

There have been various drives to write reliable code, but none were
popular. Quite the contrary, the software world loves abstraction and
ever new, bizarre languages... namely playing games instead of coding
boring, reliable applications in some klunky, reliable language.

Electronic design, and FPGA coding, are intended to be bug-free first
pass and often are, when done right.

FPGAs are halfway software, so the coders tend to be less careful than
hardware designers. FPGA bug fixes are easy, so why bother to read
your own code?

That's ironic, when you think about it. The hardest bits, the physical
electronics, has the least bugs.

Re: Tracking bug report frequency

<g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128188&group=sci.electronics.design#128188

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!1.us.feeder.erje.net!feeder.erje.net!border-1.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-2.nntp.ord.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 05 Sep 2023 16:45:02 +0000
From: joegw...@comcast.net (Joe Gwinn)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 05 Sep 2023 12:45:01 -0400
Message-ID: <g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me> <j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>
User-Agent: ForteAgent/8.00.32.1272
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 61
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-RoezVm16PPfbwfVuFb8vR1jZZKUJzhnwS3QMfih9/4GSwVV8+Y6+hKS07qcB1OppGlQtcwV6dDpIRte!gy7C8KvnaJNWJxuft+02knLbFEeQgs9zs7dXfv5kkLeENLgxz2ryjOrpyyraJF7Xh9JuCdI=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
 by: Joe Gwinn - Tue, 5 Sep 2023 16:45 UTC

On Tue, 05 Sep 2023 08:57:22 -0700, John Larkin
<jlarkin@highlandSNIPMEtechnology.com> wrote:

>On Tue, 5 Sep 2023 13:13:51 +0100, Martin Brown
><'''newspam'''@nonad.co.uk> wrote:
>
>>On 04/09/2023 14:30, Don Y wrote:
>>> Anyone else use bug reporting frequency as a gross indicator
>>> of system stability?
>>
>>Just about everyone who runs a beta test program.
>>MTBF is another metric that can be used for something that is intended
>>to run 24/7 and recover gracefully from anything that may happen to it.
>>
>>It is inevitable that a new release will have some bugs and minor
>>differences from its predecessor that real life users will find PDQ.
>
>That's the story of software: bugs are inevitable, so why bother to be
>careful coding or testing? You can always wait for bug reports from
>users and post regular fixes of the worst ones.
>
>>
>>The trick is to gain enough information from each in service failure to
>>identify and fix the root cause bug in a single iteration and without
>>breaking something else. Modern optimisers make that more difficult now
>>than it used to be back when I was involved in commercial development.
>
>There have been various drives to write reliable code, but none were
>popular. Quite the contrary, the software world loves abstraction and
>ever new, bizarre languages... namely playing games instead of coding
>boring, reliable applications in some klunky, reliable language.
>
>Electronic design, and FPGA coding, are intended to be bug-free first
>pass and often are, when done right.
>
>FPGAs are halfway software, so the coders tend to be less careful than
>hardware designers. FPGA bug fixes are easy, so why bother to read
>your own code?
>
>That's ironic, when you think about it. The hardest bits, the physical
>electronics, has the least bugs.

There is a complication. Modern software is tens of millions of lines
of code, far exceeding the inspection capabilities of humans. Hardware
is far simpler in terms of lines of FPGA code. But it's creeping up.

On a project some decades ago, the customer wanted us to verify every
path through the code, which was about 100,000 lines (large at the
time) of C or assembler (don't recall, doesn't actually matter).

In round numbers, one in five lines of code is an IF statement, so in
100,000 lines of code there will be 20,000 IF statements. So, there
are up to 2^20000 unique paths through the code. Which chokes my HP
calculator, so we must resort to logarithms, yielding 10^6021, which
is a *very* large number. The age of the Universe is only 14 billion
years, call it 10^10 years, so one would never be able to test even a
tiny fraction of the possible paths.

The customer withdrew the requirement.

Joe Gwinn

Re: Tracking bug report frequency

<ud7m3g$227mv$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128189&group=sci.electronics.design#128189

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: '''newsp...@nonad.co.uk (Martin Brown)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 5 Sep 2023 17:47:41 +0100
Organization: A noiseless patient Spider
Lines: 86
Message-ID: <ud7m3g$227mv$1@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
<j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 5 Sep 2023 16:47:44 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="10a7006cebc843a0d9384d0af4bcc7d3";
logging-data="2170591"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/nB74G0vDx318ykERH+IxxpdiF3yf9Yd+0/21p172cUA=="
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.15.0
Cancel-Lock: sha1:2+bXZuGeasR5qOb7aLibx5baRos=
Content-Language: en-GB
In-Reply-To: <j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>
 by: Martin Brown - Tue, 5 Sep 2023 16:47 UTC

On 05/09/2023 16:57, John Larkin wrote:
> On Tue, 5 Sep 2023 13:13:51 +0100, Martin Brown
> <'''newspam'''@nonad.co.uk> wrote:
>
>> On 04/09/2023 14:30, Don Y wrote:
>>> Anyone else use bug reporting frequency as a gross indicator
>>> of system stability?
>>
>> Just about everyone who runs a beta test program.
>> MTBF is another metric that can be used for something that is intended
>> to run 24/7 and recover gracefully from anything that may happen to it.
>>
>> It is inevitable that a new release will have some bugs and minor
>> differences from its predecessor that real life users will find PDQ.
>
> That's the story of software: bugs are inevitable, so why bother to be
> careful coding or testing? You can always wait for bug reports from
> users and post regular fixes of the worst ones.

Don't blame the engineers for that - it is the ship it and be damned
senior management that is responsible for most buggy code being shipped.
Even more so now that 1+GB upgrades are essentially free. :(

First to market is worth enough that people live with buggy code. The
worst major release I can recall in a very long time was MS Excel 2007
(although bugs in Vista took a lot more flack - rather unfairly IMHO).

(which reminds me it is a MS patch Tuesday today)

>> The trick is to gain enough information from each in service failure to
>> identify and fix the root cause bug in a single iteration and without
>> breaking something else. Modern optimisers make that more difficult now
>> than it used to be back when I was involved in commercial development.
>
> There have been various drives to write reliable code, but none were
> popular. Quite the contrary, the software world loves abstraction and
> ever new, bizarre languages... namely playing games instead of coding
> boring, reliable applications in some klunky, reliable language.

The only ones which actually could be truly relied upon used formal
mathematical proof techniques to ensure reliability. Very few
practitioners are able to do it properly and it is pretty much reserved
for ultra high reliability safety and mission critical code.

It could be all be done to that standard iff commercial developers and
their customers were prepared to pay for it. However, they want it now
and they keep changing their minds about what it is they actually want
so the goalposts are forever shifting around. That sort of functionality
creep is much less common in hardware.

UK's NATS system is supposedly 6 sigma coding but its misbehaviour on
Bank Holiday Monday peak travel time was somewhat disastrous. It seems
someone managed to input the halt and catch fire instruction and the
buffers ran out before they were able to fix it. There will be a
technical report out in due course - my guess is that they have reduced
overheads and no longer have some of the key people who understand its
internals. Malformed flight plan data should not have been able to kill
it stone dead - but apparently that is exactly what happened!

https://www.ft.com/content/9fe22207-5867-4c4f-972b-620cdab10790
(might be paywalled)

If so Google "UK air traffic control outage caused by unusual flight
plan data"

> Electronic design, and FPGA coding, are intended to be bug-free first
> pass and often are, when done right.

But using design and simulation *software* that you fail to acknowledge
is actually pretty good. If you had to do it with pencil and paper your
would be there forever.

> FPGAs are halfway software, so the coders tend to be less careful than
> hardware designers. FPGA bug fixes are easy, so why bother to read
> your own code?
>
> That's ironic, when you think about it. The hardest bits, the physical
> electronics, has the least bugs.

So do physical mechanical interlocks. I don't trust software or even
electronic interlocks to protect me compared to a damn great beam stop
and a padlock on it with the key in my pocket.

--
Martin Brown

Re: Tracking bug report frequency

<ud7mug$22cip$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128190&group=sci.electronics.design#128190

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: '''newsp...@nonad.co.uk (Martin Brown)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 5 Sep 2023 18:02:05 +0100
Organization: A noiseless patient Spider
Lines: 85
Message-ID: <ud7mug$22cip$1@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
<j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>
<g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 5 Sep 2023 17:02:08 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="10a7006cebc843a0d9384d0af4bcc7d3";
logging-data="2175577"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/3iOKEB3sm7cWjgommYXsgV6XPfLJ+NvuB6R/HcHTCug=="
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.15.0
Cancel-Lock: sha1:KgYsGRNK6XA85QhQiHPE4fICHgo=
Content-Language: en-GB
In-Reply-To: <g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com>
 by: Martin Brown - Tue, 5 Sep 2023 17:02 UTC

On 05/09/2023 17:45, Joe Gwinn wrote:
> On Tue, 05 Sep 2023 08:57:22 -0700, John Larkin
> <jlarkin@highlandSNIPMEtechnology.com> wrote:
>
>> On Tue, 5 Sep 2023 13:13:51 +0100, Martin Brown
>> <'''newspam'''@nonad.co.uk> wrote:
>>
>>> On 04/09/2023 14:30, Don Y wrote:
>>>> Anyone else use bug reporting frequency as a gross indicator
>>>> of system stability?
>>>
>>> Just about everyone who runs a beta test program.
>>> MTBF is another metric that can be used for something that is intended
>>> to run 24/7 and recover gracefully from anything that may happen to it.
>>>
>>> It is inevitable that a new release will have some bugs and minor
>>> differences from its predecessor that real life users will find PDQ.
>>
>> That's the story of software: bugs are inevitable, so why bother to be
>> careful coding or testing? You can always wait for bug reports from
>> users and post regular fixes of the worst ones.
>>
>>>
>>> The trick is to gain enough information from each in service failure to
>>> identify and fix the root cause bug in a single iteration and without
>>> breaking something else. Modern optimisers make that more difficult now
>>> than it used to be back when I was involved in commercial development.
>>
>> There have been various drives to write reliable code, but none were
>> popular. Quite the contrary, the software world loves abstraction and
>> ever new, bizarre languages... namely playing games instead of coding
>> boring, reliable applications in some klunky, reliable language.
>>
>> Electronic design, and FPGA coding, are intended to be bug-free first
>> pass and often are, when done right.
>>
>> FPGAs are halfway software, so the coders tend to be less careful than
>> hardware designers. FPGA bug fixes are easy, so why bother to read
>> your own code?
>>
>> That's ironic, when you think about it. The hardest bits, the physical
>> electronics, has the least bugs.
>
> There is a complication. Modern software is tens of millions of lines
> of code, far exceeding the inspection capabilities of humans. Hardware
> is far simpler in terms of lines of FPGA code. But it's creeping up.
>
> On a project some decades ago, the customer wanted us to verify every
> path through the code, which was about 100,000 lines (large at the
> time) of C or assembler (don't recall, doesn't actually matter).
>
> In round numbers, one in five lines of code is an IF statement, so in
> 100,000 lines of code there will be 20,000 IF statements. So, there
> are up to 2^20000 unique paths through the code. Which chokes my HP

Although that is true it is also true that a small number of cunningly
constructed test datasets can explore a very high proportion of the most
frequently traversed paths in any given codebase. One snag is that
testing is invariably cut short by management when development overruns.

The bits that fail to get explored tend to be weird error recovery
routines. I recall one latent on the VAX for ages which was that when it
ran out of IO handles (because someone was opening them inside a loop)
the first thing the recovery routine tried to do was open an IO channel!

> calculator, so we must resort to logarithms, yielding 10^6021, which
> is a *very* large number. The age of the Universe is only 14 billion
> years, call it 10^10 years, so one would never be able to test even a
> tiny fraction of the possible paths.

McCabe's complexity metric provides a way to test paths in components
and subsystems reasonably thoroughly and catch most of the common
programmer errors. Static dataflow analysis is also a lot better now
than in the past.

Then you only need at most 40000 test vectors to take each branch of
every binary if statement (60000 if it is Fortran with 3 way branches
all used). That is a rather more tractable number (although still large).

Any routine with too high a CCI count is practically certain to contain
latent bugs - which makes it worth looking at more carefully.

--
Martin Brown

Re: Tracking bug report frequency

<ud7n1n$229eh$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128191&group=sci.electronics.design#128191

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 5 Sep 2023 10:03:47 -0700
Organization: A noiseless patient Spider
Lines: 50
Message-ID: <ud7n1n$229eh$1@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 5 Sep 2023 17:03:52 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="d082d53a1a6cd50f49e868589e0f21f7";
logging-data="2172369"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/toCYaiymazhw6IAVU7slY"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.2.2
Cancel-Lock: sha1:JkTDYCpdzhywEcl0zwpkHmitThk=
In-Reply-To: <ud7621$1vf3l$1@dont-email.me>
Content-Language: en-US
 by: Don Y - Tue, 5 Sep 2023 17:03 UTC

On 9/5/2023 5:13 AM, Martin Brown wrote:
> On 04/09/2023 14:30, Don Y wrote:
>> Anyone else use bug reporting frequency as a gross indicator
>> of system stability?
>
> Just about everyone who runs a beta test program. > MTBF is another metric that can be used for something that is intended to run
> 24/7 and recover gracefully from anything that may happen to it.

I'm looking at the pre-release period (you wouldn't want to release
something that wasn't "stable").

I commit often (dozens of times a day) so I can have a record of
each problem encountered and, thereafter, how it was "fixed".
As the number of messages related to fixups decreases, confidence
in the codebase rises.

> It is inevitable that a new release will have some bugs and minor differences
> from its predecessor that real life users will find PDQ.

The "bugs" that tend to show up after release are specification
shortcomings. E.g., I had a case where a guy wired a motor
incorrectly and the software just kept driving it further and further
from it's desired setpoint -- until it smashed into the "wrong"
limit switches (which, of course, weren't examined because it
wasn't SUPPOSED to be traveling in that direction).

When you've got 7-figures at stake, you can't resort to blaming
the "electrician" for the failure ("Why didn't the software
sense that it was running the wrong way?" Um, why didn't it sense
that the electrician's wife had been ragging on him before he
came to work and left him in a distracted mood??)

Bugs (as in "coding errors") should never leave the lab.

> The trick is to gain enough information from each in service failure to
> identify and fix the root cause bug in a single iteration and without breaking
> something else. Modern  optimisers make that more difficult now than it used to
> be back when I was involved in commercial development.

Good problem decomposition goes a long way towards that goal.
If you try to do "too much" you quickly overwhelm the developer's
ability to manage complexity (7 items in STM?). And, as you can't
*see* the entire implementation, there's nothing to REMIND you
of some salient issue that might impact your local efforts.

[Hence the value of eschewing globals and the languages that
tolerate/encourage them! This dramatically cuts down the
number of ways X can influence Y.]

Re: Tracking bug report frequency

<44oefip3u9v5vqbi1q7rahl442s00trmm2@4ax.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128192&group=sci.electronics.design#128192

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border-2.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-1.nntp.ord.giganews.com!nntp.supernews.com!news.supernews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 05 Sep 2023 17:19:19 +0000
From: jlar...@highlandSNIPMEtechnology.com (John Larkin)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 05 Sep 2023 10:19:15 -0700
Organization: Highland Tech
Reply-To: xx@yy.com
Message-ID: <44oefip3u9v5vqbi1q7rahl442s00trmm2@4ax.com>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me> <j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com> <g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com>
X-Newsreader: Forte Agent 3.1/32.783
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 91
X-Trace: sv3-PSO9tlJDpZGic/ONgal5HSfbr2B7WLLtEtB1afeeElz1qIZQ+WRi20n+d6Dam2x/uMW25evyZaLTBD+!RMdQ6HNB4oOHTlBGwwdKu/916art92mC3sM0nxu8ZXu7THUSBD4jBaazI0O97TVMp8iVlH7V5xtb!DbB+fA==
X-Complaints-To: www.supernews.com/docs/abuse.html
X-DMCA-Complaints-To: www.supernews.com/docs/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
 by: John Larkin - Tue, 5 Sep 2023 17:19 UTC

On Tue, 05 Sep 2023 12:45:01 -0400, Joe Gwinn <joegwinn@comcast.net>
wrote:

>On Tue, 05 Sep 2023 08:57:22 -0700, John Larkin
><jlarkin@highlandSNIPMEtechnology.com> wrote:
>
>>On Tue, 5 Sep 2023 13:13:51 +0100, Martin Brown
>><'''newspam'''@nonad.co.uk> wrote:
>>
>>>On 04/09/2023 14:30, Don Y wrote:
>>>> Anyone else use bug reporting frequency as a gross indicator
>>>> of system stability?
>>>
>>>Just about everyone who runs a beta test program.
>>>MTBF is another metric that can be used for something that is intended
>>>to run 24/7 and recover gracefully from anything that may happen to it.
>>>
>>>It is inevitable that a new release will have some bugs and minor
>>>differences from its predecessor that real life users will find PDQ.
>>
>>That's the story of software: bugs are inevitable, so why bother to be
>>careful coding or testing? You can always wait for bug reports from
>>users and post regular fixes of the worst ones.
>>
>>>
>>>The trick is to gain enough information from each in service failure to
>>>identify and fix the root cause bug in a single iteration and without
>>>breaking something else. Modern optimisers make that more difficult now
>>>than it used to be back when I was involved in commercial development.
>>
>>There have been various drives to write reliable code, but none were
>>popular. Quite the contrary, the software world loves abstraction and
>>ever new, bizarre languages... namely playing games instead of coding
>>boring, reliable applications in some klunky, reliable language.
>>
>>Electronic design, and FPGA coding, are intended to be bug-free first
>>pass and often are, when done right.
>>
>>FPGAs are halfway software, so the coders tend to be less careful than
>>hardware designers. FPGA bug fixes are easy, so why bother to read
>>your own code?
>>
>>That's ironic, when you think about it. The hardest bits, the physical
>>electronics, has the least bugs.
>
>There is a complication. Modern software is tens of millions of lines
>of code, far exceeding the inspection capabilities of humans.

After you type a line of code, read it. When we did that, entire
applications often worked first try.

Hardware
>is far simpler in terms of lines of FPGA code. But it's creeping up.

FPGAs are at least (usually) organized state machines. Mistakes are
typically hard failures, not low-rate bugs discovered in the field.
Avoiding race and metastability hazards is common practise.

>
>On a project some decades ago, the customer wanted us to verify every
>path through the code, which was about 100,000 lines (large at the
>time) of C or assembler (don't recall, doesn't actually matter).

Software provability was a brief fad once. It wasn't popular or, as
code is now done, possible.

>
>In round numbers, one in five lines of code is an IF statement, so in
>100,000 lines of code there will be 20,000 IF statements. So, there
>are up to 2^20000 unique paths through the code. Which chokes my HP
>calculator, so we must resort to logarithms, yielding 10^6021, which
>is a *very* large number. The age of the Universe is only 14 billion
>years, call it 10^10 years, so one would never be able to test even a
>tiny fraction of the possible paths.

An FPGA is usually coded as a state machine, where the designer
understands that the machine has a finite number of states and handles
every one. A computer program has an impossibly large number of
states, unknown and certainly not managed. Code is like hairball async
logic design.

>
>The customer withdrew the requirement.

It was naiive of him to want correct code.

>
>Joe Gwinn

Re: Tracking bug report frequency

<auoefihsfi3ihen7ug5n7tesu5jsnfg0ok@4ax.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128193&group=sci.electronics.design#128193

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!1.us.feeder.erje.net!feeder.erje.net!border-1.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-2.nntp.ord.giganews.com!nntp.supernews.com!news.supernews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 05 Sep 2023 17:26:01 +0000
From: jlar...@highlandSNIPMEtechnology.com (John Larkin)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 05 Sep 2023 10:25:58 -0700
Organization: Highland Tech
Reply-To: xx@yy.com
Message-ID: <auoefihsfi3ihen7ug5n7tesu5jsnfg0ok@4ax.com>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me> <j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com> <ud7m3g$227mv$1@dont-email.me>
X-Newsreader: Forte Agent 3.1/32.783
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 93
X-Trace: sv3-zNEEXtlJRZjIiioW6Qk07UXIS+GQTBgTthe7iKjtvLi58q17vJSdadawcARwks6GrzrCxca632yQg6J!wBPfZrEYtH9BguJQ4h0dPgqSkQJsJ5CiCK4vKDmAZNIUF1OlCjr2oIAj5oBk1bs5JG+YSM/+ehI1!gfLoHQ==
X-Complaints-To: www.supernews.com/docs/abuse.html
X-DMCA-Complaints-To: www.supernews.com/docs/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
 by: John Larkin - Tue, 5 Sep 2023 17:25 UTC

On Tue, 5 Sep 2023 17:47:41 +0100, Martin Brown
<'''newspam'''@nonad.co.uk> wrote:

>On 05/09/2023 16:57, John Larkin wrote:
>> On Tue, 5 Sep 2023 13:13:51 +0100, Martin Brown
>> <'''newspam'''@nonad.co.uk> wrote:
>>
>>> On 04/09/2023 14:30, Don Y wrote:
>>>> Anyone else use bug reporting frequency as a gross indicator
>>>> of system stability?
>>>
>>> Just about everyone who runs a beta test program.
>>> MTBF is another metric that can be used for something that is intended
>>> to run 24/7 and recover gracefully from anything that may happen to it.
>>>
>>> It is inevitable that a new release will have some bugs and minor
>>> differences from its predecessor that real life users will find PDQ.
>>
>> That's the story of software: bugs are inevitable, so why bother to be
>> careful coding or testing? You can always wait for bug reports from
>> users and post regular fixes of the worst ones.
>
>Don't blame the engineers for that - it is the ship it and be damned
>senior management that is responsible for most buggy code being shipped.
>Even more so now that 1+GB upgrades are essentially free. :(
>
>First to market is worth enough that people live with buggy code. The
>worst major release I can recall in a very long time was MS Excel 2007
>(although bugs in Vista took a lot more flack - rather unfairly IMHO).
>
>(which reminds me it is a MS patch Tuesday today)
>
>>> The trick is to gain enough information from each in service failure to
>>> identify and fix the root cause bug in a single iteration and without
>>> breaking something else. Modern optimisers make that more difficult now
>>> than it used to be back when I was involved in commercial development.
>>
>> There have been various drives to write reliable code, but none were
>> popular. Quite the contrary, the software world loves abstraction and
>> ever new, bizarre languages... namely playing games instead of coding
>> boring, reliable applications in some klunky, reliable language.
>
>The only ones which actually could be truly relied upon used formal
>mathematical proof techniques to ensure reliability. Very few
>practitioners are able to do it properly and it is pretty much reserved
>for ultra high reliability safety and mission critical code.
>
>It could be all be done to that standard iff commercial developers and
>their customers were prepared to pay for it. However, they want it now
>and they keep changing their minds about what it is they actually want
>so the goalposts are forever shifting around. That sort of functionality
>creep is much less common in hardware.
>
>UK's NATS system is supposedly 6 sigma coding but its misbehaviour on
>Bank Holiday Monday peak travel time was somewhat disastrous. It seems
>someone managed to input the halt and catch fire instruction and the
>buffers ran out before they were able to fix it. There will be a
>technical report out in due course - my guess is that they have reduced
>overheads and no longer have some of the key people who understand its
>internals. Malformed flight plan data should not have been able to kill
>it stone dead - but apparently that is exactly what happened!
>
>https://www.ft.com/content/9fe22207-5867-4c4f-972b-620cdab10790
>(might be paywalled)
>
>If so Google "UK air traffic control outage caused by unusual flight
>plan data"
>
>> Electronic design, and FPGA coding, are intended to be bug-free first
>> pass and often are, when done right.
>
>But using design and simulation *software* that you fail to acknowledge
>is actually pretty good. If you had to do it with pencil and paper your
>would be there forever.

We did serious electronic design without simulation, and most of it
worked first time, or had dumb mistake hard failures that were easily
hacked. It didn't take forever. If one didn't understand some part or
circuit, it could be breadboarded and tested.

>
>> FPGAs are halfway software, so the coders tend to be less careful than
>> hardware designers. FPGA bug fixes are easy, so why bother to read
>> your own code?
>>
>> That's ironic, when you think about it. The hardest bits, the physical
>> electronics, has the least bugs.
>
>So do physical mechanical interlocks. I don't trust software or even
>electronic interlocks to protect me compared to a damn great beam stop
>and a padlock on it with the key in my pocket.

Re: Tracking bug report frequency

<ud7pdd$22oj7$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128194&group=sci.electronics.design#128194

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 5 Sep 2023 10:44:08 -0700
Organization: A noiseless patient Spider
Lines: 164
Message-ID: <ud7pdd$22oj7$1@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
<j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com> <ud7m3g$227mv$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 5 Sep 2023 17:44:13 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="d082d53a1a6cd50f49e868589e0f21f7";
logging-data="2187879"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18BIFbIiwCjS/cF06/0C2vd"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.2.2
Cancel-Lock: sha1:T7dLdDz5dbcBdWI30gVj/opluBU=
Content-Language: en-US
In-Reply-To: <ud7m3g$227mv$1@dont-email.me>
 by: Don Y - Tue, 5 Sep 2023 17:44 UTC

On 9/5/2023 9:47 AM, Martin Brown wrote:
> Don't blame the engineers for that - it is the ship it and be damned senior
> management that is responsible for most buggy code being shipped. Even more so
> now that 1+GB upgrades are essentially free. :(

Note how the latest coding styles inherently acknowledge that.
Agile? How-to-write-code-without-knowing-what-it-has-to-do?

> First to market is worth enough that people live with buggy code. The worst

Of course! Anyone think their Windows/Linux box is bug-free?
USENET client? Browser? yet, somehow, they all seem to provide
real value to their users!

> major release I can recall in a very long time was MS Excel 2007 (although bugs
> in Vista took a lot more flack - rather unfairly IMHO).

Of course. Folks run Linux with 20M+ LoC? So, a ballpark estimate
of 20K+ *bugs* in the RELEASED product??

<https://en.wikipedia.org/wiki/Linux_kernel#/media/File:Linux_kernel_map.png>

The era of monolithic kernels is over. Unless folks keep wanting
to DONATE their time to maintaining them.

<https://en.wikipedia.org/wiki/Linux_kernel#/media/File:Redevelopment_costs_of_Linux_kernel.png>

Amusing that it's pursuing a 50 year old dream... (let's get together
an effort to recreate the Wright flyer so we can all take 100 yard flights!)

> (which reminds me it is a MS patch Tuesday today)

Surrender your internet connection, for the day...

> The only ones which actually could be truly relied upon used formal
> mathematical proof techniques to ensure reliability. Very few practitioners are
> able to do it properly and it is pretty much reserved for ultra high
> reliability safety and mission critical code.

And only applies to the smallest parts of the codebase. The "engineering"
comes in figuring out how to live with systems that aren't verifiable.
(you can't ensure hardware WILL work as advertised unless you have tested
every component that you put into the fabrication -- ah, but you can blame
someone else for YOUR system's failure)

> It could be all be done to that standard iff commercial developers and their
> customers were prepared to pay for it. However, they want it now and they keep
> changing their minds about what it is they actually want so the goalposts are
> forever shifting around. That sort of functionality creep is much less common
> in hardware.

Exactly. And, software often is told to COMPENSATE for hardware shortcomings.

One of the sound systems used in early video games used a CVSD as an ARB.
But, the idiot who designed the hardware was 200% clueless about how the
software would use the hardware. So, the (dedicated!) processor had
to sit in a tight loop SHIFTING bits into the CVSD. Of course, each
path through the loop had to be balanced in terms of execution time
lest you get a beat component (as every 8th bit requires a new byte
to be fetched -- which takes a different amount of time than shifting
the current byte by one bit).

Hardware designers are typically clueless as to how their decisions
impact the software. And, as the company may have invested a "couple
of kilobucks" on a design and layout, Manglement's shortsightedness
fails to realize the tens of kilobucks that their penny-pinching
will cost!

[I once had a spectacular FAIL in a bit of hardware that I designed.
It was a custom CPU ("chip"). The guy writing the code (and the
tools to write it!) assumed addresses were byte-oriented. But,
the processor was truly a 16b machine and all of the addresses
were for 16b objects. So, all of the addresses generated by his tools
were exactly twice what they should have been ("Didn't you notice
how the LSb was ALWAYS '0'?") Simple fix but embarassing as we each
relied on assumptions that seemed natural to us where the wiser
approach would have made that statement explicit]

> UK's NATS system is supposedly 6 sigma coding but its misbehaviour on Bank
> Holiday Monday peak travel time was somewhat disastrous. It seems someone
> managed to input the halt and catch fire instruction and the buffers ran out
> before they were able to fix it. There will be a technical report out in due
> course - my guess is that they have reduced overheads and no longer have some
> of the key people who understand its internals. Malformed flight plan data
> should not have been able to kill it stone dead - but apparently that is
> exactly what happened!

Lunar landers, etc. Software is complex. Hardware is a walk in the
park. For anything but a trivial piece of code, you can't see all of the
interconnects/interdependencies.

> https://www.ft.com/content/9fe22207-5867-4c4f-972b-620cdab10790
> (might be paywalled)
>
> If so Google "UK air traffic control outage caused by unusual flight plan data"
>
>> Electronic design, and FPGA coding, are intended to be bug-free first
>> pass and often are, when done right.
>
> But using design and simulation *software* that you fail to acknowledge is
> actually pretty good. If you had to do it with pencil and paper your would be
> there forever.

When was the last time your calculator PROGRAM produced a verifiable error?
And, desktop software is considerably less complex than software used
in products where interactions arising from temporal differences can
prove unpredictable.

We bought a new stove/oven some time ago. Specify which oven, heat source,
setpoint temperature and time. START.

Ah, but if you want to change the time remaining (because you peeked
at the item and realize it could use another few minutes) AND the
timer expires WHILE YOU ARE TRYING TO CHANGE IT, the user interface
locks up (!). Your recourse is to shut off the oven (abort the
process) and then restart it using the settings you just CANCELED.

It's easy to see how this can evade testing -- if the test engineer
didn't have a good understanding of how the code worked so he
could challenge it with specially crafted test cases.

When drafting system specifications, I (try to) imagine every
situation that can come up and describe how each should be handled.
So, the test scaffolding and actual tests can be designed to verify
that behavior in the resulting product.

[How do you test for the case where the user tries to change the
remaining time AS the timer is expiring? How do you test for the
case where the process on the remote host crashes AFTER it has
received a request for service but before it has acknolwedged
that? Or, BEFORE it receives it? Or, WHILE acknowledging it?]

Hardware is easy to test: set voltage/current/freq/etc. and
observe result.

[We purchased a glass titty many years ago. At one point, we turned
it on, then off, then on again -- in relatively short order. I
guess the guy who designed the power supply hadn't considered this
possibility as the magic smoke rushed out of it! How hard can it
be to design a power supply???]

>> FPGAs are halfway software, so the coders tend to be less careful than
>> hardware designers. FPGA bug fixes are easy, so why bother to read
>> your own code?
>>
>> That's ironic, when you think about it. The hardest bits, the physical
>> electronics, has the least bugs.

No, the physical electronics are the EASIEST bits. If designing
hardware was so difficult, then the solution to the software
"problem" would be to just have all the hardware designers switch
over to designing software! Problem solved INSTANTLY!

In practice, the problem would be worsened by a few orders of
magnitude as they suddenly found themselves living in an opaque world.

> So do physical mechanical interlocks. I don't trust software or even electronic
> interlocks to protect me compared to a damn great beam stop and a padlock on it
> with the key in my pocket.

Note the miswired motor example, above. If the limit switches had
been hardwired, the problem still would have been present as the
problem was in the hardware -- the wiring of the motor.

Re: Tracking bug report frequency

<ud7q4f$22s79$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128195&group=sci.electronics.design#128195

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 5 Sep 2023 10:56:27 -0700
Organization: A noiseless patient Spider
Lines: 40
Message-ID: <ud7q4f$22s79$1@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
<j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>
<g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 5 Sep 2023 17:56:31 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="d082d53a1a6cd50f49e868589e0f21f7";
logging-data="2191593"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Hf7BD8T7z14xRPlQbsN9R"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.2.2
Cancel-Lock: sha1:nnoHj1T+0x85baYlPBFyD3t48+I=
Content-Language: en-US
In-Reply-To: <g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com>
 by: Don Y - Tue, 5 Sep 2023 17:56 UTC

On 9/5/2023 9:45 AM, Joe Gwinn wrote:
> There is a complication. Modern software is tens of millions of lines
> of code, far exceeding the inspection capabilities of humans. Hardware
> is far simpler in terms of lines of FPGA code. But it's creeping up.

Even small projects defy hardware implementations.

BUILD a speech synthesizer, entirely out of hardware.
Make sure there is a way the user can adjust the voice
their individual liking. (*you*, not your TEAM, have
3 months to produce a working prototype).

Or, something that recognizes faces, voices, etc.
Or, something that knows which plants should be watered,
today (if any), and how much water to dispense.
Or, something that examines the text in a document
and flags grammatical and spelling errors.
Or...

> On a project some decades ago, the customer wanted us to verify every
> path through the code, which was about 100,000 lines (large at the
> time) of C or assembler (don't recall, doesn't actually matter).
>
> In round numbers, one in five lines of code is an IF statement, so in
> 100,000 lines of code there will be 20,000 IF statements. So, there
> are up to 2^20000 unique paths through the code. Which chokes my HP
> calculator, so we must resort to logarithms, yielding 10^6021, which
> is a *very* large number. The age of the Universe is only 14 billion
> years, call it 10^10 years, so one would never be able to test even a
> tiny fraction of the possible paths.

The *first* problem is codifying how the code should behave in
*each* of those test cases.

> The customer withdrew the requirement.

"Verify your sqrt() function produces correct answers over the
range of inputs"

Re: Tracking bug report frequency

<ud7qmp$22s79$2@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128196&group=sci.electronics.design#128196

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 5 Sep 2023 11:06:12 -0700
Organization: A noiseless patient Spider
Lines: 88
Message-ID: <ud7qmp$22s79$2@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
<j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>
<g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com> <ud7mug$22cip$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 5 Sep 2023 18:06:17 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="d082d53a1a6cd50f49e868589e0f21f7";
logging-data="2191593"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/RniyGDC8uh0CxtDovBHeN"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.2.2
Cancel-Lock: sha1:OkakU1m4so8Rpp/RjHcC5icD8Fw=
In-Reply-To: <ud7mug$22cip$1@dont-email.me>
Content-Language: en-US
 by: Don Y - Tue, 5 Sep 2023 18:06 UTC

On 9/5/2023 10:02 AM, Martin Brown wrote:
>> In round numbers, one in five lines of code is an IF statement, so in
>> 100,000 lines of code there will be 20,000 IF statements.  So, there
>> are up to 2^20000 unique paths through the code.  Which chokes my HP
>
> Although that is true it is also true that a small number of cunningly
> constructed test datasets can explore a very high proportion of the most
> frequently traversed paths in any given codebase. One snag is that testing is
> invariably cut short by management when development overruns.

"We'll fix it in version 2"

I always found this an amusing delusion.

If the product is successful, there will be lots of people clamoring
for fixes so you won't have any manpower to devote to designing
version 2 (but your competitors will see the appeal your product
has and will start designing THEIR replacement for it!)

If the product is a dud (possibly because of these problems),
there won't be a need for a version 2.

> The bits that fail to get explored tend to be weird error recovery routines. I

Because, by design, they are seldom encountered.
So, don't benefit from being exercised in the normal
course of operation.

> recall one latent on the VAX for ages which was that when it ran out of IO
> handles (because someone was opening them inside a loop) the first thing the
> recovery routine tried to do was open an IO channel!
>
>> calculator, so we must resort to logarithms, yielding 10^6021, which
>> is a *very* large number.  The age of the Universe is only 14 billion
>> years, call it 10^10 years, so one would never be able to test even a
>> tiny fraction of the possible paths.
>
> McCabe's complexity metric provides a way to test paths in components and
> subsystems reasonably thoroughly and catch most of the common programmer
> errors. Static dataflow analysis is also a lot better now than in the past.

But some test cases can mask other paths through the code.
There is no guarantee that a given piece of code *can* be
thoroughly tested -- especially if you take into account the
fact that the underlying hardware isn't infallible;
"if (x % )" can yield one result, now, and a different
result, 5 lines later -- even though x hasn't been
altered (but the hardware farted).

So:

if (x % 2) {
do this;
do that;
do another_thing;
} else {
do that;
}

can execute differently than:

if (x % 2) {
do this;
}

do that;

if (x % 2) {
do another_thing;
}

Years ago, this possibility wasn't ever considered.

[Yes, optimizers can twiddle this but the point remains]

And, that doesn't begin to address hostile actors in a
system!

> Then you only need at most 40000 test vectors to take each branch of every
> binary if statement (60000 if it is Fortran with 3 way branches all used). That
> is a rather more tractable number (although still large).
>
> Any routine with too high a CCI count is practically certain to contain latent
> bugs - which makes it worth looking at more carefully.

"A 'program' should fit on a single piece of paper"

Re: Tracking bug report frequency

<r2refil4p42j43pbaplk2qtrjkhh19la35@4ax.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128197&group=sci.electronics.design#128197

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!border-1.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-2.nntp.ord.giganews.com!nntp.supernews.com!news.supernews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 05 Sep 2023 18:12:40 +0000
From: jlar...@highlandSNIPMEtechnology.com (John Larkin)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 05 Sep 2023 11:12:37 -0700
Organization: Highland Tech
Reply-To: xx@yy.com
Message-ID: <r2refil4p42j43pbaplk2qtrjkhh19la35@4ax.com>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me> <j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com> <ud7m3g$227mv$1@dont-email.me> <ud7pdd$22oj7$1@dont-email.me>
X-Newsreader: Forte Agent 3.1/32.783
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 185
X-Trace: sv3-Bme2dwZKjRordW9reTUIn0CXwjs8o/LoW5C+DqRwPwPK9oGtjHo1ENKKUuIvxaAtJ2eLgIPkvXlMU+U!N8KZ+yDwsDyqbhBvwvZ6Wy/c8Z4o3I0axmZV96SCBxvJRRlmPqWgjBQwjGAn4VdXqEDXX0MoJm4u!Z9E/pg==
X-Complaints-To: www.supernews.com/docs/abuse.html
X-DMCA-Complaints-To: www.supernews.com/docs/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Received-Bytes: 10422
 by: John Larkin - Tue, 5 Sep 2023 18:12 UTC

On Tue, 5 Sep 2023 10:44:08 -0700, Don Y <blockedofcourse@foo.invalid>
wrote:

>On 9/5/2023 9:47 AM, Martin Brown wrote:
>> Don't blame the engineers for that - it is the ship it and be damned senior
>> management that is responsible for most buggy code being shipped. Even more so
>> now that 1+GB upgrades are essentially free. :(
>
>Note how the latest coding styles inherently acknowledge that.
>Agile? How-to-write-code-without-knowing-what-it-has-to-do?
>
>> First to market is worth enough that people live with buggy code. The worst
>
>Of course! Anyone think their Windows/Linux box is bug-free?
>USENET client? Browser? yet, somehow, they all seem to provide
>real value to their users!
>
>> major release I can recall in a very long time was MS Excel 2007 (although bugs
>> in Vista took a lot more flack - rather unfairly IMHO).
>
>Of course. Folks run Linux with 20M+ LoC? So, a ballpark estimate
>of 20K+ *bugs* in the RELEASED product??
>
><https://en.wikipedia.org/wiki/Linux_kernel#/media/File:Linux_kernel_map.png>
>
>The era of monolithic kernels is over. Unless folks keep wanting
>to DONATE their time to maintaining them.
>
><https://en.wikipedia.org/wiki/Linux_kernel#/media/File:Redevelopment_costs_of_Linux_kernel.png>
>
>Amusing that it's pursuing a 50 year old dream... (let's get together
>an effort to recreate the Wright flyer so we can all take 100 yard flights!)
>
>> (which reminds me it is a MS patch Tuesday today)
>
>Surrender your internet connection, for the day...
>
>> The only ones which actually could be truly relied upon used formal
>> mathematical proof techniques to ensure reliability. Very few practitioners are
>> able to do it properly and it is pretty much reserved for ultra high
>> reliability safety and mission critical code.
>
>And only applies to the smallest parts of the codebase. The "engineering"
>comes in figuring out how to live with systems that aren't verifiable.
>(you can't ensure hardware WILL work as advertised unless you have tested
>every component that you put into the fabrication -- ah, but you can blame
>someone else for YOUR system's failure)
>
>> It could be all be done to that standard iff commercial developers and their
>> customers were prepared to pay for it. However, they want it now and they keep
>> changing their minds about what it is they actually want so the goalposts are
>> forever shifting around. That sort of functionality creep is much less common
>> in hardware.
>
>Exactly. And, software often is told to COMPENSATE for hardware shortcomings.
>
>One of the sound systems used in early video games used a CVSD as an ARB.
>But, the idiot who designed the hardware was 200% clueless about how the
>software would use the hardware. So, the (dedicated!) processor had
>to sit in a tight loop SHIFTING bits into the CVSD. Of course, each
>path through the loop had to be balanced in terms of execution time
>lest you get a beat component (as every 8th bit requires a new byte
>to be fetched -- which takes a different amount of time than shifting
>the current byte by one bit).
>
>Hardware designers are typically clueless as to how their decisions
>impact the software. And, as the company may have invested a "couple
>of kilobucks" on a design and layout, Manglement's shortsightedness
>fails to realize the tens of kilobucks that their penny-pinching
>will cost!
>
>[I once had a spectacular FAIL in a bit of hardware that I designed.
>It was a custom CPU ("chip"). The guy writing the code (and the
>tools to write it!) assumed addresses were byte-oriented. But,
>the processor was truly a 16b machine and all of the addresses
>were for 16b objects. So, all of the addresses generated by his tools
>were exactly twice what they should have been ("Didn't you notice
>how the LSb was ALWAYS '0'?") Simple fix but embarassing as we each
>relied on assumptions that seemed natural to us where the wiser
>approach would have made that statement explicit]
>
>> UK's NATS system is supposedly 6 sigma coding but its misbehaviour on Bank
>> Holiday Monday peak travel time was somewhat disastrous. It seems someone
>> managed to input the halt and catch fire instruction and the buffers ran out
>> before they were able to fix it. There will be a technical report out in due
>> course - my guess is that they have reduced overheads and no longer have some
>> of the key people who understand its internals. Malformed flight plan data
>> should not have been able to kill it stone dead - but apparently that is
>> exactly what happened!
>
>Lunar landers, etc. Software is complex. Hardware is a walk in the
>park. For anything but a trivial piece of code, you can't see all of the
>interconnects/interdependencies.
>
>> https://www.ft.com/content/9fe22207-5867-4c4f-972b-620cdab10790
>> (might be paywalled)
>>
>> If so Google "UK air traffic control outage caused by unusual flight plan data"
>>
>>> Electronic design, and FPGA coding, are intended to be bug-free first
>>> pass and often are, when done right.
>>
>> But using design and simulation *software* that you fail to acknowledge is
>> actually pretty good. If you had to do it with pencil and paper your would be
>> there forever.
>
>When was the last time your calculator PROGRAM produced a verifiable error?
>And, desktop software is considerably less complex than software used
>in products where interactions arising from temporal differences can
>prove unpredictable.
>
>We bought a new stove/oven some time ago. Specify which oven, heat source,
>setpoint temperature and time. START.
>
>Ah, but if you want to change the time remaining (because you peeked
>at the item and realize it could use another few minutes) AND the
>timer expires WHILE YOU ARE TRYING TO CHANGE IT, the user interface
>locks up (!). Your recourse is to shut off the oven (abort the
>process) and then restart it using the settings you just CANCELED.
>
>It's easy to see how this can evade testing -- if the test engineer
>didn't have a good understanding of how the code worked so he
>could challenge it with specially crafted test cases.
>
>When drafting system specifications, I (try to) imagine every
>situation that can come up and describe how each should be handled.
>So, the test scaffolding and actual tests can be designed to verify
>that behavior in the resulting product.
>
>[How do you test for the case where the user tries to change the
>remaining time AS the timer is expiring? How do you test for the
>case where the process on the remote host crashes AFTER it has
>received a request for service but before it has acknolwedged
>that? Or, BEFORE it receives it? Or, WHILE acknowledging it?]
>
>Hardware is easy to test: set voltage/current/freq/etc. and
>observe result.
>
>[We purchased a glass titty many years ago. At one point, we turned
>it on, then off, then on again -- in relatively short order. I
>guess the guy who designed the power supply hadn't considered this
>possibility as the magic smoke rushed out of it! How hard can it
>be to design a power supply???]
>
>>> FPGAs are halfway software, so the coders tend to be less careful than
>>> hardware designers. FPGA bug fixes are easy, so why bother to read
>>> your own code?
>>>
>>> That's ironic, when you think about it. The hardest bits, the physical
>>> electronics, has the least bugs.
>
>No, the physical electronics are the EASIEST bits. If designing
>hardware was so difficult, then the solution to the software
>"problem" would be to just have all the hardware designers switch
>over to designing software! Problem solved INSTANTLY!

The state of software development is a disgrace. We are plagued with
absurd user interfaces, hidden states, and massive numbers of bugs.

There is no science, math, or discipline to programming. What famous
person said that "anybody can learn to code"? One study fould that
English majors, on average, were better programmers than CE or CS
majors.

>
>In practice, the problem would be worsened by a few orders of
>magnitude as they suddenly found themselves living in an opaque world.
>
>> So do physical mechanical interlocks. I don't trust software or even electronic
>> interlocks to protect me compared to a damn great beam stop and a padlock on it
>> with the key in my pocket.
>
>Note the miswired motor example, above. If the limit switches had
>been hardwired, the problem still would have been present as the
>problem was in the hardware -- the wiring of the motor.


Click here to read the complete article
Re: Tracking bug report frequency

<ud7skm$238k9$2@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128198&group=sci.electronics.design#128198

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 5 Sep 2023 11:39:14 -0700
Organization: A noiseless patient Spider
Lines: 51
Message-ID: <ud7skm$238k9$2@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
<ud7n1n$229eh$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 5 Sep 2023 18:39:19 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="d082d53a1a6cd50f49e868589e0f21f7";
logging-data="2204297"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+5ZkkjobSMcv5rrakzcY7A"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.2.2
Cancel-Lock: sha1:WNhwh+s5EWF7sbYF7YiWLPlQ0/I=
Content-Language: en-US
In-Reply-To: <ud7n1n$229eh$1@dont-email.me>
 by: Don Y - Tue, 5 Sep 2023 18:39 UTC

On 9/5/2023 10:03 AM, Don Y wrote:
> Good problem decomposition goes a long way towards that goal.
> If you try to do "too much" you quickly overwhelm the developer's
> ability to manage complexity (7 items in STM?).  And, as you can't
> *see* the entire implementation, there's nothing to REMIND you
> of some salient issue that might impact your local efforts.
>
> [Hence the value of eschewing globals and the languages that
> tolerate/encourage them!  This dramatically cuts down the
> number of ways X can influence Y.]

Of course, if you've never had any formal training ("you're
just a coder"), then you don't even realize these hazards exist!
You just pick at your code until it SEEMS to work and then
walk away.

Hence the need for the "managed environments" and
languages du jour that try to compensate for the
lack of formal training in schools and businesses.

[I worked with a Fortune *100* company on a 30 man project
where The Boss assigned the software for the product to a
*technician* whose sole qualification was that he
had a CoCo at home! Really? You're putting your good
name in the hands of a tinkerer??]

Sadly, most businessmen don't understand software or the
process and, rather than admit their ignorance, blunder
onward wondering (later) why everything turns to shite.
Anyone whose had to explain why a "little change" in
the product specification requires a major change to
the schedule understands the "ignorance at the top".

[I had a manager who wrote BASIC programs to keep track of the
DOG SHOWS that he'd entered (what is that? just a bunch
of PRINT statements??) and considered himself qualified to
make decisions regarding the software in the products for
which he was responsible. *Anyone* can write code.]

And, engineers turned managers tend to be the worst as they
THINK they understand the current state of the art (because
they used to practice it) without realizing that it's a moving
target and if you're using last year's technology, you are 2 or
3 (!) years out of date!

Would you promote a *technician* to run an electronics DESIGN
department and expect him to be current wrt the latest
generation of components, design and manufacturing practices?
If he *thought* he was, how quickly would you disabuse him of
that belief?

Re: Tracking bug report frequency

<3p9ffidcre31qmnsjekc8quki441k4akm4@4ax.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128201&group=sci.electronics.design#128201

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!69.80.99.26.MISMATCH!Xl.tags.giganews.com!local-2.nntp.ord.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 05 Sep 2023 22:14:20 +0000
From: joegw...@comcast.net (Joe Gwinn)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 05 Sep 2023 18:14:19 -0400
Message-ID: <3p9ffidcre31qmnsjekc8quki441k4akm4@4ax.com>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me> <j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com> <g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com> <ud7mug$22cip$1@dont-email.me>
User-Agent: ForteAgent/8.00.32.1272
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 90
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-fjijaovFTGZskZP00SbGYgWLhKCqm5TOgya4wORoANi7Qssf+6dewL+0iwLinHBfSUmuhVcdpxpKfhW!MFlCGytFLAZQ7x4TYRTOENQFkht46O+EkU1nW9u1NdCBlqo+Ebfn4WgZdh8doLzJfDC8mxc=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
 by: Joe Gwinn - Tue, 5 Sep 2023 22:14 UTC

On Tue, 5 Sep 2023 18:02:05 +0100, Martin Brown
<'''newspam'''@nonad.co.uk> wrote:

>On 05/09/2023 17:45, Joe Gwinn wrote:
>> On Tue, 05 Sep 2023 08:57:22 -0700, John Larkin
>> <jlarkin@highlandSNIPMEtechnology.com> wrote:
>>
>>> On Tue, 5 Sep 2023 13:13:51 +0100, Martin Brown
>>> <'''newspam'''@nonad.co.uk> wrote:
>>>
>>>> On 04/09/2023 14:30, Don Y wrote:
>>>>> Anyone else use bug reporting frequency as a gross indicator
>>>>> of system stability?
>>>>
>>>> Just about everyone who runs a beta test program.
>>>> MTBF is another metric that can be used for something that is intended
>>>> to run 24/7 and recover gracefully from anything that may happen to it.
>>>>
>>>> It is inevitable that a new release will have some bugs and minor
>>>> differences from its predecessor that real life users will find PDQ.
>>>
>>> That's the story of software: bugs are inevitable, so why bother to be
>>> careful coding or testing? You can always wait for bug reports from
>>> users and post regular fixes of the worst ones.
>>>
>>>>
>>>> The trick is to gain enough information from each in service failure to
>>>> identify and fix the root cause bug in a single iteration and without
>>>> breaking something else. Modern optimisers make that more difficult now
>>>> than it used to be back when I was involved in commercial development.
>>>
>>> There have been various drives to write reliable code, but none were
>>> popular. Quite the contrary, the software world loves abstraction and
>>> ever new, bizarre languages... namely playing games instead of coding
>>> boring, reliable applications in some klunky, reliable language.
>>>
>>> Electronic design, and FPGA coding, are intended to be bug-free first
>>> pass and often are, when done right.
>>>
>>> FPGAs are halfway software, so the coders tend to be less careful than
>>> hardware designers. FPGA bug fixes are easy, so why bother to read
>>> your own code?
>>>
>>> That's ironic, when you think about it. The hardest bits, the physical
>>> electronics, has the least bugs.
>>
>> There is a complication. Modern software is tens of millions of lines
>> of code, far exceeding the inspection capabilities of humans. Hardware
>> is far simpler in terms of lines of FPGA code. But it's creeping up.
>>
>> On a project some decades ago, the customer wanted us to verify every
>> path through the code, which was about 100,000 lines (large at the
>> time) of C or assembler (don't recall, doesn't actually matter).
>>
>> In round numbers, one in five lines of code is an IF statement, so in
>> 100,000 lines of code there will be 20,000 IF statements. So, there
>> are up to 2^20000 unique paths through the code. Which chokes my HP
>
>Although that is true it is also true that a small number of cunningly
>constructed test datasets can explore a very high proportion of the most
>frequently traversed paths in any given codebase. One snag is that
>testing is invariably cut short by management when development overruns.
>
>The bits that fail to get explored tend to be weird error recovery
>routines. I recall one latent on the VAX for ages which was that when it
>ran out of IO handles (because someone was opening them inside a loop)
>the first thing the recovery routine tried to do was open an IO channel!
>
>> calculator, so we must resort to logarithms, yielding 10^6021, which
>> is a *very* large number. The age of the Universe is only 14 billion
>> years, call it 10^10 years, so one would never be able to test even a
>> tiny fraction of the possible paths.
>
>McCabe's complexity metric provides a way to test paths in components
>and subsystems reasonably thoroughly and catch most of the common
>programmer errors. Static dataflow analysis is also a lot better now
>than in the past.
>
>Then you only need at most 40000 test vectors to take each branch of
>every binary if statement (60000 if it is Fortran with 3 way branches
>all used). That is a rather more tractable number (although still large).
>
>Any routine with too high a CCI count is practically certain to contain
>latent bugs - which makes it worth looking at more carefully.

I must say that I fail to see how this can overcome 10^6021 paths,
even if it is wondrously effective, reducing the space to be tested by
a trillion to one (10^-12) - only 10^6009 paths to explore.

Joe Gwinn

Re: Tracking bug report frequency

<q3affi9ajjqksgjd6qnkjhnf35nd3gos1m@4ax.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128203&group=sci.electronics.design#128203

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!border-1.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-2.nntp.ord.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 05 Sep 2023 22:33:48 +0000
From: joegw...@comcast.net (Joe Gwinn)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 05 Sep 2023 18:33:47 -0400
Message-ID: <q3affi9ajjqksgjd6qnkjhnf35nd3gos1m@4ax.com>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me> <j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com> <g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com> <44oefip3u9v5vqbi1q7rahl442s00trmm2@4ax.com>
User-Agent: ForteAgent/8.00.32.1272
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 122
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-0t8t7xtBnV8Pul/6DsVliWRtAZ+9sUvUE+/qHutEHb0PmGq2Icz9zbC3n9TG2rpULxVvx8Z12Kuo2KI!+cJYyHUS+NPGJgeRqRN+ryrHvKQ4SMhIbkdfVC843N3uZwLVIUfu4E0sXGOhdQYlxjk8/Vs=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Received-Bytes: 6320
 by: Joe Gwinn - Tue, 5 Sep 2023 22:33 UTC

On Tue, 05 Sep 2023 10:19:15 -0700, John Larkin
<jlarkin@highlandSNIPMEtechnology.com> wrote:

>On Tue, 05 Sep 2023 12:45:01 -0400, Joe Gwinn <joegwinn@comcast.net>
>wrote:
>
>>On Tue, 05 Sep 2023 08:57:22 -0700, John Larkin
>><jlarkin@highlandSNIPMEtechnology.com> wrote:
>>
>>>On Tue, 5 Sep 2023 13:13:51 +0100, Martin Brown
>>><'''newspam'''@nonad.co.uk> wrote:
>>>
>>>>On 04/09/2023 14:30, Don Y wrote:
>>>>> Anyone else use bug reporting frequency as a gross indicator
>>>>> of system stability?
>>>>
>>>>Just about everyone who runs a beta test program.
>>>>MTBF is another metric that can be used for something that is intended
>>>>to run 24/7 and recover gracefully from anything that may happen to it.
>>>>
>>>>It is inevitable that a new release will have some bugs and minor
>>>>differences from its predecessor that real life users will find PDQ.
>>>
>>>That's the story of software: bugs are inevitable, so why bother to be
>>>careful coding or testing? You can always wait for bug reports from
>>>users and post regular fixes of the worst ones.
>>>
>>>>
>>>>The trick is to gain enough information from each in service failure to
>>>>identify and fix the root cause bug in a single iteration and without
>>>>breaking something else. Modern optimisers make that more difficult now
>>>>than it used to be back when I was involved in commercial development.
>>>
>>>There have been various drives to write reliable code, but none were
>>>popular. Quite the contrary, the software world loves abstraction and
>>>ever new, bizarre languages... namely playing games instead of coding
>>>boring, reliable applications in some klunky, reliable language.
>>>
>>>Electronic design, and FPGA coding, are intended to be bug-free first
>>>pass and often are, when done right.
>>>
>>>FPGAs are halfway software, so the coders tend to be less careful than
>>>hardware designers. FPGA bug fixes are easy, so why bother to read
>>>your own code?
>>>
>>>That's ironic, when you think about it. The hardest bits, the physical
>>>electronics, has the least bugs.
>>
>>There is a complication. Modern software is tens of millions of lines
>>of code, far exceeding the inspection capabilities of humans.
>
>After you type a line of code, read it. When we did that, entire
>applications often worked first try.
>
>Hardware
>>is far simpler in terms of lines of FPGA code. But it's creeping up.
>
>FPGAs are at least (usually) organized state machines. Mistakes are
>typically hard failures, not low-rate bugs discovered in the field.
>Avoiding race and metastability hazards is common practise.
>
>>
>>On a project some decades ago, the customer wanted us to verify every
>>path through the code, which was about 100,000 lines (large at the
>>time) of C or assembler (don't recall, doesn't actually matter).
>
>Software provability was a brief fad once. It wasn't popular or, as
>code is now done, possible.
>
>
>>
>>In round numbers, one in five lines of code is an IF statement, so in
>>100,000 lines of code there will be 20,000 IF statements. So, there
>>are up to 2^20000 unique paths through the code. Which chokes my HP
>>calculator, so we must resort to logarithms, yielding 10^6021, which
>>is a *very* large number. The age of the Universe is only 14 billion
>>years, call it 10^10 years, so one would never be able to test even a
>>tiny fraction of the possible paths.
>
>An FPGA is usually coded as a state machine, where the designer
>understands that the machine has a finite number of states and handles
>every one. A computer program has an impossibly large number of
>states, unknown and certainly not managed. Code is like hairball async
>logic design.

In recent FPGAs you have done, how many states and events (their
Cartesian product being the entire state table) are there?

By the way, back in the day when I was specifying state machines
(often for implementation in software), I had a rule that all cells
would have an entry, even the combinations of state and event that
"couldn't happen". This was essential for achieving robustness in
practice.

>>The customer withdrew the requirement.
>
>It was naive of him to want correct code.

No, only a bit unrealistic.

But it was naive of him to think that total correctness can be tested
into anything.

The state of the art in verifying safety-critical code (as in for
safety of flight) is DO-178, which is an immensely heavy process. The
original objective was a probability of error not exceeding 10^-6,
this has been tightened to 10^-7 or 10^-8 because of the "headline
risk".

..<https://en.wikipedia.org/wiki/DO-178C>

Correctness can be mathematically proven only for extremely simple
mechanisms, using a sharply restricted set of allowed operations. See
The Halting Problem.

..<https://en.wikipedia.org/wiki/Halting_problem#:~:text=The%20halting%20problem%20is%20undecidable,usually%20via%20a%20Turing%20machine.>

Joe Gwinn

Re: Tracking bug report frequency

<7rfffi10qg71cis68kktv81k37t2o210qf@4ax.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128204&group=sci.electronics.design#128204

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!feeder.usenetexpress.com!tr1.iad1.usenetexpress.com!69.80.99.27.MISMATCH!Xl.tags.giganews.com!local-2.nntp.ord.giganews.com!nntp.supernews.com!news.supernews.com.POSTED!not-for-mail
NNTP-Posting-Date: Wed, 06 Sep 2023 00:00:17 +0000
From: jlar...@highlandSNIPMEtechnology.com (John Larkin)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 05 Sep 2023 17:00:13 -0700
Organization: Highland Tech
Reply-To: xx@yy.com
Message-ID: <7rfffi10qg71cis68kktv81k37t2o210qf@4ax.com>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me> <j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com> <g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com> <44oefip3u9v5vqbi1q7rahl442s00trmm2@4ax.com> <q3affi9ajjqksgjd6qnkjhnf35nd3gos1m@4ax.com>
X-Newsreader: Forte Agent 3.1/32.783
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 103
X-Trace: sv3-nLQlCnVccKconzTnzUxzpyVWYJmyuLR7K+2cfD/VyITnDOSyGCqtqV/8MIA1awOV9hJEP3GJpIMyCqL!bz3VIORnf0RKv0TpBgcN9wpga0d0SuRCxKvvecyS7yX42PdVHyIDB2gHCcJMTVmXgpnMsJs+bnx5!fSNaGg==
X-Complaints-To: www.supernews.com/docs/abuse.html
X-DMCA-Complaints-To: www.supernews.com/docs/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Received-Bytes: 5910
 by: John Larkin - Wed, 6 Sep 2023 00:00 UTC

On Tue, 05 Sep 2023 18:33:47 -0400, Joe Gwinn <joegwinn@comcast.net>
wrote:

>On Tue, 05 Sep 2023 10:19:15 -0700, John Larkin
><jlarkin@highlandSNIPMEtechnology.com> wrote:
>
>>On Tue, 05 Sep 2023 12:45:01 -0400, Joe Gwinn <joegwinn@comcast.net>
>>wrote:
>>
>>>On Tue, 05 Sep 2023 08:57:22 -0700, John Larkin
>>><jlarkin@highlandSNIPMEtechnology.com> wrote:
>>>
>>>>On Tue, 5 Sep 2023 13:13:51 +0100, Martin Brown
>>>><'''newspam'''@nonad.co.uk> wrote:
>>>>
>>>>>On 04/09/2023 14:30, Don Y wrote:
>>>>>> Anyone else use bug reporting frequency as a gross indicator
>>>>>> of system stability?
>>>>>
>>>>>Just about everyone who runs a beta test program.
>>>>>MTBF is another metric that can be used for something that is intended
>>>>>to run 24/7 and recover gracefully from anything that may happen to it.
>>>>>
>>>>>It is inevitable that a new release will have some bugs and minor
>>>>>differences from its predecessor that real life users will find PDQ.
>>>>
>>>>That's the story of software: bugs are inevitable, so why bother to be
>>>>careful coding or testing? You can always wait for bug reports from
>>>>users and post regular fixes of the worst ones.
>>>>
>>>>>
>>>>>The trick is to gain enough information from each in service failure to
>>>>>identify and fix the root cause bug in a single iteration and without
>>>>>breaking something else. Modern optimisers make that more difficult now
>>>>>than it used to be back when I was involved in commercial development.
>>>>
>>>>There have been various drives to write reliable code, but none were
>>>>popular. Quite the contrary, the software world loves abstraction and
>>>>ever new, bizarre languages... namely playing games instead of coding
>>>>boring, reliable applications in some klunky, reliable language.
>>>>
>>>>Electronic design, and FPGA coding, are intended to be bug-free first
>>>>pass and often are, when done right.
>>>>
>>>>FPGAs are halfway software, so the coders tend to be less careful than
>>>>hardware designers. FPGA bug fixes are easy, so why bother to read
>>>>your own code?
>>>>
>>>>That's ironic, when you think about it. The hardest bits, the physical
>>>>electronics, has the least bugs.
>>>
>>>There is a complication. Modern software is tens of millions of lines
>>>of code, far exceeding the inspection capabilities of humans.
>>
>>After you type a line of code, read it. When we did that, entire
>>applications often worked first try.
>>
>>Hardware
>>>is far simpler in terms of lines of FPGA code. But it's creeping up.
>>
>>FPGAs are at least (usually) organized state machines. Mistakes are
>>typically hard failures, not low-rate bugs discovered in the field.
>>Avoiding race and metastability hazards is common practise.
>>
>>>
>>>On a project some decades ago, the customer wanted us to verify every
>>>path through the code, which was about 100,000 lines (large at the
>>>time) of C or assembler (don't recall, doesn't actually matter).
>>
>>Software provability was a brief fad once. It wasn't popular or, as
>>code is now done, possible.
>>
>>
>>>
>>>In round numbers, one in five lines of code is an IF statement, so in
>>>100,000 lines of code there will be 20,000 IF statements. So, there
>>>are up to 2^20000 unique paths through the code. Which chokes my HP
>>>calculator, so we must resort to logarithms, yielding 10^6021, which
>>>is a *very* large number. The age of the Universe is only 14 billion
>>>years, call it 10^10 years, so one would never be able to test even a
>>>tiny fraction of the possible paths.
>>
>>An FPGA is usually coded as a state machine, where the designer
>>understands that the machine has a finite number of states and handles
>>every one. A computer program has an impossibly large number of
>>states, unknown and certainly not managed. Code is like hairball async
>>logic design.
>
>In recent FPGAs you have done, how many states and events (their
>Cartesian product being the entire state table) are there?

A useful state machine might have 4 or maybe 16 states. I'm not sure
what you mean by 'events'. Sometimes we have a state word and a
counter, which technically gives us more states but it's convnient to
think of them separately. As in "repeat state 4 until the counter hits
zero."

A state machine can have many more inputs and outputs than it has
states. It is critical that no inputs can be changing when the clock
ticks.

Re: Tracking bug report frequency

<6jgffi9cs9b3fh0sfdvskcau6krg9q4kvf@4ax.com>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128206&group=sci.electronics.design#128206

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border-2.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-1.nntp.ord.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Wed, 06 Sep 2023 00:11:30 +0000
From: joegw...@comcast.net (Joe Gwinn)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 05 Sep 2023 20:11:29 -0400
Message-ID: <6jgffi9cs9b3fh0sfdvskcau6krg9q4kvf@4ax.com>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me> <j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com> <g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com> <44oefip3u9v5vqbi1q7rahl442s00trmm2@4ax.com> <q3affi9ajjqksgjd6qnkjhnf35nd3gos1m@4ax.com> <7rfffi10qg71cis68kktv81k37t2o210qf@4ax.com>
User-Agent: ForteAgent/8.00.32.1272
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 125
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-eQnURbdWDWZi00wVFrzIAZk2N6I2vvT7kRsZFZGt3p2MbssShWZdtRtBppdqKoWOJoeQiM9/2eekUh8!5PcodyoTy6o/gGsGLe5OyBNtLqdnjAVlgfvIWvzjQ5I9nBI6NJ94m8UnuRB2vHgfnLZ5Oew=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
 by: Joe Gwinn - Wed, 6 Sep 2023 00:11 UTC

On Tue, 05 Sep 2023 17:00:13 -0700, John Larkin
<jlarkin@highlandSNIPMEtechnology.com> wrote:

>On Tue, 05 Sep 2023 18:33:47 -0400, Joe Gwinn <joegwinn@comcast.net>
>wrote:
>
>>On Tue, 05 Sep 2023 10:19:15 -0700, John Larkin
>><jlarkin@highlandSNIPMEtechnology.com> wrote:
>>
>>>On Tue, 05 Sep 2023 12:45:01 -0400, Joe Gwinn <joegwinn@comcast.net>
>>>wrote:
>>>
>>>>On Tue, 05 Sep 2023 08:57:22 -0700, John Larkin
>>>><jlarkin@highlandSNIPMEtechnology.com> wrote:
>>>>
>>>>>On Tue, 5 Sep 2023 13:13:51 +0100, Martin Brown
>>>>><'''newspam'''@nonad.co.uk> wrote:
>>>>>
>>>>>>On 04/09/2023 14:30, Don Y wrote:
>>>>>>> Anyone else use bug reporting frequency as a gross indicator
>>>>>>> of system stability?
>>>>>>
>>>>>>Just about everyone who runs a beta test program.
>>>>>>MTBF is another metric that can be used for something that is intended
>>>>>>to run 24/7 and recover gracefully from anything that may happen to it.
>>>>>>
>>>>>>It is inevitable that a new release will have some bugs and minor
>>>>>>differences from its predecessor that real life users will find PDQ.
>>>>>
>>>>>That's the story of software: bugs are inevitable, so why bother to be
>>>>>careful coding or testing? You can always wait for bug reports from
>>>>>users and post regular fixes of the worst ones.
>>>>>
>>>>>>
>>>>>>The trick is to gain enough information from each in service failure to
>>>>>>identify and fix the root cause bug in a single iteration and without
>>>>>>breaking something else. Modern optimisers make that more difficult now
>>>>>>than it used to be back when I was involved in commercial development.
>>>>>
>>>>>There have been various drives to write reliable code, but none were
>>>>>popular. Quite the contrary, the software world loves abstraction and
>>>>>ever new, bizarre languages... namely playing games instead of coding
>>>>>boring, reliable applications in some klunky, reliable language.
>>>>>
>>>>>Electronic design, and FPGA coding, are intended to be bug-free first
>>>>>pass and often are, when done right.
>>>>>
>>>>>FPGAs are halfway software, so the coders tend to be less careful than
>>>>>hardware designers. FPGA bug fixes are easy, so why bother to read
>>>>>your own code?
>>>>>
>>>>>That's ironic, when you think about it. The hardest bits, the physical
>>>>>electronics, has the least bugs.
>>>>
>>>>There is a complication. Modern software is tens of millions of lines
>>>>of code, far exceeding the inspection capabilities of humans.
>>>
>>>After you type a line of code, read it. When we did that, entire
>>>applications often worked first try.
>>>
>>>Hardware
>>>>is far simpler in terms of lines of FPGA code. But it's creeping up.
>>>
>>>FPGAs are at least (usually) organized state machines. Mistakes are
>>>typically hard failures, not low-rate bugs discovered in the field.
>>>Avoiding race and metastability hazards is common practise.
>>>
>>>>
>>>>On a project some decades ago, the customer wanted us to verify every
>>>>path through the code, which was about 100,000 lines (large at the
>>>>time) of C or assembler (don't recall, doesn't actually matter).
>>>
>>>Software provability was a brief fad once. It wasn't popular or, as
>>>code is now done, possible.
>>>
>>>
>>>>
>>>>In round numbers, one in five lines of code is an IF statement, so in
>>>>100,000 lines of code there will be 20,000 IF statements. So, there
>>>>are up to 2^20000 unique paths through the code. Which chokes my HP
>>>>calculator, so we must resort to logarithms, yielding 10^6021, which
>>>>is a *very* large number. The age of the Universe is only 14 billion
>>>>years, call it 10^10 years, so one would never be able to test even a
>>>>tiny fraction of the possible paths.
>>>
>>>An FPGA is usually coded as a state machine, where the designer
>>>understands that the machine has a finite number of states and handles
>>>every one. A computer program has an impossibly large number of
>>>states, unknown and certainly not managed. Code is like hairball async
>>>logic design.
>>
>>In recent FPGAs you have done, how many states and events (their
>>Cartesian product being the entire state table) are there?
>
>
>A useful state machine might have 4 or maybe 16 states. I'm not sure
>what you mean by 'events'. Sometimes we have a state word and a
>counter, which technically gives us more states but it's convnient to
>think of them separately. As in "repeat state 4 until the counter hits
>zero."

We'll call it 16 states for the present purposes.

An event is anything that can cause the state to change, including
expiration of a timer. This is basically a design choice.

>A state machine can have many more inputs and outputs than it has
>states.

Yes, that's typical.

> It is critical that no inputs can be changing when the clock
>ticks.

That's also essential in hardware state machines.

In software state machines, events are most often the arrival of
messages, and the mechanism that provides these messages ensures that
they are presented in serial order (even if the underlying hardware
does not ensure ordering).

Joe Gwinn

Re: Tracking bug report frequency

<ud8j71$26ebk$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128208&group=sci.electronics.design#128208

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 5 Sep 2023 18:04:29 -0700
Organization: A noiseless patient Spider
Lines: 59
Message-ID: <ud8j71$26ebk$1@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
<j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>
<g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com> <ud7mug$22cip$1@dont-email.me>
<3p9ffidcre31qmnsjekc8quki441k4akm4@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 6 Sep 2023 01:04:34 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="a85265e4fb42d336ad6110da9fce2352";
logging-data="2308468"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+3R6q1uIiZCeWij4SBdzHO"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.2.2
Cancel-Lock: sha1:ezjkqwWjfXNx/j5Fa6K7ZVNBp9c=
In-Reply-To: <3p9ffidcre31qmnsjekc8quki441k4akm4@4ax.com>
Content-Language: en-US
 by: Don Y - Wed, 6 Sep 2023 01:04 UTC

On 9/5/2023 3:14 PM, Joe Gwinn wrote:
>> Then you only need at most 40000 test vectors to take each branch of
>> every binary if statement (60000 if it is Fortran with 3 way branches
>> all used). That is a rather more tractable number (although still large).
>>
>> Any routine with too high a CCI count is practically certain to contain
>> latent bugs - which makes it worth looking at more carefully.
>
> I must say that I fail to see how this can overcome 10^6021 paths,
> even if it is wondrously effective, reducing the space to be tested by
> a trillion to one (10^-12) - only 10^6009 paths to explore.

You don't have to exercise every path with a unique set of stimuli.
The number of N-way branches only sets an upper limit on the
number of paths through a piece of code. The actual number of
paths can be much less:

if (x == 1)
doXisone;

if (x == 2)
doXistwo;

if (x == 3)
doXisthree;

has three 2-way branches but only three distinct paths
through the code (instead of 2^3 = 8)

The point of complexity metrics is to alert you that maybe you
have factored the problem poorly.

Or, failed to recognize some underlying relationship(s)
that could simplify the process.

What's more amusing is how few orgainzations USE any of these
measures. And, how poorly they institute design controls on
software, in general!

[I had a colleague ask me to help one of his clients
because their codebase "suddenly" stopped working.
It was "suggested" that an employee who had been "made
redundant" may have sabotaged the codebase.

"Simple: retrieve the snapshot that would have been current
on the day before he was aware that he would be terminated.
Then, step forward until the day he was actually *gone*
and look for changes..."

But, no controls on who had access to the repository (nor
guarantees that the identity of the ACTOR was accurately stored
with each ACTION. The employee had gone back and cooked
the contents of the repository so a more detailed forensic
examination was required; you couldn't just checkout a
particular release and be assured it represented the
state of the codebase on the assumed day!

Can YOUR developers dick with the repository in unexpected ways?]

Re: Tracking bug report frequency

<ud8j96$26ebk$2@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128209&group=sci.electronics.design#128209

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 5 Sep 2023 18:05:37 -0700
Organization: A noiseless patient Spider
Lines: 48
Message-ID: <ud8j96$26ebk$2@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
<j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>
<g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com>
<44oefip3u9v5vqbi1q7rahl442s00trmm2@4ax.com>
<q3affi9ajjqksgjd6qnkjhnf35nd3gos1m@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 6 Sep 2023 01:05:42 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="a85265e4fb42d336ad6110da9fce2352";
logging-data="2308468"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+EIvXdIWk4ZJXx5N3B2Wh8"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.2.2
Cancel-Lock: sha1:5Sd3VSfBjbrouQZ58W7trLkYyuw=
Content-Language: en-US
In-Reply-To: <q3affi9ajjqksgjd6qnkjhnf35nd3gos1m@4ax.com>
 by: Don Y - Wed, 6 Sep 2023 01:05 UTC

On 9/5/2023 3:33 PM, Joe Gwinn wrote:
> In recent FPGAs you have done, how many states and events (their
> Cartesian product being the entire state table) are there?

There is undoubtedly far more state *in* the CPU (neglecting
the application!) than in most FPGA designs!

> By the way, back in the day when I was specifying state machines
> (often for implementation in software), I had a rule that all cells
> would have an entry, even the combinations of state and event that
> "couldn't happen". This was essential for achieving robustness in
> practice.

It also helps if the machine can power up into a "random"
state (no "reset" to the state variables)... just let it run
for a few clocks until it finds its way to a known state.

> The state of the art in verifying safety-critical code (as in for
> safety of flight) is DO-178, which is an immensely heavy process. The
> original objective was a probability of error not exceeding 10^-6,
> this has been tightened to 10^-7 or 10^-8 because of the "headline
> risk".
>
> .<https://en.wikipedia.org/wiki/DO-178C>

But, this is still just a game of chance. And, with the number of
external things that can potentially impact the operation of the
state machine, even a provably correct implementation can fail
because the hardware isn't "ideal".

> Correctness can be mathematically proven only for extremely simple
> mechanisms, using a sharply restricted set of allowed operations. See

Exactly. Just like provably correct programs are extremely
simple.

And, if you try to *build* a (more complex) system atop that
proven (sub)system, you discover you're right back where you
started. (Else, if knowing the underlying system was
provably correct, you would rationalize that ANY program
is correct because the opcodes on which it relies are correctly
implemented!)

> The Halting Problem.
>
> .<https://en.wikipedia.org/wiki/Halting_problem#:~:text=The%20halting%20problem%20is%20undecidable,usually%20via%20a%20Turing%20machine.>

Re: Tracking bug report frequency

<ud8jf2$26ebk$3@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128210&group=sci.electronics.design#128210

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 5 Sep 2023 18:08:46 -0700
Organization: A noiseless patient Spider
Lines: 13
Message-ID: <ud8jf2$26ebk$3@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
<j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>
<g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com>
<44oefip3u9v5vqbi1q7rahl442s00trmm2@4ax.com>
<q3affi9ajjqksgjd6qnkjhnf35nd3gos1m@4ax.com>
<7rfffi10qg71cis68kktv81k37t2o210qf@4ax.com>
<6jgffi9cs9b3fh0sfdvskcau6krg9q4kvf@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 6 Sep 2023 01:08:51 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="a85265e4fb42d336ad6110da9fce2352";
logging-data="2308468"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18f5d3HXi0kS4oJM4GnUL0j"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.2.2
Cancel-Lock: sha1:4t0NDx7aZsrh1DlUU0gEssMAFAA=
Content-Language: en-US
In-Reply-To: <6jgffi9cs9b3fh0sfdvskcau6krg9q4kvf@4ax.com>
 by: Don Y - Wed, 6 Sep 2023 01:08 UTC

On 9/5/2023 5:11 PM, Joe Gwinn wrote:
> In software state machines, events are most often the arrival of
> messages, and the mechanism that provides these messages ensures that
> they are presented in serial order (even if the underlying hardware
> does not ensure ordering).

But software state machines can get EASILY creative in how they
process events. E.g., "go back from whence you came" (which isn't
present in most hardware machines)

A typical user interface can have hundreds of states, not counting
the information/controls they are "accumulating".

Re: Tracking bug report frequency

<ud8jln$26ebk$4@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128211&group=sci.electronics.design#128211

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: blockedo...@foo.invalid (Don Y)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Tue, 5 Sep 2023 18:12:19 -0700
Organization: A noiseless patient Spider
Lines: 30
Message-ID: <ud8jln$26ebk$4@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
<j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>
<g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com> <ud7mug$22cip$1@dont-email.me>
<3p9ffidcre31qmnsjekc8quki441k4akm4@4ax.com> <ud8j71$26ebk$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 6 Sep 2023 01:12:24 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="a85265e4fb42d336ad6110da9fce2352";
logging-data="2308468"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/clP5XSTqy7Hn2zyDVWQIn"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.2.2
Cancel-Lock: sha1:weSkWcsJrqPe67ve9reOgO0hK8s=
In-Reply-To: <ud8j71$26ebk$1@dont-email.me>
Content-Language: en-US
 by: Don Y - Wed, 6 Sep 2023 01:12 UTC

On 9/5/2023 6:04 PM, Don Y wrote:
> On 9/5/2023 3:14 PM, Joe Gwinn wrote:
>>> Then you only need at most 40000 test vectors to take each branch of
>>> every binary if statement (60000 if it is Fortran with 3 way branches
>>> all used). That is a rather more tractable number (although still large).
>>>
>>> Any routine with too high a CCI count is practically certain to contain
>>> latent bugs - which makes it worth looking at more carefully.
>>
>> I must say that I fail to see how this can overcome 10^6021 paths,
>> even if it is wondrously effective, reducing the space to be tested by
>> a trillion to one (10^-12) - only 10^6009 paths to explore.
>
> You don't have to exercise every path with a unique set of stimuli.
> The number of N-way branches only sets an upper limit on the
> number of paths through a piece of code.  The actual number of
> paths can be much less:
>
> if (x == 1)
>    doXisone;
>
> if (x == 2)
>    doXistwo;
>
> if (x == 3)
>    doXisthree;

actually, four

Re: Tracking bug report frequency

<ud9efg$2e9up$1@dont-email.me>

  copy mid

https://www.novabbs.com/tech/article-flat.php?id=128219&group=sci.electronics.design#128219

  copy link   Newsgroups: sci.electronics.design
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: '''newsp...@nonad.co.uk (Martin Brown)
Newsgroups: sci.electronics.design
Subject: Re: Tracking bug report frequency
Date: Wed, 6 Sep 2023 09:49:48 +0100
Organization: A noiseless patient Spider
Lines: 98
Message-ID: <ud9efg$2e9up$1@dont-email.me>
References: <ud4m67$1g6me$1@dont-email.me> <ud7621$1vf3l$1@dont-email.me>
<j0jefit6b6g70trk4ev17eui0snvru5usd@4ax.com>
<g8lefipq5sg6m1eeremcpo7qb7m8nij67o@4ax.com> <ud7mug$22cip$1@dont-email.me>
<3p9ffidcre31qmnsjekc8quki441k4akm4@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 6 Sep 2023 08:49:52 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="ca8d4399e31f62c50c0e06713b8e40d9";
logging-data="2566105"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19suXsEngYmZzIEN+gLN29a5eZNVsKEdkjf5514m/Wavg=="
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.15.0
Cancel-Lock: sha1:x24oz6r9j3NTlJ/jgAq+mP0r5WY=
Content-Language: en-GB
In-Reply-To: <3p9ffidcre31qmnsjekc8quki441k4akm4@4ax.com>
 by: Martin Brown - Wed, 6 Sep 2023 08:49 UTC

On 05/09/2023 23:14, Joe Gwinn wrote:
> On Tue, 5 Sep 2023 18:02:05 +0100, Martin Brown
> <'''newspam'''@nonad.co.uk> wrote:
>
>> On 05/09/2023 17:45, Joe Gwinn wrote:

>>> calculator, so we must resort to logarithms, yielding 10^6021, which
>>> is a *very* large number. The age of the Universe is only 14 billion
>>> years, call it 10^10 years, so one would never be able to test even a
>>> tiny fraction of the possible paths.
>>
>> McCabe's complexity metric provides a way to test paths in components
>> and subsystems reasonably thoroughly and catch most of the common
>> programmer errors. Static dataflow analysis is also a lot better now
>> than in the past.
>>
>> Then you only need at most 40000 test vectors to take each branch of
>> every binary if statement (60000 if it is Fortran with 3 way branches
>> all used). That is a rather more tractable number (although still large).
>>
>> Any routine with too high a CCI count is practically certain to contain
>> latent bugs - which makes it worth looking at more carefully.
>
> I must say that I fail to see how this can overcome 10^6021 paths,
> even if it is wondrously effective, reducing the space to be tested by
> a trillion to one (10^-12) - only 10^6009 paths to explore.

It is a divide and conquer strategy. It guarantees to execute every path
at least once and common core paths many times with different data. The
number of test vectors required scales as log2 of the number of paths.

That is an enormous reduction in the state space and makes coverage
testing possible. There are even some automatic tools that can help
create the test vectors now. Not a recommendation but just to make you
aware of some of the options for this sort of thing.

www.accelq.com/blog/test-coverage-techniques/

Here is a simple example for N = 5 (you wouldn't code it this way)

if (i<16)
{ if (i<8)
{
if (i<4)
{
if (i<2)
{
if (i<1) //zero
else // one
}
else
{
if (i<3) // two
else // three
}
else
{
}
}
else
{
}
}
else
{
}
} else
{ }

So that at each level i=0 ..N in the trivial example there are 2^N if
statements to select between numbers in the range 0 to 31 inclusive.
There is a deliberate error left in.

Counted your way there are 2^(N+1)-1 if statements and so 2^(2^(N+1))
distinct paths through the software (plus a few more with invalid data).

However integers -1 through 2^N will be sufficient to explore every path
at least once and test for high/low fence post errors.

Concrete example of N = 5
total if statements 63
naive paths through code 2^63 ~ 10^19
CCI test vectors to test every path 34

The example is topologically equivalent to real* code you merely have to
construct input data that will force execution down each binary choice
in turn at every level. Getting the absolute minimum number of test
vectors for full coverage is a much harder problem but a good enough
solution is possible in most practical cases.

--
Martin Brown

*real code can be grubby in reality with different depths of tree.
(I'd hope that few routines go deeper than 5 nested if statements)

Pages:12
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor