Search
Write a publication
Pull to refresh
0
@Redlumusread⁠-⁠only

User

Send message

Как я вошёл в клуб бага 323

Level of difficultyMedium
Reading time12 min
Views31K

Это история о баге, который бы заставил вас рвать на себе волосы. Из-за такого бага вы можете подумать: «Но это невозможно, должно быть, компилятор сломался, других вариантов нет!»

А баг компилятора — это серьёзно: за двенадцать лет программирования на C++ я обнаружил (и написал отчёт) всего... об одном. И могу сказать, что перед отправкой отчёта о баге GCC, я максимально тщательно протестировал и проверил его, чтобы не выглядеть идиотом.

Впрочем, ладно, вот моя история.

Читать далее

Как задеплоить монолитный pet проект на Java с 0 и не сойти с ума… Часть 1

Level of difficultyMedium
Reading time3 min
Views7.7K

Перерыв в работе заставил меня задуматься над смыслом выражения "Сапожник без сапог". Будучи Java Backend Developer с 3-ех летним стажем я не имею на руках ни одного pet проекта. Конечно, на GitHub у меня есть какие-то мелкие проектики, но они не доведены до конца и кроме того как просто висеть на доске "почета" они больше ничего и не могут. С этой мыслёй я пошел в интернет гуглить "как мне задеплоить свое приложение?".

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

Читать далее

Как мы поднимаем dev-стэнд(ы) и гоняем полноценные тесты api на каждый коммит

Level of difficultyEasy
Reading time8 min
Views6.3K

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

На самом деле мы просто решили писать тесты не на отдельные классы/методы, а на интерфейс api, которым пользуются клиенты - на сервисы этого API. Тестируя их, мы убиваем двух зайцев: проверяем логику работы сервисов api + форматирование результата.

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

Читать далее

Думай шире своих обязанностей: Сила системного мышления в инженерии тестирования качества (QA)

Level of difficultyEasy
Reading time5 min
Views7.6K

Привет, меня зовут Елена Рукавичникова, я Head of QA  и преподаватель курса “Функциональное тестирование ПО” в IT Academy. Свыше 7 лет я погружена в мир тестирования, принимая участие в более чем 20 увлекательных проектах.

Когда-то я выступала на конференции с данной темой и решила поделиться ею с вами.

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

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

Читать далее

[Разбор резюме] Что писать, если сменил профессию: резюме тестировщика без релевантного опыта

Level of difficultyEasy
Reading time3 min
Views10K

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

Читать далее

Найти работу после курсов: дорога слёз тестировщика-новичка

Reading time10 min
Views32K

За полгода курсы выпустят на СНГ-рынок 3,5К QA-интернов, а компании откроют всего 0,9К вакансий. Поэтому многие новички будут искать работу месяцами, не выдерживать давления отбора и писать компании «Я готов на переработки, только возьмите…».

Меня зовут Че́слав Герасимóвич, я 11 лет в мануальном тестировании. Повышал качество в лучшем в мире пасьянсе, в мобильных танках, пошаговой стратегии, сервисе знакомств для калифорнийских индийцев. Сейчас — Lead QA в сервисе нетворкинга для распределённых команд Dreem.me.

Сейчас покажу с картинками, как бороться и искать, найти хорошую работу и не сгореть.

Читать далее

Как тестировать не-REST-бэкенд. Часть вторая, WebSocket

Level of difficultyMedium
Reading time6 min
Views21K

Привет! Продолжаем цикл статей про тестирование не-REST-бэкенда, в прошлый раз мы говорили о GraphQL, теперь пришло время WebSocket.

Итак, что такое WebSocket?

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

Что тут важно — что это протокол (со всеми вытекающими последствиями для протокола), который использует постоянное соединение.

Работу по WebSocket в обычной жизни можно представить примерно так.

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

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

ОК, что вам делать в такой ситуации?

Читать далее

Наши любимые приложения-помощники в тестировании back-end

Reading time4 min
Views14K

Всем привет! Меня зовут Константин, и я работаю ведущим тестировщиком в дружной команде back-end компании Solit. Мои коллеги уже не раз делились различными хитростями и ноу-хау, которые они применяют в своих проектах. Я же решил пойти немного другим путём и поделиться с вами набором сервисов и утилит, которые помогают нам прийти к недостижимой цели — работа приложений без дефектов.

 В мою подборку попали те приложения, которые прижились в нашей команде и ими пользуется более одного человека. Конечно, есть очевидные вещи, типа Notepad++. Но есть и более редкие «звери», типа JWT.

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

Приложения для генерации данных

Правильная подготовка тестовых данных — уже половина успешного тестирования. В этом разделе я собрал приложения, которые помогают быстро сгенерировать большие (я бы даже сказал, очень БОЛЬШИЕ) объёмы тестовых данных.

pgCodeKeeper

Вообще, эту утилиту можно использовать для различных целей. Её основная цель — поиск различий между объектами баз данных, создание скриптов миграции и тому подобных вещей.

 В нашем случае она прижилась именно как генератор тестовых данных для БД Postgres. Подробнее о том, как он работает, можно прочитать в официальной справке pgCodeKeeper.

Читать далее

Моделирование микросервисов. Часть 1

Level of difficultyMedium
Reading time5 min
Views17K

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

Читать далее

Только консоль. Почему текстовый интерфейс настолько эффективен

Level of difficultyEasy
Reading time6 min
Views35K

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

Почему так?

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

Что такое игра? Как ее написать?

Level of difficultyEasy
Reading time14 min
Views13K

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

Статью написал в рамках подготовки к пятничному игровому джему (GMTK Game Jam 2023). Никогда в них не участвовал, решил проверить, что успею запилить хоть что-то за пару дней и по-рефлексировать на тему. Поболейте за меня или сами поучаствуйте. Написанная в статье игра - не для джема, а для статьи, ссылка в конце. Игра из джема уже готова, можно ознакомится тут.

Читать далее

Моделирование микросервисов. Часть 2

Level of difficultyHard
Reading time11 min
Views10K

Предметно-ориентированный подход (DDD, Domain-Driven Design) в проектировании программного обеспечения является наиболее эффективным способом моделирования бизнес-процессов. Сегодня мы поговорим о стратегическом и тактическом проектировании, после чего рассмотрим инструмент ускорения проектирования под названием «событийный штурм» (event storming).

Читать далее

Правильные тестовые данные или почему Вася Пупкин лучший друг тестировщиков?

Level of difficultyMedium
Reading time11 min
Views16K

Будучи молодым QA-инженером, я тестировал модуль регистрации пользователя одного десктопного приложения. Набирать сочетания случайных букв в качестве тестовых имени и фамилии мне изначально не нравилось, а использование личных данных считалось некорректным, поэтому я начал использовать имена и фамилии существующих политиков. Барак Обама, Джордж Буш и другие регистрировались в сервисе кастинга голосовых актеров, проводили сессии голосовых записей, исправно платили по счетам и выполняли прочие бизнес-действия. Через некоторое время об этом узнал наш ПМ, который попросил отказаться от практики привлечения политиков в ряды наших тестовых пользователей. Передо мной встал выбор: пользоваться случайным набором букв или придумать некий шаблон. Я выбрал второй вариант. С тех пор персонаж Василий Пупкин стал моим лучшим другом.

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

Узнать больше о правильных тестовых данных

Книги для начинающих разработчиков: от «Чистой архитектуры» до «Паттернов проектирования»

Reading time5 min
Views40K

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

Читать далее

Автотесты: кому они крайне необходимы, а кто может без них обойтись?

Reading time4 min
Views8.3K

Привет, Хабр! Меня зовут Константин Боковиков, я Chapter QA Lead в онлайн-кинотеатре KION. Я занимаюсь организацией процессов тестирования в командах и оценкой их зрелости, а потому часто использую в работе автотесты. К слову, автотесты нужны не всем: для некоторых задач и команд они просто не подходят. В этой статье я постараюсь показать наш опыт использования этого инструмента и расскажу, кому, на мой взгляд, можно обойтись без него, а кому точно стоит его освоить.

Читать далее

Введение в Java Process Memory Model

Level of difficultyMedium
Reading time4 min
Views22K

Каждое Java приложение, после запуска, создаёт десятки, сотни, тысячи объектов в памяти компьютера на котором оно запущено. Память, при этом, ресурс не бесконечный, и поэтому необходимо использовать его эффективно. Виртуальная Машина Java (Java Virtual Machine, далее JVM) умеет грамотно распоряжаться памятью и помогает нам, разработчикам, управляя ею автоматически.

О том, как именно JVM работает с памятью во время работы Java приложения мы поговорим в этой статье.

Читать далее

Искусство «Мераки»: как привить человеку желание работать

Reading time5 min
Views13K


Если вы сидите в социальных сетях, то со временем можете заметить, что там есть совершенно безумные люди. И я не говорю о теориях заговора или тех, кто пытается переспорить собеседника в Интернете. Есть гораздо более странный вид сумасшедших. Это те, кто во время отпуска постит такие вещи как «Не могу дождаться, когда вернусь на работу». Или пишет, что «Я работаю не ради денег, мне просто это доставляет удовольствие». Если вы не верите, что такие чокнутые существуют, можно посмотреть например на сообщество /r/LinkedInLunatics.


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

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

Малоизвестные возможности языка C

Reading time4 min
Views25K

Если у вас несколько лет опыта программирования на языке C, то, вероятно, вы гораздо более уверены в своих знаниях этого языка, чем если бы вы провели столько же времени, работая с C++ или Java. И язык C, и его стандартная библиотека довольно близки к к минимально возможному размеру.

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

Читать далее

Как сейчас работают интернет-покупки в США из РФ

Reading time6 min
Views20K

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

Читать далее

Внутреннее обучение Java для QA

Level of difficultyEasy
Reading time4 min
Views5.7K

Всем привет! В статье расскажем про внутреннюю программу обучения для QA. В наших продуктовых командах все QA-инженеры пишут автотесты, для этого мы используем связку Java+Selenium. У всех разный уровень владения инструментами и опыт программирования. Чтобы выровнять уровень владения Java в командах и помочь новым сотрудникам быстрее влиться в нашу среду автотестов, в 2022 году мы решили сделать внутреннюю программу обучения, определив минимально необходимый уровень владения технологическим стеком. В статье поговорим о том, как мы создавали нашу программу, расскажем, из чего она состоит и разберем нюансы. 

Читать далее

Information

Rating
Does not participate
Registered
Activity