Обновить
105.16

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

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

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

Что делать, если собеседование QA по типовым вопросам не работает

Время на прочтение7 мин
Количество просмотров12K

Заходит как-то тестировщик в бар, а бармена нет — он на курсах «Как стать тестировщиком программного обеспечения».

Всем привет! Меня зовут Алиса, я — ведущий тестировщик в компании Constanta, и сегодня расскажу вам, как мы нанимаем QA на наши проекты.

Наверняка многие из вас видели пестрящую везде рекламу разнообразных курсов на тему «Как войти в IT»: от «Получи самую востребованную работу сегодня» до «QA – профессия будущего». Однако, несмотря на такой ажиотаж вокруг этих загадочных букв «QA», найти хорошего quality assurance инженера все еще тяжело — даже если вы ищете людей с небольшим опытом. Почему так? Давайте разбираться.

Читать далее

Подтесты в Python

Время на прочтение13 мин
Количество просмотров12K

Недавно я сделал опрометчивый твит, в котором намекнул на то, что у меня имеется глубоко продуманное мнение по одному важному вопросу. Я написал, что пакет pytest-subtests достоин того, чтобы им пользовалось бы больше программистов. Я даже дошёл до того, что, говоря о подтестах (subtests), сказал, что они были единственным, что мне по-настоящему нравилось в unittest до появления их поддержки в pytest. И, как на грех, Брайан Оккен предложил мне поучаствовать в подкасте Test and Code, чтобы подробнее обсудить подтесты. Я могу лишь догадываться о том, что он это сделал, дабы преподнести мне урок, показать мне, что я не должен, накачавшись продуктами Splenda и травяным чаем, выдавать скороспелые мнения о тестировании кода.Но, тем не менее, когда Брайан взглянет на меня со своей хитрой улыбкой и скажет: «Итак, ты готов поговорить о подтестах?», я планировал ответить: «Да, я готов — сделал обширные заметки и набрал справочных материалов». А когда мы вместе будем стоять на сцене, получая Дневную премию «Эмми» за лучший подкаст о тестировании, я шепну ему: «Я раскрыл твою хитрость, и хотя я тебя обыграл, ты реально показал мне — что такое скромность», а по его щеке скатится одинокая слеза.

Или, что скорее всего так и есть, ему просто хотелось пригласить кого-то, с кем можно поговорить об этом конкретном аспекте Python-тестирования, а я оказался одним из тех немногих, встретившихся ему, кто высказывал по этому поводу своё мнение. В любом случае, этот пост будет играть роль моих заметок по механизму подтестов из unittest, который появился в Python 3.4. Здесь же пойдёт речь о сильных и слабых сторонах подтестов, о сценариях их использования. Этот материал можно считать дополнением к подкасту Test and Code Episode 111.

Читать далее

Повышаем качество сервисов и делаем пользователей счастливыми: как работают в команде QA ВКонтакте

Время на прочтение7 мин
Количество просмотров6.7K

Привет, Хабр! Сегодня годовщина создания команды QA одного из самых нагруженных проектов VK — социальной сети ВКонтакте. Для нас это стало хорошим поводом поговорить о буднях тестировщиков. 

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

Читать далее

Как проходит интервью с QA-инженерами в Тинькофф

Время на прочтение9 мин
Количество просмотров51K

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

Договоримся, что термины «тестировщик», «QA» и «инженер» равнозначны и используются с целью разнообразить слог. Профессионально мы строим команды фулстек-QA-инженеров, но идеологию затронем лишь вкратце. Материал будет полезен тем, кто интересуется процессами в крупных компаниях, видит свое будущее в качестве QA-инженера или хочет работать именно в Тинькофф. Если это про вас — добро пожаловать под кат!

Читать далее

Как запустить UI-автотесты в любом Chromium-браузере

Время на прочтение4 мин
Количество просмотров8.5K

Привет, Хабр! Меня зовут Кристина Курашова, и я отвечаю за качество в VK Assistant. Написала тут небольшую инструкцию для тех, кто тоже запускает UI-автотесты в браузерах на основе Chromium (не только Chrome). Надеюсь, она сэкономит вам время. Welcome!

Читать далее

PerfOps — быстрее и дешевле через сервисный подход

Время на прочтение12 мин
Количество просмотров6K

