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

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

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

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

Автоматическое тестирование аналитики в браузере

Время на прочтение9 мин
Количество просмотров9.7K
Представьте себе такую ситуацию. Вы запилили мегакрутую фичу на странице сайта и через месяц решили оценить её эффективность. Начинаете считать — и понимаете, что своим релизом вы сломали метрики на странице: случайно удалили код, отправляющий важные события аналитики, или забыли покрыть новую фичу событиями. Знакомо?

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

Если события приходят некорректно, отчёт будет недостоверным.

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

Читать дальше →
Всего голосов 58: ↑58 и ↓0+58
Комментарии4

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

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

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

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

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

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

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

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

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


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

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


Часть исходного кода системы лежит в репозитории 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 базу. Я сделал это как-то вот так:
Читать дальше →
Всего голосов 380: ↑378 и ↓2+376
Комментарии321

Как выглядит тестирование электроники Flipper Zero

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


Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16]

Электронику и корпуса для Flipper Zero производят на разных заводах в Китае. Сегодня мы перемещаемся на фабрику, где производят электронику, и посмотрим, как выглядит автоматическое электронное тестирование отдельных плат Флиппера.

На больших объемах производства электроники всегда есть брак. Какой-то процент плат может тупо не работать, на других может быть маленький едва заметный дефект, вроде ухудшенных характеристик приема-передачи. Важно, чтобы бракованные Флипперы не уехали пользователям. Для этого на производстве все компоненты проходят два этапа тестирования: электрическое тестирование каждой платы по отдельности и потом тестирование всего устройства в сборе.

В статье мы разберем первый этап — автоматическое электронное тестирование отдельных плат Flipper Zero.
Всего голосов 96: ↑94 и ↓2+92
Комментарии96

Истории

Исследование: становилась ли Windows 10 медленнее с каждым feature update?

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

Одной из основных причин того, что некоторые люди избегают обновления своих ПК, стало то, что «обновления тормозят систему». Особенно это актуально для Windows 10 с её схемой Software as a Service, при которой ОС дважды в год получает «feature update». Но так ли это на самом деле?

Сегодня мы выясним, насколько менялась производительность Windows 10 со временем, проведя бенчмарки десяти аспектов работы с ОС:

  • Время установки
  • Время загрузки/перезагрузки
  • Запуск приложений Win32
  • Запуск приложений UWP
  • Windows Search
  • Производительность GDI
  • Нагрузочные испытания GDI
  • Быстрое сканирование Windows Defender
  • Производительность ввода-вывода
  • Выключение

Но для начала небольшое пояснение: хотя я стремился к максимально объективному сравнению метрик производительности, в моих измерениях могут быть погрешности. В этом эксперименте я использовал в качестве гипервизора для каждой сборки Hyper-V с 4 ГБ ОЗУ, 4 ядрами и 32 ГБ накопителя.

Каждая версия устанавливалась на чистую систему.

Итак, давайте приступим!
Всего голосов 85: ↑81 и ↓4+77
Комментарии61

Тинькофф, Я вас люблю и ненавижу…

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

В 21 веке, кто-то боится экосистем, кто-то их ненавидит, кто-то боготворит. Каждому предстоит самому делать выбор готов ли он жертвовать безопасностью ради удобства, складывая все яйца в одну корзину. Я пользуюсь Тинькофф уже несколько лет. Начал со счёта для ИП, как андроид разработчик, попробовал многие сервисы для физических лиц... И хотел бы рассказать о том, как банк сам не даёт себя любить. Ну серьёзно, в доме 31 градус - работать просто невозможно, почему бы не осчастливить Хабр очередным личным опытом?

Читать без соблюдения банковской тайны
Всего голосов 110: ↑101 и ↓9+92
Комментарии175

Почему вам не дают подробный фидбек после собеседования

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

Зашла вчера в чат тестировщиков и вижу знакомый диалог:

— Мне в фирме 1 обещали фидбек через пару дней. В итоге неделя прошла, сам им пишу, а меня игнорят...

— Ага, я вот тоже собеседование в фирме 2 прошел, мне обещали ответ дать. А прислали просто отписку! «Вы нам не подходите», и всё.

Читать далее
Всего голосов 115: ↑91 и ↓24+67
Комментарии326

Мы отрендерили миллион страниц, чтобы понять, из-за чего тормозит веб

Время на прочтение9 мин
Количество просмотров34K
Мы отрендерили 1 миллион самых популярных страниц веба, фиксируя все мыслимые метрики производительности, записывая все ошибки и замечая все запрошенные URL. Похоже, таким образом мы создали первый в мире набор данных, связывающий производительность, ошибки и использование библиотек в сети. В этой статье мы проанализируем, что наши данные могут сообщить о создании высокопроизводительных веб-сайтов.


  • Посещён 1 миллион страниц
  • Записано по 65 метрик каждой страницы
  • Запрошен 21 миллион URL
  • Зафиксировано 383 тысячи ошибок
  • Сохранено 88 миллионов глобальных переменных

