Size: a a a

2019 October 04

А

Алексей in QA Сибирь
Ekaterina
Саша, а можешь немного раскрыть последний тезис, что нужен переход от черного ящика к серому или белому?
Про это я могу немного рассказать. но это моё личное понимание и отношение, все строго ИМХО :)
На мой взгляд, "классическое" тестирование, когда разработчик сделал- отдал тестировщику на тестирование, это был зачастую тот самый черный ящик, особенно там, где разработка и тестирование это разные команды, мячик перекидывался от одних другим.
Что это подразумевает- есть требования, разработчик по ним что-то сделал, это получило тестирование и по этим же требованиям проверило. Возможности узнать как оно там внутри работает практически небыло. все на догадках.
У нас сейчас (у нас = в моей команде) это серый ящик, т.к. тестирование и разработка это одна команда, в обсуждении участвуют все, понимаение того. как это реализовано есть у всех, на любом этапе можно уточнить ньюансы и подробности. За счет этого находится много edge кейсов и неожиданных сценариев, Допустим, в код мы не лезем, но алгоритмически мы понимаем что и как работает. В каких-то моментах это позволяет нам серьёзно сократить тестирование- если ым знаем, что во всех 90 случаях тыкания кнопки в разных местах системы вызывается одна и та же функция, то мы вместо проверки всех 90 кнопок проверяем одну конкретную функцию. И наоборот, кнопка может выглядеть одинаково. но по факту в глубине работают совершенно разный код, со своими условиями и так далее.
Совсем белый ящик- это когда есть возможность тестировать ещё и код ко всему прочему, мы пока так не умеем, про это скорее Олег может рассказать. Мы пока ограничиваемся тем, что планируем тестирование до этапа разработки, если есть понимание того. как будет реализовано, договаривамеся, что мы будем покрывать юнит тестами. Чем тоже сокращаем себе ручное тестирование, плюс это позволяет нам писать меньше Е2Е тестов.
источник

A

Aleksander in QA Сибирь
Именно:) спасибо, Леша
источник

E

Ekaterina in QA Сибирь
Алексей
Про это я могу немного рассказать. но это моё личное понимание и отношение, все строго ИМХО :)
На мой взгляд, "классическое" тестирование, когда разработчик сделал- отдал тестировщику на тестирование, это был зачастую тот самый черный ящик, особенно там, где разработка и тестирование это разные команды, мячик перекидывался от одних другим.
Что это подразумевает- есть требования, разработчик по ним что-то сделал, это получило тестирование и по этим же требованиям проверило. Возможности узнать как оно там внутри работает практически небыло. все на догадках.
У нас сейчас (у нас = в моей команде) это серый ящик, т.к. тестирование и разработка это одна команда, в обсуждении участвуют все, понимаение того. как это реализовано есть у всех, на любом этапе можно уточнить ньюансы и подробности. За счет этого находится много edge кейсов и неожиданных сценариев, Допустим, в код мы не лезем, но алгоритмически мы понимаем что и как работает. В каких-то моментах это позволяет нам серьёзно сократить тестирование- если ым знаем, что во всех 90 случаях тыкания кнопки в разных местах системы вызывается одна и та же функция, то мы вместо проверки всех 90 кнопок проверяем одну конкретную функцию. И наоборот, кнопка может выглядеть одинаково. но по факту в глубине работают совершенно разный код, со своими условиями и так далее.
Совсем белый ящик- это когда есть возможность тестировать ещё и код ко всему прочему, мы пока так не умеем, про это скорее Олег может рассказать. Мы пока ограничиваемся тем, что планируем тестирование до этапа разработки, если есть понимание того. как будет реализовано, договаривамеся, что мы будем покрывать юнит тестами. Чем тоже сокращаем себе ручное тестирование, плюс это позволяет нам писать меньше Е2Е тестов.
Спасибо за пояснение! Еще одно уточнение тогда. Даже когда знаешь, что кнопки вызывают один и тот же метод, остается вариант опечатки в названии метода, например. Как тестировщик я хочу проверить всё, то есть все равно протыкать все кнопки. Как тут найти баланс?
источник

