MarketSoftware bug
Company Profile

Software bug

A software bug is a defect (bug) in computer software. A computer program with many or serious bugs may be described as buggy.

Terminology
Mistake metamorphism (from Greek meta = "change", morph = "form") refers to the evolution of a defect in the final stage of software deployment. Transformation of a mistake committed by an analyst in the early stages of the software development lifecycle, which leads to a defect in the final stage of the cycle has been called mistake metamorphism. Different stages of a mistake in the development cycle may be described as mistake,{{cite book ==Examples==
Examples
Software bugs have been linked to disasters. • Software bugs in the Therac-25 radiation therapy machine were directly responsible for patient deaths in the 1980s. • In 1996, the European Space Agency's US$1 billion prototype Ariane 5 rocket was destroyed less than a minute after launch due to a bug in the on-board guidance computer program. • In 1994, an RAF Chinook helicopter crashed, killing 29; this was initially blamed on pilot error, but was later thought to have been caused by a software bug in the engine-control computer. ==Controversy==
Controversy
Sometimes the use of bug to describe the behavior of software is contentious due to perception. Some suggest that the term should be abandoned, contending that bug implies that the defect arose on its own, and push to use defect instead, since it more clearly indicates they are caused by a human. Some contend that bug may be used to cover up an intentional design decision. In 2011, after receiving scrutiny from US Senator Al Franken for recording and storing users' locations in unencrypted files,{{cite journal Apple called the behavior a bug. However, Justin Brookman of the Center for Democracy and Technology directly challenged that portrayal, stating, "I'm glad that they are fixing what they call bugs, but I take exception with their strong denial that they track users."{{cite journal ==Prevention==
Prevention
in France Preventing bugs as early as possible in the software development process is a target of investment and innovation. This assertion has been disputed, however: computer security specialist Elias Levy wrote that "it is easy to hide vulnerabilities in complex, little understood, and undocumented source code," because, "even if people are reviewing the code, that doesn't mean they're qualified to do so." An example of an open-source software bug was the 2008 OpenSSL vulnerability in Debian. ==Debugging==
Debugging
Debugging can be a significant part of the software development lifecycle. Maurice Wilkes, an early computing pioneer, described his realization in the late 1940s that "a good part of the remainder of my life was going to be spent in finding errors in my own programs". In an embedded system, the software is often modified to work around a hardware bug since software modifications can be cheaper and less disruptive than modifying the hardware. ==Management==
Management
project data). A new bug is initially unconfirmed. Once reproduced, it is changed to confirmed. Once the issue is resolved, it is changed to fixed. Bugs are managed via activities like documenting, categorizing, assigning, reproducing, correcting, and releasing the corrected code. Tools are often used to track bugs and other issues with software. Typically, different tools are used by the software development team to track their workload than by customer service to track user feedback. A tracked item is often called bug, defect, ticket, issue, feature, or for agile software development, story, or epic. Items are often categorized by aspects such as severity, priority, and version number(s) affected. In a process sometimes called triage, choices are made for each bug about whether and when to fix it based on information such as the bug's severity and priority and external factors such as development schedules. Triage generally does not include an investigation into the cause. Triage may occur regularly and minimally consists of reviewing new bugs since the previous triage, possibly extending to all open bugs. Attendees may include the project manager, the development manager, the test manager, the build manager, and technical experts. Severity Severity is a measure of the impact the bug has. This impact may be data loss, financial, loss of goodwill, and wasted effort. Severity levels are not standardized, but differ by context, such as industry and tracking tool. For example, a crash in a video game has a different impact than a crash in a bank server. Example severity level descriptions are crash or hang, no workaround (user cannot accomplish a task), has workaround (user can still accomplish the task), visual defect (a misspelling for example), or documentation error. Another example set of severities: critical, high, low, blocker, trivial. The severity of a bug may be the same category as its priority for being fixed, or the two may be quantified and managed separately. A bug severe enough to delay the release of the product is called a show stopper. Priority Priority describes the importance of resolving the bug in relation to other bugs. Priorities might be numerical, such as 1 through 5, or named, such as critical, high, low, and deferred. The values might be similar or identical to severity ratings, even though priority is a different aspect. Priority may be a combination of the bug's severity and the level of effort to fix. A bug with low severity but easy to fix may get a higher priority than a bug with moderate severity that requires significantly more effort to fix. Patch A bug of sufficiently high priority may warrant a special release to fix it. Such a release is sometimes called a patch. Maintenance release A software release that emphasizes bug fixes may be called a maintenance release to differentiate it from a release that emphasizes new features or other changes. Known issue It is common practice to release software with known, low-priority bugs or other issues. Possible reasons include but are not limited to: • A deadline must be met and resources are insufficient to fix all bugs by the deadline • The bug is already fixed in an upcoming release, and it is not of high priority • It may be suspected, or known, that some users are relying on the existing buggy behavior; a proposed fix may introduce a breaking change • The problem is in an area that will be obsolete with an upcoming release; fixing it is unnecessary • "It's not a bug, it's a feature" A misunderstanding exists between expected and actual behavior or undocumented features. Implications The amount and type of damage a software bug may cause affects decision-making, processes, and policy regarding software quality. In applications such as human spaceflight, aviation, nuclear power, health care, public transport, or automotive safety, since software flaws have the potential to cause human injury or even death, such software will have far more scrutiny and quality control than, for example, an online shopping website. In applications such as banking, where software flaws have the potential to cause serious financial damage to a bank or its customers, quality control is also more important than, say, a photo editing application. Other than the damage caused by bugs, some of their cost is due to the effort invested in fixing them. In 1978, Lientz et al. showed that the median of projects invest 17 percent of their development effort in bug fixing. In 2020, research on GitHub repositories showed the median is 20 percent. Cost In 1994, NASA's Goddard Space Flight Center managed to reduce their average number of errors from 4.5 per 1,000 lines of code (SLOC) down to 1 per 1000 SLOC. This figure is iterated in literature such as Code Complete by Steve McConnell, and the NASA study on Flight Software Complexity. Some projects even attained zero defects: the firmware in the IBM Wheelwriter typewriter which consists of 63,000 SLOC, and the Space Shuttle software with 500,000 SLOC. is a benchmark of 185 C bugs in nine open-source programs. • Defects4J is a benchmark of 341 Java bugs from 5 open-source projects. It contains the corresponding patches, which cover a variety of patch types. ==Types==
Types
Some notable types of bugs: Design error A bug can be caused by insufficient or incorrect design based on the specification. For example, given that the specification is to alphabetize a list of words, a design bug might occur if the design does not account for symbols, resulting in incorrect alphabetization of words with symbols. Arithmetic Numerical operations can result in unexpected output, slow processing, or crashing. or the internet. In this case, smaller segments of a large system are upgraded individually, to minimize disruption to a large network. However, some sections could be overlooked and not upgraded, and cause compatibility errors that may be difficult to find and repair. • Incorrect code annotations. ConcurrencyDeadlock a task cannot continue until a second finishes, but at the same time, the second cannot continue until the first finishes. • Race condition multiple simultaneous tasks compete for resources. • Errors in critical sections, mutual exclusions, and other features of concurrent processing. Time-of-check to time-of-use (TOCTOU) is a form of unprotected critical section. ResourcingNull pointer dereference. • Using an uninitialized variable. • Using an otherwise valid instruction on the wrong data type (see packed decimal/binary-coded decimal). • Access violations. • Resource leaks, where a finite system resource (such as memory or file handles) becomes exhausted by repeated allocation without release. • Buffer overflow, in which a program tries to store data past the end of allocated storage. This may or may not lead to an access violation or storage violation. These are frequently security bugs. • Excessive recursion which—though logically valid—causes stack overflow. • Use-after-free error, where a pointer is used after the system has freed the memory it references. • Double free error. Syntax • Use of the wrong token, such as performing assignment instead of equality test. For example, in some languages x=5 will set the value of x to 5 while x==5 will check whether x is currently 5 or some other number. Interpreted languages allow such code to fail. Compiled languages can catch such errors before testing begins. Teamwork • Unpropagated updates: for example, when a programmer changes "myAdd" but forgets to change "mySubtract", which uses the same algorithm. These errors are mitigated by the Don't Repeat Yourself philosophy. • Comments out of date or incorrect: many programmers assume the comments accurately describe the code. • Differences between documentation and product. ==In politics==
In politics
"Bugs in the System" report The Open Technology Institute, run by the group, New America, released a report "Bugs in the System" in August 2016 stating that U.S. policymakers should make reforms to help researchers identify and address software bugs. The report "highlights the need for reform in the field of software vulnerability discovery and disclosure." One of the report's authors said that Congress has not done enough to address cyber software vulnerability, even though Congress has passed a number of bills to combat the larger issue of cyber security. Government researchers, companies, and cyber security experts are the people who typically discover software flaws. The report calls for reforming computer crime and copyright laws. ==In popular culture==
In popular culture
• In video gaming, the term "glitch" is sometimes used to refer to a software bug. An example is the glitch and unofficial Pokémon species MissingNo. • In both the 1968 novel 2001: A Space Odyssey and the corresponding film of the same name, the spaceship's onboard computer, HAL 9000, attempts to kill all its crew members. In the follow-up 1982 novel, 2010: Odyssey Two, and the accompanying 1984 film, 2010: The Year We Make Contact, it is revealed that this action was caused by the computer having been programmed with two conflicting objectives: to fully disclose all its information, and to keep the true purpose of the flight secret from the crew; this conflict caused HAL to become paranoid and eventually homicidal. • In the English version of the Nena 1983 song 99 Luftballons (99 Red Balloons) as a result of "bugs in the software", a release of a group of 99 red balloons are mistaken for an enemy nuclear missile launch, requiring an equivalent launch response and resulting in catastrophe. • In the 1999 American comedy Office Space, three employees attempt (unsuccessfully) to exploit their company's preoccupation with the Y2K computer bug using a computer virus that sends rounded-off fractions of a penny to their bank account—a long-known technique described as salami slicing. • The 2004 novel The Bug, by Ellen Ullman, is about a programmer's attempt to find an elusive bug in a database application. • The 2008 Canadian film Control Alt Delete is about a computer programmer at the end of 1999 struggling to fix bugs at his company related to the year 2000 problem. ==See also==
tickerdossier.comtickerdossier.substack.com