Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775

Тесты реально полезны?

29.05.2025, 15:28. Показов 9822. Ответов 63
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Конечно же нужно уметь писать тесты, как автономные, так и интеграционные
писать тесты для своего кода на XUnit.
тестирование (юнит и мок),
ну юнит тесты какие-нибудь писать можно в конце концов
Раздел про тестирование на этом форуме, считай что отсутствует, так что тут поинтересуюсь - тесты реально полезны?

Ну т.е. не с психологической точки зрения, мол, так на душе спокойнее, а именно с практической?

Сколько пробовал их делать на бэкэ, фронте, в различных маленьких утилитах, ну просто по причине, что так принято, что "все" их обязательно пишут, и каждый раз это оказывалось пустой тратой времени.

Сейчас вот читаю очередную книжку, рекомендованную qwerty.123, но с реальностью оно пока не особо стыкуется .
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.05.2025, 15:28
Ответы с готовыми решениями:

Реально ли сделать Embedded Dll?
Здравствуйте! Собственно, возник вопрос... Вот есть у нас приложение, которое использует стороннюю...

Реально ли запустить форму из службы
Подскажите, реально ли запустить форму из службы (WindowsService)?

3D графика на с# это реально?
всем привет. Вот вспомнил о любимой объемной графике...Появилась идея сделать 3D кнопку(типо с...

63
03.06.2025, 22:43
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от SmallEvil Посмотреть сообщение
А что вообще программы делали 35 лет назад?
Что вообще было 35 лет назад? ))
Кроме горшка и каши ничего не помню. Программы?

0
Эксперт .NET
 Аватар для Usaga
14727 / 9503 / 1362
Регистрация: 21.01.2016
Сообщений: 35,830
04.06.2025, 03:00
Цитата Сообщение от Catstail Посмотреть сообщение
- в приличных фирмах этого не бывает. Тестировщик - это отдельная фигура.
Причём тут тестировщик? Речь шла о тестах, которые юнит. Их пишет разработчик, а не тестировщик. Тестировщик - инженер автоматизации - пишет только UI тесты или тесты для апишки.
1
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
04.06.2025, 04:57
Цитата Сообщение от kotelok Посмотреть сообщение
простой ревью кода другим программистом будет куда эффективнее...
даже при полном отсутствии тестов (что я, в общем-то, сейчас и практикую, регулярно выявляя кучки простых багов в коде менее опытных коллег).
Это как? Просто просмотрел код и баги повылазили как черви после дождя?
Для таких профессионалов, могу сразу сказать, никакие юнит-тесты не нужны!
Кликните здесь для просмотра всего текста
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,765
Записей в блоге: 14
04.06.2025, 05:44
Usaga, да, возможно я немного "сдвинул" тему. Тогда вопрос ТС нужно понимать так: "Стоит ли тестировать собственный код?" Ответ на него еще очевиднее - это личное дело программиста. Если программист никогда не ошибается, то можно не тестировать. Ошибку потом найдут тестировщики (и вставят программеру хооорошую дыню).
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
04.06.2025, 05:47  [ТС]
Цитата Сообщение от SmallEvil Посмотреть сообщение
Это как? Просто просмотрел код и баги повылазили как черви после дождя?
Да, ещё до публикации в тест можно просмотреть закомиченный другим разработчиком код и найти там ошибки. Вроде, я тут неоднократно слышал мнение, что это вполне распространённая практика - проверять код других разработчиков на предмет выявления каких-то недочётов.
0
Эксперт .NET
 Аватар для Usaga
14727 / 9503 / 1362
Регистрация: 21.01.2016
Сообщений: 35,830
04.06.2025, 05:54
kotelok, вообще-то, Code Review проводится не для отлова багов. А для контроля идиоматичности кода и архитектуры. То, что при этом иногда можно косяк заметить - побочный эффекты.
1
04.06.2025, 09:15

Не по теме:

Цитата Сообщение от Usaga Посмотреть сообщение
вообще-то, Code Review проводится не для отлова багов
Я бы сказал что "не только для отлова багов", да и на ревью в первую очередь ловятся баги связанные с непониманием ТЗ или архитектуры, а не всякие граничные случаи и опечатки.

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

В теории ещё код-ревью должен обеспечивать чтобы в контексте писанины было больше одного человека. На практике этого сложно добиться просто чтением PR, всё же обычно требуется изначально ознакомиться с ТЗ и планом реализации.