AT

Alexander Tarankov in QA Сибирь
Именно поэтому вручную их всё равно надо протыкать (по-хорошему). Но вот автотестов при этом можно заметно меньше писать, особенно е2е
источник

А

Алексей in QA Сибирь
да, прекрасно понимаю, о чем ты говоришь :)
тут два варинта- или ты доверяешь разработчику, или вместе с ним садитесь и просматриваете этот код, убеждаясь. что нет опечатки. У нас есть и такой и такой опыт :)
Если есть возможность покрыть это юнит тестами- нужно этим пользоваться,
источник

AT

Alexander Tarankov in QA Сибирь
Либо с разработчиком, либо на кодревью - тоже вариант, да
источник

А

Алексей in QA Сибирь
Саш, я привел пример 90 кнопок именно потому что это в нашем случае реальная ситуация. У нас было когда действительно в 90 разных ситуациях вызывалась одна и так же функция. Ручное тестирование "по-хорошему надо посмотреть руками" у нас заняло бы неделю работы двух тестировщиков.
источник

А

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

E

Ekaterina in QA Сибирь
Алексей
да, прекрасно понимаю, о чем ты говоришь :)
тут два варинта- или ты доверяешь разработчику, или вместе с ним садитесь и просматриваете этот код, убеждаясь. что нет опечатки. У нас есть и такой и такой опыт :)
Если есть возможность покрыть это юнит тестами- нужно этим пользоваться,
Даже не знаю что тут выбрать)) Глазами в коде очень просто пропустить опечатку, потому что нацелен обычно на проверку логики и других более "умных" штук. Просто доверять разработчику, что все хорошо - тоже крайность, которую можно довести до вопроса "а зачем тогда вообще тестирование?".

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

E

Ekaterina in QA Сибирь
А в случае 90 кнопок, наверное, только автотесты спасут))
источник

А

Алексей in QA Сибирь
на опечатки у тебя IDE сругается, там же можно поиском пройтись и проверить вхождения конкретной функции
Если у тебя есть готовый список ситуаций, когда функция вызывается, то по коду это проверить уже существенно проще
источник

А

Алексей in QA Сибирь
у нас такая хитрая функция, которую мы, к сожалению,  не можем покрыть тестами
источник

А

Алексей in QA Сибирь
эта ситуация научила нас тому, что если есть возможность написать код таким образом, что можно вызов функции в 90 разных ситуациях покрыть юнит тестами- надо этим пользоваться
источник

E

Ekaterina in QA Сибирь
Алексей
на опечатки у тебя IDE сругается, там же можно поиском пройтись и проверить вхождения конкретной функции
Если у тебя есть готовый список ситуаций, когда функция вызывается, то по коду это проверить уже существенно проще
Из собственного опыта: к сожалению, не всегда ругается :( И это большая печаль.
А вот как метод проверки, да, согласна. Бывает очень полезно, особенно, в чужом коде.
источник

M

Mike in QA Сибирь
Олег Неумывакин
А между прочим по пирамиде тестирования мы сделали страйк, начинаем серию по shift-left.
показалось, что в телевизоре какие-то логи показываются, но вроде нет
источник

АН

Андрей Никулин in QA Сибирь
Артём Назаров
Круто. Даёшь больше трансляций😁
+1
источник

A

Anna in QA Сибирь
Ekaterina
А расшарьте запись пожалуйста, а то я на половину не успела
+1
источник

EK

Evgeniya Koloyarova in QA Сибирь
Ekaterina
А расшарьте запись пожалуйста, а то я на половину не успела
да, расшарьте, а то работала
источник

ОН

Олег Неумывакин in QA Сибирь
источник

EK

Evgeniya Koloyarova in QA Сибирь
скинули ток нам, остальные не смотрити
источник