Примечание ред.: подборка дополнена и обновлена 21 ноября 2024.
Автоматизированное тестирование API с использованием Python. Работа с JSON и JsonPath
JSON — один из самых распространённых форматов данных, используемых для передачи и получения данных в современных API. Важно глубоко понять его.
Здесь я дам краткий обзор: в основном это структура данных вида key: value, содержащая примитивные типы данных, такие как строка, логическое значение, числа, а также массивы. JSON очень похож на словарь в Python.
Расширенная шпаргалка по корутинам Kotlin
Предположим, что вы уже какое-то время работаете с Kotlin-корутинами и знакомы с базовыми концепциями, такими как приостанавливаемые (suspend
) функции и билдер launch
. Однако по мере усложнения проектов вы всё чаще сталкиваетесь с необходимостью искать решения для более продвинутых задач и обращаетесь к поисковым системам или искусственному интеллекту за помощью.
Эта шпаргалка создана как удобный справочник для сложных сценариев работы с корутинами и содержит ключевые идеи, накопленные мной за всё время работы.
О сложности устранения нестабильности тестов
Автор, обладая более чем 25-летним опытом в области повышения производительности инженеров, делит источники нестабильности тестов на три категории:
- Нестабильность тестового кода: ошибки в самих тестах, такие как состояния гонки и проблемы многопоточности.
- Нестабильность продакшен-кода: недетерминированное поведение и другие дефекты в основном коде.
- Инфраструктурные проблемы: внешние факторы, не зависящие от разработчиков, включая сетевые сбои и нестабильность зависимостей.
Особое внимание уделяется третьей категории, поскольку она часто выходит за рамки контроля разработчиков. Автор подчеркивает, что даже небольшие проблемы в инфраструктуре могут приводить к значительным потерям времени и ресурсов. Он также отмечает, что нестабильные тесты подрывают доверие к процессу тестирования, что может скрывать реальные проблемы в продакшен-среде.
Чек-лист: проверяем веб-страницы на соответствие стандартам 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.
- Как модель Такмана может помочь в понимании этапов развития команды и какие стратегии стоит применять на каждом из них.
Эти знания помогут лидерам более осознанно подходить к формированию и развитию своих команд, создавая условия для максимальной эффективности и удовлетворённости сотрудников.
Тест-дизайн в автоматизации тестирования
В данной статье мы затронем важную тему — тест-дизайн в автоматизации тестирования. Почему эта тема важна? Потому что качество автотестов и инструментов автоматизации тестирования напрямую зависит от того тест-дизайна, который будет заложен в ваш инструмент автоматизации тестирования. Но перед тем, как перейти к дизайну автотестов и инструментов автоматизации тестирования, рассмотрим основные показатели качества автотестов:
- Стабильность
- Скорость
- Стоимость
Сказ о слонах: Как я развивал инструмент, повлиявший на работу тысяч инженеров в Amazon
В этой статье автор рассказывает о концепции Switch на конкретном примере: как он (неосознанно) с её помощью создал и развил проект, превратив его из пет-проекта, которым занимался по выходным и вечерам, в масштабный инструмент, которым он является сегодня.