0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
04.06.2025, 10:49

Не по теме:

Цитата Сообщение от Catstail Посмотреть сообщение
а что делали эти программы?
а что в принципе можно делать на компьютере? игры, утилиты, автоматизация чего-то, обработка чего-то, печать чего-то, учёт чего-то и т.д. Если вы про сложность софта - то тут сильно по-разному, но самый сложный мой проект это создание рекламных планов для региональных радиостанций "Русское радио" и "Европа+", офисная часть позволяла составлять медиа-план (формы печати для клиента в том числе) и выгружала готовый медиа-план для собственно выдачи его в эфир. Вторая часть жила на самой радиостанции и управляла Winamp, который использовался в качестве проигрывателя. Так как интернета изначально "не было" (1999 год, он был в целом, но дорогой, медленный и ненадёжный для наших целей) то выгрузка шла в zip файлы, которые писали на дискеты 3.5". Чуть позже шеф поставит ISDN и стали пользоваться им.
Ошибок и сбоев за 2 года я не припомню совсем.
Пользовался Delphi + LocalSQL (BDE), за всё время написания программы не написал ни одного класса, всё работало внутри методов-обработчиков OnClick(), OnShow(), OnPaint() и т.п. Единственно для таблицы, где создавался сам медиа-план я переопределил стандартную таблицу и сам рисовал то что мне было нужно в ячейках. Для неё же и для подгрузки данных из 1С использовал таски (не помню как именно это далалось в делфи) что не вешало программу.
Так как я никогда не работал программистом и им не являюсь по образованию, то никогда и не делал что-то в коммерческом пространстве (ну кроме обозначенной выше софтины).
Игры писал в основном для ATARI и DOS i386. Был редактор музыки для ATARI, там Бейсик + ASM, в DOS в основном TurboC + ASM, к моменту когда ко мне попал Watcom C и я хотел что-то писать уже для защищенного режима ЦПУ в наших краях уже начала гулять винда и все пересаживались на FoxPro for Windows, Borland C++ и Delphi, так что и я подался туда же. В DOS писал на Clipper софт по статистике для ПЭО ТЭЦ и для бухгалтерии утилиты по конвертации баз из одной программы в другую. В 90-е было весело )
А вообще о тестах (Unit тестах) я узнал только на этом форуме года 3-4 назад )
Еще были утилиты для работы с нестандартными дискетами, как форма защиты софта от дурака.
Свои архиваторы разных мастей, я их и сейчас пишу, но в большинстве случаев для себя.



Добавлено через 3 минуты
Цитата Сообщение от wizard41 Посмотреть сообщение
Те же тесты проверки вариантов решений на вашем рекламируемом highload.fun - тоже люди писали. Или вы думаете что ваш вариант проверял реальный человек?
ну почему же, я и сам там пишу немного, так что в теме.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,746
Записей в блоге: 3
04.06.2025, 12:11
Цитата Сообщение от belalugoci Посмотреть сообщение
я и сам там пишу немного, так что в теме.
я имею в виду тесты, которые проверяют решенные задания пользователей.
0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
04.06.2025, 13:40
Цитата Сообщение от wizard41 Посмотреть сообщение
я имею в виду тесты, которые проверяют решенные задания пользователей.
и я вам об этом и пишу - тесты заданий пишет тот кто написал задание, то есть я сам и пишу.
то есть я на этом сервере не только решаю, но и создаю сами задания, там есть такая возможность, задание модерируется владельцем ресурса.
1
04.06.2025, 13:43

Не по теме:

wizard41,

0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,746
Записей в блоге: 3
04.06.2025, 13:51
belalugoci, аа, ну понял.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,765
Записей в блоге: 14
04.06.2025, 16:35
belalugoci, А сколько человек использовало Ваш софт?
0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
05.06.2025, 10:00
Catstail, вы лучше напишите что сказать хотите.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,765
Записей в блоге: 14
05.06.2025, 11:28
belalugoci, сказать я хочу вот что. Если некто пишет код, которым пользуется 5-10 человек, то он может руководствоваться ложным принципом, что тесты ему не нужны, т.к. он ошибок не совершает. А если это количество становится хотя бы на порядок больше, то ошибки обязательно будут найдены (ибо ошибки совершают абсолютно все, даже такие сильные программисты, как Вы). А если ошибки найдены, то это значит, что программист плохо тестировал свой собственный код.

