Pull to refresh
2
0
Рощупкин Виталий @24twelve

Тестирую всякое

Send message

Автоматизируй это! Как мы улучшали интеграционное тестирование

Reading time8 min
Views16K
В давние времена у нас было всего несколько сервисов, и выложить за сутки обновление более чем одного из них на production — было большой удачей работой. Потом мир ускорился, система усложнилась, а мы трансформировались в организацию с микросервисной архитектурой. Теперь у нас около сотни сервисов, и вместе с ростом их числа увеличивается и частота релизов — их более 250 в неделю.

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



Я работаю инженером по автоматизации тестирования в Яндекс.Деньгах.
В этой статье расскажу про эволюцию интеграционного тестирования web-сервисов, а также про адаптацию процесса к увеличению числа компонентов системы и повышению частоты релизов.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments17

«Календарь тестировщика» за сентябрь. Оптимизируй тесты

Reading time7 min
Views6.9K

И снова в нашей ленте «Календарь тестировщика». В этом месяце Марина Третьякова, тестировщик проекта Контур.Поставки, расскажет об оптимизации тестов. Марина разберет конкретные проблемы и способы их решения, а также посоветует, как оптимизировать свои тесты и сократить время на тестирование.


Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments2

Где учатся аналитики?

Reading time4 min
Views10K

В начале лета в Контуре закончился курс по продуктовой аналитике. Мы проводили его уже второй раз. Студенты успешно защитили выпускные проекты и прошли стажировку в компании. Юлия Закс, руководитель всех наших аналитиков и организатор курса, рассказала, как обучение прошло в этом году, чему научились курсанты и когда стартует следующий курс. А еще — с каких факультетов к нам приходят лучшие аналитики :).



Кадр из фильма «Игры разума» реж. Рон Ховард

Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments0

«Календарь тестировщика» за июнь. Тестировщик должен поймать баг, прочитать Канера и организовать движуху

Reading time7 min
Views6.1K

«Календарь тестировщика» снова с вами! За 2017 год у тестировщиков Контура было 32 летучки отдела, 3 тест-сессии, 2 онлайн-просмотра конференций, 14 мастер-классов, приезд внешнего гуру тестирования с лекцией и тренингом и ещё много всего. Большинство мероприятий организовали сами тестировщики.




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

Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments2

«Календарь тестировщика» за март. Протестируй безопасность

Reading time8 min
Views16K
Продолжаем цикл статьей «Календарь тестировщика», в этом месяце поговорим о тестировании безопасности. Многие не знают с чего начать и пугаются сложностей. Иван Румак, тестировщик безопасности веб-приложений в Контуре, поделился основами в поиске уязвимостей. Новички найдут в статье базовые знания, а опытным тестировщикам будет полезен раздел про обход защиты от CSRF.

В прошлом году Иван занял 4 место в программе поиска уязвимостей Mail.ru и вошел в призовые топ-100 соревнования Hack The World 2017.

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



Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments4

Что ещё мы проверяем при помощи Selenium, кроме логики интерфейса

Reading time10 min
Views33K
Привет, Хабр!

Меня зовут Виталий Котов, я работаю в отделе тестирования Badoo. Большую часть времени я работаю с Selenium. Этот замечательный инструмент мы используем для решения разнообразных задач: от тестирования функционала до упрощения работы с логами ошибок и проверки взаимодействия с API.

О том, какие задачи нам помогает решать Selenium, и пойдёт речь в этой статье. Поехали! :)


Читать дальше →
Total votes 58: ↑58 and ↓0+58
Comments36

Разбор перформансных задач с JBreak (часть 2)

Reading time65 min
Views10K
Только поутихли страсти с первой части разбора, вышедшей на прошлой неделе, как публикую продолжение: сегодня речь пойдёт о второй задаче.

