Pull to refresh
45
0
Сергей Бронников @estet

Пользователь

Send message

В комментариях к оригинальной статье в вашем блоге мне так и не ответили, попробую здесь спросить:

Fail: Мы не смогли обеспечить третье важное условие — наблюдаемость. Оказалось, в режиме, когда FIO проигрывает записанные трейсы, утилита не умеет проверять целостность данных. Мы можем запустить сценарий, но не увидим, сломалось ли что-то и, если сломалось, то где и как. Мы теряем одно из этих условий, и поэтому данный подход нам тоже никак не использовать для анализа нашей несчастной проблемы.

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

Наша команда в свое время остановилась на LTTng. Это довольно интересный инструмент, который позволяет собирать большое количество отладочной информации в единицу времени без существенного влияния на систему.

Почему не ebpf? На SO есть сравнение ebpf vs lttng (https://stackoverflow.com/a/74 114 798/3665613), но интересно ваш ответ услышать.

Все так, да. Спасибо за уточнение.

Спасибо, Александр, за напоминание, что классику надо не забывать читать.

Но перечисленной литературой тоже не надо ограничиваться, почему-то упомянутые книги Савинова и Куликова на слуху, но есть много других полезных книг о тестировании. Я бы порекомендовал обратить внимание на Software Testing: A Craftsman’s Approach - Paul C. Jorgensen и Effective Software Testing, A developer’s guide - Maurício Aniche (есть русскоязычный перевод), The Fuzzing Book: Tools and Techniques for Generating Software Tests.

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

Конечно же, используются регрессионные тесты, которые могут выполняться десятки часов, санитайзеры типа ASan (утечки памяти) или UBSan (неопределенное поведение). Для фаззинга нативного кода используется AFL++, а для Java-кода — JQF и Jazzer. В общем, используется полный набор инструментов и подходов, которые позволяют найти даже самые хитрые баги.

А где можно посмотреть код фаззинг-тестов и покрытие кода после фаззинг-тестирования?

В статье по ссылке лишь общая информация про фаззинг.

У меня нет опыта использования FreeBSD, поэтому сравнить не могу.

Я использую. Мне нравится, что ОС минималистична, развивается консистентно (в согласовании между компонентами), хорошо тестируется как сама ОС, так и софт в портах.

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

А у вас в Selectel есть поддержка OpenBSD для виртуальных машин? Как хорошо она там работает? В документации ссылка на Панель управления, а чтобы туда попасть нужно иметь аккаунт.

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

https://twobithistory.org/2018/08/18/ada-lovelace-note-g.html

Спасибо за статью. Сам исследовал этот же вопрос для питания роутера и свитча в слаботочном щитке (одно из ограничений - мало места) и так ни на чем не остановился, все варианты не помещались в щиток. Самым интересным вариантом показался OpenUPS (они сейчас блокируют доступ на свой сайт, можно в webarchive посмотреть или в кеше поисковиков) и UPS на DIN-рейку DR-UPS40 от MEAN WELL.

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

Насколько успешен был ваш фаззер для PHP?

Да, это тоже фаззинг, но фаззинг без обратной связи. Если вам тоже интересно тестирование компиляторов с помощью фаззинга, то возможно заинтересует доклад на эту тему:

 Стоит отметить, что Go — это первый из распространённых языков, в котором есть встроенный фаззер. 

LibFuzzer (C/C++) был раньше

Конечно, фаззеры появились задолго до языка Go. Это, например, CrashMeClusterFuzzAFLlibFuzzer и другие.

ClusterFuzz это инфраструктура для фаззинга

Почему не использование библиотеки Hypothesis со стратегией from_regex?

Спасибо! Вы рассматриваете только Linux-based операционные системы, лучше это указать в заголовке. Потому что есть отечественные производители ОС, не основанные на Linux (KasperskyOS, PhantomOS, Embox и т.д.)

(тоже делал непредвзятый обзор отечественных Linux дистрибутивов)

Неоспоримый плюс semgrep перед другими подобными инструментами - это поддержка большого количества языков. Не нашел другого варианта для написания правил для Lua кроме как semgrep.

nemu - вот это действительно легко.

А кто-нибудь когда-нибудь видел истории успеха использования SMT-решателей на реальных задачах?

Например "Checking Firewall Equivalence with Z3" и "Using Z3 Theorem Prover to analyze RBAC", "Semantic-based Automated Reasoning for AWS Access Policies using SMT".

А сколько у вас времени занимает один цикл регрессионного тестирования?

Information

Rating
3,515-th
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity