Обновить
131.59

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

Семь раз оттесть, один раз деплой

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

Ролевая модель и интеграция c Jira: что изменилось в системе для управления тестами, которая доступна всем

Время на прочтение6 мин
Охват и читатели1.2K

В конце прошлого года мы представили TestY, тест-менеджмент систему с открытым исходным кодом, которую разработала команда YADRO на замену TestRail.

Сегодня на связи я, Александр Зырянов, QA-менеджер в департаменте контроля качества YADRO и проектный менеджер TMS TestY. После первого текста о нашей системе вы обращались к нам с вопросами и пожеланиями. Некоторые предложения мы уже планировали в новый релиз, но были и те, что мы взяли в работу именно благодаря вашей обратной связи. В этой статье расскажу о фичах, вышедших в релизе 1.3, и отвечу на вопросы о TestY в комментариях.

Читать далее

Интеграционные тесты

Время на прочтение4 мин
Охват и читатели3.6K


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

Как ошибка ChatGPT стоила нам $10 000

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.3K

Колесо крутится, но хомячок подписки помер. Оно просто крутится.

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

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

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

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

Читать далее

Как взломать миллионы модемов: история одного расследования

Уровень сложностиСложный
Время на прочтение24 мин
Охват и читатели7.4K

Два года назад во время работы в домашней сети со мной произошло нечто очень странное. Я эксплуатировал слепую уязвимость XXE, которая требовала внешнего HTTP-сервера для переправки файлов. Казалось, всё шло, как по маслу, но вдруг в моем лог-файле появилось нечто неожиданное...

Читать далее

Как я масштабировал генератор нагрузки Amazon для работы на 1000 машин

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели733

Я уже писал историю о том, как создал и развил инфраструктуру, которую Amazon использует для проведения нагрузочного тестирования и тестирования производительности (TPSGenerator). Но я ещё не писал о том, как я её масштабировал.

Первая версия была довольно убогой и предназначалась только для одного хоста. Я запускал её как инструмент командной строки, указывал, сколько тысяч транзакций (“TPS”) в секунду мне нужно — и TPSGenerator порождал потенциально тысячи потоков, радостно потребляя все аппаратные ресурсы, которыми вы были готовы пожертвовать. В тщетной попытке избежать проблем с распределёнными системами я профилировал каждую строчку кода и оптимизировал её до последней степени. На обычной машине он мог генерировать несколько сотен тысяч TPS, что было достаточно для многих сервисов.

Но приближался день больших распродаж «Киберпонедельник» — в этот день совершалось самое большое количество покупок в году. По мере приближения даты всё больше команд стали спрашивать меня, как генерировать большую пропускную способность, чем та, на которую способна одна машина — чтобы убедиться, что их сервисы справятся с пиком.

Читать далее

Не вырубишь топором… — ВКонтакте хранит удаленные публикации

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели18K

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

Давайте проверим...

Генерация документации из моделей с помощью Pydantic

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели4.7K

Привет, меня зовут Роман Брылунов, я QA Automation в команде сервиса транспорта 2ГИС. Мы автоматизируем сервисы транспортных сценариев, таких как построение маршрутов для разных видов транспорта, построение пешеходных маршрутов, решение задачи коммивояжера. Основная часть наших тестов — функциональные тесты логики приложения.

С сервисами общаемся по HTTP, но есть и несколько внутренних сервисов со взаимодействием по gRPC. Все ответы, полученные от сервисов, мы предварительно валидируем перед обработкой в тесте. Для валидации используем библиотеку Pydantic. Это позволяет нам описывать формат взаимодействия с помощью моделей и обрабатывать ответы в виде Python-объектов вместо словаря после стандартного парсинга JSON. Тесты встроены в CI, успешное прохождение тестов является блокирующим условием для влития кода. Таким образом, чтобы внести изменения в API, необходимо актуализировать модели в тестах. В противном случае ответ от сервиса не пройдёт валидацию при прогоне тестов. 

Мы стараемся всесторонне подходить к контролю качества продукта, в том числе хотим, чтобы у продукта была красивая и актуальная документация. У наших сервисов была документация, но она обновлялась вручную. А у нас есть модели запросов и ответов, которые точно соответствуют текущему формату API. Мы подумали, что будет здорово использовать эти модели для формирования документации. Попробовали и успешно внедрили. Расскажу о том, как можно это сделать.

Читать далее

