On Wed, May 25, 2016 at 9:45 PM, Nicholas Nethercote <n.netherc...@gmail.com> wrote: > On Wed, May 25, 2016 at 6:58 AM, Lawrence Mandel <lman...@mozilla.com> wrote: >> "Crashes are caused by defects" >> >> Reading this I think it implies defects in Firefox. This is not always the >> case. Crashes are also the result of interactions with third party software. >> Both that that we designed for (like NPAPI plug-ins) and that we didn't (AV, >> malware), which you mention lower down in the doc. > > Fair enough. I've modified my terminology. I now talk about crash > "causes" as the most generic category, and reserve "defects" for > erronous code and hardware. > > <aside> > In general it's good to be careful with terminology when dealing with > bugs and crashes, because it can help clarify things. E.g. when > talking about buggy code, there are three stages for a "bug" to > manifest: > > - Erroneous code. When executed, it can (but doesn't necessarily) lead to... > - Erroneous runtime state. This can (but doesn't necessarily) lead to... > - Erronous runtime behaviour. This includes crashes, but also other things. > > At times "bug" and "buggy" are used to refer to all three. I tend to > use "defect" for erroneous code. People sometimes use "error" or > "fault" for erroneous behaviour. Erroneous runtime state is often > overlooked as a separate category, and the only specific term I've > heard for it is "infection" which I don't like much. > </aside> >
I realize this is bikeshed-y, but what I learnt in school (and what the SWEBOK [1] corroborates, on page 84 of the PDF version) is that "fault" refers to erroneous code, and "failure" refers to the erroneous runtime behavior. I concur that I've never heard of a specific term for erroneous runtime state. Quote from the SWEBOK: "Many terms are used in the software engineering literature to describe a malfunction: notably fault, failure, and error, among others. This terminology is precisely defined in [3, c2]. It is essential to clearly distinguish between the cause of a malfunction (for which the term fault will be used here) and an undesired effect observed in the system’s delivered service (which will be called a failure). Indeed there may well be faults in the software that never manifest themselves as failures (see Theoretical and Practical Limitations of Testing in section 1.2, Key Issues). Thus testing can reveal failures, but it is the faults that can and must be removed [3]. The more generic term defect can be used to refer to either a fault or a failure, when the distinction is not important [3]." [1] https://www.computer.org/web/swebok/v3 kats _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform