The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Линус Торвальдс выступил с критикой контроля качества в  DRM..., opennews (?), 27-Фев-17, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


23. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Аноним (-), 27-Фев-17, 11:42 
> Остаётся не у дел самый эффективный подход - разработка через тестирование.

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

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

37. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 12:02 
> есть доказательства, что этот подход - самый эффективный из существующих?

1. Проверка каждого оператора в коде - это лучше, чем отстуствие проверки.
2. А написание такой проверки ещё перед кодом - значит, что код будет делать именно то, что требуется проверкой, а не что-то другое.


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

Посмотрите литературу и видео Uncle Bob'а. Там всё подробно рассказано.

Ответить | Правка | Наверх | Cообщить модератору

47. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +/
Сообщение от Аноним (-), 27-Фев-17, 12:13 
> написание такой проверки ещё перед кодом

Это называется "перенос сложности". Сложность системы остаётся неизменной, но можно перенести её с одного этапа на другой. В данном случае вы переносите сложность тестирования и отладки с этапа тестирования и отладки на этап написания предварительных тестов.

По личному опыту: это работает лишь в самых простых случаях. Когда в коде идёт выборка данных из БД или работа с оборудованием, то для повторения ситуации нужно повторить всю БД или её значительную часть.

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

Отсюда вытекает, что твои тесты возможно лишь в простых функциях где есть чётко обозначенные вход и выход. В 90% случаев они настолько просты и понятны, что написание для них тестов - это потеря времени.

Unit тесты становятся интересными лишь в ситуациях где можно обеспечить "полное покрытие тестами" и нужно вносить много изменений во все модули. Такие ситуации встречаются редко.

Ответить | Правка | Наверх | Cообщить модератору

77. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 13:03 
>> написание такой проверки ещё перед кодом
> Это называется "перенос сложности". Сложность системы остаётся неизменной, но можно перенести
> её с одного этапа на другой.

Оно и одержимое первых 7 метров /dev/random сложно, как и 7 метров /boot/vmlinuz-4.4.0-64-lowlatency
но в первом случае - такая фигня получается...


> В данном случае вы переносите
> сложность тестирования и отладки с этапа тестирования и отладки на этап
> написания предварительных тестов.

Если нет тестов - то начинается дебаг, роль уровня владения дебаггером разработчика и временные затраты на сам дебаг - значительно возрастают с ростом проекта (посмотрите сколько уже инструментов run-time дебага в линухе)
Что лучше: один раз написать тест и получить постоянную проверку этого места кода, чем постоянно тратить время на дебаг?
Ведь тест то будет запускаться всегда уже автоматом, без доп. затрат времени.

> По личному опыту: это работает лишь в самых простых случаях. Когда в
> коде идёт выборка данных из БД или работа с оборудованием, то
> для повторения ситуации нужно повторить всю БД или её значительную часть.

А большие модули системы никак не должны работать вместе?
И пусть это уже называется не юнит-тестированием, а как-то иначе, но сути не меняет:
Вы ведь хотите, чтоб продукт всегда работал, а не только во время изначального написания кода? А как _убедиться_, что он работает? - А только протестировать.

> Отсюда вытекает, что твои тесты возможно лишь в простых функциях где есть
> чётко обозначенные вход и выход. В 90% случаев они настолько просты
> и понятны, что написание для них тестов - это потеря времени.

И после любого изменения начинается "экономия времени": открыть страничку логина, нажать кнопку, попробовать там ли всё работает...
И это нужно делать при каждом добавлении новой фичи или исправлении бага - иначе нет морального права утверждать, что вся программа работает.
Т.е. тестировать всё равно приходится. Но как быстрее: руками или автоматически, кодом?


> Unit тесты становятся интересными лишь в ситуациях где...

должно работать, а не просто почасовая оплата ^_^

Ответить | Правка | Наверх | Cообщить модератору

84. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +3 +/
Сообщение от Аноним (-), 27-Фев-17, 13:13 
Зачем вы проецируете свой опыт веб-макаки на разработку ядра ?

Вот почему все люди точно знающие как нам обустроить Россию уже работают в Макдональдсе ?

Ответить | Правка | Наверх | Cообщить модератору

110. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 14:00 
Внимательнейше слушаю Ваши предложения по решению проблем устойчивости и безопасности Линуха.
Системно, пожалуйста (т.е. не только в каких-то отдельных местах ядра).
Ответить | Правка | Наверх | Cообщить модератору

111. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 14:02 
> Вот почему все люди точно знающие как нам обустроить Россию уже работают
> в Макдональдсе ?