Шпаргалка по XPath и CSS-селекторам

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели31K

Для написания автотестов используются XPath и CSS-селекторы. Они помогают найти элемент на странице, чтобы потом с ним как-то взаимодействовать (кликнуть, ввести текст, или что-то другое).

Я видела много статей о том, что это вообще такое, но мне очень не хватало шпаргалки по разным селекторам, причем в разрезе «Вот он в CSS и он же в XPath» для сравнения. 

А мне такое для студентов надо. Поэтому решила сделать сама. Вдохновлялась страничкой «Xpath cheatsheet», но сделала на свой вкус — под автоматизацию, а не XPath вообще. И с комментариями, с ними удобнее. 

Пишите, если где-то накосячила. Хотя я все селекторы проверяла на тестовых страницах, но мало ли… И надеюсь, вам такая шпаргалка тоже пригодится! =)

Читать далее

Автотесты E2E для самых маленьких

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели11K

Автотесты E2E для самых маленьких

История о том, как можно делать автотесты без автотестеров (ну почти)

Дано:

1. Проект с небольшим бюджетом

2. Максимальное возможное количество тестировщиков на проекте = 2

3. Тим лид или автоматизатор, у которого есть еще несколько других проектов. Т.е. постоянно писать и обслуживать тесты не может

Найти:

1. Регрессионное тестирование за минимальное время

2. Потратить на это минимальное количество денег/времени/сил

Читать далее

Написание тестов для асинхронного кода с помощью XCTest

Время на прочтение6 мин
Охват и читатели1.7K


Если вы когда-нибудь думали о проведении юнит-тестирования в Xcode, вы наверняка обращали внимание на XCTest. Это довольно простой фреймворк на Objective-C и Swift. Однако тестирование асинхронного кода всегда было немного сложным из-за таких конструкций, как делегаты и коллбэки (функции обратного вызова).

В этой статье мы начнём с рассмотрения классического способа тестирования асинхронного кода, чтобы убедиться, что мы все на одной волне относительно плюсов и минусов классического асинхронного теста. После этого мы рассмотрим, как async / await кардинально меняет способ написания юнит-тестов для асинхронного кода, и как он может повлиять на то, что тесты оказываются успешными и неудачными.
Читать далее

Можно ли устроиться на работу тестировщиком после курсов? Что они дают?

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели23K

Очень насущный вопрос для многих — можно ли найти работу в тестировании сразу после курсов? Да! (сказал автор курсов, хе-хе-хе)

Я вам больше скажу — можно и БЕЗ курсов устроиться 👀. Более того, грамотные самоучки очень ценятся! Но для такого эффекта надо пахать =))

Об этом и поговорим в статье.

Читать далее

Книга: «Сам себе тестировщик. Пошаговое руководство по тестированию ПО»

Время на прочтение5 мин
Охват и читатели12K
imageПривет, Хаброжители!

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

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

Интеллект-карта с вопросами для подготовки к собеседованию Junior QA

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели12K

Идея зародилась еще на этапе моего обучения в Яндекс.Практикуме более двух лет назад. Тогда я только познакомился с инструментом под названием интеллект‑карта и обнаружил в нем действительно полезный способ изучения и закрепления информации. У меня преобладает визуальное мышление, поэтому данный формат идеально подходит.

Зачем нужна данная карта для QA?

Качество покрытия материала: матрица трассировки вам о чем‑нибудь говорит? Если да, то данный формат разбивает и систематизирует необходимые знания на модули, что позволяет убедиться в качестве и полноте покрытия ваших знаний.

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

Удобство актуализации интеллект‑карты: Исходя из моего опыта работы с таблицами Excel, можно сделать вывод: чем больше таблица, тем выше вероятность дублирования информации. В случае с картой же такое сложно осуществить, так как вы можете реконструировать ветви в модулях. Перетаскивание, редактирование, а также ссылки на другие ветви делают использование карты удобным и понятным.

Лучшее запоминание материала: Мы запоминаем благодаря ассоциативной памяти и нейронным связям. Если вы читали книгу Тони Бьюзена «Интеллект‑карты», то, вероятно, согласитесь со мной.

Отработка навыка: Навык использования mind‑map необходим в работе. Поэтому подготовка к собеседованию или проверке знаний с использованием карты позволит вам заранее ознакомиться с ней, что благоприятно скажется на вашем умении и полноте вашего резюме.

