Cообщение в slack*:
Я подумал - а что, если попробовать описать ожидания без заунывного списка, типа:
- Знание и понимание Х ...
- Коммерческий опыт в Y не менее …
- Владение Z на уровне …
?
И написал такой текст:
Наши ожидания
В первую очередь, как бы странно это не звучало - мы бы очень хотели, чтобы ты радовался(ась) и считал(а) своим самым важным результатом нахождение интересных, разнообразных и нетривиальных багов. Безусловно, тут будет много ручной работы (редизайн тяжело будет тестировать сходу автотестами), но вакансия не чисто о ручном тестировании;
Для нас самый крутой QA инженер - тот, который(ая) докажет нам, что продукт не работает, а не тот, который(ая) скажет “я все проверил(а), прошел(а) необходимые чек-листы и наборы кейсов, можно релизить, замечаний нет”. Мы глубоко убеждены, что у нас (как и в любом большом продукте) всегда есть много багов, и мы счастливы каждому новому багу в нашем багтрекере, а не их отсутствию и фразе “я все проверил(а), все работает”;
Автоматизация. Куда же без нее! В целом, у нас уже везде настроен CI/CD с автоматическим регрессом: прогоняются unit и e2e тесты. Тесты, как и продуктовый код, пишем на Swift или Kotlin. В UI-тестах используем нативные фреймворки. Для нас является обязательным условием твоя готовность писать автотесты под одну из платформ, у нас для этого большой бэклог на автоматизацию, множество задач по рефакторингу существующих тестов, и главное - убежденность, что команда (и QA этой команды) несет полную ответственность за автоматизацию тех фич, которые мы делаем; Во время знакомства мы не будем спрашивать про ScreenObject и селекторы, а вместо этого посмотрим на какой-то наш реальный код тестов на Swift или Kotlin (по твоему усмотрению) и пообсуждаем, что тебе в нем нравится, что нет, что бы ты реализовал(а) по-другому и так далее. Будем обсуждать код, а не теоретические знания 🙂
Резюмируя, пункты 1 и 2 подразумевают, что ты классный(ая) QA, а пункт 3 - что ты знаешь, понимаешь и практически используешь автоматизацию тестирования чего-либо (не обязательно мобилки).
_________
Хотелось бы спросить у вас, друзья, понятно ли на уровне ощущений или еще как-то, какого же все-таки QA инженера я бы хотел найти? А может, вы и есть такой QA?
Мы в юните сейчас будем открывать вакансию на QA в команду К9, давай с тобой засинхроним ожидания от кандидатов? Есть вот такой шаблон вакансии, можешь сюда добавить тех. требования, пожалуйста?Открываю шаблон вакансии - все красиво, вижу много интересного про команду, компанию, ценности, главный фокус и задачи, но совершенно пустой блок “Наши ожидания”.
Я подумал - а что, если попробовать описать ожидания без заунывного списка, типа:
- Знание и понимание Х ...
- Коммерческий опыт в Y не менее …
- Владение Z на уровне …
?
И написал такой текст:
Наши ожидания
В первую очередь, как бы странно это не звучало - мы бы очень хотели, чтобы ты радовался(ась) и считал(а) своим самым важным результатом нахождение интересных, разнообразных и нетривиальных багов. Безусловно, тут будет много ручной работы (редизайн тяжело будет тестировать сходу автотестами), но вакансия не чисто о ручном тестировании;
Для нас самый крутой QA инженер - тот, который(ая) докажет нам, что продукт не работает, а не тот, который(ая) скажет “я все проверил(а), прошел(а) необходимые чек-листы и наборы кейсов, можно релизить, замечаний нет”. Мы глубоко убеждены, что у нас (как и в любом большом продукте) всегда есть много багов, и мы счастливы каждому новому багу в нашем багтрекере, а не их отсутствию и фразе “я все проверил(а), все работает”;
Автоматизация. Куда же без нее! В целом, у нас уже везде настроен CI/CD с автоматическим регрессом: прогоняются unit и e2e тесты. Тесты, как и продуктовый код, пишем на Swift или Kotlin. В UI-тестах используем нативные фреймворки. Для нас является обязательным условием твоя готовность писать автотесты под одну из платформ, у нас для этого большой бэклог на автоматизацию, множество задач по рефакторингу существующих тестов, и главное - убежденность, что команда (и QA этой команды) несет полную ответственность за автоматизацию тех фич, которые мы делаем; Во время знакомства мы не будем спрашивать про ScreenObject и селекторы, а вместо этого посмотрим на какой-то наш реальный код тестов на Swift или Kotlin (по твоему усмотрению) и пообсуждаем, что тебе в нем нравится, что нет, что бы ты реализовал(а) по-другому и так далее. Будем обсуждать код, а не теоретические знания 🙂
Резюмируя, пункты 1 и 2 подразумевают, что ты классный(ая) QA, а пункт 3 - что ты знаешь, понимаешь и практически используешь автоматизацию тестирования чего-либо (не обязательно мобилки).
_________
Хотелось бы спросить у вас, друзья, понятно ли на уровне ощущений или еще как-то, какого же все-таки QA инженера я бы хотел найти? А может, вы и есть такой QA?
👍35🔥22⚡2
Как вы - понятно, а что делать нам?
В программе последнего Heisenbug есть 5 докладов со словами "Как мы":
- Как мы тестировали VK на Apple Watch;
- Как мы встраивали fuzzing-тестирование ... ;
- Как мы оптимизировали запуски е2е и дооптимизировались;
- Как мы автоматизировали тесты с несколькими пользователями;
- Как мы выгрузку из Greenplum в Kafka тестировали;
Для сравнения, на предыдущих, скажем, семи Heisenbug-ах (дальше уже не стал смотреть), в среднем, доклад "Как мы ..." встречается один раз на конфу (на многих вообще нуль раз, но, отличился 2022 Spring со своими 3-мя "Как мы").
А что, собственно, не так, спросите вы?
Никому, кроме ваших коллег в вашей же компании, не интересно "как вы".
Всем интересно "как это сделать мне?" Как мне сделать что-то похожее? Как мне в моей компании попробовать так же?
Но, я смотрю эти доклады в записи, и я слышу именно "Как мы". Мы написали классный инструмент (но он не опенсорс, сорян). Мы написали классную обертку над библиотекой (но показать не можем, сорян и даже объяснять, зачем ее писали, не будем). Мы имеем 100-500 слоев пирамиды тестирования и поэтому нам ок тестировать на моках.
Мы, мы, и еще раз мы.
Досадно, что на конференциях для QA все больше говорят "как мы сделали", а не "как тебе сделать".
В программе последнего Heisenbug есть 5 докладов со словами "Как мы":
- Как мы тестировали VK на Apple Watch;
- Как мы встраивали fuzzing-тестирование ... ;
- Как мы оптимизировали запуски е2е и дооптимизировались;
- Как мы автоматизировали тесты с несколькими пользователями;
- Как мы выгрузку из Greenplum в Kafka тестировали;
Для сравнения, на предыдущих, скажем, семи Heisenbug-ах (дальше уже не стал смотреть), в среднем, доклад "Как мы ..." встречается один раз на конфу (на многих вообще нуль раз, но, отличился 2022 Spring со своими 3-мя "Как мы").
А что, собственно, не так, спросите вы?
Никому, кроме ваших коллег в вашей же компании, не интересно "как вы".
Всем интересно "как это сделать мне?" Как мне сделать что-то похожее? Как мне в моей компании попробовать так же?
Но, я смотрю эти доклады в записи, и я слышу именно "Как мы". Мы написали классный инструмент (но он не опенсорс, сорян). Мы написали классную обертку над библиотекой (но показать не можем, сорян и даже объяснять, зачем ее писали, не будем). Мы имеем 100-500 слоев пирамиды тестирования и поэтому нам ок тестировать на моках.
Мы, мы, и еще раз мы.
Досадно, что на конференциях для QA все больше говорят "как мы сделали", а не "как тебе сделать".
Heisenbug 2026 Spring. Конференция по тестированию не только для тестировщиков
Heisenbug 2026 Spring | IT-конференция по QA и тестированию
Heisenbug 2026 Spring — конференция по тестированию для QA-инженеров, тестировщиков и не только. Доклады о функциональном и нефункциональном тестировании ПО на различных системах. Обсуждение инструментов и подходов.
👏25👍22💯13🔥8❤6👎1
Недавно меня спросил "в лоб" один из топов большой IT-компании - "У тебя сильная команда? Выбери из да и нет". Я на секунду задумался, потому что - мне кажется - мало кто из менеджеров оценивает силу своей команды категорически "сильная" / "не сильная". И уж точно не я. За эту секунду вспомнил огромное число технически сложных и амбициозных задач, которые мы делаем каждый день. Что-то делаю и своими руками, где-то еще пригождаются старые знания Java.
Мой ответ был - Да, у меня сильная команда.
У нас, в QA функции DODO, действительно, не мало старых проблем. Неоднозначных технических решений хватает. Система и подходы к тестированию выстраивались давно и там есть что менять. Ошибкой будет думать "Ну, раз там Дима Тучс, значит технически все отлично, все архитектурно красиво, ведь кажется Дима в этом что-то понимает". Нет, мы не идеальны и пока даже не рядом. Нет, у нас все еще мало образцовых тестов, на которых можно было бы учиться лучшим практикам (хотя, они есть).
И все же, мы - сильная команда из 27 человек, перед которой сейчас стоят самые большие технические вызовы, которые когда-либо стояли перед QA-функцией DODO. Не сделать "какую-то автоматизацию". Надо сделать по-настоящему круто. Я уверен, мы сделаем.
Если кому-то из вас интересно следить за буднями (суровыми, трудовыми и правдивыми) нашей QA команды, приглашаю подписаться на наш канал QAжется, работает
Его ведет лидер нашего WEB-тестирования Женя Иванченко.
Мой ответ был - Да, у меня сильная команда.
У нас, в QA функции DODO, действительно, не мало старых проблем. Неоднозначных технических решений хватает. Система и подходы к тестированию выстраивались давно и там есть что менять. Ошибкой будет думать "Ну, раз там Дима Тучс, значит технически все отлично, все архитектурно красиво, ведь кажется Дима в этом что-то понимает". Нет, мы не идеальны и пока даже не рядом. Нет, у нас все еще мало образцовых тестов, на которых можно было бы учиться лучшим практикам (хотя, они есть).
И все же, мы - сильная команда из 27 человек, перед которой сейчас стоят самые большие технические вызовы, которые когда-либо стояли перед QA-функцией DODO. Не сделать "какую-то автоматизацию". Надо сделать по-настоящему круто. Я уверен, мы сделаем.
Если кому-то из вас интересно следить за буднями (суровыми, трудовыми и правдивыми) нашей QA команды, приглашаю подписаться на наш канал QAжется, работает
Его ведет лидер нашего WEB-тестирования Женя Иванченко.
YouTube
Дмитрий Тучс — Измеряй это! Оживление нагрузочных тестов на Java
Ближайшая конференция — Heisenbug 2025 Autumn, 19—20 октября, Санкт-Петербург + online. Подробности и билеты: https://jrg.su/D6uGC9
— Ближайшая конференция: Heisenbug 2023 Autumn — 10–11 октября (online), 15–16 октября (offline)
Подробности и билеты: htt…
— Ближайшая конференция: Heisenbug 2023 Autumn — 10–11 октября (online), 15–16 октября (offline)
Подробности и билеты: htt…
🔥34❤2🤔1
Сегодня стартовал созвоны 1-1 со своими ребятами по итогам Level Assessment. Это когда каждый сотрудник Dodo Engineering заполняет табличку со своими хардами (в чем продвинулся за пол года), проектами, в которых удалось принять участие и достигнуть успехов, а потом с менеджером осуществляется "калибровка" и определение итогового грейда. Грейд, само собой, привязан к з.п., ну, или наоборот 🥲. Я оцениваю часть по хардам для большинства своих ребят (QA инженеров), а по проектам - только у тех команд, для которых я прямой руководитель, владелец бюджета - команда Performance QA и Core QA team.
Что я думаю обо всем это? Ну, в Додо я впервые столкнулся со столько четко выстроенной и работающей системой, позволяющей более или менее объективно оценить рост, и понять направления, в которых надо копать дальше. Всю свою предыдущую карьеру я скорее рос по принципу "нормально делай - нормально будет", мне всегда везло с менеджерами (Игорь, Леша и, конечно, Вася - вам привет, если читаете), каждый из которых без всяких табличек и экселек по-достоинству ценил этот подход и вопросов "ну а что еще мне сделать, чтоб зарабатывать побольше" у меня лично никогда не стояло. Но, я понимаю, что не все - я 😂 Поэтому считаю LA благом.
Хочется спросить, а как вы растете, какие у вас инструменты (с т.з. взаимодействия с вашим менеджером) для этого есть?
Что я думаю обо всем это? Ну, в Додо я впервые столкнулся со столько четко выстроенной и работающей системой, позволяющей более или менее объективно оценить рост, и понять направления, в которых надо копать дальше. Всю свою предыдущую карьеру я скорее рос по принципу "нормально делай - нормально будет", мне всегда везло с менеджерами (Игорь, Леша и, конечно, Вася - вам привет, если читаете), каждый из которых без всяких табличек и экселек по-достоинству ценил этот подход и вопросов "ну а что еще мне сделать, чтоб зарабатывать побольше" у меня лично никогда не стояло. Но, я понимаю, что не все - я 😂 Поэтому считаю LA благом.
Хочется спросить, а как вы растете, какие у вас инструменты (с т.з. взаимодействия с вашим менеджером) для этого есть?
👍15🔥7
Кстати, вот еще опрос (думаю - стоит ли писать на эту тему пост, если не актуально, то и не буду🥲)
- Есть кто-то, кто прям по-настоящему пишет автотесты на Java для SOAP веб-сервисов? И если да, то что вы используете для генерации тела сообщения (body) и всего сообщения (envelope)?
Изначально вам, конечно, доступен wsdl тестируемого сервиса.
- Есть кто-то, кто прям по-настоящему пишет автотесты на Java для SOAP веб-сервисов? И если да, то что вы используете для генерации тела сообщения (body) и всего сообщения (envelope)?
Изначально вам, конечно, доступен wsdl тестируемого сервиса.
Что меня мотивирует вести лекции по ночам (а делаю я это с 23 до 1 ночи)? Вот что
🔥34❤20👍8🏆3😍1
Тестировщикам было бы лучше, если бы в Java не было вовсе примитивных типов данных.
Уверен, что большинство из моих читателей помнят про них.
Но в чем ценность этих примитивов в QA автоматизации?
Кто-то скажет, что это все должно работать быстрее, потому, что есть какой-то стек и куча, и первый вроде бы быстрый, и примитивы вроде бы в нем живут. В действительности это так, но только для аргументов методов и локальных переменных в методах, но ни в коем случае не для полей объектов. Я далек от мысли, что это может оказать хоть какое-нибудь реальное влияние на скорость наших тестов. А вот кое что с примитивами по-настоящему плохо для тестировщика.
Это значения по умолчанию для полей классов (class fields).
Представим себе endpoint, который отдает нам json примерно такого содержания:
Что будет, если наш бэкенд случайно вообще перестает возвращать нам attemptsCount в респонсе?
А будет вот что:
И Jackson, и Gson по умолчанию прекрасно десериализуют
Тест просто останется зеленым.
Что интересно, в Java с недавней поры есть record-ы которые дают строгий immutable объект с all-arg конструктором, а все поля - финальные. Но и тут нас ждет сюрприз - и Jackson, и Gson создаст инстанс record-а cо значением 0 по умолчанию! Вот этого ожидать вообще не приходится - сеттеров-то нет, а конструктор ждет 2-х аргументов. Но это факт.
Если заменить
Да, я знаю, что заставить тест падать можно и настройкой
Уверен, что большинство из моих читателей помнят про них.
Но в чем ценность этих примитивов в QA автоматизации?
Кто-то скажет, что это все должно работать быстрее, потому, что есть какой-то стек и куча, и первый вроде бы быстрый, и примитивы вроде бы в нем живут. В действительности это так, но только для аргументов методов и локальных переменных в методах, но ни в коем случае не для полей объектов. Я далек от мысли, что это может оказать хоть какое-нибудь реальное влияние на скорость наших тестов. А вот кое что с примитивами по-настоящему плохо для тестировщика.
Это значения по умолчанию для полей классов (class fields).
Представим себе endpoint, который отдает нам json примерно такого содержания:
{"username":”dima”, “attemptsCount” : 0}
И представим тест, который проверяет бизнес-логику того, что у какого-то там пользователя действительно ноль попыток:@Test* где Response классический data-класс с приватными полями, геттерами и сеттерами
void apiTest() {
Response resp = apiClient.request();
Assertions.assertEquals(0, resp.attemptsCount());
}
Что будет, если наш бэкенд случайно вообще перестает возвращать нам attemptsCount в респонсе?
А будет вот что:
И Jackson, и Gson по умолчанию прекрасно десериализуют
{"username":”dima”} в объект java класса с двумя полямиprivate String username;И в
private int attemptsCount;
attemmptsCount вам просто будет подставлен 0 - потому, что так работают примитивы, у них есть значения по-умолчанию, и для int это - ноль.Тест просто останется зеленым.
Что интересно, в Java с недавней поры есть record-ы которые дают строгий immutable объект с all-arg конструктором, а все поля - финальные. Но и тут нас ждет сюрприз - и Jackson, и Gson создаст инстанс record-а cо значением 0 по умолчанию! Вот этого ожидать вообще не приходится - сеттеров-то нет, а конструктор ждет 2-х аргументов. Но это факт.
Если заменить
int в нашем классе или record на Integer - то наш тест сразу и надежно начнет падать, т.к. null уж точно не равен нулю. Да, я знаю, что заставить тест падать можно и настройкой
ObjectMapper (или Gson) при его создании или аннотациями наподобие @JsonProperty(required = true), но, в конце концов, отказаться от примитивов в тестах для полей классов и рекордов - проще.Oracle
Primitive Data Types (The Java™ Tutorials >
Learning the Java Language > Language Basics)
Learning the Java Language > Language Basics)
This beginner Java tutorial describes fundamentals of programming in the Java programming language
👍26🔥10
Представим, что вы пришли на курсы разработки и/или AQA, где учебный проект - достаточно сложный: Микросервисы, разные RPC, профили, докер-недокер, CI/CD и прочее. Важно! Сделаем допущение, что вы в этом всем не эксперт. Что бы вы выбрали и почему:
Anonymous Poll
50%
Сначала пройти программу, понять учебный проект и в конце обучения сделать похожий Дипломный проект
53%
На первом же занятии получить заготовку Дипломного проекта и наполнять его смыслом с помощью домашек
🔥2✍1
Сегодня анонсирован 4 поток моего авторского курса Advanced. Если в этом чате есть кто-то, кто думал пойти - то в скором времени я опубликую свой личный промокод на небольшую, но приятную доп. скидку. А опрос выше - мои мысли, что сделать с дипломной работой для 4 потока )
Linkedin
💣Анонсируем 4 поток нашего мощнейшего курса по Java Advanced
Курс для тех, кто хочет прокачаться в автоматизации на Java, научиться…
Курс для тех, кто хочет прокачаться в автоматизации на Java, научиться…
💣Анонсируем 4 поток нашего мощнейшего курса по Java Advanced
Курс для тех, кто хочет прокачаться в автоматизации на Java, научиться настраивать кастомные / собственные шаблоны для тестов и отчетов, обучиться тестированию Android и iOS (требуется MacOS).…
Курс для тех, кто хочет прокачаться в автоматизации на Java, научиться настраивать кастомные / собственные шаблоны для тестов и отчетов, обучиться тестированию Android и iOS (требуется MacOS).…
🔥22
#JUnit5 #Java
ArgumentConverter - Why you are not Extension? (
Я не понимаю, почему он не является Extension-ом.
Не я один - есть issue в статусе waiting-for-interest.
Ведет он себя очень похоже на любой другой Extension;
Подключаем через
где
возвращаемый
Так вот, о чем я тут думаю? Что, если у нас есть enum с типами юзеров (допустим, “админ” и “просто” юзер) и мы хотим написать параметризованный тест против них, который
1) создаст юзера с полученным типом перед тестом;
2) и сделает что-то с ними после теста? (условно, в AfterEachCallback);
Начнем c энама:
Напишем тест:
И ArgumentConverter для него:
Пока все логично? По-моему, вполне.
Осталось решить вопрос - а можем ли мы что-то сделать после теста с этими юзерами (удалить из БД - просто как пример)?
В Extensions такой вопрос просто бы не стоял - мы бы сохранили этих юзеров в ExtensionContext, а ключом был бы test-case-id (допустим, аннотация
Но, у нас нет ExtensionContext внутри ArgumentConverter! 🫤
Надо городить какие-то свои “ТестКонтексты” в которые это сохранять, и вытаскивать оттуда. Но это не красиво и странно, потому что вы явно в других местах привыкнете использовать ExtensionContext.
В действительности, я не вижу ни одной технической причины отсутствия
Ну, и пойдемте, что-ли, напишем ребятам из JUnit, что было бы здорово, наконец, сделать их Extension-ом? Issue в начале поста🙌
ArgumentConverter - Why you are not Extension? (
Я не понимаю, почему он не является Extension-ом.
Не я один - есть issue в статусе waiting-for-interest.
Ведет он себя очень похоже на любой другой Extension;
Подключаем через
@ConvertWith вместо @ExtendWith, имплементируем интерфейс с простым методом:public Object convert(Object o, ParameterContext parameterContext)
где
Object o - Объект, что пришел к нам из датапровайдера;возвращаемый
Object - любой объект, который мы можем “создать” базируясь на полученном Object o, ну или прямо его и вернуть.Так вот, о чем я тут думаю? Что, если у нас есть enum с типами юзеров (допустим, “админ” и “просто” юзер) и мы хотим написать параметризованный тест против них, который
1) создаст юзера с полученным типом перед тестом;
2) и сделает что-то с ними после теста? (условно, в AfterEachCallback);
Начнем c энама:
enum UserType {
ADMIN("insert into ‘user’ (type...) values (admin...)"),
COMMON("insert into ‘user’ (type...) values (common...)");
public final String sql;
}Напишем тест:
@EnumSource(UserType.class)
@ParameterizedTest
void usersParameterizedTest(@ConvertWith(UserCreator.class) User createdUser) {
}
И ArgumentConverter для него:
class UserCreator implements ArgumentConverter {
@Override
public Object convert(Object o, ParameterContext parameterContext) throws ArgumentConversionException {
ResultSet result = executeScript(((UserType) o).sql); // create user
if (result.next()) {
return new User(result.getString("username"), (UserType) o);
} else throw new IllegalStateException();
}
}Пока все логично? По-моему, вполне.
Осталось решить вопрос - а можем ли мы что-то сделать после теста с этими юзерами (удалить из БД - просто как пример)?
В Extensions такой вопрос просто бы не стоял - мы бы сохранили этих юзеров в ExtensionContext, а ключом был бы test-case-id (допустим, аннотация
@AllureId над тестом), и имели бы доступ к ним в любых других Экстеншенах - в AfterEachCallback для нашей задачи. Но, у нас нет ExtensionContext внутри ArgumentConverter! 🫤
Надо городить какие-то свои “ТестКонтексты” в которые это сохранять, и вытаскивать оттуда. Но это не красиво и странно, потому что вы явно в других местах привыкнете использовать ExtensionContext.
В действительности, я не вижу ни одной технической причины отсутствия
ExtensionContext для ArgumentConverter (и до кучи и в ArgumentAggregator), а пока их там нет - предлагаю написать свой маленький дополнительный экстеншн, который дает нам возможность использовать ExtensionContext где угодно. Ну, и пойдемте, что-ли, напишем ребятам из JUnit, что было бы здорово, наконец, сделать их Extension-ом? Issue в начале поста🙌
GitHub
Create extension point for ArgumentConverter · Issue #853 · junit-team/junit5
As it stands argument converters need to be applied (with @ConvertWith) either to a custom annotation (at least it looks like that; couldn't make it work) or to the argument. When the former is...
👍8🔥1
Друзья, подъехал мой персональный промокод на 4-й поток Advanced курса автоматизации тестирования на Java.
Он дает скидку 5%, которая суммируется с остальными скидками на сайте –
DTUCHSPROMO5
Вся программа курса разработана мной, и включает в сжатом виде весь мой опыт в автоматизации тестирования и разработке на Java. Это максимально непохожий на "стандартные" курсы материал, на стыке с разработкой и devops. Лучше один раз увидеть 🙂
Он дает скидку 5%, которая суммируется с остальными скидками на сайте –
DTUCHSPROMO5
Вся программа курса разработана мной, и включает в сжатом виде весь мой опыт в автоматизации тестирования и разработке на Java. Это максимально непохожий на "стандартные" курсы материал, на стыке с разработкой и devops. Лучше один раз увидеть 🙂
qa.guru
Автоматизированное тестирование на Java для продвинутых | Онлайн-курс по написанию автотестов | QA.GURU
Продвинутый курс по автоматизации тестирования на Java. Курсы повышения квалификации на Java для тестировщиков уровня Middle и выше.
🔥33👍1
LikeaDuck🦆 pinned «Друзья, подъехал мой персональный промокод на 4-й поток Advanced курса автоматизации тестирования на Java. Он дает скидку 5%, которая суммируется с остальными скидками на сайте – DTUCHSPROMO5 Вся программа курса разработана мной, и включает в сжатом виде…»
#Testing #Management #Bugs
Пятничное: зачем вам (или вашему менеджеру) считать число багов?
У нас в DODO🍕 есть несколько команд, которые пилят приложение Dodo Pizza. Я даже затрудняюсь назвать точное число - но оно всегда где-то между 5 и 7. У каждой из них свой PO, свой QA, и свой бэклог с досочкой в тасктрекере. Какая-то команда работает над "лояльностью" (это кэшбеки, промоакции и т.д. в приложении), какая-то работает над меню, какая-то над всем что касается геолокации и адресной системы и так далее.
От чего тут грустно мне?
Я не знаю на какой из множества досок посмотреть, а что у нас с багами? Мы их находим? Мы их фиксируем? Мы о них знаем? Существуют дубли одних и тех же багов на разных досках. Есть еще огромная доска "баги из саппорта", и где и в чем она пересекается с командными - тоже очень расплывчатая материя.
А я хотел бы хорошо понимать, сколько и каких багов мы (QA) находим.
Зачем?
Я часто слышу мнение - "Это ужасно неправильно считать баги и мерять эффективность QA багами"!
Я же думаю, что это так же странно, как говорить что разработчика нельзя мерить числом закрытых задач и пулл-реквестов. Можно и нужно. Как с багами, так и с PR-ми разработчиков имеет значение их вес, их суть. И дело не в том, что если у Васи число "42" а у Пети число "23", то, Вася в 2 раза лучше. Может, вес 23-х багов (PR-ов) выше, чем тех 42-х. Но эти 2 цифры - в любом случае объективная информация, которую можно анализировать.
А вот расплывчатое "я работаю над культурой и процессом, я не какой-то там багхантер" анализировать много сложнее. Часто за этим, к сожалению, скрывается вовсе отсутствие пользы для бизнеса.
Итак, я предлагаю пристально обратить внимание на метрику DRE
Выражается она простой формулой:
Простой пример: я нашел десяток багов в приложении Dodo Pizza у себя на телефоне;
Если мы при этом перед релизом нашли 100 других багов, то наше качество
А если мы перед релизом нашли 20 других багов, то наше качество
А если мы вообще не нашли багов у себя, то
За этот коэффициент можно и нужно бороться, и тут даже не имеет никакого значения, что у вас с автоматизацией, Ci/CD и прочим.
Давайте радоваться каждому новому багу, найденому нами (а не пользователями) и считать их. А в DODO я рано или поздно добьюсь появления единого, а не распределенного источника правды о багах наших продуктов.
Пятничное: зачем вам (или вашему менеджеру) считать число багов?
У нас в DODO
От чего тут грустно мне?
Я не знаю на какой из множества досок посмотреть, а что у нас с багами? Мы их находим? Мы их фиксируем? Мы о них знаем? Существуют дубли одних и тех же багов на разных досках. Есть еще огромная доска "баги из саппорта", и где и в чем она пересекается с командными - тоже очень расплывчатая материя.
А я хотел бы хорошо понимать, сколько и каких багов мы (QA) находим.
Зачем?
Я часто слышу мнение - "Это ужасно неправильно считать баги и мерять эффективность QA багами"!
Я же думаю, что это так же странно, как говорить что разработчика нельзя мерить числом закрытых задач и пулл-реквестов. Можно и нужно. Как с багами, так и с PR-ми разработчиков имеет значение их вес, их суть. И дело не в том, что если у Васи число "42" а у Пети число "23", то, Вася в 2 раза лучше. Может, вес 23-х багов (PR-ов) выше, чем тех 42-х. Но эти 2 цифры - в любом случае объективная информация, которую можно анализировать.
А вот расплывчатое "я работаю над культурой и процессом, я не какой-то там багхантер" анализировать много сложнее. Часто за этим, к сожалению, скрывается вовсе отсутствие пользы для бизнеса.
Итак, я предлагаю пристально обратить внимание на метрику DRE
Выражается она простой формулой:
(Баги найденные командой) / (Баги найденные командой + Баги найденные пользователями).
Простой пример: я нашел десяток багов в приложении Dodo Pizza у себя на телефоне;
Если мы при этом перед релизом нашли 100 других багов, то наше качество
100/(100+10) = 0.9;А если мы перед релизом нашли 20 других багов, то наше качество
20/(20+10) = 0.66;А если мы вообще не нашли багов у себя, то
0/10 🥲За этот коэффициент можно и нужно бороться, и тут даже не имеет никакого значения, что у вас с автоматизацией, Ci/CD и прочим.
Давайте радоваться каждому новому багу, найденому нами (а не пользователями) и считать их. А в DODO я рано или поздно добьюсь появления единого, а не распределенного источника правды о багах наших продуктов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Testsigma Agentic Test Automation Tool
Defect Removal Efficiency: How To Calculate It For Test Automation
Learn what defect removal efficiency is and how to effectively calculate it for your test automation workflow, read now!
🔥31👾4❤2👍1
И я здесь. Будем сратегировать, в том числе, что же такое хороший QA. Попозже расскажу
❤6👍2
Forwarded from Стартап Продюсер⚡️
На этой неделе большая стратсессия IT Dodo Brands. Что важно — в оффлайне.
Широкий состав, единый контекст, дизрапт по всем направлениям.
В общем, делаем контент
Широкий состав, единый контекст, дизрапт по всем направлениям.
В общем, делаем контент
😁16