Немного философски о багах и ошибках
#1
Отправлено 23 октября 2009 - 07:29
Так... размышлизм...
В ранешние времена, когда программист писал программу ручкой (шариковой или авторучкой....), а потом относил девочкам, чтоб набили перфокарты... и ждал в очереди, когда перфокарты будут готовы. А потом - сидел и КАЖДУЮ ПЕРФОКАРТУ подписывал вручную. А потом - относил куда-то, и опять ждал- когда получит рулоны бумаги (метрами)... И читал, читал эти рулоны - чтоб найти, что написал неправильно... а потом.. опять по кругу... авторучкой написать, подождать в очереди... и т.д. и т.п....
Ах да... и получить выволочку за перерасход бумаги на листинги.....
Тогда БАГОВ не было. НЕ СУЩЕСТВОВАЛО!!!!! Были - ОШИБКИ. Конкретные ОШИБКИ конкретного исполнителя.....
И процесс проверки программ - был просто процессом проверки.... Безо всяких импортных слов типа ТЕСТ-ДИЗАЙН, БАГТРЕКЕР.....
И при этом - программы благополучно выпускались... И что характерно - в общем качественные....
Сейчас? Сейчас програмист обзавелся массой вещей, откровенно убирающих из процесса создания программ труд ручной (написание на бумаги, например..). Ну а вслед -- ПРОВЕРКА программ мутировала в тестирование.... Тестирование обросло кучей импортных слов.... и всяких инструментов - чтоб убрать ручной труд (писание ручкой .... и печатание на пишущей машинке Методик Проверки ПО...)..
И? Исчезла старая, добрая ошибка... Появился БАГ.
Просто с точки зрения РУССКОГО языка - почувствуйте разницу - "Сделана ошибка"....."В программе есть БАГ".
Только что-то стало мне сегодня казаться... что ОШИБКА она и есть ОШИБКА.... А никакой не БАГ....
А вот большое количество РУЧНЫХ операций + походы к девочкам, чтоб "набили" и "прогнали" у программиста психологически заставляло его самый манусенький кусочек программы долго обдумывать и проигрывать ....что, пожалуй, снижало количество ОШИБОК....
Ну и писание ручкой методик проверки с последующими походами в машбюро(чтоб напечатали) -- улучшало качество проверки ПО...
Вот такие пятничные размышлизмы...
Ах да...
Перенести тему можно в любое место форума...где она больше к месту будет...
#2
Отправлено 23 октября 2009 - 10:51
Software Testing Glossary - простыми словами о непростых словах.
#3
Отправлено 23 октября 2009 - 11:28
Неверно утверждение о том, что багов во времена перфолент не было.
Багов? БАГОВ не было.
Были ОШИБКИ. Почувствуйте разницу.....
#4
Отправлено 23 октября 2009 - 12:31
Правда ли, что первый компьютерный баг был реальным насекомым?Багов? БАГОВ не было.
(Англ. «bug» имеет несколько значений: «жучок» (в разных смыслах) и «ошибка в программе» (компьютерный сленг).)
И да и нет.
Начнем с «да». В 1947 году стоявшая в большой аудитории (без кондиционера) Гарвардского университета вычислительная машина ВМФ США «Марк-II» была выведена из строя обычным мотыльком, застрявшим между контактами электромеханического реле. Операторы извлекли расплющенное насекомое, вклеили клейкой лентой в технический журнал с сопроводительной записью и лишь после этого перезапустили ЭВМ.
Механическая природа данной машины делала ее особенно уязвимой для вмешательства насекомых. Большинство первых компьютеров, например ENIAC («Электронный числовой интегратор и вычислитель») при университете Пенсильвании, были уже электронными и использовали специальные вакуумные трубки для защиты от мотыльков.
Но действительно ли термин «bug» возник после случая в Гарварде? Ответ: нет. В значении «ошибка» или «сбой» в том или ином механизме слово использовалось еще в XIX веке. «Оксфордский словарь английского языка» цитирует выдержку из газетного сообщения 1889 года, повествующего о том, как Томас Эдисон «не спал две последние ночи, пытаясь отыскать "баг" в своем фонографе». Словарь Вебстера в издании 1943 года также приводит слово «bug» в его современном значении.
Невзирая на то, что говорят нам многочисленные веб-сайты и книги, термин «debugging» (Устранение дефектов (в оборудовании), исправление ошибок, отладка (компьютерной программы) (англ.).) использовали задолго до того, как гарвардский мотылек застопорил ход вещей.
Вполне показательный пример: жизнь имитирует язык — ожившая метафора, в буквальном смысле.
http://lib.rus.ec/b/165955/read
#6
Отправлено 23 октября 2009 - 17:03
Вообще, понятно что вы хотите сказать, раньше и трава была зеленее и воздух чище и молодежь культурнее и т.д.
Несколько не так...
Так или иначе - индустрия ПО существовала и до 199х года - в "перфоленточные/перфокартные" времена. Когда программист много чего делал вручную. И тогда - именно обилие ручного труда заставляла программиста 333 раза проверит все то, что он писал....Программист проверял САМ!
Писал,вычитывая, проигрывал в голове - что будет..
Сейчас - все пишется быстрее.... и 333 раза программист проверять написанное не будет. Сколько раз он сейчас читает текст программы?
Это один момент.
И замена понятия - "ошибка" на поняти "баг". Ошибка- это ясная всем вещь. Всем, в том числе и НЕ программистам. Психологически - совершенно разные фразы: "Я сделал ошибку в программе" и "В моей программе бага выявлена". Этакая отстранненость от результата труда...
Это второй момент.
ИМХО, разумеется....
#7
Отправлено 23 октября 2009 - 21:50
Напомню, что перфокарты умерли в начале 80-х. :)Вообще, понятно что вы хотите сказать, раньше и трава была зеленее и воздух чище и молодежь культурнее и т.д.
Несколько не так...
Так или иначе - индустрия ПО существовала и до 199х года - в "перфоленточные/перфокартные" времена. Когда программист много чего делал вручную. И тогда - именно обилие ручного труда заставляла программиста 333 раза проверит все то, что он писал....Программист проверял САМ!
Писал,вычитывая, проигрывал в голове - что будет..
Сейчас - все пишется быстрее.... и 333 раза программист проверять написанное не будет. Сколько раз он сейчас читает текст программы?
Это один момент.
Это ваши программисты не будут проверять, а наши, например, будут :)
Почему замена? Ошибки в коде, баги в программе. Баги возникают из-за ошибок в коде, вроде все на своих местах. :)И замена понятия - "ошибка" на поняти "баг". Ошибка- это ясная всем вещь. Всем, в том числе и НЕ программистам. Психологически - совершенно разные фразы: "Я сделал ошибку в программе" и "В моей программе бага выявлена". Этакая отстранненость от результата труда...
Это второй момент.
ИМХО, разумеется....
#8
Отправлено 24 октября 2009 - 10:46
Обучение для профессионалов: Школа тест-менеджеров | Школа тест-аналитиков | Школа Тестировщиков
Услуги для тест-менеджеров: Аутсорсинг тестирования | Поиск тестировщиков | Консалтинг
#9
Отправлено 24 октября 2009 - 11:48
ПО сейчас на порядки сложнее, и ревью кода теоретически не может выявить все ошибки. Вот и вся разница.
Можно выкладку рассуждений или мат.доказательство? У меня на уровне ощущений крепнет уверенность, что это как раз единственный вариант выявить все ошибки, но доказать я не готов.
Редактор портала www.it4business.ru
#10
Отправлено 24 октября 2009 - 14:32
Хм, а зачем выявлять все ошибки?ПО сейчас на порядки сложнее, и ревью кода теоретически не может выявить все ошибки. Вот и вся разница.
Можно выкладку рассуждений или мат.доказательство? У меня на уровне ощущений крепнет уверенность, что это как раз единственный вариант выявить все ошибки, но доказать я не готов.
#11
Отправлено 24 октября 2009 - 14:51
Как чисто теоретическая задача вполне интересно: можно или нет.
Редактор портала www.it4business.ru
#12
Отправлено 25 октября 2009 - 01:33
Как это доказать математически, даже не представляю :)ПО сейчас на порядки сложнее, и ревью кода теоретически не может выявить все ошибки. Вот и вся разница.
Можно выкладку рассуждений или мат.доказательство? У меня на уровне ощущений крепнет уверенность, что это как раз единственный вариант выявить все ошибки, но доказать я не готов.
Логика рассуждения простая: чем сложнее ПО, тем больше в нём интеграционных ошибок. Чем больше факторов взаимодействия - тем больше данных надо удерживать в голове во время ревью. А человеческие возможности, ИМХО, ограничены. Выполнить сложный юз-кейз значительно тривиальнее, чем учесть взаимодействие десятков модулей и компонентов.
Ну, и мой опыт внедрения код ревью как необходимого этапа перед коммитом кода показывает, что обычно находятся только локальные дефекты.
Когда ты говоришь "единственный вариант" - ты, наверное, имеешь в виду, что без код ревью выявить все дефекты невозможно? Согласна. Но тем не менее в сложных продуктах их нельзя выявить используя ТОЛЬКО ревью для проверки.
Обучение для профессионалов: Школа тест-менеджеров | Школа тест-аналитиков | Школа Тестировщиков
Услуги для тест-менеджеров: Аутсорсинг тестирования | Поиск тестировщиков | Консалтинг
#13
Отправлено 26 октября 2009 - 07:49
ПО сейчас на порядки сложнее, и ревью кода теоретически не может выявить все ошибки. Вот и вся разница.
А как оценивать сложность ПО? Что на порядки сложнее?
Я-то работаю в области разработки встроенного ПО. И вот так уверенно сказать - что на порядки сложнее - пожалуй что и не смогу.
Задачи ? Да, появилось масса других... но чтоб на порядки сложней? Вряд ли..
А вот - память, быстродействие процессоров - увеличились. Ну.. а каково это впихивать ПО в сверхограниченные ресурсы...- вот действительно сложность..И источник ошибок...
Про остальное ПО? Не знаю... Ну вот насколько ПО ранешних АСУ сложнее? Именно по набору решаемых задач?
#14
Отправлено 26 октября 2009 - 07:57
Со всем уважением относясь к профессиональному сленгу....Ну, и мой опыт внедрения код ревью как необходимого этапа перед коммитом кода показывает, что обычно находятся только локальные дефекты.
Но..... Может хоть капельку будем заботится о Русском Языке? Ну... просто потому что - форум-то популярен, молодежь читает...
А этак скоро технические писатели полностью переквалифицируются в переводчики... с айтишного на русский...
ИМХО, разумеется....
#16
Отправлено 26 октября 2009 - 09:26
Русский язык и без слова БАГ впитал в себя великое множество других иностранных слов. На мой взгляд этим он и могуч(ИМХО!).
Компьютерный сленг своеобразен, но при этом он сугубо профессиональный и облегчает общение и взаимопонимание.
По поводу ответственности и продумывания решений: все ведь как всегда будет зависеть от контекста работы и сложившейся ситуации... Все это повышение требований по времени и качеству и есть технический прогресс.
#17
Отправлено 26 октября 2009 - 10:07
Со всем уважением относясь к профессиональному сленгу....Ну, и мой опыт внедрения код ревью как необходимого этапа перед коммитом кода показывает, что обычно находятся только локальные дефекты.
Но..... Может хоть капельку будем заботится о Русском Языке? Ну... просто потому что - форум-то популярен, молодежь читает...
А этак скоро технические писатели полностью переквалифицируются в переводчики... с айтишного на русский...
ИМХО, разумеется....
Оффтопик)
Да-да-да!!
А то некоторые тех. писатели даже не утруждают себя переводом уже. Совсем недавно боролся с подобным проявлением - чтобы убрали слово "превью" из пользовательской документации.
#18
Отправлено 26 октября 2009 - 11:53
обилие ручного труда заставляла программиста 333 раза проверит все то, что он писал....Программист проверял САМ!
Сейчас - все пишется быстрее.... и 333 раза программист проверять написанное не будет. Сколько раз он сейчас читает текст программы?
И замена понятия - "ошибка" на поняти "баг". Ошибка- это ясная всем вещь. Всем, в том числе и НЕ программистам. Психологически - совершенно разные фразы: "Я сделал ошибку в программе" и "В моей программе бага выявлена". Этакая отстранненость от результата труда...
Фрося, будьте внимательнее. Что вам имхо, то читателям форума тема для растерзания.
То факт, что технологически когда-то программист был вынужден очень внимательно смотреть и рассчитывать то, что он скармливает машине, не означает, что когда-то программисты работали тщательнее. Не слыхали ни разу про то, как кто-нибудь случайно или по злому недоумию выдергивал перфокарту откуда-то из середины колоды? :)
Даже тщательная возня с аппаратурой и алгоритмами не избавляет от вероятности допустить логическую или архитектурную ошибку. Всегда может случиться что-то неучтенное. Что-то из разряда:
- Исключено! Ни один дебил не додумается сделать именно это именно вот таким образом!
- Идите и объясните это техподдержке, у нас уже сотня рекламаций от тех, кто именно до этого и додумался...
Вы правы в том, что в современном "техномире" стоимость ошибки снизилась. Софт можно патчить через интернет, например. А если ошибка на диске, который уже вышел в тираж - это дорого и больно.
Но это слегка не коррелирует с идеей о том, что "при технических трудностях ответственность выше". Ответственность всегда одинаково высокая.
"Разница между ошибкой (багом) и дефектом (тоже багом)" - на слух видите разницу между багом, дефектом, ошибкой и неисправностью?
Software Testing Glossary - простыми словами о непростых словах.
#19
Отправлено 27 октября 2009 - 10:49
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#20
Отправлено 28 октября 2009 - 00:13
где он говорит: What progress has this field actually made? We still struggle with the same problems as 50 years ago: iteration times, debugging, scratching our heads trying to figure out what went wrong.Это обсуждение замечательно совпало по времени с выступлением Никлауса Вирта на GTAC
О том же говорится в конце второго издания "мифомесяца" Брукса - "Тут нет ничего того, о чем я не знаю..."
Как-то один ветеран Formula 1 сказал, что "сегодня в гараже обсуждаются те же вопросы, что и в наше время - какую подвеску ставить, да какую резину..."
Software Testing Glossary - простыми словами о непростых словах.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных