Как команда Ubuntu уверяет, что ошибки больше не появятся?
Я видел это несколько раз.
Да, иногда ошибки исправляются очень быстро.
Но я не вижу усилий, чтобы улучшить автоматическое тестирование, чтобы ошибка не появлялась
Вот два примера, которые повлияли на меня в течение последних двух недель:
https://bugs.launchpad.net/ubuntu/+source/vsftpd/+bug/1219857 https://bugs.launchpad.net/ubuntu/+source/python3.4/+bug/1290847Есть больше примеров, но перечисление их не является частью вопроса.
Один комментарий с страницы ошибки vsftp:
Пожалуйста, помогите нам, протестировав этот новый пакет. См. Https://wiki.ubuntu.com/Testing/EnableПроведено для документации, как включить и использовать -предложен. Ваши отзывы помогут нам получить это обновление для других пользователей Ubuntu.ОК, но «тестирование» в приведенной выше цитате - это ручное тестирование.
Для обеспечения качества требуется ручное тестирование.
Для меня ручное тестирование - пустая трата времени. С другой стороны, создание автоматических тестов гарантирует качество.
Здесь снова возникает вопрос:
Как команда Ubuntu уверяет, что ошибки больше не появляются?
История этого вопроса
Сначала заголовок был «Как команда Ubuntu уверяет, что ошибки больше не появляются?». Теперь это «Как команда Ubuntu выполняет автоматическое тестирование?». Это было сделано, потому что я считаю, что ручное тестирование не является решением. Пожалуйста, не отвечайте на голосовые ответы, которые объясняют только то, как проводится ручное тестирование.
Несколько способов.
Много глаз. Ubuntu - это Open Source, что означает, что любой может посмотреть на код и посмотреть, в чем проблема. Люди, которые заинтересованы в просмотре кода, будут часто находить ошибки в нем или, как они его используют, и сообщают об этом на панели запуска, и публика может даже исправить их. Когда вы протестировали его и предложили исправить, вы запросите слияние с основным пакетом Ubuntu. Другие разработчики рассматривают это изменение, и если одобрение добавит его. Поскольку кто-то может их исправить, они быстро обнаруживаются, и они проверяются, они менее склонны к тому, чтобы время от времени зависать. Это приводит к следующему пункту. Эти глаза также включают в себя компьютерные глаза: процесс контроля качества вверх должен быть документирован / продемонстрирован и связан с ошибкой отслеживания SRU. В других случаях, когда такое автоматическое тестирование выше по течению недоступно ... Что показывает, что обычно выполняется автоматическое тестирование. Бета-релизы Перед выпуском Ubuntu публикуются бета-версии. В настоящее время это бета-версия 15.10, которая будет выпущена 22 октября 2015 года. Многие, и многие люди будут использовать, просматривать и исправлять ошибки до ее выпуска (в течение 5 месяцев 22 дня в этом случае). Это означает, что любые ошибки удаляются быстро (из-за Many Eyes), и типичные пользователи не затронуты, потому что они исправлены до того, как они официально выпущены. Авторы кода экспертов Люди, которые умеют писать высококачественный код, - это люди, которые пишут код. Не только один человек сидит, пишущий Ubuntu следующим образом: Есть люди со всего мира, и люди, нанятые Canonical, компанией за Ubuntu. Все эти люди вносят немного нового кода. Если я напишу 2000 строк кода, будет много ошибок. Если 200 человек пишут всего 10, их будет намного меньше. Стабильные основания Насколько я знаю, Ubuntu не переписывается с нуля каждый раз, когда появляется новая версия. Вместо этого, следующая версия начинается с текущей версии (т. Е. На 2015/04/30 как 15.10, так и 15.04 были одинаковыми), и новые функции добавляются оттуда. Если у вас есть хорошая база для работы, тогда у вас меньше кода для написания и можно доверять тому, что уже существует. Если вы можете положиться на то, что там, вы получите меньше ошибок. Программное обеспечение для управления версиями и записью Если ошибка повторяется несколько раз (в разных версиях или исправление не работает, или ошибка вернулась из-за другого патча) то у них есть документация, чтобы объяснить, как она была исправлена - и они могут исправить ее снова.Насколько я могу судить, автоматических тестов нет. Но что такое автоматизированный тест? Если он компилируется, это тот? Вы не можете просто сказать «автоматические тесты», не объясняя, что это
Не записывайте код с ошибками. LOL нормально. Я потерял волю, чтобы написать подробный ответ на это. Вот достойная статья: https://www.iiitd.edu.in/~jalote/papers/CommonBugs.pdf
и вот хорошая книга о создании https: //www.iiitd .edu.in / ~ jalote / papers / CommonBugs.pdf
Лучший ответ может заключаться в том, чтобы просто выполнить некоторые задачи по разработке программного обеспечения и убедиться, для себя, где возникают проблемы. Обработка неожиданного ввода / результатов - это довольно серьезная проблема в моем опыте. Затем появляются ошибки потока. Подобно тому, как кто-то обнаруживает уязвимость в iostream.h, и каждый фрагмент программного обеспечения, который вызывает эту библиотеку, может также иметь эту ошибку, необходимо, по крайней мере, пересмотреть.
, что и для автоматического тестирования, оно существует, но оно также имеет ограничения. Я не знаю ни одного решения, которое работает на каждом языке. Если вам действительно интересно, напишите нам отладчик генетического кода с некоторым AI. Насколько я знаю, все это все еще в зачаточном состоянии, Heres некоторые работы от аспирантов: https://www.cs.cmu.edu/~clegoues/docs/legoues-icse09.pdf