В самом начале у нас в Самокате была задача — внедрить практику нагрузочного тестирования на каждый релиз, чтобы минимизировать проблемы с производительностью на проде. А еще сделать это не потратив все деньги мира, ну и желательно внедрить это не за пятилетку. И вот где-то тут начинается немного магии Поэтому давайте оденем поварские колпаки, возьмем котел и попробуем приготовить PerfOps-инженера который должен нас спасти.

Меня зовут Кирилл Юрков, я SRE-тимлид Samokat.tech. Сегодня поговорим про нагрузочное тестирование. Про то, как мы решали обозначенную проблему, какие грабли нам попались, и какие трудности удалось преодолеть.

Читать далее

WireMock – швейцарский нож в арсенале тестировщика. Часть 2

Время на прочтение17 мин
Количество просмотров25K

Всем привет! В предыдущей части я рассказал, что такое WireMock, в каких случаях его необходимо использовать, как его разворачивать и настраивать, как правильно сопоставлять запросы с заглушками и как пользоваться журналированием. Настало время рассмотреть все что связано с HTTP ответом, который возвращает заглушка, а также затронем сценарии.

Читать далее

Принципы юнит-тестирования. Часть вторая

Время на прочтение9 мин
Количество просмотров11K

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

Ну и, конечно же, список источников, где можно получить дополнительную полезную информацию. В общем, начнём.

Структура юнит-тестов

В нашей команде при написании юнит-тестов мы стараемся использовать подход AAA — Arrange, Act, Assert (Подготовка, Действие, Проверка).

Кратко расскажу о нем. Тест делится на три блока, которые идут друг за другом. Ширина блоков на рисунке выше образно отражает объём кода, который должен занимать каждый из блоков.

Читать далее

Обработка окон и вкладок браузера в Selenium PHP

Время на прочтение15 мин
Количество просмотров12K

Один из распространённых сценариев работы с веб-приложениями заключается в открывании нового окна (или вкладки) браузера после выполнения пользователем определённого действия. Многие веб-разработчики используют HTML-тэг __blank, приказывающий браузеру при нажатии на ссылку открыть новое окно (или вкладку, это зависит от выбранных пользователем настроек). Работа с окнами в Selenium при помощи PHP может использоваться для автоматизации взаимодействия с окнами, вкладками и даже всплывающими окнами браузера.

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

В этой статье мы подробно рассмотрим применение Selenium для автоматизации взаимодействия с браузерами, вкладками и всплывающими окнами. Для демонстрации работы с окнами в Selenium PHP мы воспользуемся PHPUnit — фреймворком юнит-тестирования для PHP.
Читать дальше →

WireMock – швейцарский нож в арсенале тестировщика. Часть 1

Время на прочтение15 мин
Количество просмотров78K

Всем привет! Меня зовут Анатолий Калмыков, и я отвечаю за качество создаваемых решений в «Ростелеком ИТ». Сегодня я расскажу вам про WireMock – это одновременно и утилита, и библиотека на Java для создания HTTP заглушек над веб-сервисами. Он создает HTTP-сервер, к которому мы могли бы подключиться, как к реальному веб-сервису.

Статья получилась длинной, поэтому в первой части я расскажу, что такое WireMock и в каких случаях его необходимо использовать, как его разворачивать и настраивать, как правильно сопоставлять запросы с заглушками и как использовать журналирование. Сегодня речь пойдет исключительно о WireMock в амплуа утилиты и standalone http-сервер, который можно настроить как душе угодно, не зная языков программирования.

Читать далее

Как мы платежный шлюз тестируем

Время на прочтение10 мин
Количество просмотров8.9K

Всем привет! Сегодня мы поговорим об интеграционном тестировании платежного шлюза, но перед этим расскажу немного про нашу команду и наш проект. Мы (ContactPay) — самостоятельный финтех-стартап внутри QIWI, строим высокопроизводительный отказоустойчивый платежный шлюз и соответствуем стандартам безопасности PCI DSS. 

Как платежный шлюз мы интегрированы со множеством внешних API, это могут быть и платежные системы, и сторонние сервисы мониторинга, антифрода, KYC (know your customer) и так далее. 

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

Мы стараемся писать корректный код с наименьшим количеством  багов. Код должен быть читаемым, самодокументируемым и поддерживаемым. Кроме того, он должен быть безопасным, так как мы  финтех и у нас PCI DSS, это накладывает определенные требования к безопасности. А ещё код должен быть тестируемым. 

Сегодня мы поговорим о двух метриках — корректность и тестируемость. Одна метрика напрямую влияет на другую, через тестируемость мы добиваемся корректности в том числе, мы проверяем, насколько код ожидаемо работает. 

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

Читать далее

Go, я создал: пишем тесты на Allure-Go

Время на прочтение8 мин
Количество просмотров9.6K

Привет, Хабр!

Вы можете помнить меня по предыдущей статье про Allure-Go, в которой мы коснулись самой макушечки нашей скромной наработки. Сегодня же мы накидаем пару тестов с нуля, разберём подробно примеры и посмотрим, чего же нам удалось в итоге добиться.

Много коммитов утекло с того момента, когда мы с вами общались в прошлый раз. Вышло обновление 0.5, которое привнесло множество изменений, в том числе и в интерфейсах, а также обновление 0.6, которое добавило поддержку test plan из TestOps. Более подробно об обновлениях написано в Release Notes.

Читать далее

Бесконтрольный доступ и рассеянность: итоги одного пентеста

Время на прочтение8 мин
Количество просмотров14K


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

Читать дальше →

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

Пишем тесты на Go — выкладываем запись QA Meetup

Время на прочтение1 мин
Количество просмотров4.6K

Делимся видео и слайдами с прошедшего митапа, посвящённого автотестированию на Go. Под катом найдёте запись докладов:

— Go, Allure и HTTP, или Как мило тестировать HTTP-сервисы на Go.

— Как подружить QA и разработку через применение практики хранения тестов в коде.

Также обсудили с коллегами из Ozon, Авито, Skyeng и Mirantis тему «Как войти в профессию автотестирования и построить карьерный путь» в формате круглого стола.

Велкам

Знакомство с тестированием веб-приложений

Время на прочтение9 мин
Количество просмотров32K

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

Как женщине-гуманитарию устроиться автотестировщиком в 50 лет

Время на прочтение5 мин
Количество просмотров6.2K

Как начать карьеру в IT, если возраст близок к 50-ти.

Читать далее

Принципы юнит-тестирования. Часть первая

Время на прочтение10 мин
Количество просмотров62K

Привет! Меня зовут Владимир, я разработчик команды продукта «Сервис персонализации» в SM Lab. В этом посте я хотел бы рассказать (а в комментариях — обсудить) один очень важный и полезный инструмент разработчика — юнит-тесты.

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

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

Эта статья для всех – кто слышал про них, но не видел, кто приступает к написанию юнит-тестов, и кто их пишет уже давно. Надеюсь, каждый из вас найдет что-то полезное для себя.

При подготовке материала очень помогла книга Владимира Хорикова (@vkhorikov ) «Принципы юнит-тестирования». Рекомендую ее всем, кто хочет еще глубже погрузиться в эту тему.

Итак, поехали.

Читать далее

Тестовый контур как спасение при частых релизах

Время на прочтение6 мин
Количество просмотров8.8K

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

Читать далее

AssertJ как способ значительно улучшить код ваших тестов

Время на прочтение5 мин
Количество просмотров34K

В 2019-2020 годах на одном из проектов я был идейным вдохновителем перехода на JUnit 5. Для проверок мы использовали стандартные ассерты и Hamcrest. Тогда мне казалось, что этого более чем достаточно.

За последние пару лет, несмотря на менеджерскую позицию, я написал свыше пятисот тестов, и мой подход к тестированию претерпел значительные изменения. В этой статье я постараюсь объяснить, почему AssertJ — это лучшее решение для проверок в тестах, существующее сегодня (год 2022 от Р.X.). Разумеется, всё ниже сказанное — это моё субъективное мнение.

Читать далее

Как провести юзабилити-тестирование с респондентом и не провалить его

Время на прочтение11 мин
Количество просмотров25K

Всем привет! Эту статью мы пишем вместе: Аня Долгинова и Миша Яковенко — UX-исследователи в Lamoda. Мы хотим рассказать, как правильно проводить юзабилити-тестирование с респондентом и получать четкие результаты.

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

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

Читать далее