Как стать автором
Обновить
70.03

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

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

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

Как улучшить ваши A/B-тесты: лайфхаки аналитиков Авито. Часть 1

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

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

Мы не только пытаемся максимизировать выручку Авито, но и думаем про счастье пользователей. Если установить слишком большие цены, то пользователи возмутятся и начнут уходить с площадки, а если сделать цены слишком маленькими, то мы недополучим часть оптимальной выручки. Низкие цены также увеличивают количество «спамовых» объявлений, которые портят поисковую выдачу пользователям. Поэтому нам очень важно уметь принимать математически обоснованные решения — любая наша ошибка напрямую отразится на выручке и имидже компании. 

Одним из инструментов для решения наших задач является A/B-тестирование.

Читать далее
Всего голосов 11: ↑9 и ↓2+7
Комментарии15

Код-ревью без очередей

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

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

Читать далее
Всего голосов 28: ↑28 и ↓0+28
Комментарии4

Как правильно сложить колоду автоматизации тестирования

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

(Эта статья первоначально появилась на TechBeacon.com)

Перекладывание игральных карт колоды в свою пользу называется «подтасовать колоду». За пределами карточной игры этот термин используют в более широком смысле для обозначения решения ситуации таким образом, чтобы увеличить шансы на благоприятный исход.

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

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

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

Поймите две основные концепции

Создавая стек автоматизации, не забывайте, что вы занимаетесь программированием; вы создаете программное обеспечение и должны относиться к этой задаче как к разработке программного обеспечения. Это означает — вы должны следовать практике разработки и поставки программного обеспечения, соответствующей тому, что вы разрабатываете.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Как симулировать плохую сеть под Linux, macOS и Windows

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

Clumsy 0.2

Все распределённые системы — базы данных, мобильные приложения, корпративные SaaS и так далее — следует разрабатывать с учётом сбоев. Например, компания Stripe во время тестов убивала случайные инстансы — и смотрела, что произойдёт. Компания Netflix рандомно уничтожала инстансы прямо в продакшне с помощью программы Chaos Monkey (проект Simian Army).

Симуляция сбоев — необходимое средство тестирования. Проблема в том, что ситуации не делятся только на чёрное и белое, Есть огромная «серая» зона, где сбои явно не выражены, а проявляются в плохих условиях сети: ненадёжное соединение, узкий канал, потери пакетов, высокая задержка, дубликаты пакетов и так далее.
Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии6

Истории

Важность человеческого фактора UX-дизайне

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

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

Возможно, вы уже встречали термин «human factors design» в прошлом. Но что это такое?

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии8

Часто задаваемые вопросы о ClickHouse Kafka Engine

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

Kafka — это популярный способ потоковой загрузки данных в ClickHouse. ClickHouse имеет встроенный коннектор для этой цели — движок Kafka. Наши друзья из Cloudfare первоначально создали этот движок для ClickHouse. С тех пор движок Kafka был значительно переработан и теперь поддерживается разработчиками Altinity. Однако не всегда очевидно, как использовать его наиболее эффективным образом. Мы попытались восполнить этот пробел, проведя вебинар по Kafka, который прошел успешно. В этой статье мы собрали типичные вопросы, которые мы получаем по поводу использования движка Kafka. Надеемся, что наши рекомендации помогут избежать распространенных проблем.

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии0

Чтобы сделать продукт качественнее, нужно каждое утро натощак… Кликбейта не будет: оптимизируем тестирование

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии8

Стратегия тестирования REST API: что именно вам нужно тестировать?

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

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

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

Становится понятно, что важность тестирования API очевидна. Некоторые методологии и ресурсы помогают нам узнать КАК тестировать API - вы можете использовать ручное тестирование, автоматическое тестирование, тестовые среды, инструменты, библиотеки и фреймворки. Однако, независимо от того, чем вы будете пользоваться - Postman, supertest, pytest, JMeter, mocha, Jasmine, RestAssured или любыми другими инструментами - прежде чем открывать любой инструмент тестирования, вам необходимо определить, что тестировать...

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии8

WebSecOps: изучаем веб-безопасность

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

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

Давайте порассуждаем, почему так происходит, и как найти выход из этой ситуации.

Читать далее
Всего голосов 12: ↑8 и ↓4+4
Комментарии3

Где начинающему тестировщику получить первый опыт: проект «Хомячки»

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

Привет! Меня зовут Ольга Ермолаева. Я работаю в тестировании с 2008 года. Сейчас руковожу департаментом качества в компании «Инттерра» и помогаю студентам на курсе для тестировщиков в Яндекс.Практикуме в качестве наставника.


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


Начинающие программисты пишут свои pet-проекты, выкладывают на Github и добавляют ссылку в портфолио. Дизайнеры могут показать свою страницу на Behance или Dribble. Но что делать начинающим тестировщикам?


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


В статье я поделюсь с вами одним из вариантов решения этой проблемы.


Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии24

Как мы делали инструмент для QA, а сделали для всего техотдела

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

Как-то очень давно наш отдел автоматизации внутренних процессов посетил админ (ops) с идеей помочь нашим тестировщикам. Основная идея был упростить деплой т.к. было очень неудобно писать ручные curl запросы к gitlab'у с кучей меняющихся параметров. Так заставили нас наша команда решила помочь дружественному отделу и сделать их работу более приятной.

В статье я постараюсь поделиться тем, как мы разрабатывали GUI для curl'a, а сделали очень крутой сервис автоматизации. А также с какими проблемами столкнулись и как их решили (или нет).

Читать далее
Всего голосов 8: ↑6 и ↓2+4
Комментарии5

Автоматизация тестов на Go + Allure

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

Привет всем. Меня зовут Таня. Я автоматизирую тесты на Go уже около года, до этого занималась 4 года автоматизацией на Java.

В этой статье расскажу:

- Как писала интеграционные тесты на Go + Allure

- С какими проблемами столкнулась

- С какими библиотеками и инструментами работаю

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии11

Обеспечение доступности веб-контента: стандарты, критерии, пример реализации

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

Привет, меня зовут Павел. Я занимаюсь изучением и тестированием доступности.

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

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

В данной статье мы погрузимся в вопрос доступности контента, разберемся, почему важна доступность в интернете, чем она регламентируется и как реализуется. В завершение, я расскажу на реальном примере, как мы с командой работали над повышением доступности нашего продукта — конструктора онлайн-курсов iSpring Suite.
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии5

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

Шаблон заведения бага

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

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

Читать далее
Всего голосов 11: ↑9 и ↓2+7
Комментарии0

Selenium vs Puppeteer vs Cypress vs Playwright

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

Всем привет. Я qa automation engineer уже 14 лет и 9 из них мне так или иначе приходилось работать с автоматизацией веб-приложении (и не только). Я писала свои автотесты на C#, Java, и Js. Сейчас я хотела бы поделиться опытом, как я выбираю фреймворк для тестирования веб приложения. Думаю кому-то мой текст может быть полезен. 

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

Читать далее
Всего голосов 12: ↑9 и ↓3+6
Комментарии17

Может ли автоматизированное тестирование заменить ручное?

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

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

Disclaimer: данная статья написана с учетом опыта разработки в определенной (хоть и самой массовой) сфере ПО, а именно e-commerce. В других сферах правила игры могут разительно отличаться.

Я работал в тестировании 3 года, в автоматизации 7 лет, и в разработке - все оставшееся время, и вскоре я буду выступать на Национальной Конференции по Тестированию в Великобритании с ответом на этот вопрос. Но конференция еще не скоро, а многим, видно, интересно узнать ответ уже сейчас.

Читать далее
Всего голосов 14: ↑6 и ↓8-2
Комментарии50

Flaky-тесты: Откуда ноги растут. Опыт Uber

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

Эта статья является переводом статьи из блога Uber. Обычно мы в Qameta Software не занимаемся переводами, но мимо этой статьи пройти не смогли. Хороший и исчерпывающий материал о том, что такое flaky-тесты, какие они бывают и как с ними справляться (с некоторыми проявлениями). Часть материала, посвященную переезду Uber с микросервисов на монорепо я опустил, оставив только то, что напрямую связано с отработкой flaky-тестов.

Юнит-тесты лежат в основе любой Continuous Integration (CI) системы. Они позволяют обеспечить контроль над качеством кода при высоких темпах разработки, предупреждая инженеров о багах в новом коде и регрессии в кодовой базе. Кроме того, они снижают стоимость разработки за счет обнаружения ошибок на ранних этапах. Именно поэтому построение стабильной и работающей тестовой инфраструктуры является одним из базовых требований для любой крупной разработки.

К сожалению, flaky-тесты осложняют жизнь тем, кто это требование пытается выполнить. Давайте считать, что мы будем принимать тест как flaky если на любых двух воспроизведениях он возвращает разные результаты: прошел или упал, — без изменения кода. Такие тесты чаще всего возникают в результате одной из двух причин: недетерминированность на уровне кода (порядок исполнения тредов и другие сложности с многопоточностью) или неоднородностью окружений, в которых выполняется тестирование (на одной машине все работает хорошо, а на CI-сервере тесты падают).

Давайте рассмотрим простой пример, на котором будет понятно, откуда у проблемы ноги растут:

Давайте!
Всего голосов 12: ↑11 и ↓1+10
Комментарии1

Как провести технический аудит сайта через Screaming Frog?

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

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

Чтобы выявить технические ошибки, необходимо провести комплексный технический SEO-аудит сайта. Одним из основных помощников в этой сложной и трудозатратной задаче для нас выступает десктопная программа Screaming Frog.

Читать далее
Всего голосов 2: ↑0 и ↓2-2
Комментарии0

Смертельное переполнение стека. Почему Bunny потеряли свой DNS и как предотвратить подобное

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


Примечание: Bunny CDN — сеть доставки контента и облачный хостинг со своими серверами DNS

Если в bunny.net есть что-то важнее производительности, то это надёжность. Всё продумано. Избыточный мониторинг, система автоматического восстановления, auto-healing на нескольких уровнях, три резервные сети DNS и система, которая связывает всё это вместе и гарантирует аптайм.

Но в нашей ситуации ничего не помогло. 22 июня 2021 года после почти двух лет безупречной работы из-за сбоя DNS произошло полное отключение почти всех систем. 750 000 сайтов частично ушли в офлайн более чем на два часа. В мгновение ока мы потеряли более 60% трафика и сотни гигабит пропускной способности. Несмотря на все резервные системы, глобальный сбой вызвало простое обновление одного файла.
Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии9

Веб-скрейпинг на PHP

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


Термин web scraping означает извлечение информации из веб-страниц в интернете. Его ещё называют web crawling или web data extraction.

PHP широко используется в качестве серверного скриптового языка для создания динамических сайтов и веб-приложений. И на нём можно написать веб-скрейпер. Но поскольку мы не хотим изобретать колесо, можно воспользоваться готовыми open-source библиотеками для веб-скрейпинга. Кстати, мы также написали отличную статью про веб-скрейпинг с помощью Node.js и с помощью Python, почитайте. А здесь мы обсудим разные инструменты и сервисы, которые можно использовать с PHP для скрейпинга веб-страниц: Guzzle, Goutte, Simple HTML DOM, Headless-браузер Symfony Panther.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии6

Вклад авторов