Software bug

The effects of a software bug range from minor (such as a misspelled word in the user interface) to severe (such as frequent crashing).In 2002, a study commissioned by the US Department of Commerce's National Institute of Standards and Technology concluded that "software bugs, or errors, are so prevalent and so detrimental that they cost the US economy an estimated $59 billion annually, or about 0.6 percent of the gross domestic product".Mistake metamorphism (from Greek meta = "change", morph = "form") refers to the evolution of a defect in the final stage of software deployment.In 2011, after receiving scrutiny from US Senator Al Franken for recording and storing users' locations in unencrypted files,[9] 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.For example, the Java does not support pointer arithmetic which is generally fast, but is considered dangerous; relatively easy to cause a major bug.But this code always executes foo: A convention that tends to prevent this particular issue is to require braces for a block even if it has just one line.Tools for static code analysis help developers by inspecting the program text beyond the compiler's capabilities to spot potential problems.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”.As an alternative to using a debugger, code may be instrumented with logic to output debug information to trace program execution and view values.Since the 1990s, particularly following the Ariane 5 Flight 501 disaster, interest in automated aids to debugging rose, such as static code analysis by abstract interpretation.[17] A tracked item is often called bug, defect, ticket, issue, feature, or for agile software development, story or epic.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 1978, Lientz et al. showed that the median of projects invest 17 percent of the development effort in bug fixing.[28] Another study in 1990 reported that exceptionally good software development processes can achieve deployment failure rates as low as 0.1 per 1000 SLOC.[29] This figure is iterated in literature such as Code Complete by Steve McConnell,[30] and the NASA study on Flight Software Complexity.[34] Such a bug can be from a lack of awareness of the qualities of the data storage such as a loss of precision due to rounding, numerically unstable algorithms, arithmetic overflow and underflow, or from lack of awareness of how calculations are handled by different software coding languages such as division by zero which in some languages may throw an exception, and in others may return a special value such as NaN or infinity.[40] Government researchers, companies, and cyber security experts are the people who typically discover software flaws.
Error resulting from a software bug displayed on two screens at La Croix de Berny station in France
Example bug history ( GNU Classpath project data). A new bug is initially unconfirmed. Once reproducibility is confirmed, it is changed to confirmed . Once the issue is resolved, it is changed to fixed .
vectorial version
vectorial version
MediaWikiSoftware developmentData modelingProcessesRequirementsDesignConstructionEngineeringTestingDebuggingDeploymentMaintenanceCleanroomIncrementalPrototypingSpiralV modelWaterfallMethodologiesDevOpsKanbanLean SDConfiguration managementDocumentationProject managementQuality assuranceUser experienceStand-upBuild automationCompilerDebuggerGUI builderInfrastructure as codeProfilerRelease automationUML ModelingIEEE standardsISO 9001ISO/IEC standardsSWEBOKArtificial intelligenceComputer scienceElectrical and electronics engineeringOutline of software developmentcomputer softwarecomputer programuser interfacecrashingDepartment of CommerceNational Institute of Standards and TechnologyTherac-25 radiation therapy machineEuropean Space AgencyAriane 5 rocket was destroyedRAF Chinook helicopter crashedengine-control computerBritish Post Office scandalcoverupAl FrankenCenter for Democracy and TechnologyLa Croix de Berny stationsoftware development processprogramming languagestype systemnamespacesmodular programmingpointerbounds checkingcompiledruntimeinterpretedprogramming styledefensive programmingcode reviewprogram specificationcombinatorial explosionindeterminacysoftware testingAgile software developmenttest-driven developmentunit testsstatic code analysishalting problembottlenecksOpen sourceEric S. RaymondLinus's lawopen-source softwareElias Levysoftware development lifecycleMaurice Wilkesconsolewindowlog filehardwarerenderinglogic errorTherac-25race conditionheisenbugsHeisenberg uncertainty principleAriane 5 Flight 501abstract interpretationembedded systemwork aroundGNU Classpathtrack their workloadcustomer servicetrack user feedbackversion numbertriageundocumented featurehuman spaceflightaviationnuclear powerhealth carepublic transportautomotive safetyGitHubGoddard Space Flight CenterCode CompleteSteve McConnellfirmwareIBM WheelwriterSpace Shuttleloss of precisionroundingnumerically unstablearithmetic overflowunderflowcontrol flowinfinite loopingrecursionconditionalcomparison operatoroff-by-one errorIncompatiblecommunications protocolDeadlockcritical sectionsmutual exclusionsTime-of-check-to-time-of-useRuntime errorNull pointeruninitialized variabledata typepacked decimalbinary-coded decimalAccess violationsmemoryfile handlesBuffer overflowstorage violationsecurity bugsstack overflowSyntax errorDon't Repeat YourselfNew AmericaCongressunofficial Pokémon speciesMissingNo.HAL 900099 LuftballonsOffice Spacesalami slicingEllen UllmanControl Alt DeleteAnti-patternAutomatic bug fixingBug bounty programGlitch removalHardware bugISO/IEC 9126List of software bugsOrthogonal Defect ClassificationRacetrack problemRISKS DigestSingle-event upsetSoftware defect indicatorSoftware regressionSoftware rotLeveson, Nancy G.ComputerIEEE Computer SocietyThe European Space AgencySimon RogersonHumphrey, Watts S.Software Engineering InstituteComputerworldWayback MachineThe Cathedral and the BazaarO'Reilly MediaDefense Systems Management CollegeThe Free PressNext GenerationMills, Harlan D.IEEE SoftwareMcConnell, Steven C.CiteSeerXPicadorInformation securityComputer securityAutomotive securityCybercrimeCybersex traffickingComputer fraudCybergeddonCyberterrorismCyberwarfareElectronic warfareInformation warfareInternet securityMobile securityNetwork securityCopy protectionDigital rights managementThreatsAdwareAdvanced persistent threatArbitrary code executionBackdoorsHardware backdoorsCode injectionCrimewareCross-site scriptingCross-site leaksDOM clobberingHistory sniffingCryptojackingBotnetsData breachDrive-by downloadBrowser Helper ObjectsVirusesData scrapingDenial-of-service attackEavesdroppingEmail fraudEmail spoofingExploitsHacktivismInfostealerInsecure direct object referenceKeystroke loggersMalwarePayloadPhishingPolymorphic enginePrivilege escalationRansomwareRootkitsScarewareShellcodeSpammingSocial engineeringSpywareTrojan horsesHardware TrojansRemote access trojansVulnerabilityWeb shellsSQL injectionRogue security softwareZombieApplication securitySecure codingSecure by designMisuse caseComputer access controlAuthenticationMulti-factor authenticationAuthorizationComputer security softwareAntivirus softwareSecurity-focused operating systemData-centric securitySoftware obfuscationData maskingEncryptionFirewallIntrusion detection systemHost-based intrusion detection systemAnomaly detectionInformation security managementInformation risk managementSecurity information and event managementRuntime application self-protectionSite isolation