169 похожих чатов

40 ответов

39 просмотров

Там про модули что-то.

Marek-Kotovsky Автор вопроса
КТ315
Там про модули что-то.

Нет. Модульное тестирование это другое. Это формальное доказательство того что твой код правильно работает через автоматический вызов твоего же кода в фазе компилляции например. Под модулем обычно подразумевают любую единицу разработки. Исходник например.

Marek Kotovsky
Нет. Модульное тестирование это другое. Это формал...

Отладчик? Очередная ерунда из мира ЯВУ, потому что там люди не умеют отладчиком пользоваться, ибо код, который они пишут, и код, который генерируется - из разных планет, из-за этого уже и придумали какой-то там модуль тестирования. Я угадал?

Marek-Kotovsky Автор вопроса
КТ315
Отладчик? Очередная ерунда из мира ЯВУ, потому что...

Есть определенные философии модульного тестирования. Как правило Паретто. Например ты потратил 80% времени на написание кода, а 20% на сами тесты то это хорошая пропорция. Теперь за 1 милисекунду ты можешь проверить что твой проект "здоров". Это как метрика. Зелёная лампочка. Но поскольку ты говоришь про отладчик, я делаю вывод что ты не работал в коллективе и в крупной разработке. Потому что все обычно знают зачем нужны unit tests. Отладчик это уже шаг #2. Когда известно что ошибка существует.

Marek Kotovsky
Есть определенные философии модульного тестировани...

Чтобы понять, есть ли ошибка - надо просто позапускать программу, и проверить её. А дальше отладчик. О каком "фреймворке модульного тестирования" речь? Что за придумки? 😂

Marek-Kotovsky Автор вопроса
КТ315
Чтобы понять, есть ли ошибка - надо просто позапус...

А сколько времени у тебя уйдет на "позапускать" ?

Marek Kotovsky
А сколько времени у тебя уйдет на "позапускать" ?

В зависимости от сложности и размеров программы. В среднем, 10-30 минут. Хорошо, значит ты говоришь про скриптик, который тупо запускает программу, и имитирует действия пользователя - обычный скрипт на AutoIT, либо Python. Каким боком он тогда к языку программирования вообще привязан? 😂 Он должен просто запустить .exe, и проверить функционал, отправляя и генерируя тестовые значения. Так что всё это в ассемблере есть.

Marek-Kotovsky Автор вопроса
КТ315
В зависимости от сложности и размеров программы. В...

Слушай КТ. Ты классный чувак. Но у тебя есть привычка. Зайти на трибуну и колотя ботинком рассказывать что всем покажешь "кузькину мать". Я тебя прошу. Ты хоть новичкам не рассказывай вредных советов. А то тебя послушают и будут думать что сложный проект может существовать без тестов и без спецификации. Я тебя прошу.

Marek Kotovsky
Слушай КТ. Ты классный чувак. Но у тебя есть привы...

Вообще-то может, это не вредные советы. Ты наслушался девопёсов, и теперь думаешь, что в каждый Hello World надо сувать какие-то тесты, спецификации, документацию на миллиард страниц и прочую ересь. TurboDebugger и миллион стабильного софта было написано только так - код, и отладчик. Точка.

КТ315
Вообще-то может, это не вредные советы. Ты наслуша...

В хелловорлды не нужно. Но есть сложные системы, где ты не можешь детально представить себе взаимодействие компонентов. А какой-то уверенности хочется. И тогда у тебя выбор: либо избегать избыточной сложности, либо писать тесты. И так как первое в большой команде получается плохо, все пишут тесты. А чтобы можно было тестировать, приходится увеличивать сложность, уровни абстракции, так и получается кнопочка для лампочки на сто мегабайт.

s54820
В хелловорлды не нужно. Но есть сложные системы, г...

Так это каких масштабов должна быть программа? Примерно как Firefox, PyCharm, Sony Vegas, IDA Pro и др. - 100 миллион строк кода. Тогда да, очевидно, нужна автоматизации в тестировании. Но для какого-нибудь отладчика типа x64dbg, OllyDbg, CheatEngine, анализатора DetectItEngine, CFF Explorer - это вообще ни к чему!

Marek-Kotovsky Автор вопроса
КТ315
Вообще-то может, это не вредные советы. Ты наслуша...

Как же трудно с тобой. Вы с Фроловым обсудили вероятность возникновения ошибки. Я добавил что необходимо тест. Чтоб доказать что код верный. Понимаешь? Автоматизация. Это так принято. Это критерии надёжности софта.

Marek-Kotovsky Автор вопроса

Да ради бога. Развеж я буду настаивать. Пиши с дебаггером.

Marek Kotovsky
Да ради бога. Развеж я буду настаивать. Пиши с деб...

Так и пишу. Делать мне что-ли нечего, автоматизировать тесты для 3000 строк кода, когда я и так в 100% в них уверен, а любые "неуверенности" отладчиком за пару секунд проверить можно.

