Size: a a a

Software Design/Architecture/Zen

2021 May 16

AM

Artem Molotov in Software Design/Architecture/Zen
Ряд статей + курсы универа от тестера. Из известных книг ничего назвать не смогу
источник

AM

Artem Molotov in Software Design/Architecture/Zen
Выше вроде как обсуждали, что белый/чёрные и модуььными/компонентными могут быть.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
компонент = модуль = юнит в итоге можно сделать вывод что нет разницы между юнит тестами и компонентными тестами)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну то есть, определений "юнит теста" не один десяток
источник

AM

Artem Molotov in Software Design/Architecture/Zen
Не спорю
источник

SP

Sergey Protko in Software Design/Architecture/Zen
когда народ в литературе вводил понятие черный ящик - это была метафора наличия границы, information hiding, вот это все. Никаких белых ящиков небыло. Это додумали видимо, стремление найти антоним так скажем к метафоре
источник

AM

Artem Molotov in Software Design/Architecture/Zen
Так и было. Для объяснения чёрного ящика придумали понятие белого
источник

AM

Artem Molotov in Software Design/Architecture/Zen
Как одну из практик (кажется)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну, можно много примеров привести неудачных метафор)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
есть вот например "изоляция тест кейсов" - хорошая штука.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
а да, к слову... на тему ящиков. Люди по какой-то причине думают что проблема именно в коде. Ну то есть там "я знаю какие зависимости моя штука юзает"
источник

SP

Sergey Protko in Software Design/Architecture/Zen
хотя проблема именно в изоляции тест кейсов
источник

SP

Sergey Protko in Software Design/Architecture/Zen
грубо говоря - мы реальную файловую систему в тестах не хотим юзать не потому что "деталь реализации" а что бы при тестировании логики которую мы реализуем уменьшить количество причин по которым наш тест может упасть. Например - тест логики формирования репортов упал потому что закончилось место на диске. Упрощенно но...
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну то есть акцент именно на количестве причин по которым тест может упасть. В идеале - один тест кейс - одна причина.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
что до "сколько тест кейсов должно быть" - сколько бы их нибыло - всегда будут кейсы о которых ты не подумал или не знаешь еще. А потому тебе придется остановиться в какой-то момент потому что ROI.

Еще есть неплохие практики связанные с error budget из SRE - мол можно писать только на позитивные кейсы если инцедентов нет. Если они есть - увеличиваете количество. Бюджет появился - можно опять не писать и быстрее фичи в прод лить.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну а e2e - у них есть обоснование как "внешнее качество" и у них есть вполне конкретная стоимость которую можно померять
источник

SP

Sergey Protko in Software Design/Architecture/Zen
если мы пилим какой-нибудь инстаграм - 90% всего приложения можно будет покрыть за счет e2e и интеграционных тестов и в целом причин по которым мы захотим юзать юниты не сильно много. Оставшиеся 10% - там вот может быть чет и будет. У кого-то проекты другие и там распределение будет другим.

Конечно удобнее читать всякие "а вот в гугле 80% кавередж" и считать что ты хочешь "как средний по больнице проект в гугле" делать
источник

SP

Sergey Protko in Software Design/Architecture/Zen
p.s. в целом мне лично больше нравится in-process тестирование как термин - он куда более емкий и лучше описывает некоторые ограничения полезные для команд разработки.
источник

AM

Artem Molotov in Software Design/Architecture/Zen
Еще не слышал об этом понятии. Схоронил на будущее.
источник

K

Konstantin in Software Design/Architecture/Zen
Некропост, но и это сейчас решается всякими амплитудами и google tracking events.

А если реально, возможен ли юзкейс где как раз нужен просто молниеносный рантайм? Что делать если тебе критичен молниеносный рантайм + это распред система. Как синхронизировать?
источник