Количество ошибок падает с выходом новых выпусков Ubuntu?
Если бы мы могли посчитать количество ошибок в выпуске Ubuntu (... 10.04, 10.10, 11.04, ...), было бы это уменьшающейся линией?
Если нет, то почему? Разве не смысл новых выпусков исправлять предыдущие проблемы? Разве мы не можем мечтать о безупречной Ubuntu LTS?
4 ответа
Нет. Новые выпуски будут иметь новое программное обеспечение и новые версии программного обеспечения, поэтому у них будут совершенно новые ошибки.
Новое оборудование также вводит новые драйверы, новое программное обеспечение и, следовательно, новые ошибки.
Разве не смысл новых выпусков исправлять предыдущие проблемы?
Вы также можете исправлять ошибки, удаляя программное обеспечение и переключаясь на другое программное обеспечение, которое занимает меньше места (меньше кода, как правило, содержит меньше ошибок, поскольку меньше ошибок).
Как пример: мы перешли от Gnome к Unity. Поэтому в старых выпусках не будет ошибок, связанных с Unity, а в более новых версиях их будет много, где у нас все еще есть производные Ubuntu, использующие Gnome. Таким образом, эти ошибки Unity вызвали увеличение количества ошибок.
Вы когда-нибудь слышали о трекере ошибок? Это приведет вас к http://errors.ubuntu.com/ и...
В качестве примера: до Ubuntu 18.04 мы, вероятно, увидим, как количество ошибок увеличилось вдвое. Мы будем иметь дело не только со "старым" Unity7, но и с "новым" Unity 8. Абсолютно новый рабочий стол, который будет иметь свой собственный стиль проблем (он же баги).
Для добавления в список интересных ссылок: на панели запуска ошибок есть список ошибок с тегами на них. Он также включает в себя ошибки, специфичные для релиза (большинство ошибок, вероятно, не специфичны для релиза):
57 zesty
2346 yakkety
3043 xenial
2382 wily
4415 vivid
37 utopic
2724 trusty
1 saucy
1995 precise
Если вы посмотрите на это количество сильно варьируется между выпусками. Yakkety довольно неплох по сравнению с Xenial и Vivid.
Если бы мы могли посчитать количество ошибок в выпуске Ubuntu (... 10.04, 10.10, 11.04, ...), было бы это уменьшающейся линией?
Это может уменьшиться, но мы говорим об разработке программного обеспечения. Итак, давайте немного поговорим о разработке программного обеспечения.
Разработка программного обеспечения - это не наука!Это искусство!
Когда кто-то пишет программное обеспечение, он делает предположения. Они пытаются что-то сделать. Они обычно кодируют, что (к сожалению) имеет тенденцию создавать ошибки, которые никто не мог ожидать или видеть. Нет никакого способа гарантировать, что любой кусок кода не содержит ошибок.Разработчики программного обеспечения - люди
"Человеку свойственно ошибаться", как говорится. Люди не идеальны. Они делают ошибки. Они забывают изменить переменную. Они не видят странного триггера, который может привести к сбою Ubuntu.В этом случае разработка программного обеспечения - это не жизнь или смерть
Ubuntu поставляется с возможностью обновления. Не существует того же менталитета "О, боже, это должно быть на 100% безошибочно и проверено, потому что его уже никогда нельзя будет изменить". Можно делать ошибки, потому что они могут быть исправлены позже. Хотя это не оправдание для преднамеренного игнорирования ошибок, все может ускользнуть из-за того, что тестирование не охватывает странный крайний случай, который оказывается довольно распространенным явлением. В других случаях крайний случай настолько острый, что, возможно, два человека во всей истории когда-либо вызовут эту ошибку.
Разве не смысл новых выпусков исправлять предыдущие проблемы?
Новые выпуски включают новые функции и исправления. К сожалению, новые функции также означают новые ошибки.
Разве мы не можем мечтать о безупречной Ubuntu LTS?
Мы можем мечтать, но только об этом. Это код, написанный людьми. Это не идеально и никогда не идеально. Ни одна программа, особенно такая сложная, как Ubuntu, не может быть безупречной.
Вы даже можете визуально увидеть этот эффект на трекере ошибок. После каждого выпуска количество ошибок, вызванных ошибками или различными взлетами, до тех пор, пока различные исправления и исправления не приведут их обратно к управляемым уровням.
TL; DR: Извините, ошибки являются частью разработки программного обеспечения.
Если каждая Ubuntu осталась в одной и той же версии своего компонентного программного обеспечения, вы могли бы предположить, что количество ошибок будет снижаться, однако внесены изменения для добавления функциональности в различные пакеты, составляющие Ubuntu, поэтому новые ошибки появляются с каждым изменением.
Не все ошибки разрешимы, некоторые при ближайшем рассмотрении делятся на большее количество ошибок, а некоторые - на меньшие, многие из них даже не доходят до разработчика, потому что они недостаточно хорошо описаны или достаточно повторяемы.
Другим фактором является то, что пользовательская база растет, это означает, что больше возможностей для поиска ошибок (больше времени использования), но не увеличивает ресурсы для их устранения, поскольку это не равнозначно большему количеству разработчиков.
Еще одним фактором является то, что Ubuntu работает на очень разнообразной платформе, которая постоянно меняется, некоторые ошибки полностью связаны с аппаратными особенностями, которые не являются ошибкой Ubuntu.
Как профессиональный QA, я могу сказать вам, что не может быть программного обеспечения без ошибок, лучшее, что вы можете получить, это доказать, что то, что вы хотите сделать с некоторым кодом, не вызывает ошибок. Нулевые ошибки (в нетривиальном проекте) - это философская невозможность по многим причинам, наиболее сильным из которых является то, что совершенство невозможно во времени и пространстве, если оно там, где это уже произошло, и было бы совершенно очевидно, если бы это было возможно. Другая причина заключается в том, что разница между ошибкой и функцией находится в глазах смотрящего, то, что вы называете ошибкой, может быть функцией для разработчика и наоборот.
Это не значит, что я думаю, что дистрибутивы Ubuntu имеют низкое качество, отнюдь не так, они реально приближаются к компромиссу между новой функциональностью и стабильностью таким образом, о котором большинство коммерческих ОС могли только мечтать. График, опубликованный rinzwind, впечатляет тем, что, несмотря на все эти серьезные проблемы, подавляющее большинство обнаруженных ошибок обрабатывается и обычно устраняется.
Количество сообщений об ошибках основано на:
- больше строк кода = больше шансов на ошибку. Ubuntu основана на ядре Linux, которое выросло с 150 тысяч строк (версия 1) до 17 миллионов строк (версия 4.5.4).
- больше пользователей = большее количество потенциальных аппаратных / программных пар, приводящих к ошибкам
- больше пользователей = больше шансов сообщить об ошибках. Если об ошибках сообщается только в 20% случаев и 5 пользователей сталкиваются с ними, о них может не сообщаться. Если 50 пользователей столкнутся с этим (из-за большей базы пользователей), об этом будет сообщено.
- новое оборудование = больше ошибок. Мы видим все виды ошибок с процессором Intel Bay Trail, картами nVidia и картами Radeon. Это только увеличится с 4k TV, USB 3.1 и любым новым аппаратным развитием на горизонте.
- Больше оборудования = больше шансов на конфликты. Каждое новое устройство может иметь свой собственный драйвер устройства / модуль ядра. Больше модулей = больше шансов столкновения двух против друг друга, создающих ошибку.
- Больше программного обеспечения = больше шансов на конфликты. По мере роста базы пользователей растет объем программного обеспечения, разработанного для них. Apache Open Office может конфликтовать с Libre Open Office, и некоторые могут выбрать и то, и другое, потому что места для хранения так много по более низким ценам. Сейчас может быть доступно 5 программ для управления скоростью вентилятора, и пользователь может установить более одной, и они могут конфликтовать друг с другом, вызывая микрозамок системы каждые 10 секунд.
Имейте в виду, что с ростом количества ошибок растет число людей, которые их исправляют, а пользователи делятся решениями / ответами с другими.
Кроме того, в некоторых случаях количество ошибок не увеличивалось, а число людей, с которыми они сталкивались, увеличивалось. Также, как указывалось ранее, увеличилось количество людей, сообщающих об ошибках.