А у Вас есть предложения как обустроить Россию? Где можно почитать?
Что думаете о подконтрольности ЦБ? о ростовщическом проценте? вреден/полезен/неважно?
И прочие важные вопросы - тоже интересуют (образование, наука, экономика и т.д.)

Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

284. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Аноним (-), 27-Фев-17, 21:14 
Обрататитесь к Шигорину, он знает.
Ответить | Правка | Наверх | Cообщить модератору

307. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –2 +/
Сообщение от Michael Shigorinemail (ok), 27-Фев-17, 22:25 
> Обрататитесь к Шигорину, он знает.

Да если бы.  Поскольку в целом не знаю -- обустраиваю там, где знаю и умею.

20170223 1151
20170224 1154
20170225 1185
20170226 1186
20170227 1201

Ответить | Правка | Наверх | Cообщить модератору

288. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от _ (??), 27-Фев-17, 21:31 
Нди на ... в ... нет всё таки - на другой сайт :)
Ответить | Правка | К родителю #111 | Наверх | Cообщить модератору

87. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Аноним (-), 27-Фев-17, 13:15 
> Что лучше: один раз написать тест и получить постоянную проверку этого места кода, чем постоянно тратить время на дебаг?

Простые функции не нуждаются в unit-тестировании, сложные с помощью unit-тестов полностью не проверишь.

Идея о постоянной отладке одной и той же функции - это вообще откуда? Какой только бред не придумают чтобы втюхать своё фуфло...

> Ведь тест то будет запускаться всегда уже автоматом, без доп. затрат времени

Опять обман. Покрытие unit-тестами приводит к следующему этапу - сервер тестирования, который в цикле гоняет тесты один за другим, рассылая уведомления. Зачем вновь и вновь проверять одну и ту же неизменённую функцию одними и теми же тестами? Вопрос риторический.

> Вы ведь хотите, чтоб продукт всегда работал, а не только во время изначального написания кода?

А что, отлаженный код вдруг, сам по себе, перестаёт работать правильно и начинает сыпать ошибками?

Чаще возникает ситуация, когда что-то не учли. И эти ошибки обычно логические. Напр. функция должна возвращать должность сотрудника, но "забыли" про совместителей, которые работают на 2+ должностях. В результате неверно начислили зар.плату. Как написать unit-тест, чтобы он проверил данную ошибку?

Ответить | Правка | К родителю #77 | Наверх | Cообщить модератору

103. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Аноним (-), 27-Фев-17, 13:50 
> А что, отлаженный код вдруг, сам по себе, перестаёт работать правильно и начинает сыпать ошибками?

Бывает и так, при изменениях в окружении в котором этот код выполняется.

Для примера можете почитать о ставшем классикой сбое в софте Ariane 5.

Ответить | Правка | Наверх | Cообщить модератору

113. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Аноним (-), 27-Фев-17, 14:06 
Их ошибка, что они использовали копи-пастнутый код, изменяющий глобальные переменные, не проверив его работоспособность и не разбираясь нужен ли он вообще (не нужен).

Аналогичная ситуация произошла недавно в России: при старте первой ракеты с Восточного возникла ошибка, которая остановила запуск. Оказалось, что изменили один из блоков навигации: он был квадратным, стал круглым и с другим количеством контактов. Но те, кто собирал ракету, не сильно парились: они вбили его кувалдой, заизолировав "лишние" проводки.

Ошибку нашли, но решали проблему не менее оригинальным способом: они выломали модуль и спаяли проводки так, чтобы отсутствующий модуль всегда возвращал состояние "всё ОК".

Ответить | Правка | Наверх | Cообщить модератору

131. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +/
Сообщение от Анонимм (??), 27-Фев-17, 14:51 
Ну вот и как сплошной положизм на нормы характеризует собстенно сами нормы?
Ответить | Правка | Наверх | Cообщить модератору

155. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +/
Сообщение от Аноним (-), 27-Фев-17, 15:38 
Ежегодным ростом количества падающих ракет. Как следствие, растёт стоимость страховки, так страховка за запуск спутника с российского Байконура стоит дороже, чем за запуск с американского Канавэрал, хотя сам запуск пока обходится дешевле.
Ответить | Правка | Наверх | Cообщить модератору

178. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +/
Сообщение от Анонимм (??), 27-Фев-17, 16:18 
Т.е. нормы таки указывают как суммарно дешевле вести дела... но чиновников это мало волнует, а налогоплательщика... похоже, ещё меньше.
Так и живём, вводя друг друга в заблуждение, дескать "всё контролируется"
Ответить | Правка | Наверх | Cообщить модератору

118. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 14:23 
> Простые функции не нуждаются в unit-тестировании

А как тогда узнать как они работают и работают ли вообще?
Каждый раз код перечитывать и моделировать в уме? Заняться нечем?

А вот такие функции (net/dccp/input.c:dccp_rcv_state_process) как?
Они простые или нет, нуждаются в тестировании или нет?

см. git commit 5edabca9d4cff7f1f2b68f0bac55ef99d9798ba4


> сложные с помощью unit-тестов полностью не проверишь.

Для этого есть интеграционные и системные тесты.

Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

121. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Andrey Mitrofanov (?), 27-Фев-17, 14:28 
>> Простые функции не нуждаются в unit-тестировании
> А как тогда узнать как они работают и работают ли вообще?

Дисциплина https://xkcd.com/1790/ функционального программирования! </решает!></да, на Си>

> Для этого есть интеграционные и системные тесты.

Ответить | Правка | Наверх | Cообщить модератору

142. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 15:14 
А как узнать, что код писанный по функц. программированию делает то, что нужно?
Кроме как проверить.
А как быстрее проверять: руками или авторматически?
Ответить | Правка | Наверх | Cообщить модератору

119. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +/
Сообщение от Анонимм (??), 27-Фев-17, 14:26 
продолжение следует...
Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

161. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +/
Сообщение от Анонимм (??), 27-Фев-17, 15:48 
Я закончил ответ в постах #159 и #160
(извините, специфика форума)
Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

71. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Аноним (-), 27-Фев-17, 12:55 
> А написание такой проверки ещё перед кодом - значит, что код будет делать именно то, что требуется проверкой, а не что-то другое.

Тест гарантирует только то о чем подумал автор теста, и не более того.

Тем более от тестов нет никакого толку для кода взаимодействующего с железом.

Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

105. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 13:53 
> Тест гарантирует только то о чем подумал автор теста, и не более
> того.

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

> Тем более от тестов нет никакого толку для кода взаимодействующего с железом.

А вот это вот не так.
Микроядро обязано контроллировать доступ к железным портам (а потому, именно само будет звать всякие io/out инструкции, но вылизать этот небольшой и малоизменчивый код - не проблема). А вот дрова устройств, которые будут работать в отдельных процессах, - они будут вынуждены вызывать соотв. функции микроядра для доступа к собтвенно железу. И вот это вот разделение открывает прекрасные возможности для тестирования.
К примеру, если нужно, чтобы при вызове senddata(buffer) драйвер отправлял размер буфера и его самого по определённым железным адресам - то делается просто соотв. assert'ы в конце теста и всё. Код же самого драйвера - одинаков и для теста, и для реальной работы.
Чего и требовалось.

Ответить | Правка | Наверх | Cообщить модератору

124. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Аноним (-), 27-Фев-17, 14:33 
> Но без тестов, код куда больше делает и того, чего автор не планировал.

Это утверждение ничем не обосновано.

Ответить | Правка | Наверх | Cообщить модератору

143. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 15:17 
Попробуйте посмотреть в багтрекеры проэктов без модульного тестирования.
И сравнить вероятность незапланированного поведения в случаях:
* когда код пишется сразу
* и когда код пишется лишь после написания теста, его проверяющего (т.е. кода без тестов не может появиться в проекте в принципе).
Ответить | Правка | Наверх | Cообщить модератору

205. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Аноним (-), 27-Фев-17, 17:05 
Вероятность одинакова, бо код пишется не роботами и ошибка равновероятно может быть как в коде, так и в тесте.

Но вы можете продолжать верить в серебряные пули.

Ответить | Правка | Наверх | Cообщить модератору

219. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 17:34 
> Вероятность одинакова, бо код пишется не роботами и ошибка равновероятно может быть
> как в коде, так и в тесте.

Безусловно. Тесты - это тоже код, и его пишут люди.

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

Ответить | Правка | Наверх | Cообщить модератору

129. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +2 +/
Сообщение от Аноним (-), 27-Фев-17, 14:43 
>> Тем более от тестов нет никакого толку для кода взаимодействующего с железом.
> А вот это вот не так.
> Микроядро обязано контроллировать доступ к железным портам (а потому, именно само будет
> звать всякие io/out инструкции, но вылизать этот небольшой и малоизменчивый код
> - не проблема).

Дайте я угадаю, вы никогда не занимались низкоуровневым программированием на практике ?

> А вот дрова устройств, которые будут работать в
> отдельных процессах, - они будут вынуждены вызывать соотв. функции микроядра для
> доступа к собтвенно железу. И вот это вот разделение открывает прекрасные
> возможности для тестирования.

ЧТО ВЫ СОБИРАЕТЕСЬ ТЕСТИРОВАТЬ ?!?!?

Вы понимаете что для тестирования драйвера вам фактически нужна стопроцентно корректная программная модель всех поддерживаемых драйвером железок со всеми их особенностями/аппаратными косяками/багами прошивок (иначе грош цена всем вашим тестам) ?

> К примеру, если нужно, чтобы при вызове senddata(buffer) драйвер отправлял размер буфера
> и его самого по определённым железным адресам - то делается просто
> соотв. assert'ы в конце теста и всё.

Какая в конскую жoпy senddata() ? Куда send ? В i/o port, в mmio, в кольцевой буфер железки, в mailbox, КУДА ?

Ты понимаешь что ты пoexaвший ?!?!?!?!?

Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

152. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 15:32 
> ЧТО ВЫ СОБИРАЕТЕСЬ ТЕСТИРОВАТЬ ?!?!?

Подсистемы ядра (всего того, что нонче есть в Линухе (в гит репе, если совсем быть точным)), в частности, драйвера (и железа, и ФС).


> Вы понимаете что для тестирования драйвера вам фактически нужна стопроцентно корректная
> программная модель всех поддерживаемых драйвером железок со всеми их особенностями/аппаратными
> косяками/багами прошивок (иначе грош цена всем вашим тестам)?

Внезапно.
Будто для написания драйвера этого всего не нужно :)
Но дрова есть и их пишут - значит есть какие-то достаточные представления и о железках,
и вот эти представления, записанные в виде тестов - дадут гарантию, что драйвер делает то, чего захотел программер (и лишь в незначительной степени, чего он пропустил или допустил).

Ответить | Правка | Наверх | Cообщить модератору

192. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Аноним (-), 27-Фев-17, 16:48 
> Но дрова есть и их пишут - значит есть какие-то достаточные представления и о железках,

Ну да programming manual и программная модель устройства (фактически его эмулятор) это конечно одно и тоже.

> и вот эти представления, записанные в виде тестов

Oбъем и сложность задачи представляете ? Bижу что нет.

А главное все это, только для того чтобы мамкины теоретики могли спокойно кушать свой борщ.

Ответить | Правка | Наверх | Cообщить модератору

213. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 17:25 
> Ну да programming manual и программная модель устройства (фактически его эмулятор) это
> конечно одно и тоже.

Хоть одно, хоть нет.
А ответить на простой вопрос: а так ли работает драйвер, как задумывал сам автор драйвера? - в самом же драйвере нет.
Как-то предлагаете решать эту проблему?

>> и вот эти представления, записанные в виде тестов
> Oбъем и сложность задачи представляете ? Bижу что нет.

Когда нужно таки ответить на вышепоставленный вопрос - то вместо того, чтобы за пару секунд прогнать тесты, начинаетя поиск документации (в лучшем случае что-то есть в Documentation/*), и ручное изучение кода...
Человекочасы? - о чём вы! Время ведь сэкономилено на ненаписании тестов!
Теперь можно спокойно его тратить тоннами на ручной просмотр.


> А главное все это, только для того чтобы мамкины теоретики могли спокойно
> кушать свой борщ.

Приятного аппетита.

Ответить | Правка | Наверх | Cообщить модератору

153. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 15:33 
> Какая.... senddata()?

какая-нить drivers/net/..../...c:senddata()
да, абстрактная (а как иначе рассказать о множестве случаев, кроме как абстрактно?)

> Куда send ? В i/o port,
> в mmio, в кольцевой буфер железки, в mailbox, КУДА ?

Вы перечислили частности, у каждого драйвера - свои куда. И все эти куда могут быть прописаны в тестах и проверяться автоматически. Что драйвер именно туда и именно то и пытается отправить.

> Ты понимаешь что ты ....... ?!?!?!?!?

Поменьше эмоций, пожалуйста.
Ваши частности и детали не меняют общего вопроса.

Ответить | Правка | К родителю #129 | Наверх | Cообщить модератору

191. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Аноним (-), 27-Фев-17, 16:43 
> Вы перечислили частности, у каждого драйвера - свои куда. И все эти куда могут быть прописаны в тестах и проверяться автоматически.

Возвращаемся к вопросу о стопроцентно корректной программной модели железа.

Ответить | Правка | Наверх | Cообщить модератору

197. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Аноним (-), 27-Фев-17, 16:50 
>> Вы перечислили частности, у каждого драйвера - свои куда. И все эти куда могут быть прописаны в тестах и проверяться автоматически.
> Возвращаемся к вопросу о стопроцентно корректной программной модели железа.

Но зачем? Мы проверили, что драйвер посылает железу корректный с точки зрения спецификации запрос. Если железо в ответ ведёт себя как-то не так, то это уже вопрос из области пересечения этики драйверописателя с костылями и подпорками.


Ответить | Правка | Наверх | Cообщить модератору

204. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +/
Сообщение от Анонимм (??), 27-Фев-17, 17:04 
Совершенно верно.
(или же кривизны уже самой железки; да, оно иногда ломается)
Ответить | Правка | Наверх | Cообщить модератору

203. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 17:03 
Никуда не нужно возвращаться. Речи о полноценном моделировании железа нет.
Речь о том, чтобы записать в тесте те требования к драйверу, которые были найдены (если реверсили) или задизайнены (если производитель).
И тогда эти требования будут проверяться за доли секунды кем угодно, невзирая на железо.
Непроизвольно внести изменение, которое сломает что-то где-то в другой стороне модуля - будет невозможно.
Ответить | Правка | К родителю #191 | Наверх | Cообщить модератору

206. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Аноним (-), 27-Фев-17, 17:08 
В драйвере версии 1, в регистр X пишется 42.
В драйвере версии 2, в регистр X пишется 43.

Вопрос: как определить не сломалось ли что нибудь в версии 2 ?

Ответить | Правка | Наверх | Cообщить модератору

221. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 17:37 
(должен отметить конструктив в разговоре! Спасибо)

> В драйвере версии 1, в регистр X пишется 42.
> В драйвере версии 2, в регистр X пишется 43.
> Вопрос: как определить не сломалось ли что нибудь в версии 2 ?

1. Работает ли код относительно железа - запустить на железе и прогнать ВСЕ функции (руками или ещё как)
2. Работает ли код относительно представлений авторов этого кода - запустить на любой системе тесты (автоматом, несравнимо быстрее, чем руками)

Вопрос же соответствия тестов спецификации самой железки - на совести авторов. Это никуда не девается. Тесты - лишь защита авторов от своих собственных ошибок-опечаток.

Ответить | Правка | Наверх | Cообщить модератору

276. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +2 +/
Сообщение от Аноним (-), 27-Фев-17, 21:05 
Господи, да поймите же вы что среди проблем в разработке драйверов, ошибки/опечатки отнюдь не номер 1.

Реальные проблемы низкоуровневого программирования:
- кривоватость самого железа/фирмвари, заставляющая городить воркэраунды, иногда весьма нетривиальные;
- несовпадение документации с реальностью, прорехи в документации и прочая errata;
- всяческие проблемы тайминга, состязания (в том числе и с участием железа) и т.п.

Ничему из этого тесты помочь не в состоянии.

Ответить | Правка | Наверх | Cообщить модератору

286. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –2 +/
Сообщение от Анонимм (??), 27-Фев-17, 21:18 
> Господи, да поймите же вы что среди проблем в разработке драйверов, ошибки/опечатки
> отнюдь не номер 1.
> Реальные проблемы низкоуровневого программирования:
> - кривоватость самого железа/фирмвари, заставляющая городить воркэраунды, иногда весьма
> нетривиальные;
> - несовпадение документации с реальностью, прорехи в документации и прочая errata;
> - всяческие проблемы тайминга, состязания (в том числе и с участием железа)
> и т.п.

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


> Ничему из этого тесты помочь не в состоянии.

Тесты в состоянии ответить на вопрос: соответствует ли код драйвера представлениям программиста о том, как оно должно работать (по его же мнению). Может он где-то сам ошибся - то его же тесты его же и поправят.

Ответить | Правка | Наверх | Cообщить модератору

308. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Michael Shigorinemail (ok), 27-Фев-17, 22:29 
>> Ничему из этого тесты помочь не в состоянии.
> Тесты в состоянии ответить на вопрос:

Нет.

Вам столько явно грамотных людей уже написало, что можно было пойти и прочитать про синдром Даннинга-Крюгера самостоятельно :(

Поймите -- все эти благопожелания имеют строго отрицательную ценность, поскольку лишь гробят время людей.  Надо -- кайло в руки и делайте без отмазок вроде "ранний этап исследований": на раннем этапе производится литературный поиск и пролопачивается _уже_ опубликованная гора литературы и кода.  "Не могу" -- значит, надо учиться.  Выясняется, что не настолько и надо -- значит, нечего было пустозвонить про "призвание" и протчая.

Ответить | Правка | К родителю #286 | Наверх | Cообщить модератору

313. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 22:39 
> Вам столько явно грамотных людей уже написало, что можно было пойти и
> прочитать про синдром Даннинга-Крюгера самостоятельно :(

Извините, но они свои грамоты в нет на обозрение не выставляли.
А потому - их слово не весомее чьего-либо.


> Поймите -- все эти благопожелания имеют строго отрицательную ценность, поскольку лишь гробят
> время людей.  Надо -- кайло в руки и делайте без
> отмазок вроде "ранний этап исследований":

Ну вот, снова. Указки ЧТО ДЕЛАТЬ.
Что делать я и сам решу, спасибо.
Я об этом помощи не просил.

Куда интереснее обсуждать без эмоций как ДОЛЖНО БЫТЬ.
Но это не многим психологически по силам...


> на раннем этапе производится литературный поиск
> и пролопачивается _уже_ опубликованная гора литературы и кода.

Извините, но мы не в оторванных от жизни высших кабинетах.
Мне нужно чтоб работало, а не где-то громко звучало.


> -- значит, нечего было пустозвонить про "призвание" и протчая.

Не знаю с кем Вы и где попутали меня. Про призвания я нигде не говорил. Мои призвания - дело сугубо моё.

Вобщем, пост снова обо мне, а не о проблемах ядра...  классика жанра. Все любят "лечить"...

Ответить | Правка | К родителю #308 | Наверх | Cообщить модератору

319. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +2 +/
Сообщение от Michael Shigorinemail (ok), 27-Фев-17, 22:46 
>> -- значит, нечего было пустозвонить про "призвание" и протчая.
> Не знаю с кем Вы и где попутали меня. Про призвания я нигде не говорил.

"призвание программера" в #286 кто-то другой написал?

> Вобщем, пост снова обо мне, а не о проблемах ядра...  классика жанра.

Видите ли, я как комодератор вынужден дать оценку Вашим сообщениям в плане того, не нарушают ли они правил форума -- см. http://wiki.opennet.ru/ForumHelp -- и пока стрелка всё больше склоняется к риске "бессодержательно".

Представьте себе, что Вы как (скажем) автомеханик на профильном форуме наткнулись на меня, который с умным видом рассказывает, что всем надо давно переходить на роторные двигатели, они ведь такие клёвые и столько проблем этого поршневого старья решают.  Слегка офигеваете, бережно прощупываете -- это такой влюблённый в конкретную технологию по опыту человек или просто обку... обчитавшийся какой педивикии оболтус, который ни в зуб ногой, но туда же в калашный ряд.  А оболтус всё не унимается и в ответ на аккуратные намёки разных участников форума только убеждается в собственной правоте, нисколечко при этом не выказывая желания пойти к верстаку и доказать её делом.  Неприятно, правда?

Ответить | Правка | К родителю #313 | Наверх | Cообщить модератору

328. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 23:03 
> "призвание программера" в #286 кто-то другой написал?

Да, моё. Спасибо.
Да, считаю, что программер должен разбираться в том, что пишет.


> Видите ли, я как комодератор вынужден дать оценку Вашим сообщениям в плане
> того, не нарушают ли они правил форума -- см. ....
> и пока стрелка всё больше склоняется к риске "бессодержательно".

А вот это уже - сугубо Ваше право.
Я прекрасно осознаю и видел это не раз, когда громадными гроздьями исчезала переписка здесь, в каментах.

Но если на техническом форуме обсуждение плюсов-минусов реализации того или иного дизайна ядра ОС это "бессодержательно"...   видимо, обтереть друг друга людям куда важнее. Что ж, таковы люди.


> Представьте себе, .....пойти к верстаку и
> доказать её делом.  Неприятно, правда?

Кому и что нужно доказывать??
Я спрашиваю мнения о путях решения системных проблем Линуха и предлагаю своё решение.
Не, нельзя так?
Надо обязательно потратить сначала кучу времени, сделать 10 неудачных заходов, и лишь потом выйти "в люди", чтоб узнать кто что думает и знает об этой проблеме?
Извините, но я ценю своё время.

Ответить | Правка | К родителю #319 | Наверх | Cообщить модератору

330. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Michael Shigorinemail (ok), 27-Фев-17, 23:08 
>> "призвание программера" в #286 кто-то другой написал?
> Да, считаю, что программер должен разбираться в том, что пишет.

А там было про железку: "Но всё-же, железка она ж как-то работает. И призвание программера понять его работу (из спецификации+практики)".

> Но если на техническом форуме обсуждение плюсов-минусов реализации того или
> иного дизайна ядра ОС это "бессодержательно"...   видимо, обтереть друг друга
> людям куда важнее. Что ж, таковы люди.

Вы же не предложили никакого дизайна -- ни того, ни иного.  И кода не вижу.  А вижу благие пожелания и неумение следить за своей собственной мыслью на протяжении нескольких комментариев, увы.

Поймите, нет цели Вас "замочить".  Но если на дорогу выпускать людей, которые путаются в педалях -- жди беды.

>> Представьте себе, .....пойти к верстаку и доказать её делом.  Неприятно, правда?
> Кому и что нужно доказывать??

Да хотя бы себе для начала.

> Я спрашиваю мнения о путях решения системных проблем Линуха и предлагаю своё решение.
> Не, нельзя так?

Нельзя флудить попусту.

> Надо обязательно потратить сначала кучу времени, сделать 10 неудачных заходов,
> и лишь потом выйти "в люди", чтоб узнать кто что думает и знает об этой проблеме?
> Извините, но я ценю своё время.

А я ценю время обсуждающих.  И, как ни странно, своё.

На этом и предлагаю завершить эту "гроздь".

Ответить | Правка | К родителю #328 | Наверх | Cообщить модератору

343. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –2 +/
Сообщение от Анонимм (??), 28-Фев-17, 01:19 
> А там было про железку:....

Верно. Считаю, что лучше понять как работает железка, чтобы написать её драйвер.

Ответить | Правка | К родителю #330 | Наверх | Cообщить модератору

362. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 28-Фев-17, 11:48 
Да, спасибо за внимание
Ответить | Правка | К родителю #330 | Наверх | Cообщить модератору

166. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +3 +/
Сообщение от Аноним (-), 27-Фев-17, 16:03 
>Какая в *** senddata() ? Куда send ?

Я ожидал от микроядерного пророка ответ "data" :)

Ответить | Правка | К родителю #129 | Наверх | Cообщить модератору

182. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –2 +/
Сообщение от Анонимм (??), 27-Фев-17, 16:25 
Ну так и обратитесь тогда к пророку.
Ответить | Правка | Наверх | Cообщить модератору

184. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Анонимм (??), 27-Фев-17, 16:26 
А я да - спасибо, на будущее буду расписывать тесты в более конкретной форме.
Ответить | Правка | К родителю #166 | Наверх | Cообщить модератору

183. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –1 +/
Сообщение от Аноним (-), 27-Фев-17, 16:25 
>Тест гарантирует только то о чем подумал автор теста, и не более того.

Тест написанный по спецификации повышает уверенность в том, что система ведёт себя в соответствии с данной спецификацией. Тест написанный разработчиком в рамках test-driven development сам становится спецификацией т.к. отражает видение автора и помогает понять его код.

>Тем более от тестов нет никакого толку для кода взаимодействующего с железом.

Это заблуждение. При должном желании и ресурсах можно эффективно протестировать любую программу вне зависимости от того что она делает и как она написана. Поместить модули в тестовое ложе для модульного или интеграционного тестирования, написать эмулятор железа, создать автоматическую систему для сборки и тестирования системы на разных конфигурациях. Главная проблема обычно заключается в отсутствии хорошей спецификации на систему и в том факте, что её основные разработчики умерли или загремели в дурку.

Вопрос в том - а нужно ли это? Затраты на тестирование должны слихвой покрываться предотвращёнными убытками от найденных багов.

Ответить | Правка | К родителю #71 | Наверх | Cообщить модератору

194. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Аноним (-), 27-Фев-17, 16:50 
Вас маркетологи покусали ?
Ответить | Правка | Наверх | Cообщить модератору

195. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Анонимм (??), 27-Фев-17, 16:50 
> Тест написанный по спецификации повышает уверенность в том, что система ведёт себя
> в соответствии с данной спецификацией. Тест написанный разработчиком в рамках test-driven
> development сам становится спецификацией т.к. отражает видение автора и помогает понять
> его код.

Спецификацией так и остаётся текстовое описание дизайнеров железки. Набор же тестов - это видение разработчиков, но никак не дизайнеров.


> Это заблуждение. При должном желании и ресурсах можно эффективно протестировать любую программу
> вне зависимости от того что она делает и как она написана.
> Поместить модули в тестовое ложе для модульного или интеграционного тестирования,

Да, и идеально, если и тестируемый код, и код в реальной работе - один и тот же.

> написать эмулятор железа

В случае, если все участки работы с железными портами уже заранее вынесены в отдельную систему (в микроядро) - эмулятор уже не требуется. Сами тесты могут контроллировать (предоставляя API микроядра) что и как вызывает код.


> Вопрос в том - а нужно ли это? Затраты на тестирование должны
> слихвой покрываться предотвращёнными убытками от найденных багов.

Убытки так или иначе распределены по всей Земле. Их посчитать трудно (хотя можно на примере частной какой-то выборки прикинуть).
В конечном же итоге, вопрос лишь в том: есть ли кто-то, кто озабочен проблемами всех?
Благо, такие есть.

Ответить | Правка | К родителю #183 | Наверх | Cообщить модератору

198. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +2 +/
Сообщение от Аноним (-), 27-Фев-17, 16:53 
> В случае, если все участки работы с железными портами уже заранее вынесены
> в отдельную систему (в микроядро) - эмулятор уже не требуется. Сами
> тесты могут контроллировать (предоставляя API микроядра) что и как вызывает код.

И что толку ? Разработчик (прочитав мануал) считает что нужно писать 42 в регистр X, затем 322223 в регистр Y, тесты проходятся, драйвер не работает.

И как теперь оленя пасти ?

Ответить | Правка | Наверх | Cообщить модератору

215. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –2 +/
Сообщение от Анонимм (??), 27-Фев-17, 17:27 
Менять тесты. Ведь они - просто закодированное желание автора.
Он хочет, чтоб не работало - так и запишет.
Если ему не понравится результат - он изменит тесты и посмотрит на новый.
Ответить | Правка | Наверх | Cообщить модератору

223. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +/
Сообщение от Аноним (-), 27-Фев-17, 17:45 
> И что толку ? Разработчик (прочитав мануал) считает что нужно писать 42
> в регистр X, затем 322223 в регистр Y, тесты проходятся, драйвер
> не работает.
> И как теперь оленя пасти?

А здесь требуется анализ - почему не работает. Может быть глюк в железе, может быть представление автора о работе этого железа неправильное, может быть покрытие тестами недостаточное, а может быть тесты - бесполезная лажа.


Ответить | Правка | К родителю #198 | Наверх | Cообщить модератору

229. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  –2 +/
Сообщение от Анонимм (??), 27-Фев-17, 17:53 
> а может быть тесты - бесполезная лажа.

А может и защита от своих же опечаток - это тоже лажа.
У каждого свой уровень.

Ответить | Правка | Наверх | Cообщить модератору

208. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +/
Сообщение от Аноним (-), 27-Фев-17, 17:11 
> Спецификацией так и остаётся текстовое описание дизайнеров железки. Набор же тестов -
> это видение разработчиков, но никак не дизайнеров.

В моей области и код и тесты пишутся по спецификации. Спецификация - учитывает требования заказчика, пользователей, индустрии. Если видение разработчиков расходится со спецификацией и это не вызвано проблемой в спецификации, то разработчики переписывают код.

> В случае, если все участки работы с железными портами уже заранее вынесены
> в отдельную систему (в микроядро) - эмулятор уже не требуется. Сами
> тесты могут контроллировать (предоставляя API микроядра) что и как вызывает код.

Написать эмулятор выйдет в миллионы раз дешевле, чем переписывать архитектуру такой огромной системы, как Линукс.

Ответить | Правка | К родителю #195 | Наверх | Cообщить модератору

222. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +1 +/
Сообщение от Анонимм (??), 27-Фев-17, 17:41 
> Если видение разработчиков
> расходится со спецификацией и это не вызвано проблемой в спецификации, то
> разработчики переписывают код.

Однозначно.
Вопрос лишь в выявлении возможных несоответствий (которые возможны, ведь тесты и спецификация на людском языке - всё-таки разные документы).


> Написать эмулятор выйдет в миллионы раз дешевле, чем переписывать архитектуру такой огромной
> системы, как Линукс.

Да. Но раздельные адресные пространства для самих дров линуха - такой эмулятор не даст.
Более простая тестируемость - это же лишь следствие микроядра.

Ответить | Правка | Наверх | Cообщить модератору

196. "Линус Торвальдс выступил с критикой контроля качества в  DRM..."  +/
Сообщение от Аноним (-), 27-Фев-17, 16:50 
Вас маркетологи покусали ?
Ответить | Правка | К родителю #183 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру