Рубрика «Тестирование IT-систем» - 5

Record-and-Replay тестирование — сочетание достоинств юнит и интеграционных тестов - 1

Вступление

Читать полностью »

Привет! На написание этого поста меня вдохновил другой пост TDD есть опиум для народаЧитать полностью »

Ваш так называемый TDD действует как опий: он завлекает и приглушает боли вместо того, чтобы придать силы.

(сказал бы немецкий философ Фридрих Новалис, если бы жил сейчас)

Привет! Меня зовут Владимир, я работаю программистом в компании Quadcode. Вот уже почти полтора десятилетия я при помощи доброго десятка языков программирования разрабатываю приложения - от простых, вроде маленького плагина для Emacs, до сложных распределенных систем. Последние 4 года своей жизни я посвятил компании Quadcode, где занимаюсь разработкой транспортной подсистемы. Лет пять назад я вплотную столкнулся с адептами Читать полностью »

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

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

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

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

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

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

Итак, давайте приступим!
Читать полностью »

Почему мы решили создать отдел кросс-системного тестирования - 1

Там, где есть разработчики, рядом должны быть и тестировщики. И чем сложнее система, тем важнее роль последних. Но не все тестировщики выполняют одну и ту же функцию одинаково, и сегодня мы хотим рассказать о появлении особого подразделения в М.Видео-Эльдорадо, которое занимается кросс-системным тестированием. О том, почему мы решили создать отдельную касту тестеров, каким образом это помогло бизнесу и как мы пришли к такому решению, читайте под катом.Читать полностью »

В наши дни понятие «DevOps» у всех на слуху. Это — организационный подход, широко используемый для ускорения разработки и развёртывания приложений. Организации внедряют у себя практики DevOps, так как они обещают дать тем, кто их использует, всё лучшее, что существует в мире разработки ПО, причём — на всех этапах работы — от планирования и тестирования, до развёртывания и мониторинга проектов. В реализации практик DevOps важную роль играют CI/CD-инструменты вроде Jenkins. А интеграция Jenkins с Selenium значительно облегчает процесс автоматизации Selenium-тестов.

Запуск тестов Selenium в Jenkins - 1

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

Путаница зависимостей. Как я взломал Apple, Microsoft и десятки других компаний - 1

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

pip install package_name

Читать полностью »

Несколько дней назад в базах результатов комплексного бенчмарка PassMark засветились показатели тестирования анонсированного в рамках CES 2021 семейства Rocket Lake-S в лице топового представителя Intel Core i9-11900K. Результаты тестирования быстро стали основой для однотипных новостей на различных порталах, однако никто не потрудился соотнести их с текущей ситуацией на рынке процессоров.

Тестирование процессора Intel Core i9-11900K и анализ результатов PassMark - 1

Чтобы это исправить, мы специально собрали собственный тестовый стенд и провели тестирование нового процессора компании Intel.

Нужно понимать, что Intel Core i9-11900K и Intel Core i7-11700K — промежуточные решения от производителя, которые вышли в откровенное «межсезонье». Принципиальное новое, двенадцатое поколение процессоров Intel на новом техпроцессе 10 нм будут анонсированы и поступят в продажу, по заверениям производителя, уже осенью 2021 года. То есть цикл жизни нового флагмана Intel Core i9-11900K — всего около 6-8 месяцев.
Читать полностью »

Нагрузочное тестирование выполнять сложно, а инструменты далеки от совершенства. Почему? - 1

Если вы создаёте приложение, которое должно масштабироваться — а все мы надеемся, что наши приложения будут расти — то в определённый момент нам приходится разбираться, может ли оно это делать на самом деле. Именно тогда на помощь приходит нагрузочное тестирование: если вы хотите узнать, справится ли ваше приложение с крупными масштабами, то мы просто генерируем эти масштабы и проверяем! Звучит достаточно просто.

Но потом мы пробуем действительно сгенерировать нагрузку. Это делается легко, только если ваше приложение ужасно простое, ведь тогда можно использовать что-нибудь типа Apache JMeter для генерации повторяющихся запросов. Если у вас это получится, то я вам завидую: все системы, с которыми мне приходилось работать, сложнее и требовали более изощрённой схемы тестирования.

Если ваше приложение становится чуть сложнее, то вы переходите к инструментам наподобие Gatling. Они позволяют симулировать виртуальных пользователей, выполняющих различные сценарии, что намного полезнее, чем простая осада одного или нескольких URL. Но даже этого недостаточно, если вы пишете приложение, использующее одновременно WebSockets и HTTP-вызовы в течение долговременной сессии, а также требующее повторения по таймеру определённых действий. Возможно, я серьёзно недоглядел чего-то в документации, но мне не удалось найти способа, допустим, настроить периодическое событие, запускаемое каждые 30 секунд и выполняющее определённые действия при ответе на сообщение WebSocket, а также производящее действия по HTTP, и всё это в рамках одной HTTP-сессии. Я не нашёл такой возможности ни в одном инструменте нагрузочного тестирования (и именно поэтому написал на работе свой собственный инструмент, который надеюсь выложить в open source, если найду время на подчистку кода и отделения его от проприетарных частей).
Читать полностью »

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

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

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

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

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

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

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js