Можно ли превзойти наш анализ? Мы опубликовали наш набор данных на Kaggle, поэтому вы можете обработать данные самостоятельно.

Зачем рендерить миллион веб-страниц?


Сегодня распространено мнение о том, что веб почему-то стал более медленным и забагованным, чем 15 лет назад. Из-за постоянно растущей кучи JavaScript, фреймворков, веб-шрифтов и полифилов, мы съели все преимущества, которые даёт нам увеличение возможностей компьютеров, сетей и протоколов. По крайней мере, так утверждает молва. Мы хотели проверить, правда ли это на самом деле, а также найти общие факторы, которые становятся причиной торможения и поломок сайтов в 2020 году.

Общий план был простым: написать скрипт для веб-браузера, заставить его рендерить корневую страницу миллиона самых популярных доменов и зафиксировать все мыслимые метрики: время рендеринга, количество запросов, перерисовку, ошибки JavaScript, используемые библиотеки и т.п. Имея на руках все эти данные, мы могли бы начать задаваться вопросами о том, как один фактор корреллирует с другим. Какие факторы сильнее всего влияют на замедление рендеринга? Какие библиотеки увеличивают время до момента возможности взаимодействия со страницей (time-to-interactive)? Какие ошибки встречаются наиболее часто, и что их вызывает?
Читать дальше →
Всего голосов 78: ↑67 и ↓11+56
Комментарии43

Так ли безопасен ваш iPhone? Обзор уязвимостей и тайных ходов в iOS

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


Пользовательские данные не являются разменной монетой. Компания Apple потратила значительные усилия для того, чтобы заслужить себе репутацию, стойко отбиваясь от ФБР и прочих представителей силовых структур, ищущих возможность произвольного сбора данных владельцев iPhone.

В 2016 г. Apple отказалась ослабить защиту iOS для того, чтобы ФБР могла разблокировать iPhone стрелка из Сан-Бернардино. Завладев смартфоном Сайеда Фарука и промахнувшись десять раз с набором четырехзначного PIN кода, правоохранители тем самым заблокировали смартфон. Тогда в ФБР потребовали, чтобы Apple создала специальную ОС, в которой возможно подобрать код безопасности методом перебора…
Читать дальше →
Всего голосов 50: ↑50 и ↓0+50
Комментарии28

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

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

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

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

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

Если вы используете моки, то вы хоть что-то тестируете?

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

Было ли у вас ощущение, что ради тестирования вы делаете код труднее для чтения? Допустим, у вас есть код, который ещё не тестировался. У него есть ряд побочных эффектов, и вас просят сначала прогнать тесты. Вы начинаете следовать советам вроде передачи глобальных переменных в виде параметров или извлечения проблемных побочных эффектов, чтобы сделать вместо них заглушки в тестах.

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

Вы останавливаетесь и задумываетесь: «Допустимо ли менять сигнатуры кода ради тестирования? Тестирую ли я реальный код или совершенно другой класс, в котором не происходит то, что нужно?» Перед вами может возникнуть дилемма. Вы уверены, что стоит и дальше придерживаться этого подхода? Или это потеря времени?

Вопрос на миллион: для устаревшего кода нужно писать модульные тесты или интеграционные?
Читать дальше →
Всего голосов 55: ↑53 и ↓2+51
Комментарии19

Основные linux-команды для новичка

Время на прочтение14 мин
Количество просмотров776K
Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!

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

Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
Читать дальше →
Всего голосов 80: ↑65 и ↓15+50
Комментарии170

Однажды на пентесте, или Как все сломать при помощи уролога и Роскомнадзора

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

Эта статья написана по мотивам очень удачного пентеста, который пару лет назад провели специалисты Group-IB: случилась история, претендующая на экранизацию в Болливуде. Сейчас, наверное, последует реакция читателя: «О, очередная пиар-статья, опять эти рисуются, какие они хорошие, еще не забудьте купить пентест». Ну с одной стороны, так и есть. Однако есть еще ряд мотивов, почему появилась эта статья. Хотелось показать, чем именно занимаются пентестеры, насколько эта работа может быть интересной и нетривиальной, какие забавные обстоятельства могут складываться на проектах и самое главное — показать живой материал с реальными примерами.
Читать дальше →
Всего голосов 65: ↑65 и ↓0+65
Комментарии13

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

Как мы импортозаместили аутсорсинг тестирования. Пошаговая инструкция

Время на прочтение9 мин
Количество просмотров7K
Когда в 2014 году курс доллара взлетел, а страна взяла курс на импортозамещение, мне пришлось заниматься заменой старой команды внешних тестировщиков, оплачиваемой в долларах, на новую, оплачиваемую в рублях. В этой статье я подробно расскажу, как мы организовали этот процесс перехода, с какими сложностями столкнулись, как их решали и какой экономический эффект получили. 

Читать дальше →
Всего голосов 75: ↑73 и ↓2+71
Комментарии35

Property-based тестирование для JavaScript и UI: необычный подход к автоматизированным тестам

Время на прочтение11 мин
Количество просмотров9.1K
Elon Musk's Tesla Roadster
Falcon Heavy Demo Mission

Писать тесты скучно. А то, что скучно делать, постоянно откладывается. Меня зовут Назим Гафаров, я разработчик интерфейсов в Mail.ru Cloud Solutions, и в этой статье покажу вам другой, немного странный подход к автоматизированному тестированию.
Читать дальше →
Всего голосов 61: ↑59 и ↓2+57
Комментарии28

Чему нас научило тестирование государственной информационной системы

Время на прочтение27 мин
Количество просмотров13K
Всем привет! 

Я руковожу сектором тестирования в отделе системного анализа и тестирования департамента корпоративных систем ЛАНИТ. В этой сфере я уже 14 лет. В 2009 году я впервые столкнулась с тестированием государственной информационной системы. И для ЛАНИТ, и для заказчика — это был огромный и значимый проект. Он более девяти лет находится в промышленной эксплуатации.

Источник
Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии51

DPI: Deep Packet INJECTION, или конспирологическая теория о заговоре между RTK и MRG

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

Привет, Хабр!


Это снова я, тот, кто отвечает за IT-составляющую РосКомСвободы! Ты, наверное, меня помнишь по посту о самопроизвольной активации камеры при открытии страницы с embedded-youtube-видео.


На этот раз у меня история из личной жизни и, на мой взгляд, расследование немного поинтереснее.


Возможно, оно даже имеет запах теории заговора (между Ростелеком'ом (CC: Rostelecom ROSTELECOM-CENTER) и Mail.Ru Group).


КДПВ

Читать дальше →
Всего голосов 99: ↑94 и ↓5+89
Комментарии63

Имитируем сетевые проблемы в Linux

Время на прочтение15 мин
Количество просмотров31K
Всем привет, меня зовут Саша, я руковожу тестированием бэкенда. У нас, как и у многих, реализована сервис-ориентированная архитектура. С одной стороны, это упрощает работу, т.к. каждый сервис проще тестировать по отдельности, но с другой — появляется необходимость тестировать взаимодействие сервисов между собой, которое часто происходит по сети.

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


Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии17

Как сделать базовый тест-класс для Selenium тестов и выполнить инициализацию через JUnit RuleChain

Время на прочтение8 мин
Количество просмотров8.4K
Этой статьей мы продолжаем серию публикаций о том, как мы автоматизировали в одном из крупных проектов ЛАНИТ процесс ручного тестирования (далее – автотесты) большой информационной системы (далее – Системы) и что у нас из этого вышло.

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

Источник

В этой статье мы описываем структуру классов и организацию кода, которая позволила нам небольшими силами разработать более полутора тысяч end-2-end UI тестов на базе Junit и Selenium для крупной системы федерального значения. Более того, мы ее успешно поддерживаем и постоянно дорабатываем существующие сценарии.

Здесь вы сможете найти практическое описание структуры иерархии базовых классов автотестов, разбиения проекта по функциональной модели java-packages и шаблоны-образцы реальных классов.

Статья будет полезна всем разработчикам, которые разрабатывают автотесты на базе Selenium.
Читать дальше →
Всего голосов 58: ↑58 и ↓0+58
Комментарии0

Автоматизация End-2-End тестирования комплексной информационной системы. Часть 2. Техническая

Время на прочтение16 мин
Количество просмотров12K
Этой статьей мы продолжаем серию публикаций о том, как мы автоматизировали в одном из крупных проектов ЛАНИТ автопроцесс ручного тестирования (далее – автотесты) большой информационной системы (далее – Системы) и что у нас из этого вышло.

Вторая часть публикации ориентирована в первую очередь на лидеров групп автоматизации UI end-2-end тестирования и ведущих тест-автоматизаторов. Здесь они найдут конкретные рецепты по архитектурной организации кода и развертывания, которая поддерживает массо-параллельную разработку больших групп тестов в условиях постоянной изменчивости тестовых спецификаций. В этой части приведен полный состав необходимых для UI-тестов функций с некоторыми деталями реализации, а также есть перечень сюрпризов, с которыми вы можете столкнуться.

Вот здесь вы найдете Часть 1.  (Зачем нам была нужна автоматизация. Организация процесса разработки и управления. Организация использования)

Источник
Читать дальше →
Всего голосов 59: ↑57 и ↓2+55
Комментарии18