Читать далее

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

Мокирование как хорошая практика тестирования фронтенда

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели10K

Привет, я Фируз Шоев, тестировщик в Отелло — сервисе бронирования отелей от 2ГИС. Мы в стадии активного роста и постоянно усиливаем команду. Несколько месяцев назад я подключился к найму тестировщиков и с тех пор провожу собеседования практически каждую неделю. За это время я стал замечать, что многие кандидаты не уделяют должного внимания тестированию фронтенда.

Почти в каждом втором собеседовании я слышу следующее:

Во фронтенде можно максимум вёрстку протестировать отдельно от бэкенда.

Фронтенд тестируем через end-to-end тесты, но они сложные и нестабильные.

А как вообще тестировать фронтенд изолированно?

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

В этой статье я хочу рассказать о важности тестирования фронтенда и пользе моков. Мокирование вносит весомый вклад в обеспечение качества приложений 2ГИС, поэтому надеюсь, что этот подход принесёт пользу и другим.

Читать далее

Mentorpiece выпустил очередной релиз большого интерактивного «столетнего» учебника по тестированию

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели6.3K

Гуд ньюз эвриван! Вышло большое обновление учебника «100-Year QA‑Textbook — русскоязычная версия» — одного из самых полных источников по тестированию.

С момента первого релиза (100'000 хабр‑просмотров!) прошло полгода.
За это время столетний учебник стал бесплатным пособием для 10'000+ самообучающихся студентов.

Читать далее

Как стать тестировщиком с нуля? Бесплатная программа обучения

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели111K

Если вбить слово «тестировщик» в поисковую строку, можно найти множество курсов по данному направлению. Проблема заключается в том, что все курсы являются платными и, как правило, стоят несколько десятков, если не сотен тысяч рублей. 

Чтобы разбавить обилие платных курсов, мы подготовили для вас программу обучения «Тестировщик с нуля», которая состоит только из бесплатных курсов.

Читать далее

Как мы в 4 раза ускорили мобильную версию ВКонтакте

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели9.2K

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

Меня зовут Тарас Иванов, уже семь лет я развиваю фронтенд ВКонтакте, а сейчас руковожу командой, которая занимается производительностью и инфраструктурой. В статье я расскажу, как мы с командой ускорили загрузку m.vk.com в 4 раза, на какие метрики обращали внимание и какие сервисы использовали для оценки эффективности. Описанные способы и инструменты помогут повысить производительность в любом проекте: от многостраничных платформ с большим количеством legacy до свежих лаконичных лендингов. Актуально как для мобильной, так и десктопной версий.  

Читать далее

Мифы о работе тестировщиков, на которые всегда один ответ: «Ага, конечно. Ты полностью прав»

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели16K

Привет! Меня зовут Кирилл, я работаю тестировщиком в R‑Style Softlab. Ни для кого не секрет, что работа тестировщика в области информационных технологий окутана мифами и непониманием со стороны обывателей. Я вспомнил несколько самых распространенных и раздражающих меня мифов и постарался объяснить, почему это неправда.

Читать далее

Лучшие альтернативы ChatGPT для QA

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели36K

Привет, Хабр! Меня зовут Иван, я Full Stack QA. Сегодня поговорим про альтернативы ChatGPT, которые работают на территории РФ без костылей и совершенно бесплатно.

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

Главное правило ручного тестировщика - для начала нагугли проблему спроси у GPT и только после обращайся с вопросом к ментору.

🤖 Первый аналог - Coze.com | Открыть модель

Первый ИИ работает в телеграм-боте и всегда будет у вас под рукой...

Читать далее

Как решить типичные проблемы Django нестандартным подходом: Fake Injection

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели7.1K

Давайте признаем, что развитие проектов в мире Django не всегда проходит гладко. Мы часто сталкиваемся с толстыми моделями и сериалайзерами, размытой бизнес-логикой и тестированием, которое больше напоминает головную боль, чем удовольствие. Меня зовут Павел Губарев, я backend-разработчик продукта 10D в компании Самолет. Последние пять лет я занимаюсь backend-ом и большую часть времени я использую именно Django. С ростом проекта увеличивается и его сложность, в случае с Django есть набор часто встречающихся проблем. В этой статье я расскажу о методах нашей команды, которые помогли нам справиться с этими проблемами и привести код к новому уровню надежности и эффективности.
Читать дальше →