Size: a a a

Programming Offtop

2020 December 23

VP

Vladimir Petrakovich in Programming Offtop
Даже если он не используется на практике, про него наверняка была какая-то задумка, как всё должно работать.
И вот если поведение отличается от этой задумки, значит, он неправильный.
источник

VP

Vladimir Petrakovich in Programming Offtop
Konstantin dmz9
тестами покрыл, заметил что есть лишнее вырезал.
либо потом обьясняй нахуя ты писал тесты лишние для лишнего кода который нигде не юзается
Подход хороший, одобряю
источник

VP

Vladimir Petrakovich in Programming Offtop
Но не использую
источник

Kd

Konstantin dmz9 in Programming Offtop
Vladimir Petrakovich
Даже если он не используется на практике, про него наверняка была какая-то задумка, как всё должно работать.
И вот если поведение отличается от этой задумки, значит, он неправильный.
а вот правильность тестировать - это не про юниты и не про покрытие )
для этого куча других типов тестов есть
источник

Kd

Konstantin dmz9 in Programming Offtop
ну типа правильно ли складывается цифра с цифрой - да, правильно.
а правильная ли цифра передается в рассчет калькулятора, где должны быть проценты, от 0 <> 100 - это уже не юниты
источник

VP

Vladimir Petrakovich in Programming Offtop
Konstantin dmz9
а вот правильность тестировать - это не про юниты и не про покрытие )
для этого куча других типов тестов есть
Погоди, разве покрытие не про вероятность того, что что-то не протестировали и оно не работает?
источник

Kd

Konstantin dmz9 in Programming Offtop
покрытие тебе покажет что у тебя есть две функции и обе работают корректно - одна продюсирует число, другая потребляет.
другой вопрос - как они вместе работают
источник

Kd

Konstantin dmz9 in Programming Offtop
Vladimir Petrakovich
Погоди, разве покрытие не про вероятность того, что что-то не протестировали и оно не работает?
покрытие про юниты. про то что тестовое окружение зашло в каждый свич-кейс и иф
источник

VP

Vladimir Petrakovich in Programming Offtop
Konstantin dmz9
покрытие тебе покажет что у тебя есть две функции и обе работают корректно - одна продюсирует число, другая потребляет.
другой вопрос - как они вместе работают
Покрытие не скажет, что переполнение вообще-то не обрабатывается. Ну и какой в нём толк?
источник

Kd

Konstantin dmz9 in Programming Offtop
Vladimir Petrakovich
Покрытие не скажет, что переполнение вообще-то не обрабатывается. Ну и какой в нём толк?
толк в том чтобы быть увереным в кирпичиках из которых строится здание
источник

VP

Vladimir Petrakovich in Programming Offtop
Konstantin dmz9
толк в том чтобы быть увереным в кирпичиках из которых строится здание
Так вон протестили кирпичик "+", а он на некоторых входных данных выдаёт чушь
источник

Kd

Konstantin dmz9 in Programming Offtop
ну так исправляй )
источник

VP

Vladimir Petrakovich in Programming Offtop
Konstantin dmz9
ну так исправляй )
Это само собой, но как же так, покрытие 100%, а код работает неправильно
источник

JF

Jorik Fat in Programming Offtop
покрытие покажет количество использованных строк в тесте, но это не значит, что проверены все ситуации
источник

VP

Vladimir Petrakovich in Programming Offtop
Jorik Fat
покрытие покажет количество использованных строк в тесте, но это не значит, что проверены все ситуации
Да, я об этом
источник

VP

Vladimir Petrakovich in Programming Offtop
Ну конечно ещё можно ветвления мерить, но это всё равно далеко не всё
источник

Kd

Konstantin dmz9 in Programming Offtop
Vladimir Petrakovich
Это само собой, но как же так, покрытие 100%, а код работает неправильно
давай по другому:
юнит для функции funcA(x)
юнит для функции funcB(x)
и интеграционник для funcA(x)+funcB(x) = y
юнитами ты покроешь все ветвления внутри funcA/funcB и это будет корректно, т.к. написаный код это тестирует. покрытие кода у тебя 100%.
интеграционник тебе покроет что результат интеграции двух функций выдает правильный результат по бизнесу. тут "покрытие" это "покрытие бизнес-логики" а не "кода"
источник

VP

Vladimir Petrakovich in Programming Offtop
Человек пишет код, обрабатывающий некоторое множество ситуаций, потом пишет тест на все эти ситуации с покрытием 100%.
А потом оказывается, что он про многие другие ситуации не подумал.
источник

Kd

Konstantin dmz9 in Programming Offtop
то что 100% покрытие кода юнит тестами пропустит ошибку в бизнеслогике - да, такое может быть
источник

Kd

Konstantin dmz9 in Programming Offtop
поэтому тесты на юнитах и не заканчиваются
источник