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

Несмотря на колоссальные возможности современных табличных редакторов, для многих команд разработки рано или поздно встает вопрос о внедрении специализированных инструментов (систем) для управления процессом тестирования в своих проектах. Какой же из них выбрать?

Выбор системы управления тестированием в 2019 - 1
Читать полностью »

Привет!

У нас иногда спрашивают, почему мы проводим свои митапы по большей части в Москве, но не в Питере, например. Исправляемся, через 10 дней будет Alfa JS MeetUP SPb, который пройдёт в Санкт-Петербурге.

22 августа — Alfa JS MeetUP SPb - 1

Коротко о главном:

  • вход бесплатный;
  • надо зарегистрироваться на этой странице;
  • будет и онлайн-трансляция (ссылку выложим в этом посте);
  • Санкт-Петербург, ул. Льва Толстого, д. 1-3 (Коворкинг «Ясная Поляна»);
  • Cypress, JavaScript, UI-тесты, WebGL, Docker и пицца.

Под катом — темы докладов наших спикеров.
Читать полностью »

1 августа в офисе Авито состоялась седьмая встреча Общества анонимных тестировщиков. Спикеры выступали с докладами про самодельную TMS, мониторинг мониторинга, подходы к оценке качества поиска и нативные iOS-тесты. Этот пост — отчёт о том, как прошёл митап. Внутри — видеозаписи, презентации спикеров, ссылки на фотоотчёт и отзывы участников встречи.

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

Мы задумались о построении инфраструктуры больших нагрузочных тестов год назад, когда достигли отметки в 12K онлайн-пользователей, работающих в нашем сервисе одновременно. За 3 месяца мы сделали первую версию теста, которая показала лимиты сервиса.

Ирония судьбы в том, что одновременно с запуском теста мы достигли лимитов на проде, в результате чего сервис упал на 2 часа. Это дополнительно стимулировало нас начать двигаться от проведения тестов от случая к случаю к созданию эффективной нагрузочной инфраструктуры. Под инфраструктурой я подразумеваю все инструменты для работы с нагрузкой: инструменты для запуска и автозапуска, кластер для подачи нагрузки, кластер, аналогичный проду, сервисы для сбора метрик и для подготовки отчётов, код для управления всем этим и сервисы для масштабирования.

Достоверный нагрузочный тест с учётом непредвиденных нюансов - 1
Читать полностью »

Как оценивать качество тестов? Многие полагаются на самый популярный показатель, известный всем, — code coverage. Но это количественная, а не качественная метрика. Она показывает, какой объём вашего кода покрыт тестами, но не то, как хорошо эти тесты написаны. 

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

На Badoo PHP Meetup в марте я рассказывал, как организовать мутационное тестирование для PHP-кода и с какими проблемами можно столкнуться. Видео доступно по ссылке, а за текстовой версией добро пожаловать под кат.

Мутационное тестирование в PHP: качественное измерение для code coverage - 1
Читать полностью »

На днях состоялся Moscow Python Meetup #66 — сообщество продолжает обсуждать актуальные инструменты, которые усиливают язык и адаптируют его к разным окружениям. В том числе на митапе прозвучал и мой доклад. Меня зовут Наиль, я делаю Яндекс.Коннект.

uWSGI в помощь метрикам. Доклад Яндекса - 1

Рассказ, который я подготовил, был посвящён uWSGI. Это многофункциональный сервер веб-приложений, а каждое современное приложение сопровождается метриками. Я постарался показать, как возможности uWSGI способны помочь в сборе метрик.

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

Прим. перев.: Рады поделиться переводом замечательного материала от старшего технологического евангелиста из AWS — Adrian Hornsby. В простых словах он объясняет важность экспериментов, призванных смягчить последствия сбоев в ИТ-системах. Вы, наверное, уже слышали про Chaos Monkey (или даже применяли подобные решения)? На сегодняшний день подходы к созданию подобных инструментов и их реализация в более широком контексте осуществляются в рамках деятельности, которую называют chaos engineering. Подробнее о ней читайте в этой статье.

Chaos Engineering: искусство умышленного разрушения - 1

«Но за всей этой красотой скрывается хаос и безумие». — Tanner Walling

Пожарные. Эти высококвалифицированные специалисты каждый день рискуют жизнью, борясь с огнем. Знаете ли вы, что перед тем, как стать пожарным, необходимо провести в тренировках минимум 600 часов? И это только начало. Согласно отчетам, пожарные тренируются до 80% своего рабочего времени.

Почему?

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

Эта статья — не теоретическое руководство по написанию тестов и не how-to по использованию инструментария в определенном стеке, а ряд популярных вопросов, иногда даже у многих не сформировавшихся, на которые я постараюсь дать ответы. Источником этих вопросов служат коллеги, люди с обоих сторон в собеседованиях и знакомые, а ответы будут субъективными, краткими и не исчерпывающими, основанными на чужих материалах и своём опыте. Целевая аудитория статьи – разработчики, которые с определенным успехом пишут или хотя бы пытались писать тесты, но испытывают определенные сложности в их написании.

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

Поводом для написания послужила недавняя статья «PHPUnit. Мокаем Doctrine Entity Manager» от trawl, некоторые проблемы из которой я тоже разберу.

Список вопросов:

  • Писать или не писать тесты?
  • А если на тесты не выделяют время?
  • Виды тестирования, как выбрать?
  • Почему мне сложно и долго писать тесты?
  • Как тестировать приватные методы?
  • Как писать интеграционные тесты? Как тестировать базу?
  • Как правильно: интеграционные или функциональные?
  • Как быть с внешними зависимостями?
  • Как упростить навигацию между тестами и предметом тестирования?
  • Должен ли я использовать TDD?
  • Что еще можно использовать для улучшения кода?

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

При слове «криптография» некоторые вспоминают свой пароль WiFi, зелёный замочек рядом с адресом любимого сайта и то, как трудно залезть в чужую почту. Другие вспоминают череду уязвимостей последних лет с говорящими аббревиатурами (DROWN, FREAK, POODLE...), стильными логотипами и предупреждением срочно обновить браузер.

Криптография охватывает всё это, но суть в ином. Суть в тонкой грани между простым и сложным. Некоторые вещи просто сделать, но сложно вернуть обратно: например, разбить яйцо. Другие вещи легко сделать, но трудно вернуть обратно, когда отсутствует маленькая важная решающая часть: например, открыть запертую дверь, когда «решающая часть» является ключом. Криптография изучает эти ситуации и способы их практического использования.

За последние годы коллекция криптографических атак превратилась в зоопарк кричащих логотипов, набитых формулами научных статей и породила общее мрачное ощущение, что всё сломано. Но на самом деле многие из атак основаны на нескольких общих принципах, а бесконечные страницы формул часто сводятся к простым для понимания идеям.
Читать полностью »

Безопасность на реальных примерах всегда более интересна.

Как тестировщик на проникновение, люблю, когда приходят проекты, построенные на фреймворках быстрой разработки (Rapid development), подобно Ruby-on-Rails, Django, AdonisJs, Express и так далее. Они позволяют очень быстро строить систему за счет того, что бизнес модели прокидываются сразу на все уровни, включая клиентский браузер. Model (модели бизнес объектов в базе) и ViewModel (контракт взаимодействия с клиентами) такие фреймворки часто объединяют вместе, чтобы избежать лишнего перекладывания из Model во ViewModel и обратно, REST сервисы автоматом генерируются. C точки зрения разработки можно просто разработать бизнес модель на сервере, и потом использовать ее сразу на клиенте, что несомненно увеличивает скорость разработки.

Еще раз, я не утверждаю, что вышеупомянутые фреймворки плохие, или с ними что-то не то, у них есть средства и инструменты правильной защиты, просто с ними разработчики делают больше всего ошибок. Такое встречал и на одном ASP.NET MVC проекте, в котором разработчики наделали те же уязвимости, выставляя Models вместо ViewModels…
Читать полностью »


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