Как стать автором
Обновить
162.72

Тестирование IT-систем *

Тестируем все и вся

Сначала показывать
Порог рейтинга
Уровень сложности

СДЭК в критические дни и приключения с потерянным лекарством

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров49K

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

Предыдущей пачки должно было хватить до следующего воскресенья. Доставка из Москвы в Екатеринбург обычно длится несколько дней. Все выглядело как никогда уверенно.

Невероятные приключения по поиску посылки
Всего голосов 183: ↑160 и ↓23+167
Комментарии207

Новости

Повышение живучести SSD за счёт его превращения из QLC в SLC

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров42K

В этой статье мы займёмся беспрецедентным экспериментом! Я шаг за шагом проведу вас через процесс преобразования SSD на базе QLC NAND в SLC SSD, что позволит значительно повысить его ресурс и общую производительность.

▍ Спецификация испытуемого SSD



На роль испытуемого я выбрал Crucial BX500, который мы уже много раз тестировали, освещая этот процесс как на нашем сайте, так и на YouTube-канале.
Читать дальше →
Всего голосов 101: ↑99 и ↓2+126
Комментарии95

Rust — это не «memory safe C»

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров51K

TL;DR:
— в Rust намного больше достоинств, чем просто скорость и безопасность
— в Rust по умолчанию CDD (compiler-driven development, разработка через компилирование). Это как TDD, только CDD
— Rust — не сложный язык, особенно если не гнаться за максимальной производительностью

В этой статье я бы хотел рассказать:
— почему взгляд на Rust как на "memory safe C" очень сильно сужает область его возможного применения
— почему я смотрю на Rust как на очень удобный в разработке язык высокого уровня, которому просто случайно повезло оказаться невероятно быстрым
— почему разработка на Rust быстрее, чем многие думают
— почему Rust — это один из лучших языков общего назначения

Читать далее
Всего голосов 155: ↑149 и ↓6+168
Комментарии555

Взламываем транспортные карты: чит на бесконечные деньги

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров121K

Этот парень открыл все турникеты на станции. Вы до сих пор считаете, что все хакеры вредны?

Начну с простого вопроса: кто из вас пользуется общественным транспортом? А кому нравится за него платить? Если такие все же найдутся, то могут смело переставать читать статью. Для остальных у меня есть рассказ о том, как четверо старшеклассников из Массачусетса взломали местную транспортную систему.

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

Читать далее
Всего голосов 114: ↑112 и ↓2+138
Комментарии185

Истории

Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров106K

Гуд ньюз эвриван! Спустя полтора года работы восьми айтишников с суммарным опытом в IT 130 лет достигнут результат в виде учебника по тестированию, которого еще никто и никогда не делал.

Читать далее
Всего голосов 131: ↑130 и ↓1+158
Комментарии162

Самый быстрый браузер

Время на прочтение5 мин
Количество просмотров94K


В июле 2023 года произошло важное событие — Firefox превзошёл Chrome в популярном тесте Speedometer, который измеряет скорость работы браузеров.

Были времена, когда Firefox считался медленным и неповоротливым браузером, потребляющим много памяти и в целом «тормозным». Когда появился Chrome, то некоторые пользователи перешли на него из-за лучшей производительности. Сейчас ситуация кардинально меняется.

Как Mozilla сумела добиться такого результата?
Читать дальше →
Всего голосов 87: ↑86 и ↓1+117
Комментарии140

Почему поиск по фото у Google и Apple не способен найти обезьян

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров43K

В мае 2015 года Google выпустила отдельное приложение «Фотографии». Люди были поражены тем, что оно способно анализировать изображения, разбирать их на детали, а потом маркировать людей, места и вещи. Даже переводить текст!

Была только одна проблема. Google внедрил «категоризацию фотографий» — все фотографии автоматически размечались и организовывались в папках на основании того, что на них было. И через пару месяцев 22-летний программист-фрилансер Джеки Альсине обнаружил, что все фотографии, на которых был изображен он и его девушка, оба чернокожие, были помечены как «гориллы». Причем если на фотографиях был виден белый человек или человек со светлой кожей, Google маркировал их правильно — например, «выпускной» или «поход в бар». М-да.

История сразу разгорелась в Твиттере. После шквала негатива Google поклялась больше не позволять своему приложению классифицировать каких-либо людей как «горилл» и пообещала решить эту проблему. Восемь лет спустя — эта история, оказывается, всё еще не затухла, и влияет на развитие современных ИИ больше, чем можно было бы ожидать.

Читать далее
Всего голосов 123: ↑117 и ↓6+145
Комментарии301

Заблуждения программистов о времени

Время на прочтение12 мин
Количество просмотров74K

Музей-скансен эпохи Средневековья в Дании в режиме обычной работы (слева) ставит целью воссоздать повседневную жизнь города на стыке XIV и XV веков. Для съёмок фильма (справа) он «погрязнел»

Для киносъёмок в музей под открытым небом Middelaldercentret внесли несколько изменений. Вместо аккуратной каменной улицы развели неприятную кашицу из грязи, не самые роскошные стеклянные окна прикрыли досками и развесили везде выцветшее тряпьё. Здания как следует измазали чем-то коричневым, кое-где зачем-то перемешав субстанцию с соломой. В случайное здание воткнули факел, а не попытались изобразить лучину или фонарь.

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

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

Попытки собрать заблуждения про время и часовые пояса на Хабре уже были шесть и десять лет назад. Но без контрпримеров не так интересно.

Заблуждение 1. В сутках 24 часа или 86 400 секунд


Иногда и кое-где стрелки часов переводят, создавая сутки длиной в 23 и 25 часов — всё очевидно. Будет неплохо углубиться в случаи поэкзотичней.
Читать дальше →
Всего голосов 152: ↑145 и ↓7+177
Комментарии313

Можно ли тестировать API ногами?

Время на прочтение6 мин
Количество просмотров21K

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

Читать полностью
Всего голосов 152: ↑152 и ↓0+150
Комментарии47

Что же не так с любыми электронными голосованиями?

Время на прочтение7 мин
Количество просмотров45K

Данная публикация написана по мотивам поста «Что же не так с ДЭГ в Москве?». Его автор описывает, как можно выгрузить и расшифровать данные по электронному голосованию, а также приводит целый список замечаний к его текущей системе.

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

UPD: Добавил также графики по партийным спискам + отметил некоторые странности в соотношении выданных/полученных транзакций в самом начале (возможно, это объяснимо техническими проблемами).

Читать далее
Всего голосов 155: ↑148 и ↓7+183
Комментарии422

Что же не так с ДЭГ в Москве?

Время на прочтение18 мин
Количество просмотров101K

Что же не так с ДЭГ в Москве


Последние три дня я занимался тем, что анализировал результаты ДЭГ в Москве по одномандатным округам в Госдуму. У меня есть некоторые результаты, которыми я бы хотел поделиться с общественностью. Однако основная цель этого поста — поделиться накопленными знаниями, чтобы кто-то ещё мог взглянуть на те данные, что лежат в блокчейне и перепроверить результаты.

Где лежат результаты и как их проверять


Часть исходного кода системы лежит в репозитории github.com/moscow-technologies/blockchain-voting_2021. Там лежит исходный код той части, которая про блокчейн, транзакции и тд, а также какой-то код фронтенда, написанный на JS. Отдельно отмечу некоторый забавный факт, что вместо общего репозитория со всем кодом там лежит несколько .tar.gz архивов, внутри которых уже есть код. В репозитории всего 4 коммита, сам код публиковали только 2 раза: 22 августа и 6 сентября. Никакой истории разработки у нас нет. Чтобы не приходилось распаковывать эти архивы — я залил распакованный репозиторий к себе на Github, можете читать код из браузера, если кому лень загружать и распаковывать самостоятельно: github.com/PeterZhizhin/blockchain-voting_2021_extracted

На сайте observer.mos.ru/all можно скачать дампы системы электронного голосования по одномандатным выборам, внутри которого будет лежать база с транзакциями, результаты расшифровки голосов и блоки в блокчейне. По кнопке “Скачать SQL дамп” загружается gz архив, внутри которого лежит один .sql файл.

Чтобы загрузить этот файл вам необходимо поднять у себя PostgreSQL базу. Я сделал это как-то вот так:
Читать дальше →
Всего голосов 297: ↑295 и ↓2+376
Комментарии321

Ты добавил всего две строчки. Почему на это ушло два дня?

Время на прочтение3 мин
Количество просмотров64K
На первый взгляд вопрос кажется разумным, но он делает некоторые ужасные предположения:

  • строки кода = усилие
  • строки кода = значение
  • все строки кода равны

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

Почему исправление, которое кажется таким простым, заняло два дня?
Читать дальше →
Всего голосов 127: ↑122 и ↓5+147
Комментарии225

Особенности национального распознавания образов

Время на прочтение4 мин
Количество просмотров34K

«Когда я слышу про распознавание образов, я никогда не спрашиваю, хорошие там алгоритмы или плохие. Я спрашиваю только, отличают ли они мотоцикл от трактора.» ©
Читать дальше →
Всего голосов 125: ↑119 и ↓6+113
Комментарии196

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
24 сентября
Astra DevConf 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн

Анализ инцидента 21 октября на GitHub

Время на прочтение10 мин
Количество просмотров56K
Роковые 43 секунды, которые вызвали суточную деградацию сервиса

На прошлой неделе в GitHub произошёл инцидент, который привёл к деградации сервиса на 24 часа и 11 минут. Инцидент затронул не всю платформу, а только несколько внутренних систем, что привело к отображению устаревшей и непоследовательной информации. В конечном счете данные пользователей не были потеряны, но ручная сверка нескольких секунд записи в БД выполняется до сих пор. На протяжении почти всего сбоя GitHub также не мог обрабатывать вебхуки, создавать и публиковать сайты GitHub Pages.

Все мы в GitHub хотели бы искренне извиниться за проблемы, которые возникли у всех вас. Мы знаем о вашем доверии GitHub и гордимся созданием устойчивых систем, которые поддерживают высокую доступность нашей платформы. С этим инцидентом мы вас подвели и глубоко сожалеем. Хотя мы не можем отменить проблемы из-за деградации платформы GitHub в течение длительного времени, но можем объяснить причины произошедшего, рассказать об усвоенных уроках и о мерах, которые позволят компании лучше защититься от подобных сбоев в будущем.
Читать дальше →
Всего голосов 108: ↑108 и ↓0+108
Комментарии37

24-ядерный CPU, а я не могу набрать электронное письмо

Время на прочтение9 мин
Количество просмотров100K
Я не искал неприятностей. Не запускал процесс сборки Chrome тысячу раз за выходные, а только занимался самыми обычными задачами 21-го века — просто писал электронное письмо в 10:30 утра. И вдруг Gmail подвис. Я продолжал печатать несколько секунд, но на экране не появлялось никаких символов. Затем внезапно Gmail отвис — и я вернулся к своему очень важному письму. Но впоследствии всё повторилось, только на этот раз Gmail ещё дольше не отвечал запросы. Это странно

Трудно устоять перед возможностью провести хорошее расследование, но в данном случае вызов особенно силён. Ведь я в Google работаю над улучшением производительности Chrome для Windows. Обнаружить причину зависания — моя работа. И после множества фальстартов и тяжёлых усилий мне всё-таки удалось выяснить, как Chrome, Gmail, Windows и наш IT-отдел вместе помешали мне набрать электронное письмо. По ходу дела нашёлся способ сэкономить значительное количество памяти для некоторых веб-страниц в Chrome.

В расследовании оказалось так много нюансов, что я оставлю некоторые для другой статьи, а сейчас полностью объясню причины подвисаний.
Читать дальше →
Всего голосов 137: ↑129 и ↓8+121
Комментарии161

24-ядерный CPU, а я не могу сдвинуть курсор

Время на прочтение5 мин
Количество просмотров126K
Всё началось, как это часто бывает, когда моя машина стала подтормаживать. На рабочем компьютере Windows 10 c 24-ядерным процессором (48 потоков), который на 50% простаивал. Из 64 ГБ памяти использовалось меньше половины. Быстрый SSD тоже не особо использовался. И всё же, когда я двигал мышкой, курсор реагировал не сразу — иногда с задержкой в несколько секунд.

Так что я сделал то, что и всегда — записал и проанализировал трассировку событий с помощью ETW. В результате я обнаружил баг Windows 10, серьёзно влияющий на производительность завершения процессов.

Трассировка ETW показала, что UI зависает во многих программах. Я решил исследовать 1,125-секундное зависание в Диспетчере задач:


Читать дальше →
Всего голосов 158: ↑155 и ↓3+152
Комментарии368

Как я нашёл баг в процессорах Intel Skylake