Код второй задачи:
    String format(String user, String grade, String company, String message) {
        return String.format(
                "Он, %s, придумал такие %s задачи. Приду на стенд %s и скажу ему %s",
                user, grade, company, message);
    }

    String format(String user, String grade, String company, String message) {
        return "Он, " + user
                + ", придумал такие " + grade
                + " задачи. Приду на стенд " + company
                + " и скажу ему " + message;
    }

    String format(String user, String grade, String company, String message) {
        return new StringBuilder("Он, ")
                .append(user)
                .append(", придумал такие ")
                .append(grade)
                .append(" задачи. Приду на стенд ")
                .append(company)
                .append(" и скажу ему ")
                .append(message)
                .toString();
    }

Условие (упрощённо):
Определить, какие методы быстрые, а какие — медленные (JRE 1.8.0_161).

Другие публикации серии: Часть 1, Часть 3, Часть 4.
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments11

Как мы переняли опыт Khan Academy и сделали свой курс для тестировщиков

Reading time4 min
Views6.4K

Контур ежегодно запускает бесплатные курсы по программированию для студентов в Екатеринбурге, Питере, Новосибирске, Ростове-на-Дону, Ижевске, Перми и Казани. С 2013 мы выросли до 7 городов и 13 университетов, разработали свою онлайн-платформу ulearn.me, где с февраля 2018 есть курсы не только для разработчиков на C#, но и курс для тестировщиков.


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


Катя, буквально в двух словах расскажи что это за курс?


— Это уже пятый курс для новичков, который знакомит курсантов с основами тестирования. Традиционно в конце февраля мы набираем группу примерно из 30 студентов и молодых специалистов. Такая небольшая группа дает возможность уделить внимание каждому курсанту, да и преподаватели не утомляются, проверяя домашку. По опыту прошлых лет предполагаем, что 10-15% студентов не дойдут до конца курса, так что группа еще сократится. Занятия начались 22 февраля, все они будут проходить на Малопрудной два раза в неделю, по вторникам и четвергам. Курс закончится еще до майских праздников, потому что в середине мая курсантам становится не до занятий =)



Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments3

Ускорение сборки JavaScript-кода с использованием webpack 2–3

Reading time8 min
Views14K
Появляется все больше SPA салонов. Даже лендинги люди пилят на React. А действительно сложное веб-приложение уже трудно представить с другим подходом. Одна из главных проблем современного фронтенда — это сборка таких проектов. С этим помогают справляться бандлеры.

Иван Соснин, фронтенд-разработчик Контура, рассказывает как настроить webpack 2 и 3, чтобы получить ощутимый прирост в скорости сборки статики. Статья будет полезна тем, кто уже работает с webpack или смотрит в его сторону.

Стоит начать с ремарки, что недавно вышел webpack 4. Там вообще все супербыстро и ничего делать не надо, а еще изменилось процесс разбиения кода на чанки.


Но тащить в продакшен библиотеки, которые обновились вчера — не мой путь.


Webpack


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


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


За всю эту гибкость приходится платить сложной конфигурацией.

Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments5

Kontur Mobile Test Session: 446 багов за 5 часов

Reading time5 min
Views3.7K

В декабре Контур принимал ежегодную городскую тест-сессию Екатеринбурга. На этот раз 38 тестировщиков 5 часов искали баги в новом мобильном приложении. Игорь Борисихин, специалист по тестированию и организатор мероприятия, поделился опытом, рассказал что нового для тест-сессии придумал Контур и как попасть на мероприятие в этом году.




Что такое тест-сессия


Тест-сессия — это соревнование для начинающих и продвинутых тестировщиков и людей неравнодушных к тестированию, аналог мастер-класса или воркшопа у разработчиков. На тест-сессии можно познакомиться с коллегами из других компаний, проверить на «прочность» новый для себя продукт, выяснить, кто лучше умеет находить баги. Сессии тестирования — традиционное мероприятие для Екатеринбурга. Какой была прошлая четвертая общегородская тест-сессии можно узнать в сообществе тестировщиков Екатеринбурга — UTC.

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments0

«Календарь тестировщика» за январь. Разбери бэклог

Reading time7 min
Views9.6K
В Контуре работают 100 тестировщиков. В конце прошлого года они придумали «Календарь тестировщика» — цикл из 12 ежемесячных статей с практиками, секретами и лайфхаками о тестировании.

Первая статья была опубликована в январе на сайте «Сообщества тестировщиков Екатеринбурга». Мы переносим её на Хабр, чтобы её прочло больше тестировщиков. Следующая статья — за февраль — выйдет завтра, а её анонс будет в телеграм-канале.

Открывает цикл Максим Захаров, руководитель всех тестировщиков Контура и один из тестировщиков Ритейла. Он расскажет, почему копятся баги, как разобрать бэклог и уничтожить 80 багов с помощью пиццы :)

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




Я работаю тестировщиком в офисе примерно по 8 часов, изредка работаю в выходные. Есть большие цели на полгода и небольшие проекты на несколько недель или месяцев. Есть и обязательная рутина. Работы всегда с избытком, то есть нет объективной возможности сделать всю. Через год я не хочу увидеть, что делаю те же задачи и решаю те же проблемы. Я не Дорофеев и не Архангельский, рецепта счастья в статье не будет, но можно смело рассчитывать на пару неплохих советов и приемов.


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

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments5

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

Reading time4 min
Views9.1K

В Контуре работает 54 дизайнера, которые проектируют интерфейсы продуктов для каждой четвёртой компании в России. А ещё наши дизайнеры пишут Гайды, где делятся своим опытом. И вот уже больше года ребята создают календари, которые наделали шума в компании.


Что такое проект «Календарь» и как к нему отнеслись контуровцы, расскажет Юлия Красильникова, куратор проекта и проектировщик Контур.Маркета.


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


Заглянуть в мастерскую художника...
Total votes 22: ↑21 and ↓1+20
Comments9

Видео с митапа UralJS #6 — избавляемся от this, типизируем Redux-приложение и пишем на Реакте без тормозов

Reading time2 min
Views3.9K

image


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


По традиции было три спикера — фрилансер, контуровец и злой марсианин. Вот что мы обсуждали:

Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments2

Экспресс-оценка сложности алгоритма (+разбор задачи c Joker 2017 и DotNext 2017 Moscow)

Reading time5 min
Views17K
Для любого практического применения log(n) можно считать константой. Просто в некоторых компаниях эта константа больше, чем у вас. © народная мудрость

Половину жизни я учу программировать. В том числе учу разработчиков делать быструю оценку вычислительной сложности алгоритма. Зачем?!


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


Сначала разберёмся, как делать оценку сложности, на примере короткой, но нетривиальной задачи. Потом я расскажу, как научится делать экспресс-оценку, и покажу статистику о том, как решали задачу-пример участники конференций Joker и DotNext.


Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments24

Интересные сюрпризы ConcurrentDictionary (+разбор задачи с DotNext 2017 Moscow)

Reading time5 min
Views27K

Привет всем, кто пишет код для .NET, особенно многопоточный. Редко встретишь потокобезопасный код без потокобезопасных коллекций, а значит, нужно уметь ими пользоваться. Я расскажу о самой популярной из них — ConcurrentDictionary. В ней спрятано на удивление много интересных сюрпризов: как приятных, так и не очень.


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


Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments3

Неслучайная случайность, или Атака на ГПСЧ в .NET

Reading time5 min
Views17K
Random numbers should not be generated with a method chosen at random.
— Donald Knuth

Копаясь как-то в исходниках одного сервиса в поисках уязвимостей, я наткнулся на генерацию одноразового кода для аутентификации через SMS. Обработчик запросов на отправку кода упрощённо выглядел так:


class AuthenticateByPhoneHandler
{
    /* ... */

    static string GenerateCode() => rnd.Next(100000, 1000000).ToString();

    readonly static Random rnd = new Random();
}

Проблема видна невооруженным глазом: для генерации 6-тизначного кода используется класс Random — простой некриптографический генератор псевдослучайных чисел (ГПСЧ). Займёмся им вплотную: научимся предсказывать последовательность случайных чисел и прикинем возможный сценарий атаки на сервис.


Потокобезопасность


Кстати, заметим, что в приведённом фрагменте кода доступ к статическому экземпляру rnd класса Random из нескольких потоков не синхронизирован. Это может привести к неприятному казусу, который можно часто встретить в вопросах и ответах на StackOverflow:


Читать дальше →
Total votes 72: ↑71 and ↓1+70
Comments31

Все профессии важны: почему тестировщика нужно ценить не меньше, чем программиста

Reading time10 min
Views36K

Здравствуйте. Меня зовут Илья Кудинов, мне 27 лет, и я тестировщик.
Все: Здравствуй, Илья!

Мы уже много писали о том, как здорово мы в Badoo тестируем наши продукты. А сегодня я (внезапно!) расскажу о том, как круто тестировать ВООБЩЕ. И когда я встречаю представителей нашей профессии, которые не разделяют эту точку зрения, я всегда стараюсь открыть им глаза на истину. Например, этой самой статьёй.

О чём она будет? Я поделюсь своим личным опытом, расскажу, как развивалась индустрия в течение шести с небольшим лет, что я за ней наблюдаю, и опишу своё видение карьерного пути тестировщика. Устраивайтесь поудобнее, настало время (неразборчиво, зачёркнуто) занимательных историй…

Дисклеймер


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

Если вы со мной в чём-то не согласны — добро пожаловать в комментарии. Я всегда открыт к диалогу.
Читать дальше →
Total votes 63: ↑60 and ↓3+57
Comments53

Как бросить аспирантуру и стать разработчиком

Reading time4 min
Views11K

Меня зовут Кирилл Протасов. Сейчас расскажу, как за год я прошёл путь от аспиранта психологического факультета до стажёра и разработчика интерфейсов на React.



Не программист


Был ноябрь 2016 года. Я закончил бакалавриат физфака и магистратуру психфака в УрФУ, учился в аспирантуре. Работал эргономистом на большом оборонном предприятии — заботился, чтобы пульты управления пуском всяких стратегических штук были удобными. В общем, занимался инженерной психологией.


Но больше всего меня интересовала разработка интерфейсов. Я самостоятельно изучал юзабилити, проектирование интерфейсов и разработку веб-приложений. Иногда на работе в свободное время решал простые алгоритмические задачи на Codewars и freeCodeCamp. Что-то сразу проверял в консоли браузера, что-то дома. В свободное от работы время учил JavaScript и делал учебные проекты на freeCodeCamp.

Читать дальше →
Total votes 20: ↑12 and ↓8+4
Comments2

Переход из тестировщика в руководители проектов

Reading time5 min
Views22K


Обычно на должность руководителя проектов в IT-компании требуются люди с опытом от 1 года. Поэтому часто неопытные менеджеры устраиваются на работу аналитиками, тестировщиками, иногда даже разработчиками.


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


В этой статье я делюсь наблюдениями и выводами. Как в одном человеке конфликтуют привычки тестировщика и обязанности руководителя проекта? С какими проблемами приходится сталкиваться? Какую пользу можно извлечь при таком переходе? Если хотите получить ответы на эти вопросы, добро пожаловать под кат.

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments22

Как обложить сервис метриками и не облажаться

Reading time6 min
Views28K

Меня зовут Евгений Жиров, я разработчик в инфраструктурной команде Контур.Экстерна. Этот пост — текстовая версия моего доклада с недавнего митапа Perm Tech Talks.


У нас в команде 200 микросервисов, которые должны быть отказоустойчивыми, чтобы пользователи не замечали никаких проблем. А проблемы, конечно, возникают. Поэтому мы собираем метрики, чтобы знать, как дела у конкретных сервисов и у системы в целом. Метрики помогают вовремя среагировать и всё починить.


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


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


Какие бывают метрики?



Метрика requests.count.byhost.*

Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments8
1

Information

Rating
Does not participate
Registered
Activity