俄罗斯人是什么人种| 妒忌是什么意思| 方兴未什么| 长白头发缺什么维生素| xxoo什么意思| 可心是什么意思| 常吃海带有什么好处| 含义是什么意思| pigeon是什么牌子| 空调除湿是什么标志| 血小板低吃什么补得快| 生殖科检查什么| 舌苔厚黄是怎么回事吃什么药| 长痘是什么原因| 吃什么容易导致流产| 岬是什么意思| 视力5.3是什么概念| 血清胰岛素测定查什么| 摇头晃脑是什么生肖| 女孩子为什么会痛经| 梨花是什么颜色| 为什么没人敢动景甜| 懵的意思是什么| 风流倜傥是什么意思| 左下腹痛是什么原因| 下肢血管堵塞吃什么药| 面瘫是什么引起的| 肚子发胀是什么原因| 卵生是什么意思| gy是什么意思| 摩羯座和什么座最配对| 急性阑尾炎什么症状| 双瞳电影到底讲了什么| iris是什么意思啊| 白手起家是什么生肖| 什么叫反式脂肪| t代表什么| 贝母和川贝有什么区别| 女性分泌物少是什么原因| 釜底抽薪是什么意思| 杺是什么意思| 月经褐色是什么原因| 安慰什么意思| 4月什么星座| 农业户口和非农业户口有什么区别| 水瓶女喜欢什么样的男生| kj是什么单位| 做妇科检查前需要注意什么| 什么叫醪糟| 熬夜吃什么好| 铁罗汉是什么茶| 查心电图挂什么科| 直接胆红素偏高是什么意思| 碳酸氢铵是什么| 梦见粉条是什么意思| 利有攸往是什么意思| 为什么不能用红笔写名字| 面瘫吃什么药| 忠厚是什么意思| 什么是脂肪瘤| 七月七是什么星座| 咳嗽有痰吃什么药效果好| 什么动物吃猫| 莫名其妙的名是什么意思| 什么是人大代表| 土豆与什么食物相克| 砚字五行属什么| 孩子肚子疼挂什么科| 四月28日是什么星座| 通讯地址是什么意思| 磁场是什么| 治标不治本是什么意思| 手莫名其妙的肿了因为什么| 三白眼是什么意思| 超五行属什么| 长期口臭吃什么药| 干什么呢| 耳膜破了是什么感觉| 医生是什么生肖| 梁伟文 为什么叫林夕| 江西的简称是什么| 盆腔炎用什么药最好| 晚上尿床是什么原因| 减肥吃什么最好| 什么的夏夜| 循证是什么意思| 路征和景甜什么关系| 女兔配什么属相最好| 叶黄素是什么东西| 百合花是什么颜色的| 24节气分别是什么| 梦见很多棺材是什么征兆| 鲤鱼喜欢吃什么食物| 无忧什么意思| 自身免疫性疾病是什么意思| 接踵而至是什么意思| 叉烧炒什么菜好吃| 娃娃脸适合什么发型| 喝什么可以解酒| 肉苁蓉有什么功效| 孕反应最早什么时候开始| 软文什么意思| 什么是佝偻病| 最贵的玉是什么玉| 下降头是什么意思| 木克什么| btc是什么货币| 逗闷子是什么意思| 痈是什么意思| 脚气缺什么维生素| 做梦掉牙齿是什么预兆| 梦见买馒头是什么意思| 梦见买面条有什么预兆| 晚上8点是什么时辰| 小狗可以吃什么| 男性什么适合长期泡水喝| 硬下疳是什么样子| 木瓜不能和什么一起吃| 早餐吃什么比较好| 心率快吃什么中成药| 蒜薹和蒜苔有什么区别| 黄体破裂吃什么药| 鹦鹉叫什么名字好听| 黄柏泡水喝有什么功效| 膝盖疼挂什么科| 脚指甲发白是什么原因| 猪肉炒什么好吃| 喝什么解酒最快最有效| 澜字五行属什么| 连续做噩梦是什么原因| 血糖的单位是什么| 狐狸的尾巴有什么作用| 糖类抗原724偏高是什么原因| 胬肉是什么| 上寒下热体质吃什么中成药| 牛子是什么意思| plt是什么意思| 血糖偏高可以吃什么水果| 眼皮浮肿是什么原因引起的| 脚底有痣代表什么意思| napoleon是什么酒| 259是什么意思| 覆水难收什么意思| 哥哥的孩子叫我什么| 潮汕立冬吃什么| 泌乳素高有什么症状| 意字五行属什么| 溜车是什么意思| 手脚发麻什么原因| 四川大学校长什么级别| 干巴爹什么意思| 腰脱什么症状| 吃什么东西最营养| 小圆细胞阳性什么意思| 庭字五行属什么| 加鸡腿什么意思| syphilis是什么意思| 79是什么意思| d是什么单位| 吃驼奶粉有什么好处| 阿尔马尔是什么药| 缺锌有什么表现和症状| 缺蛋白质吃什么补得快| 肠粘连有什么症状| 诚五行属什么| dr是什么检查项目| 水煮鱼一般用什么鱼| 白羊女跟什么星座最配| 八月节是什么节| 白矾是什么| 蚊子喜欢什么血型的人| 脱臼是指什么从什么中滑脱| 高血压早餐吃什么好| 腹泻吃什么药最有效| 女生喜欢什么礼物| 狗不吃饭是什么原因| 多管闲事是什么意思| chop是什么意思| 成都有什么区| 什么是闰年什么是平年| 反流性食管炎吃什么药最有效| 为什么丰胸霜一抹就变大| 女孩叫兮兮是什么意思| 11.22是什么星座| 生姜黄叶病用什么药| 红楼梦为什么叫石头记| 8是什么意思| 女人梦见蛇预示着什么| 小肚鸡肠是什么意思| 什么颜色属火| 下元节是什么节日| 长江后浪推前浪是什么意思| 过敏输液输什么药好| 便秘吃什么能通便| 马路杀手是什么意思| 测血型挂什么科| 劼字取名的寓意是什么| 和南圣众是什么意思| 小姑娘月经推迟不来什么原因| konka是什么牌子| dic是什么病| nt和唐筛有什么区别| 晨字属于五行属什么| 相思什么意思| 毫无违和感是什么意思| 儿女双全是什么意思| 茄子什么人不能吃| 施华洛世奇水晶是什么材质| 玛瑙是什么材质| 冰丝和天丝有什么区别| 勇气是什么意思| 梦到吃螃蟹是什么意思| 卫生巾有什么用| 七里香是什么| 渗湿是什么意思| 口红用什么能洗掉| 负荆请罪是什么意思| 什么是夫妻| 小腿外侧是什么经络| 司是什么级别| 梦到死去的亲人是什么意思| 104是什么意思| 什么是碳水化合物食物| 甲肝戊肝是什么病| 草字头加个弓念什么| 什么东西能美白| 村支部书记是什么级别| 媚字五行属什么| 坐飞机不能带什么东西| 眼压是什么意思| 梦见手链断了是什么意思| 甲流乙流吃什么药| 83年属什么生肖| 小仙女是什么意思| 周杰伦什么学历| 711是什么星座| 做梦梦到和别人吵架是什么意思| 灵魂伴侣是指什么意思| 属鼠女和什么属相最配| 尿红细胞阳性什么意思| 刘封为什么不救关羽| 乳糖不耐受喝什么牛奶| 放屁臭鸡蛋味什么原因| 为什么不建议小孩吃罗红霉素| 身家是什么意思| 焦距是什么意思| 循环系统包括什么| eob是什么意思| 星月菩提是什么材质| 类风湿为什么反复发烧| 身体寒湿重吃什么好| 海蜇是什么动物| c14阳性 是什么意思| 吃避孕药有什么好处| 守株待兔是什么生肖| 行号是什么| 静五行属性是什么| ab型和b型生的孩子是什么血型| 做梦梦到和别人吵架是什么意思| 什么的沙滩| 钥字五行属什么| vad是什么意思| 什么是性侵| 人参有什么功效| 百度Jump to content

吕剧重点剧目《大河开凌》启动排练 4月27日首演

From Wikipedia, the free encyclopedia
百度 在作品初步成型后,恰逢他们奔赴大不列颠启动摩登乐旅,藉此契机,痛仰乐队来到曾经服务过Coldplay、Doves、TheSmith、NewOrder、Pulp等乐队的录音棚ParrStreetStudios(帕尔街录音棚)完成了这首歌曲的录制,同时,乐队也特别邀请了摇滚老炮儿侯牧人的女儿侯祖辛来执导了这部作品的MV。

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

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".[1]

Since the 1950s, some computer systems have been designed to detect or auto-correct various software errors during operations.

History

[edit]

Terminology

[edit]

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.[2]

Different stages of a mistake in the development cycle may be described as mistake,[3]:?31?anomaly,[3]:?10? fault,[3]:?31? failure,[3]:?31? error,[3]:?31? exception,[3]:?31? crash,[3]:?22? glitch, bug,[3]:?14? defect, incident,[3]:?39? or side effect.

Examples

[edit]

Software bugs have been linked to disasters.

Controversy

[edit]

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.[8]

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,[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."[10]

Prevention

[edit]
Error resulting from a software bug displayed on two screens at La Croix de Berny station in France

Preventing bugs as early as possible in the software development process is a target of investment and innovation.[11][12]

Language support

[edit]

Newer programming languages tend to be designed to prevent common bugs based on vulnerabilities of existing languages. Lessons learned from older languages such as BASIC and C are used to inform the design of later languages such as C# and Rust.

A compiled language allows for detecting some typos (such as a misspelled identifier) before runtime which is earlier in the software development process than for an interpreted language.

Languages may include features such as a static type system, restricted namespaces and modular programming. For example, for a typed, compiled language (like C):

float num = "3";

is syntactically correct, but fails type checking since the right side, a string, cannot be assigned to a float variable. Compilation fails – forcing this defect to be fixed before development progress can resume. With an interpreted language, a failure would not occur until later at runtime.

Some languages exclude features that easily lead to bugs, at the expense of slower performance – the principle being that it is usually better to write simpler, slower correct code than complicated, buggy code. For example, Java does not support pointer arithmetic which can be very fast but may lead to memory corruption or segmentation faults if not used with great caution.

Some languages include features that add runtime overhead in order to prevent common bugs. For example, many languages include runtime bounds checking and a way to recover from out-of-bounds errors instead of crashing.

Techniques

[edit]

Style guidelines and defensive programming can prevent easy-to-miss typographical errors (typos).

For example, most C-family programming languages allow the omission of braces around an instruction block if there's only a single instruction. The following code executes function foo only if condition is true:

if (condition)
    foo();

But this code always executes foo:

if (condition);
   foo();

Using braces - even if they're not strictly required - reliably prevents this error:

if (condition) {
    foo();
}

Enforcement of conventions may be manual (i.e. via code review) or via automated tools such as linters.

Specification

[edit]

Some[who?] contend that writing a program specification, which states the intended behavior of a program, can prevent bugs. Others[who?], however, contend that formal specifications are impractical for anything but the shortest programs, because of problems of combinatorial explosion and indeterminacy.

Software testing

[edit]

One goal of software testing is to find bugs. Measurements during testing can provide an estimate of the number of likely bugs remaining. This becomes more reliable the longer a product is tested and developed.[citation needed]

Agile practices

[edit]

Agile software development may involve frequent software releases with relatively small changes. Defects are revealed by user feedback.

With test-driven development (TDD), unit tests are written while writing the production code, and the production code is not considered complete until all tests have been written and complete successfully.

Static analysis

[edit]

Tools for static code analysis help developers by inspecting the program text beyond the compiler's capabilities to spot potential problems. Although in general the problem of finding all programming errors given a specification is not solvable (see halting problem), these tools exploit the fact that human programmers tend to make certain kinds of simple mistakes when writing software.

Instrumentation

[edit]

Tools to monitor the performance of the software as it is running, either specifically to find problems such as bottlenecks or to give assurance as to correct working, may be embedded in the code explicitly (perhaps as simple as a statement saying PRINT "I AM HERE"), or provided as tools. It is often a surprise to find where most of the time is taken by a piece of code, and this removal of assumptions might cause the code to be rewritten.

Open source

[edit]

Open source development allows anyone to examine source code. A school of thought popularized by Eric S. Raymond as Linus's law says that popular open-source software has more chance of having few or no bugs than other software, because "given enough eyeballs, all bugs are shallow".[13] 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."[14] An example of an open-source software bug was the 2008 OpenSSL vulnerability in Debian.

Debugging

[edit]

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”.[15]

A program known as a debugger can help a programmer find faulty code by examining the inner workings of a program such as executing code line-by-line and viewing variable values.

As an alternative to using a debugger, code may be instrumented with logic to output debug information to trace program execution and view values. Output is typically to console, window, log file or a hardware output (i.e. LED).

Some contend that locating a bug is something of an art.

It is not uncommon for a bug in one section of a program to cause failures in a different section,[citation needed] thus making it difficult to track, in an apparently unrelated part of the system. For example, an error in a graphics rendering routine causing a file I/O routine to fail.

Sometimes, the most difficult part of debugging is finding the cause of the bug. Once found, correcting the problem is sometimes easy if not trivial.

Sometimes, a bug is not an isolated flaw, but represents an error of thinking or planning on the part of the programmers. Often, such a logic error requires a section of the program to be overhauled or rewritten.

Some contend that as a part of code review, stepping through the code and imagining or transcribing the execution process may often find errors without ever reproducing the bug as such.

Typically, the first step in locating a bug is to reproduce it reliably. If unable to reproduce the issue, a programmer cannot find the cause of the bug and therefore cannot fix it.

Some bugs are revealed by inputs that may be difficult for the programmer to re-create. One cause of the Therac-25 radiation machine deaths was a bug (specifically, a race condition) that occurred only when the machine operator very rapidly entered a treatment plan; it took days of practice to become able to do this, so the bug did not manifest in testing or when the manufacturer attempted to duplicate it. Other bugs may stop occurring whenever the setup is augmented to help find the bug, such as running the program with a debugger; these are called heisenbugs (humorously named after the Heisenberg uncertainty principle).

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.[16]

Often, bugs come about during coding, but faulty design documentation may cause a bug. In some cases, changes to the code may eliminate the problem even though the code then no longer matches the documentation.

In an embedded system, the software is often modified to work around a hardware bug since it's cheaper than modifying the hardware.

Management

[edit]
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.

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.[17]

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.

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 investigation into cause. Triage may occur regularly. Triage generally consists of reviewing new bugs since the previous triage and maybe all open bugs. Attendees may include project manager, development manager, test manager, build manager, and technical experts.[18][19]

Severity

[edit]

Severity is a measure of impact the bug has.[20] 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. Severity levels might be 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.[21] The severity of a bug may be a separate category to its priority for fixing, 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.[22][23]

Priority

[edit]

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 with 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

[edit]

Bugs of sufficiently high priority may warrant a special release which is sometimes called a patch.

Maintenance release

[edit]

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

[edit]

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[24]
  • The bug is already fixed in an upcoming release, and it is not of high priority
  • The changes required to fix the bug are too costly or affect too many other components, requiring a major testing activity
  • 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"[25] A misunderstanding exists between expected and actual behavior or undocumented feature

Implications

[edit]

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 the development effort in bug fixing.[26] In 2020, research on GitHub repositories showed the median is 20%.[27]

Cost

[edit]

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.[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.[31] 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.[29]

Benchmark

[edit]

To facilitate reproducible research on testing and debugging, researchers use curated benchmarks of bugs:

  • the Siemens benchmark
  • ManyBugs[32] is a benchmark of 185 C bugs in nine open-source programs.
  • Defects4J[33] is a benchmark of 341 Java bugs from 5 open-source projects. It contains the corresponding patches, which cover a variety of patch type.

Types

[edit]

Some notable types of bugs:

Design error

[edit]

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

[edit]

Numerical operations can result in unexpected output, slow processing, or crashing.[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.

Control flow

[edit]

A control flow bug, a.k.a. logic error, is characterized by code that does not fail with an error, but does not have the expected behavior, such as infinite looping, infinite recursion, incorrect comparison in a conditional such as using the wrong comparison operator, and the off-by-one error.

Interfacing

[edit]
  • Incorrect API usage.
  • Incorrect protocol implementation.
  • Incorrect hardware handling.
  • Incorrect assumptions of a particular platform.
  • Incompatible systems. A new API or communications protocol may seem to work when two systems use different versions, but errors may occur when a function or feature implemented in one version is changed or missing in another. In production systems which must run continually, shutting down the entire system for a major update may not be possible, such as in the telecommunication industry[35] or the internet.[36][37][38] 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 which may be difficult to find and repair.
  • Incorrect code annotations.

Concurrency

[edit]

Resourcing

[edit]

Syntax

[edit]
  • 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

[edit]
  • Unpropagated updates; e.g. 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

[edit]

"Bugs in the System" report

[edit]

The Open Technology Institute, run by the group, New America,[39] 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."[40] 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.[40]

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.[40]

The Computer Fraud and Abuse Act, the Digital Millennium Copyright Act and the Electronic Communications Privacy Act criminalize and create civil penalties for actions that security researchers routinely engage in while conducting legitimate security research, the report said.[40]

[edit]
  • 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.[41]
  • 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

[edit]

References

[edit]
  1. ^ "Software bugs cost US economy dear". June 10, 2009. Archived from the original on June 10, 2009. Retrieved September 24, 2012.
  2. ^ "Testing experience : te : the magazine for professional testers". Testing Experience. Germany: testingexperience: 42. March 2012. ISSN 1866-5705. (subscription required)
  3. ^ a b c d e f g h i 610.12-1990: IEEE Standard Glossary of Software Engineering Terminology. IEEE. December 31, 1990. doi:10.1109/IEEESTD.1990.101064. ISBN 978-0-7381-0391-4.
  4. ^ Leveson, Nancy G.; Turner, Clark S. (1 July 1993). "An Investigation of the Therac-25 Accidents". Computer. 26 (7). IEEE Computer Society: 18–41. doi:10.1109/MC.1993.274940. eISSN 1558-0814. ISSN 0018-9162. LCCN 74648480. OCLC 2240099. S2CID 9691171.
  5. ^ "ARIANE 5 Flight 501 Failure Report by the Inquiry Board". The European Space Agency. Ariane 501 Inquiry Board report (33–1996). July 23, 1996.
  6. ^ Simon Rogerson (April 2002). "The Chinook Helicopter Disaster". IMIS Journal. 12 (2). Archived from the original on September 15, 1993. Retrieved May 27, 2024. Alt URL
  7. ^ "Post Office scandal ruined lives, inquiry hears". BBC News. February 14, 2022.
  8. ^ Humphrey, Watts S. (April 1, 1999). "News at SEI – Bugs or Defects?" (PDF). News at SEI. Software Engineering Institute. page 73 of 154 in PDF file. Archived (PDF) from the original on October 15, 2023. Retrieved February 2, 2025. (linked from News at SEI 1999 Archive)
  9. ^ Gregg Keizer (April 21, 2011). "Apple faces questions from Congress about iPhone tracking". Computerworld.
  10. ^ Gregg Keizer (April 27, 2011). "Apple denies tracking iPhone users, but promises changes". Computerworld.
  11. ^ Dorota Huizinga; Adam Kolawa (September 2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. ISBN 978-0-470-04212-0.
  12. ^ McDonald, Marc; Musson, Robert; Smith, Ross (2007). The Practical Guide to Defect Prevention. Microsoft Press. p. 480. ISBN 978-0-7356-2253-1.
  13. ^ "Release Early, Release Often" Archived May 14, 2011, at the Wayback Machine, Eric S. Raymond, The Cathedral and the Bazaar
  14. ^ "Wide Open Source" Archived September 29, 2007, at the Wayback Machine, Elias Levy, SecurityFocus, April 17, 2000
  15. ^ "Maurice Wilkes Quotes". QuoteFancy. Retrieved April 28, 2024.
  16. ^ "PolySpace Technologies history". christele.faure.pagesperso-orange.fr. Retrieved August 1, 2019.
  17. ^ Allen, Mitch (May–June 2002). "Bug Tracking Basics: A beginner's guide to reporting and tracking defects". Software Testing & Quality Engineering Magazine. Vol. 4, no. 3. pp. 20–24. Retrieved December 19, 2017.
  18. ^ Rex Black (2002). Managing The Testing Process (2nd ed.). Wiley India Pvt. Limited. p. 139. ISBN 978-8126503131. Retrieved June 19, 2021.
  19. ^ Chris Vander Mey (2012). Shipping Greatness - Practical Lessons on Building and Launching Outstanding Software, Learned on the Job at Google and Amazon. O'Reilly Media. pp. 79–81. ISBN 978-1449336608.
  20. ^ Soleimani Neysiani, Behzad; Babamir, Seyed Morteza; Aritsugi, Masayoshi (October 1, 2020). "Efficient feature extraction model for validation performance improvement of duplicate bug report detection in software bug triage systems". Information and Software Technology. 126: 106344. doi:10.1016/j.infsof.2020.106344. S2CID 219733047.
  21. ^ "5.3. Anatomy of a Bug". bugzilla.org. Archived from the original on May 23, 2013.
  22. ^ Jones, Wilbur D. Jr., ed. (1989). "Show stopper". Glossary: defense acquisition acronyms and terms (4 ed.). Fort Belvoir, Virginia: Department of Defense, Defense Systems Management College. p. 123. hdl:2027/mdp.39015061290758 – via Hathitrust.
  23. ^ Zachary, G. Pascal (1994). Show-stopper!: the breakneck race to create Windows NT and the next generation at Microsoft. New York: The Free Press. p. 158. ISBN 0029356717 – via archive.org.
  24. ^ "The Next Generation 1996 Lexicon A to Z: Slipstream Release". Next Generation. No. 15. March 1996. p. 41.
  25. ^ Carr, Nicholas (2018). "'It's Not a Bug, It's a Feature.' Trite – or Just Right?". wired.com.
  26. ^ Lientz, B. P.; Swanson, E. B.; Tompkins, G. E. (1978). "Characteristics of Application Software Maintenance". Communications of the ACM. 21 (6): 466–471. doi:10.1145/359511.359522. S2CID 14950091.
  27. ^ Amit, Idan; Feitelson, Dror G. (2020). "The Corrective Commit Probability Code Quality Metric". arXiv:2007.10912 [cs.SE].
  28. ^ "An Overview of the Software Engineering Laboratory" (PDF). Software Engineering Laboratory Series (SEL-94-005). December 1994.
  29. ^ a b Cobb, Richard H.; Mills, Harlan D. (1990). "Engineering software under statistical quality control". IEEE Software. 7 (6): 46. doi:10.1109/52.60601. ISSN 1937-4194. S2CID 538311 – via University of Tennessee – Harlan D. Mills Collection.
  30. ^ McConnell, Steven C. (1993). Code Complete. Redmond, Washington: Microsoft Press. p. 611. ISBN 978-1556154843 – via archive.org. (Cobb and Mills 1990)
  31. ^ Gerard Holzmann (March 5, 2009). "Appendix D – Software Complexity" (PDF). Final Report: NASA Study on Flight Software Complexity (Daniel L. Dvorak (Ed.)). NASA Office of Chief Engineer Technical Excellence Program.
  32. ^ Le Goues, Claire; Holtschulte, Neal; Smith, Edward K.; Brun, Yuriy; Devanbu, Premkumar; Forrest, Stephanie; Weimer, Westley (2015). "The ManyBugs and IntroClass Benchmarks for Automated Repair of C Programs". IEEE Transactions on Software Engineering. 41 (12): 1236–1256. doi:10.1109/TSE.2015.2454513. ISSN 0098-5589.
  33. ^ Just, René; Jalali, Darioush; Ernst, Michael D. (2014). "Defects4J: a database of existing faults to enable controlled testing studies for Java programs". Proceedings of the 2014 International Symposium on Software Testing and Analysis – ISSTA 2014. pp. 437–440. CiteSeerX 10.1.1.646.3086. doi:10.1145/2610384.2628055. ISBN 9781450326452. S2CID 12796895.
  34. ^ Anthony Di Franco; Hui Guo; Cindy Rubio-González (November 23, 2017). A comprehensive study of real-world numerical bug characteristics. 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE. doi:10.1109/ASE.2017.8115662.
  35. ^ Kimbler, K. (1998). Feature Interactions in Telecommunications and Software Systems V. IOS Press. p. 8. ISBN 978-90-5199-431-5.
  36. ^ Syed, Mahbubur Rahman (2001). Multimedia Networking: Technology, Management and Applications: Technology, Management and Applications. Idea Group Inc (IGI). p. 398. ISBN 978-1-59140-005-9.
  37. ^ Wu, Chwan-Hwa (John); Irwin, J. David (2016). Introduction to Computer Networks and Cybersecurity. CRC Press. p. 500. ISBN 978-1-4665-7214-0.
  38. ^ RFC 1263: "TCP Extensions Considered Harmful" quote: "the time to distribute the new version of the protocol to all hosts can be quite long (forever in fact). ... If there is the slightest incompatibly between old and new versions, chaos can result."
  39. ^ Wilson, Andi; Schulman, Ross; Bankston, Kevin; Herr, Trey. "Bugs in the System" (PDF). Open Policy Institute. Archived (PDF) from the original on September 21, 2016. Retrieved August 22, 2016.
  40. ^ a b c d Rozens, Tracy (August 12, 2016). "Cyber reforms needed to strengthen software bug discovery and disclosure: New America report – Homeland Preparedness News". Retrieved August 23, 2016.
  41. ^ Ullman, Ellen (2004). The Bug. Picador. ISBN 978-1-250-00249-5.
[edit]
木耳中毒什么症状 疹子长什么样 潘多拉魔盒是什么意思 一孕傻三年是什么意思 61是什么意思
医生会诊是什么意思 再接再励是什么意思 红烧肉配什么菜好吃 握手言和是什么意思 上午10点半是什么时辰
阿华田是什么饮料 公积金基数是什么意思 洛阳白马寺求什么最灵 孔雀开屏是什么意思 23岁属什么
后腰左侧疼痛是什么原因男性 吃什么促进新陈代谢 视力模糊是什么原因引起的 人体最大的免疫器官是什么 潜血试验阳性什么意思
小孩趴着睡觉是什么原因hcv7jop9ns3r.cn 巨蟹男和什么星座最配huizhijixie.com 生粉和淀粉有什么区别mmeoe.com 化疗吃什么补白细胞hcv9jop0ns9r.cn 手掌脱皮是什么原因hcv7jop9ns9r.cn
头疼头晕是什么原因hcv8jop8ns1r.cn 喜欢喝冰水是什么原因hcv8jop2ns9r.cn 春五行属什么hcv9jop4ns6r.cn 偏安一隅是什么意思hcv8jop1ns8r.cn 破溃是什么意思hcv9jop5ns3r.cn
道德绑架什么意思hcv9jop3ns3r.cn 儿童呕吐吃什么药hcv9jop2ns7r.cn 绿杨春属于什么茶hcv7jop5ns6r.cn 小狗驱虫用什么药hcv9jop2ns8r.cn 创伤急救的原则是什么gysmod.com
莓茶是什么茶hcv8jop1ns2r.cn 长鸡眼是什么原因hcv8jop8ns9r.cn 水银中毒会出现什么状况hcv8jop4ns3r.cn 牡丹鹦鹉吃什么helloaicloud.com 封闭针是什么药hcv9jop6ns0r.cn
百度