Да, конечно, разные люди совершают разное количество ошибок. Если в мышлении человека преобладает критическое начало, то он будет ошибаться меньше, но у таких людей и производительность низкая. Один мой друг писал виртуозный код, и делал мало ошибок (гораздо меньше, чем я). Но моя производительность была значительно выше (да, с ошибками, которые можно исправить).
0
2296 / 1612 / 400
Регистрация: 26.06.2017
Сообщений: 4,774
Записей в блоге: 1
05.06.2025, 12:09
Оффтоп!
Цитата Сообщение от Catstail Посмотреть сообщение
Один мой друг писал виртуозный код...
Давны-ы-ым давно я наблюдал за подобной парочкой специалистов. Один очень вдумчиво писал код и выдавал результат хоть и в срок, но уже, как говориться "под занавес". Другой стучал по кнопкам с такой скоростью как будто играл на пианино "Полёт шмеля". Что интересно сидели они плечом к плечу. И вот однажды нервы их начальника не выдержали и он буквально наорал на второго за то, что тот в миллионный раз направил ему программу, которая то не работает, то делает совсем не то. В общем я сути разговора не сильно помню, но среди цензурных слов были что-то типа таких "чего ты мне эту ... опять суёшь, в который раз тебя переделывать заставляю. Смотри на Лёшу, он один раз сделает и сразу так как надо. Посиди подумай чуть подольше, что тебе мешает".
Про тесты тогда мало кто слышал вообще.
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
05.06.2025, 12:34  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
А если это количество становится хотя бы на порядок больше, то ошибки обязательно будут найдены (ибо ошибки совершают абсолютно все, даже такие сильные программисты, как Вы). А если ошибки найдены, то это значит, что программист плохо тестировал свой собственный код.
Цитата Сообщение от Uswer Посмотреть сообщение
тот в миллионный раз направил ему программу, которая то не работает, то делает совсем не то
Но это, кстати, тоже вполне себе жизнеспособный подход - не тестировать и не заботиться о качестве. Среди разработчиков игр, например, есть одна небольшая европейская компания (700 сотрудников), которая выпускает свои продукты вообще без тестирования (при аудитории под сотню тысяч пользователей по конкретному продукту).

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

И эта бизнес-модель норм работает. Люди продолжают покупать год за годом. Сообщество продолжает расти.

P.S.: понятно, что в каком-нибудь софте для бизнеса такое вряд ли прокатит, но в некоторых случаях вполне себе вариант сэкономить и на тестировании, и на программистах.
0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
05.06.2025, 13:58
Цитата Сообщение от Catstail Посмотреть сообщение
сказать я хочу вот что. Если некто пишет код, которым пользуется 5-10 человек, то он может руководствоваться ложным принципом, что тесты ему не нужны, т.к. он ошибок не совершает
попробуем теперь найти где я сделал хотя бы намёк на то что я не совершаю ошибок?!

Цитата Сообщение от Catstail Посмотреть сообщение
А если это количество становится хотя бы на порядок больше, то ошибки обязательно будут найдены (ибо ошибки совершают абсолютно все, даже такие сильные программисты, как Вы)
мне кажется вы сами себя путаете тем, что не читаете что вам пишут, а обсуждаете некую тему, которая у вас в голове отзывается похожим контекстом. Я нигде ни словом ни полусловом не писал что у меня НЕТ ошибок, я написал что их "исчезающе мало". Это всего лишь говорит о том, что выбирая между - написать без теста и починить быстро если что-то не так - кратно проще и дешевле - чем писать тесты.

Цитата Сообщение от Catstail Посмотреть сообщение
А если ошибки найдены, то это значит, что программист плохо тестировал свой собственный код
Сделаю еще раз отсылку на абсолютно всех разработчиков в мире (вы как супер-модератор, который не читает но мнение имеет выглядите странно) - не важно какая у вас степень тестирования - ОШИБКИ БУДУТ ВСЕГДА И У ВСЕХ! Просто тестирование сокращает вам их число, а так же минимизирует риски (там где вы работаете есть рисковый отдел? сходите в гости и узнайте сколько будет стоить простой на 1 час, на 10 часов, на 10 суток). Вы же тут всегда топите про C# исключительно в разрезе "про бизнес", но почему-то сами про это мало что знаете и понимаете, вероятно образование заточенное под ИТ не обязательно помогает в этом? Ну это лирика.

