From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,9a0ff0bffdf63657 X-Google-Attributes: gidfac41,public X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public From: mfb@mbunix.mitre.org (Michael F Brenner) Subject: Re: Software landmines (loops) Date: 1998/09/07 Message-ID: <6t0m52$g0f@top.mitre.org>#1/1 X-Deja-AN: 388685900 References: <35f51e53.48044143@ Organization: The MITRE Corporation, Bedford Mass. Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-07T00:00:00+00:00 List-Id: Biju > The problem with such refactoring during maintenance is that it may > introduce new problems, and you need to do extensive testing to make > sure that you haven't broken anything. Often, this type of extensive > testing may not be feasible at all during maintenance, because of budget > and time constraints. This type of attitude may explain why new releases > of software (which are supposed to do bug fixing too) introduce more > bugs than the original version. I think you meant: this type of attitude (refactoring during maintenance) explains new bugs being released. However, I think this is what is true: this type of attitude (coding systems that are expensive to test automatically) explains new bugs being released. Most large systems have: no automated unit testing (all paths or all extreme values), no automated stress testing, no automated functional (requirements) testing, no automated regression (to previous baselines) testing, no automated hanging pointer testing, no automated performance testing, and no automated memory leakage measurement. Exits in the middle of the loop or any other syntactic feature used (gotos, nested tasking, complex expressions, high complexity measures, high lines of code, etc.) are all just noise compared to the lifecycle cost of not automatically testing for bugs, hanging pointers, and memory leakage. We should remove the log before worrying about the twig. Mike Brenner