Желтый QA
关闭频道
Канал QA-комьюнити Т-Банка. Здесь мы делимся кейсами, рассказываем про технологии тестирования и говорим про надежность и качество продуктов. Кейсы, технологии и анонсы митапов по направлениям: https://t.me/kod_zheltyi
显示更多4 056
订阅者
-124 小时
-227 天
-3030 天
数据加载中...
相似频道
标签云
进出提及
---
---
---
---
---
---
吸引订阅者
九月 '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个频道中
| 日期 | 订阅者增长 | 提及 | 频道 | |
| 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️⃣ Как правильно исправить?
Пишите свои варианты в комментариях ⬇️
Подписывайтесь 📚
#задача | 454 |
| 3 | 📊 Итоги: нужны ли метрики качества?
Как видно из голосования по метрикам качества, расклад такой:
✅ Большинство за то, что метрики нужны и реально помогают в работе:
- мы видим качество кода
- принимаем взвешенные решения
- отслеживаем техдолг в динамике
⚠️ Но есть важный нюанс: как и любой инструмент, метрики требуют грамотного использования. Ключ — не собирать метрики ради метрик, а применять их осознанно:
- понимать, какую проблему решает каждая метрика
- ориентироваться на реальный результат, а не подгонять цифры под красивую картинку
- интерпретировать данные в контексте задачи и проекта
Главное — чтобы метрики помогали принимать лучшие решения, а не создавали видимость благополучия.
Продолжим дискуссию в комментариях 👇
— Какие метрики вы считаете действительно полезными?
— С какими рисками сталкивались при внедрении?
Подписывайтесь 📚
#сложный_выбор | 676 |
| 4 | 没有文字... | 886 |
| 5 | 视频消息 | 801 |
| 6 | 视频消息 | 746 |
| 7 | ❗️ Задались вопросом о метриках качества.
Мнения наших экспертов, как всегда, разделились:
👉 кто-то говорит «без них никак»
👉 кто-то — «пустая трата времени».
А как считаете вы?
Подписывайтесь 📚
#сложный_выбор | 720 |
| 8 | А вам приходится убеждать разработчиков править баги? 🐞
Подписывайтесь 📚
#мем | 842 |
| 9 | Давайте посмотрим на результаты опроса:
Только 11% проголосовавших отметили, что качество кода при внедрении AI в разработку не ухудшилось. Расскажите в комментариях, как вам это удается 👇
12% решили перетерпеть до того момента, когда AI агенты научатся писать качественный код. Надеемся, ждать этого придется не очень долго 🙏
От 31% до 34% респондентов решили ужесточать процессы, чтобы не снижать качество: ограничивать роль AI ассистированием, давать только простые задачи, ужесточать ревью со стороны живых разработчиков. И, конечно же, увеличивать покрытие тестами. Чем больше тестов, тем сложнее что-то сломать 🫷
Наибольший процент (44%) набрал вариант, что улучшать качество кода от AI должен сам AI. То есть прокачивать надо не только вайб-кодинг, но и вайб-тестинг, а AI должен сам проверять и чинить свой же код 🧐
Ну а почему нет — кто не пишет, тот не ошибается. А кто написал и ошибся — тот пусть ищет и исправляет 😅 | 1 009 |
| 10 | 没有文字... | 931 |
| 11 | 🚀 AI-агенты ускоряют разработку, но какой ценой?
Многие уже заметили: скорость растёт, а качество кода падает. Типичные сценарии:
❌ Агент не видит полного контекста и ломает скрытые зависимости.
❌ Рефакторит «слишком много», нарушая работу старого функционала.
❌ Разработчики привыкают доверять ИИ и поверхностно проверяют код.
А вы сталкивались с ростом багов после внедрения AI?
Проголосуйте в опросе ниже или напишите в комментариях 👇 | 784 |
| 12 | 没有文字... | 1 |
| 13 | 视频消息 | 888 |
| 14 | Тестировщики в бою 🦹♀️
Ставь 🔥 если узнал себя!
Напиши в комментах, если что-то из этого было у тебя на прошлой неделе 😅
Подписывайтесь 📚
#мем | 1 093 |
| 15 | 😍 Какие планы на следующие выходные?
Мы собираем своих в Москве на масштабном офлайне этого лета — ИТ-Пикнике.
Это большой фестиваль под открытым небом для ИТ-специалистов и их близких. Соберем в одном месте все, за что любим индустрию, — только без шумных опенспейсов, зумов и горящих дедлайнов. Вас ждут десятки лекций, дискуссии, живая музыка, мастер-классы и интерактивы для всей семьи. Подробнее о них рассказали в карточках.
📅 8 августа
📍 Москва, Коломенское
Покупайте билеты на сайте и зовите близких: по одному билету могут пройти двое взрослых и двое детей до 16 лет включительно.
Будем отрываться, знакомиться и открывать что-то новое вместе 😍 | 1 277 |
| 16 | 🎉 Нам 4 года!
Четыре года назад мы запустили канал Желтый QA с простой, но важной миссией: делать культуру качества частью повседневной работы команд.
Все это время команда канала ежедневно работает над контентом, чтобы:
✅ Повышать качество наших продуктов через обмен лучшими практиками
✅ Распространять культуру тестирования и обеспечения качества (QA) не только в компании, но и среди всего QA комьюнити
✅ Делиться реальной экспертизой: от отдельных тест-кейсов до архитектурных паттернов, автоматизации и интеграции с AI
Спасибо, что вы с нами! Ваши реакции, вопросы и дискуссии в комментариях делают этот канал живым и полезным. Впереди ещё много интересного!
Оставайтесь с нами, чтобы строить надежные продукты вместе! 🚀
Подписывайтесь 📚 | 930 |
| 17 | А вы проверяете логи в автотестах? 🤔
Знакомая ситуация: после релиза инженеры вручную открывают логи и глазами проверяют, что персональные данные замаскированы?
Когда сервисов мало — работает. Но при масштабировании ручная проверка становится узким горлышком.
📖 В своей статье Марина Столповская, инженер по обеспечению качества в Т-Банке, рассказала, как они с командой автоматизировали проверку маскирования чувствительных данных в логах — сделали её частью CI/CD-пайплайна.
❓ Коллеги, а как у вас?
Проверяете логи в автотестах или пока вручную?
Были ли инциденты из-за «утечки» данных в логах?
Делитесь опытом! 👇
Подписывайтесь 📚
#статья_телеграф | 1 022 |
| 18 | Пятый сезон подкаста завершен 🐸
Начинали мы с вопроса «Я не умею и не хочу программировать, меня уволят?», а весь пятый сезон разбирались, что вокруг нас — эволюция или революция.
Что было в сезоне? 🐱
✨ Обсудили, что реально изменилось в профессии 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 |