Marek Kotovsky
Как же трудно с тобой. Вы с Фроловым обсудили веро...

Ну начинается. Тесты не доказывают, что код верный. Тесты показывают только, что оно однажды работало. Это огромная разница.

Marek-Kotovsky Автор вопроса
s54820
Ну начинается. Тесты не доказывают, что код верный...

Тесты доказывают что данный тест кейс (или бизнес кейс) работает в полном соответствии со спецификацией. Вот и все.

Marek Kotovsky
Тесты доказывают что данный тест кейс (или бизнес ...

Только если ты тестируешь всё множество входных параметров. Что, очевидно, невозможно. Ну условно mkdir("x") ничего не доказывает про mkdir("x" * 10000).

Marek-Kotovsky Автор вопроса
s54820
Только если ты тестируешь всё множество входных па...

Если ты не знаешь как тестировать I/O то спроси меня.

Marek Kotovsky
Тесты доказывают что данный тест кейс (или бизнес ...

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

Marek Kotovsky
Если ты не знаешь как тестировать I/O то спроси ме...

Это не про IO. Это про множества. Тестируют обычно тривиальные случаи, и то, что считают граничными случаями. Но всегда могут быть другие граничные случаи, которые ты упускаешь.

Marek-Kotovsky Автор вопроса
КТ315
Детский сад, штаны на лямках. Вот в чём интерес го...

Ты вроде рассказывал что работал в проекте где 50 человек было. Это правда?

Marek-Kotovsky Автор вопроса
s54820
Это не про IO. Это про множества. Тестируют обычно...

Я не знаю ни одной функции которую я не смог бы протестировать автоматически. Разумеется мы должны понимать что мы разработали а какая спецификация.

Marek-Kotovsky Автор вопроса
КТ315
Где я такое говорил?

Ладно тогда извини. Просто в крупных проектах софт в обязательном порядке проходит эту фазу. Это часть рабочего процесса. Я не знаю как вы реверсеры работаете. Возможно вам это не нужно. Вы не синтезируете новых продуктов.

Marek Kotovsky
Я не знаю ни одной функции которую я не смог бы пр...

Не могу придумать красивого примера. Но любой нетривиальный алгоритм найдёт способ сломаться неожиданным образом на неожиданных данных. Если даже для автора кода данные были неожиданные, что уж говорить об авторе тестов? Мы же не ставим знак равенства между фаззингом и юнит-тестами, правда?

s54820
Не могу придумать красивого примера. Но любой нетр...

А вот я про фаззинг говорил. Генерировать данные, и флудить ими в программу. Полезная штука. А юнит-тесты это что тогда?

КТ315
А вот я про фаззинг говорил. Генерировать данные, ...

Это assert(cos(0.0) == 1.0) (ухмыляющийся смайлик).

s54820
Это assert(cos(0.0) == 1.0) (ухмыляющийся смайлик)...

Ааааа, теперь понял. Да, такого в ассемблере нет. Только это бесполезная штука всё же.

КТ315
Ааааа, теперь понял. Да, такого в ассемблере нет. ...

Ну на самом деле тебе никто не мешает взять отдельный файл/файлы, понаписать туда всякого, запускать по очереди или даже параллельно, раскрашивать красненьким, где результаты не совпали. Изначально ведь речь про другое шла: ты не захочешь тратить на это своё время, тебе проще в отладчик. В том числе потому что код более монолитный, и делать такое сложнее.

s54820
Ну на самом деле тебе никто не мешает взять отдель...

И всё же интересно, ты работаешь программистом?))

КТ315
И всё же интересно, ты работаешь программистом?))

Bio же. Я программист хелловорлдов, кому я нужен?

Marek-Kotovsky Автор вопроса
КТ315
А вот я про фаззинг говорил. Генерировать данные, ...

Property -based testing. Это когда тебе надо доказать, что написанная тобой функция ведёт себя одинаково на любом инпуте. PBT используется при тестировании архиваторов, енкодеров. Типа dec(enc(msg))==msg.

Marek-Kotovsky Автор вопроса
s54820
Что-то очень научное.

Нет. Просто методика тестирования.

Marek Kotovsky
Нет. Просто методика тестирования.

А можно пример на чем-то публичном? Единственный реальный способ, который я знаю - вдумчивое чтение кода до полного просветления.

Marek-Kotovsky Автор вопроса
Marek-Kotovsky Автор вопроса
s54820
А можно пример на чем-то публичном? Единственный р...

Вот здесь я находил https://jqwik.net/property-based-testing.html

Marek Kotovsky
Вот здесь я находил https://jqwik.net/property-bas...

Спасибо, посмотрю. А я пока поскроллил статью на хабре, выглядит как фаззинг с умными словами.

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
62
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
13
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
3
Кстати а покупал кто-нибудь ЭЦП для подписи кода? А то у меня на некоторых компах и ОС иногда SmartScreen винды программу за вирус принимал. Если купить такую ЭЦП и подписыват...
Дмитрий Завгородний
15
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Карта сайта