Цитата Сообщение от Catstail Посмотреть сообщение
Да, конечно, разные люди совершают разное количество ошибок. Если в мышлении человека преобладает критическое начало, то он будет ошибаться меньше, но у таких людей и производительность низкая. Один мой друг писал виртуозный код, и делал мало ошибок (гораздо меньше, чем я). Но моя производительность была значительно выше (да, с ошибками, которые можно исправить0.
Это вообще к разговору отношения не имеет, а так же субъективщина полнейшая. А я, да я, да вы - не серьёзно. А я вам расскажу историю про того кто писал быстро, без ошибок и в 1992 году уехал работать в Майкрософт - какой смысл в таких историях?

Я лишь написал комментарий на ваш опус про тормоза машины, хотя 99% людей каждое утро садятся в свои машины абсолютно не зная работают у них тормоза или нет. Это просто теория вероятности. Поэтому не нужно заламывать руки и истерить по поводу отсутствия тестирования, так как и здесь это только вопрос вероятности ошибки. А она в свою очередь определяет цену той самой ошибки. Если цена отсутствует как класс, то тестирование ради тестирования, если цена низка, то проще решить проблему оперативно и только в какой-то момент тестирование становится обязательным. Если в конкретной фирме для конкретной задачи конкретно у вас всё страшно и ужасно и тестирование обязательно - ну ок, но у других всё может быть иначе и зачем в таком случае ваши улюлюканья?

Касательно скорости как таковой. Был у нас админ oracle-dba кажется называется, он колошматил наверное и 3000 знаков в минуту, но валидные строки у него были наверное 1 к 10 и пока он не уронил базу - внимание на это начальник не особо и обращал. После этого он ему сказал - вводишь, читаешь 10 раз, исправляешь, читаешь еще 10 раз, а потом отправляешь. Но в ICQ он конечно писал как бог фразы типа "всме привте, кт овс тоолвку иёдт" - зато быстро.
Когда пишу я, то я делаю вычитку написанного, проверяю орфографию, форматирую текст. Но я это делаю для вас, а не для себя, я хочу чтобы вам было комфортно читать. И в коде примерно так же, не верю я что можно печатать быстрее чем ты мыслишь (есть парочка знакомых которые утверждают что они вообще когда печатают то ничего в голове себе не диктуют, возможно это правда, но как это работает я не представляю).

Добавлено через 2 минуты
Цитата Сообщение от kotelok Посмотреть сообщение
понятно, что в каком-нибудь софте для бизнеса такое вряд ли прокатит
тут вопрос того как именно продается и какое законодательство в конкретной стране, если принчип "as is" работает на уровне закона и нельзя подать иск за убытки, то почему- бы и нет. Тем более если это конкурентное преимущество - цена софта же будет ниже, а значит кто-то будет готов экономить, не всем же покупать допы HP или Oracle.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,765
Записей в блоге: 14
05.06.2025, 14:01
belalugoci, возможно я действительно немного увлёкся... Прошу прощения. Но у Вас я прочитал вот это: "... но всё же, за 35 лет всё что мной писалось никогда не тестировалось и проблем в работе программ было исчезающе мало". Из этого я сделал вывод, что Вы к тестам относитесь негативно. Но сейчас, перечитав, я понял, что был неправ.
0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
05.06.2025, 14:04
Цитата Сообщение от Catstail Посмотреть сообщение
Из этого я сделал вывод, что Вы к тестам относитесь негативно. Но сейчас, перечитав, я понял, что был неправ

я экономист по образованию, у меня всё всегда про деньги )
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2025, 14:04

Работа в реально времени
Добрый День! Есть программка, отдаленно напоминающая диспетчер задач(тоже получает список...

Using с переменным числом IDisposable-объектов. Реально такое?
В метод передается список имен файлов void Method1 (string files) Внутри метода открываются файлы...

Реально ли сделать подобие консольного PacMan'а
Ааа) Щас задам идиотский вопрос!) Реально ли?) Если в консольном приложении пользователь вводит...

Насколько реально написать билинговую систему на ASP и не будет ли проблем с безопасностью ?
Насколько реально написать билинговую систему на ASP и не будет ли проблем с безопасностью, и есть...

ActiveX.exe Как сделать так, что бы мне отображался ранее созданный реально работающий объект?
Я создал ActiveX.exe, который работает с таймером. Таймер запускается из ASP методом a.Start и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru