uk
Feedback
Желтый QA

Желтый QA

Закритий канал

Канал QA-комьюнити Т-Банка. Здесь мы делимся кейсами, рассказываем про технологии тестирования и говорим про надежность и качество продуктов. Кейсы, технологии и анонсы митапов по направлениям: https://t.me/kod_zheltyi

Показати більше
4 056
Підписники
Немає даних24 години
-137 днів
-2630 днів
Залучення підписників
вересень '26
вересень '26
+1
в 0 каналах
серпень '26
+45
в 0 каналах
Get PRO
липень '26
+1
в 0 каналах
Get PRO
червень '26
+8
в 1 каналах
Get PRO
травень '26
+10
в 0 каналах
Get PRO
квітень '26
+21
в 2 каналах
Get PRO
березень '26
+41
в 0 каналах
Get PRO
лютий '26
+37
в 0 каналах
Get PRO
січень '26
+169
в 6 каналах
Get PRO
грудень '25
+41
в 0 каналах
Get PRO
листопад '25
+52
в 0 каналах
Get PRO
жовтень '25
+53
в 0 каналах
Get PRO
вересень '25
+42
в 0 каналах
Get PRO
серпень '25
+41
в 0 каналах
Get PRO
липень '25
+42
в 0 каналах
Get PRO
червень '25
+46
в 0 каналах
Get PRO
травень '25
+84
в 0 каналах
Get PRO
квітень '25
+69
в 2 каналах
Get PRO
березень '25
+63
в 0 каналах
Get PRO
лютий '25
+134
в 1 каналах
Get PRO
січень '25
+70
в 0 каналах
Get PRO
грудень '24
+89
в 0 каналах
Get PRO
листопад '24
+119
в 0 каналах
Get PRO
жовтень '24
+100
в 0 каналах
Get PRO
вересень '24
+159
в 0 каналах
Get PRO
серпень '24
+77
в 0 каналах
Get PRO
липень '24
+40
в 0 каналах
Get PRO
червень '24
+113
в 0 каналах
Get PRO
травень '24
+97
в 0 каналах
Get PRO
квітень '24
+182
в 1 каналах
Get PRO
березень '24
+257
в 0 каналах
Get PRO
лютий '24
+245
в 1 каналах
Get PRO
січень '24
+301
в 2 каналах
Get PRO
грудень '23
+387
в 3 каналах
Get PRO
листопад '23
+383
в 3 каналах
Get PRO
жовтень '23
+131
в 0 каналах
Get PRO
вересень '23
+165
в 0 каналах
Get PRO
серпень '23
+161
в 0 каналах
Get PRO
липень '23
+125
в 0 каналах
Get PRO
червень '23
+226
в 0 каналах
Get PRO
травень '23
+216
в 0 каналах
Get PRO
квітень '23
+127
в 0 каналах
Get PRO
березень '23
+127
в 0 каналах
Get PRO
лютий '23
+112
в 0 каналах
Get PRO
січень '23
+114
в 0 каналах
Get PRO
грудень '22
+162
в 0 каналах
Get PRO
листопад '22
+218
в 0 каналах
Get PRO
жовтень '22
+179
в 0 каналах
Get PRO
вересень '22
+516
в 0 каналах
Дата
Залучення підписників
Згадування
Канали
04 вересня0
03 вересня0
02 вересня+1
01 вересня0
Дописи каналу
🧠 Возвращаемся с разбором задачи из прошлого поста. Ошибка была в инициализации: max_sum = 0 вместо первого элемента массива. Ноль здесь — не «нейтральное» значение, а неявное предположение, что ответ не может быть меньше нуля. Но по условию подмассив должен содержать хотя бы один элемент — а значит, если все числа отрицательные, правильный ответ тоже отрицательный. Функция же в таком случае вернёт 0 — сумму «пустого» подмассива, которого по условию не существует. Пример-ловушка:
nums = [-3, -1, -2] → вернёт 0 вместо -1 nums = [-5] → вернёт 0 вместо -5
Разберём nums = [-3, -1, -2] по шагам:
num = -3 → current = max(-3, 0 + (-3)) = -3 → max_sum = max(0, -3) = 0 num = -1 → current = max(-1, -3 + (-1)) = -1 → max_sum = max(0, -1) = 0 num = -2 → current = max(-2, -1 + (-2)) = -2 → max_sum = max(0, -2) = 0
Все реальные суммы отрицательные, но max_sum так и не опустился ниже стартового нуля — и функция возвращает ответ, который вообще не соответствует никакому подмассиву. Правильное решение:
def max_subarray(nums): max_sum = current = nums[0] # инициализируем первым элементом! for num in nums[1:]: current = max(num, current + num) max_sum = max(max_sum, current) return max_sum
Теперь стартовое значение — это сумма реального подмассива из одного элемента, и функция корректно работает в том числе на массивах из одних отрицательных чисел. Кстати, этот алгоритм — знаменитый алгоритм Кадане, а ошибка с инициализацией нулём — самый частый способ его «сломать». Такие задачи любят спрашивать на собеседованиях, поэтому хорошо помнить о том, как их решать ❤️ Подписывайтесь 📚 #задача

2
Всем привет! 👋 Сегодня предлагаем вам решить задачу на поиск бага в коде 🔥 Нужно реализовать функцию max_subarray, которая находит максимальную сумму непрерывного подмассива. Подмассив должен содержать хотя бы один элемент, поэтому уменьшить сумму «до нуля», взяв пустой подмассив, нельзя. Примеры: max_subarray([-2, 1, -3, 4, -1, 2, 1, -5, 4]) → 6 # подмассив [4, -1, 2, 1] max_subarray([5, 4, -1, 7, 8]) → 23 # весь массив max_subarray([1]) → 1 max_subarray([-3, -2]) → -2 # подмассив [-2] Для решения задачи написан такой код: def max_subarray(nums): max_sum = 0 current = 0 for num in nums: current = max(num, current + num) max_sum = max(max_sum, current) return max_sum Код запускается без ошибок, но в некоторых примерах выдаёт некорректный результат. Вопросы: 1️⃣ В чём логическая ошибка? 2️⃣ При каких входных данных функция вернёт неверный результат? 3️⃣ Как правильно исправить? Пишите свои варианты в комментариях ⬇️ Подписывайтесь 📚 #задача
482
3
📊 Итоги: нужны ли метрики качества? Как видно из голосования по метрикам качества, расклад такой: ✅ Большинство за то, что метрики нужны и реально помогают в работе: - мы видим качество кода - принимаем взвешенные решения - отслеживаем техдолг в динамике ⚠️ Но есть важный нюанс: как и любой инструмент, метрики требуют грамотного использования. Ключ — не собирать метрики ради метрик, а применять их осознанно: - понимать, какую проблему решает каждая метрика - ориентироваться на реальный результат, а не подгонять цифры под красивую картинку - интерпретировать данные в контексте задачи и проекта Главное — чтобы метрики помогали принимать лучшие решения, а не создавали видимость благополучия. Продолжим дискуссию в комментариях 👇 — Какие метрики вы считаете действительно полезными? — С какими рисками сталкивались при внедрении? Подписывайтесь 📚 #сложный_выбор
727
4
Немає тексту...
902
5
Відеоповідомлення
818
6
Відеоповідомлення
769
7
❗️ Задались вопросом о метриках качества. Мнения наших экспертов, как всегда, разделились: 👉 кто-то говорит «без них никак» 👉 кто-то — «пустая трата времени». А как считаете вы? Подписывайтесь 📚 #сложный_выбор
727
8
А вам приходится убеждать разработчиков править баги? 🐞 Подписывайтесь 📚 #мем
А вам приходится убеждать разработчиков править баги? 🐞 Подписывайтесь 📚 #мем
857
9
Давайте посмотрим на результаты опроса: Только 11% проголосовавших отметили, что качество кода при внедрении AI в разработку не ухудшилось. Расскажите в комментариях, как вам это удается 👇 12% решили перетерпеть до того момента, когда AI агенты научатся писать качественный код. Надеемся, ждать этого придется не очень долго 🙏 От 31% до 34% респондентов решили ужесточать процессы, чтобы не снижать качество: ограничивать роль AI ассистированием, давать только простые задачи, ужесточать ревью со стороны живых разработчиков. И, конечно же, увеличивать покрытие тестами. Чем больше тестов, тем сложнее что-то сломать 🫷 Наибольший процент (44%) набрал вариант, что улучшать качество кода от AI должен сам AI. То есть прокачивать надо не только вайб-кодинг, но и вайб-тестинг, а AI должен сам проверять и чинить свой же код 🧐 Ну а почему нет — кто не пишет, тот не ошибается. А кто написал и ошибся — тот пусть ищет и исправляет 😅
1 014
10
Немає тексту...
933
11
🚀 AI-агенты ускоряют разработку, но какой ценой? Многие уже заметили: скорость растёт, а качество кода падает. Типичные сценарии: ❌ Агент не видит полного контекста и ломает скрытые зависимости. ❌ Рефакторит «слишком много», нарушая работу старого функционала. ❌ Разработчики привыкают доверять ИИ и поверхностно проверяют код. А вы сталкивались с ростом багов после внедрения AI? Проголосуйте в опросе ниже или напишите в комментариях 👇
786
12
Немає тексту...
1
13
Відеоповідомлення
889
14
Тестировщики в бою 🦹‍♀️ Ставь 🔥 если узнал себя! Напиши в комментах, если что-то из этого было у тебя на прошлой неделе 😅
Тестировщики в бою 🦹‍♀️ Ставь 🔥 если узнал себя! Напиши в комментах, если что-то из этого было у тебя на прошлой неделе 😅 Подписывайтесь 📚 #мем
1 127
15
😍 Какие планы на следующие выходные? Мы собираем своих в Москве на масштабном офлайне этого лета — ИТ-Пикнике. Это большой ф+8
😍 Какие планы на следующие выходные? Мы собираем своих в Москве на масштабном офлайне этого лета — ИТ-Пикнике. Это большой фестиваль под открытым небом для ИТ-специалистов и их близких. Соберем в одном месте все, за что любим индустрию, — только без шумных опенспейсов, зумов и горящих дедлайнов. Вас ждут десятки лекций, дискуссии, живая музыка, мастер-классы и интерактивы для всей семьи. Подробнее о них рассказали в карточках. 📅 8 августа 📍 Москва, Коломенское Покупайте билеты на сайте и зовите близких: по одному билету могут пройти двое взрослых и двое детей до 16 лет включительно. Будем отрываться, знакомиться и открывать что-то новое вместе 😍
1 277
16
🎉 Нам 4 года! Четыре года назад мы запустили канал Желтый QA с простой, но важной миссией: делать культуру качества частью п
🎉 Нам 4 года! Четыре года назад мы запустили канал Желтый QA с простой, но важной миссией: делать культуру качества частью повседневной работы команд. Все это время команда канала ежедневно работает над контентом, чтобы: ✅ Повышать качество наших продуктов через обмен лучшими практиками ✅ Распространять культуру тестирования и обеспечения качества (QA) не только в компании, но и среди всего QA комьюнити ✅ Делиться реальной экспертизой: от отдельных тест-кейсов до архитектурных паттернов, автоматизации и интеграции с AI Спасибо, что вы с нами! Ваши реакции, вопросы и дискуссии в комментариях делают этот канал живым и полезным. Впереди ещё много интересного! Оставайтесь с нами, чтобы строить надежные продукты вместе! 🚀 Подписывайтесь 📚
930
17
А вы проверяете логи в автотестах? 🤔 Знакомая ситуация: после релиза инженеры вручную открывают логи и глазами проверяют, что персональные данные замаскированы? Когда сервисов мало — работает. Но при масштабировании ручная проверка становится узким горлышком. 📖 В своей статье Марина Столповская, инженер по обеспечению качества в Т-Банке, рассказала, как они с командой автоматизировали проверку маскирования чувствительных данных в логах — сделали её частью CI/CD-пайплайна. ❓ Коллеги, а как у вас? Проверяете логи в автотестах или пока вручную? Были ли инциденты из-за «утечки» данных в логах? Делитесь опытом! 👇 Подписывайтесь 📚 #статья_телеграф
1 022
18
Пятый сезон подкаста завершен 🐸 Начинали мы с вопроса «Я не умею и не хочу программировать, меня уволят?», а весь пятый сезо+4
Пятый сезон подкаста завершен 🐸 Начинали мы с вопроса «Я не умею и не хочу программировать, меня уволят?», а весь пятый сезон разбирались, что вокруг нас — эволюция или революция. Что было в сезоне? 🐱 ✨ Обсудили, что реально изменилось в профессии QA за это время. ✨ Поговорили про Сферы, бизнес-платформы и то, как ускорять Time to Market, не теряя культуру качества. ✨ Залезли под капот к одному из сервисов экосистемы и разобрались, как ИИ меняет работу с обращениями пользователей. ✨ Поговорили про новое поколение, тренды в образовании и зачем вообще высшее образование. ✨ Узнали, как технологии защищают нас от мошенников. ✨ Закрыли сезон разговором про AGI, тревогу от ИИ и тестирование агентов, которые уже перехватывают наши профессиональные навыки. Так эволюция это была или революция? 🤔 Пишите свой ответ в комментариях — соберем самые интересные ответы 🐸 А пока делимся кадрами с записей— за этими кадрами скрывается много хороших разговоров 📸 Подписывайтесь 📚 #qak_qak
962
19
🏦 Возвращаемся к недавней задаче! Наш QA инженер смог разгадать несложный шифр и написал расшифровщик public static void main(String[] args) { // Перемешанная строка: сначала символы с чётных позиций, потом — с нечётных String scrambled = "АёаПпвчиТгрнЗелш оои уаи мй"; // ← результат из прошлого кода // Длина всей строки int totalLength = scrambled.length(); // Разделяем на две части: // Первая половина — это символы с ЧЁТНЫХ позиций оригинала // Вторая половина — это символы с НЕЧЁТНЫХ позиций оригинала int evenCount = (totalLength + 1) / 2; // сколько символов было на чётных позициях String evenPart = scrambled.substring(0, evenCount); String oddPart = scrambled.substring(evenCount); // Теперь "расплетаем": поочерёдно берём символ из evenPart и oddPart StringBuilder original = new StringBuilder(); for (int i = 0; i < oddPart.length(); i++) { original.append(evenPart.charAt(i)); // символ с чётной позиции original.append(oddPart.charAt(i)); // символ с нечётной позиции } // Если в evenPart на один символ больше (когда строка нечётной длины), добавим последний if (evenPart.length() > oddPart.length()) { original.append(evenPart.charAt(evenPart.length() - 1)); } // Выводим расшифрованное название System.out.println("Расшифровано:"); System.out.println(original.toString()); } } ⭐️ В итоге у нас есть правильный ответ и список фильмов на лето был успешно восстановлен: ☑️ Алёша Попович и Тугарин Змей ☑️ Летучий корабль ☑️ Чебурашка ☑️ Питер FM ☑️ Я шагаю по Москве ☑️ Последний богатырь Подписывайтесь 📚
907
20
Наш QA инженер запланировал посмотреть несколько интересных фильмов на лето. Составил список и забыл заблокировать ноутбук. 😱 Его коллега решил подшутить над ним и зашифровал список фильмов, при этом оставил ему в подсказку код шифрования и ответы от программы: public static void main(String[] args) { // Пример: название фильма String movie = "Example movie"; StringBuilder even = new StringBuilder(); StringBuilder odd = new StringBuilder(); for (int i = 0; i < movie.length(); i++) { if (i % 2 == 0) { even.append(movie.charAt(i)); } else { odd.append(movie.charAt(i)); } } String scrambled = even.toString() + odd.toString(); System.out.println("Угадайте фильм:"); System.out.println(scrambled); } } В ответе программа вернула следующее: АёаПпвчиТгрнЗелш оои уаи мй Лтчйкрбьеуи оал Чбршаеуак ПтрFие M Яшгюп оке аа оМсв Псенйбгтролди оаыь Помоги нашему QA расшифровать фильмы и хорошо отдохнуть летними вечерами после работы! Ответы принимаются как списком фильмов, так и расшифровщиком в комментариях под постом 🐈
908