Примечание ред.: подборка дополнена и обновлена 21 ноября 2024.

Автоматизированное тестирование API с использованием Python. Работа с JSON и JsonPath

JSON — один из самых распространённых форматов данных, используемых для передачи и получения данных в современных API. Важно глубоко понять его. 

Здесь я дам краткий обзор: в основном это структура данных вида key: value, содержащая примитивные типы данных, такие как строка, логическое значение, числа, а также массивы. JSON очень похож на словарь в Python. 

Читать далее


Расширенная шпаргалка по корутинам Kotlin

Предположим, что вы уже какое-то время работаете с Kotlin-корутинами и знакомы с базовыми концепциями, такими как приостанавливаемые (suspend) функции и билдер launch. Однако по мере усложнения проектов вы всё чаще сталкиваетесь с необходимостью искать решения для более продвинутых задач и обращаетесь к поисковым системам или искусственному интеллекту за помощью.

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

Читать далее


О сложности устранения нестабильности тестов

Автор, обладая более чем 25-летним опытом в области повышения производительности инженеров, делит источники нестабильности тестов на три категории:

  1. Нестабильность тестового кода: ошибки в самих тестах, такие как состояния гонки и проблемы многопоточности.
  2. Нестабильность продакшен-кода: недетерминированное поведение и другие дефекты в основном коде.
  3. Инфраструктурные проблемы: внешние факторы, не зависящие от разработчиков, включая сетевые сбои и нестабильность зависимостей.

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

Читать далее


Чек-лист: проверяем веб-страницы на соответствие стандартам WCAG

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

Читать далее


Виртуальные потоки Java: разбор тестовых сценариев

Виртуальные потоки вызвали большой интерес в сообществе разработчиков Java, включая такие фреймворки, как Open Liberty — модульное, облачное окружение с открытым исходным кодом для Java-приложений. Команда инженеров по производительности Liberty провела оценку, чтобы выяснить, может ли эта новая фича принести пользу пользователям или даже потенциально заменить текущую логику пула потоков, используемую в среде выполнения Liberty. Как минимум, мы хотели лучше понять технологию виртуальных потоков и её производительность, чтобы предоставить обоснованные рекомендации пользователям Liberty.

В этой статье представлены наши результаты, включая:

  • Обзор реализации виртуальных потоков в Java
  • Обзор текущей технологии пула потоков в Liberty
  • Оценку по ряду показателей производительности, включая некоторые неожиданные наблюдения
  • Сводный обзор наших выводов

Читать далее


Руководство по нагрузочному тестированию для начинающих

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

Читать далее


JavaScript Clean Code: руководство для начинающих разработчиков

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

Это руководство посвящено написанию чистого и удобного кода на JavaScript и TypeScript. Мы рассмотрим лучшие практики работы с функциями, переменными и методами, чтобы ваш код был не только эффективным, но и понятным как вам, так и другим разработчикам. Статья будет полезна для новичков, которые хотят улучшить свои навыки кодирования.

Читать далее


Тестирование исключений

Разработка через тестирование (TDD) — это отличный метод, который позволяет быстро получать обратную связь по идеям дизайна и реализации, а также быстрее прийти к работающему решению.

Однако упор на «идеальный сценарий» может заставить забыть обо всех возможных ошибках и непредвиденных ситуациях. Рано или поздно вы осознаете, что реализация может дать сбой по ряду причин, и, стремясь сделать её более надёжной, вы захотите протестировать код обработки ошибок с помощью автоматизированных тестов.

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

Читать далее


Разный подход к CI/CD: опыт Amazon и Google

Ex-технический лидер инфраструктуры для интеграционного тестирования на уровне компании в Amazon и в Google рассказывает о различиях в подходах этих двух компаний к CI/CD.

Читать далее


Обзор AI-ассистента Cursor для разработчиков

Вам когда-нибудь хотелось, когда вы активно погружались в сложный проект, чтобы ваш AI-помощник видел всю картину в целом? Например, понимал общую архитектуру, ваш стиль кодирования и специфические особенности проекта?

Вот тут-то и приходит на помощь Cursor.

Читать далее


Функциональные тесты веб-приложений с Playwright: основы

Функциональное тестирование стало неотъемлемой частью процесса обеспечения качества в веб-разработке. В этой статье рассмотрим возможности Playwright — мощного инструмента для автоматизации тестирования.

Playwright — это библиотека для автоматизации браузеров, разработанная командой Microsoft. Она позволяет взаимодействовать с веб-приложениями так, как это делает пользователь, поддерживая работу с несколькими браузерами, включая Chrome, Firefox и Safari. Главная фича Playwright заключается в его способности работать не только с браузерами, но и с мобильными приложениями.

Читать далее


Locust: проводим нагрузочное тестирование

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

Читать далее


Smoke vs Sanity тестирование: в чём разница?

Тестирование, как неотъемлемый процесс жизненного цикла разработки программного обеспечения, обеспечивает функциональность, совместимость и производительность разрабатываемых приложений. Среди различных видов тестирования особое место занимают smoke-тесты и sanity-тесты, которые проверяют надёжность и стабильность программных приложений.

Читать далее


Создание эффективной команды QA: Рекомендации для лидеров

В данной статье мы рассмотрим:

  • Что такое команда и чем она отличается от просто группы людей.
  • Какие цели ставятся при создании команды QA.
  • Как модель Такмана может помочь в понимании этапов развития команды и какие стратегии стоит применять на каждом из них.

Эти знания помогут лидерам более осознанно подходить к формированию и развитию своих команд, создавая условия для максимальной эффективности и удовлетворённости сотрудников.

Читать далее


Тест-дизайн в автоматизации тестирования

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

  1. Стабильность
  2. Скорость
  3. Стоимость

Читать далее


Сказ о слонах: Как я развивал инструмент, повлиявший на работу тысяч инженеров в Amazon

В этой статье автор рассказывает о концепции Switch на конкретном примере: как он (неосознанно) с её помощью создал и развил проект, превратив его из пет-проекта, которым занимался по выходным и вечерам, в масштабный инструмент, которым он является сегодня.

Читать далее

Тестирование программного обеспечения: подборка статей из блога OTUS на Хабр