Время на прочтение9 мин
Количество просмотров47K
Инструкторы курсов «Введение в программирование» знают, что студенты находят любые причины для ошибок своих программ. Процедура сортировки отбраковала половину данных? «Это может быть вирус в Windows!» Двоичный поиск ни разу не сработал? «Компилятор Java сегодня странно себя ведёт!» Опытные программисты очень хорошо знают, что баг обычно в их собственном коде, иногда в сторонних библиотеках, очень редко в системных библиотеках, крайне редко в компиляторе и никогда — в процессоре. Я тоже так думал до недавнего времени. Пока не столкнулся с багом в процессорах Intel Skylake, когда занимался отладкой таинственных сбоев OCaml.

Первое проявление


В конце апреля 2016 года вскоре после выпуска OCaml 4.03.0 один Очень Серьёзный Индустриальный Пользователь OCaml (ОСИП) обратился ко мне в частном порядке с плохими новостями: одно из наших приложений, написанное на OCaml и скомпилированное в OCaml 4.03.0, падало случайным образом. Не при каждом запуске, но иногда вылетал segfault, в разных местах кода. Более того, сбои наблюдались только на их самых новых компьютерах, которые работали на процессорах Intel Skylake (Skylake — это кодовое название последнего на тот момент поколения процессоров Intel. Сейчас последним поколением является Kaby Lake).

За последние 25 лет мне сообщали о многих багах OCaml, но это сообщение вызывало особенное беспокойство. Почему только процессоры Skylake? В конце концов, я даже не мог воспроизвести сбои в бинарниках ОСИПа на компьютерах в моей компании Inria, потому что все они работали на более старых процессорах Intel. Почему сбои не воспроизводятся? Однопоточное приложение ОСИПа делает сетевые и дисковые операции I/O, так что его выполнение должно быть строго детерминировано, и любой баг, который вызвал segfault, должен проявлять себя при каждом запуске в том же месте кода.
Читать дальше →
Всего голосов 140: ↑140 и ↓0+140
Комментарии31

Toyota: 81 514 нарушений в коде

Время на прочтение5 мин
Количество просмотров103K


Люди: — Эй, Тойота, мы тут посчитали, у вас из-за корявой электроники и софта 89 человек погибло с 2000 по 2010.
Тойота: — Да они сами виноваты, путают педали.
Люди: — Хьюстон, у нас проблемы.
NASA: — Ща разберемся, нам надо 10 месяцев и 3 миллиона долларов.
Люди: — На.
Тойота: — 3 миллиона мало, вот вам еще сверху кэшем.
(прошло 10 месяцев)
NASA: — Эй, Тойота, мы у вас пару ошибок в коде нашли, а точнее 7134 нарушения стандартов MISRA, рекурсию, функцию на 740 строк и 9000 глобальных переменных.
Тойота: — А у нас свои стандарты. А вы ваще на Луну летали?
NASA (публично): — Тойота ни в чем не виновата.
(Акции Тойота подскочили на 4,6%)
Люди: — Ну ё-моё.
(спустя 3 года)
Два американских тестировщика (у которых дедушки погибли в Перл-Харбор): — Нет багов? А если найдем?
Всего голосов 131: ↑123 и ↓8+115
Комментарии268

Космическая ошибка: $370 000 000 за Integer overflow

Время на прочтение9 мин
Количество просмотров111K
Пуск.
37 секунд полета… бабах!
10 лет и 7 миллиардов долларов, потраченных на разработку.
Четыре полуторатонных спутника научной программы Cluster (изучение взаимодействия солнечного излучения с магнитным полем Земли) и ракета носитель Ariane 5 превратились в «конфети» 4 июня 1996 года.
А вину свалили на программистов.



Предыдущая модель — ракета Ariane 4 — успешно запускалась более 100 раз. Что пошло не так?

Чтобы штурмовать небеса, нужно хорошо знать язык Ада.
Всего голосов 113: ↑107 и ↓6+101
Комментарии99

Блог департамента информационных технологий города Москвы на «Хабрахабре»

Время на прочтение1 мин
Количество просмотров48K
Привет, Хабр! Вот, наконец, и мы как часть большого и не самого поворотливого механизма дошли до того, чтобы завести тут свой блог.

Вообще, мы довольно давно думали над этим и присматривались к вашим дискуссиям, но решающим событием стала публикация про «несанкционированный» доступ к тысячам московских камер, мы поняли, что лучше с этим не тянуть и включиться в диалог. Можно спорить о правомерности способа получения информации с камер, однако, как мы уже писали, открытие доступа к камерам было в наших планах.


Читать дальше →
Всего голосов 140: ↑123 и ↓17+106
Комментарии101