Разница между ошибкой (багом) и дефектом (тоже багом)

Разница между ошибкой (багом) и дефектом (тоже багом)

Очередной сайт «Software Quality Assurance Interview Questions and Answers» подкинул то, над чем я когда-то искренне смеялся:

A fault in a program which causes the program to perform in an unintended or unanticipated manner.

If software misses some feature or function from what is there in requirement it is called as defect.

Причина смеха: это же взаимозаменяемые понятия.

Но, с точки зрения грамматики, разница есть.

Толковый словарь говорит, что разница в терминах есть:

  • Дефект
    • недостаток,
    • изъян,
    • повреждение.
    • неправильность в действиях, поступках, суждениях, мыслях.
    • отклонение от правильного употребления.
    • погрешность.
    • то, что невозможно рассчитать и предсказать заранее, опираясь на накопленные знания.

    По этим выкладкам, наиболее близкий перевод для ‘bug’ > ‘ошибка’.

    Нет. Сам по себе дефект не ошибка. Дефект возникает как следствие ошибки. Но они сопутствуют друг другу, поэтому могут быть восприняты совместно.

    В чем же их синонимность?

    Ошибка:

    грех, погрешность, заблуждение, неловкость, оплошность, опечатка, описка, отступление, промах, уклонение, упущение, неправильность, шероховатость, ложный шаг, провес, промер, просмотр, просчет, аномалия, уродливость. Сопутствующий термин: Недостаток.

    Недостаток:

    изъян, недосмотр, недочет, неисправность, неправильность, несовершенство, грех, порок, порча, повреждение, пробел, прореха, пятно, аномалия, дефект , слабость, слабое (больное) место, ахиллесова пята.

    Рассматривать эти термины совместно — можно. Подменять — нет.

    Баг = ошибка = дефект — в зависимости от контекста.

    Добавим перцу

    и поговорим как английские лорды с милордами о той же пошаговой стратегии определения терминов:

    Mistake

    Ошибка . Человеческое деяние, которое в конечном итоге привело к получению неверного результата.

    Сказал бы «неожиданного», но это уводит нас в другой контекст.

    В широком смысле — непреднамеренное отклонение от истины или правил.

    Оригинал: A human action that produces an incorrect result.

    Fault

    Дефект, изъян. Неверный шаг (или процесс, или определение данных) в компутерной программе. Первая причина для появления ошибки, потенциальная причина неисправности.

    Оригинал: An incorrect step, process, or data definition in a computer program. The outgrowth of the mistake, potentially leads to failure.

    Failure

    Неисправность. Неправильный результат. Собственно, результат дефекта.

    Оригинал: An incorrect result. The result of the fault (e.g. a crash).

    Error

    Невозможность выполнить задачу (или получить верный результат) вследствие того, что где-то случилась ошибка, которая привела к дефекту, который вызвал неисправность, которая привела к невозможности сделать то, чего мы тут намеревались (евангелие от Антивируса, стих 256, строка 00).

    Оригинал: A failure to complete a task, usually involving a premature termination.

    Есть еще один распространенный вариант» The amount by which the result is incorrect, но внятно перевести это на русский я не могу. Что-то вроде «насколько неправилен результат»…

    Поделиться ссылкой: Понравилось это: Похожее 20 ответов на “Разница между ошибкой (багом) и дефектом (тоже багом)”

    Алексей, а ты не рассматриваешь возможность того, что в этом “Software Quality Assurance Interview Questions and Answers” лажа написана? Толковый словарь, который ты процитировал (не знаю, какой именно) даёт весьма неплохое трактование терминам «дефект» и «ошибка». А вот этот самый «bug», что по-русски, что по-английски — ну фигня фигнёй, чес-слово.

    Сначала рассмотрел. Потом слегка заколебался (от «колебаться при выборе»). В русском языке термины «ошибка» и «дефект» подразумеваются как отдельные, хотя используются совместно и даже взаимоподменяются. Попытался найти системность и источник разночтений между «ошибка» и «дефект». Если судить по моим шагам, то, вроде бы, причина разночтений этих терминов и момент, в котором они «сходятся», раскрыт. Словарь: Explanatory (Ru-Ru) (for ABBYY Lingvo 12) The Comprehensive Dictionary of the Contemporary Russian Language. © 2006, T.F. Yefremova. 180,000 entries.

    То есть, я склоняюсь к тому, что под «багом» подразумевается, в первую очередь, наличие ошибки, которое привело к дефекту.

    Приведу цитату из «Certified tester / Foundation Level Sylabus» version 2007, ISTQB 1.1.2 Couses of software defects A human being can make an error (mistake), which produces a defect (fault, bug) in the code, in software or a system, or in a document. If a defect in code is executed, the system will fail to do what it should do (or do something it souldn’t), causing a failure. Defects in software, systems or documents may result in failures, but not all defects do so.

    Что-то меня переводы слова fault не вдохновляют. I. Computers (En-Ru) (for ABBYY Lingvo 12) The English-Russian Dictionary of Computers, Internet, and Programming. © E.M. Proydakov, L.A. Teplitsky, 1998-2006. 13,800 entries. fault — неисправность, отказ, ошибка, сбой; дефект, повреждение; выход из строя любое условие, вызывающее частичную или полную неработоспособность или неправильное функционирование аппаратных средств См. также: bug , error , failure , fault avoidance , fault detection , fault isolation , fault management , fault masking , fault resiliency , fault tolerance , malfunction , MTBF II. Engineering (En-Ru) (for ABBYY Lingvo 12) The English-Russian Dictionary of Mechanical Engineering and Industrial Automation. © RUSSO, 2003, B.S. Voskoboinikov, V.L. Mitrovich. 110,000 words and expressions. fault 1) неисправность; повреждение 2) дефект; порок; изъян 3) ошибка; погрешность 4) сбой; отказ И тут, и там, fault — и дефект, и ошибка…

    Не смотри на переводы, читай английский толковый словарь. Объяснение в ISTQB хорошее. Ошибка (error или mistake) — это акт программиста (человека, human being), который приводит к появлению дефекта (defect) в программе. И этот дефект там живёт, может быть долго, и всё хорошо, но в какой-то момент случается сбой (fault или failure). Сбой — это видимое проявление дефекта. А дефект — это результат ошибки, совершённой программистом. То, что иногда термины взаимозаменяются, определяется тем, что человеческий язык гибок, неформален, и понимание смысла слова определяется не только им самим, но также контекстом. Так что можно говорить, что «программист сделал ошибку», «в программе есть ошибка (в смысле дефект)» и «при работе программы случилась ошибка (в смысле сбой)» — из контекста ясно, что имеется в виду.