powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как приучить себя к тестам
31 сообщений из 31, показаны все 2 страниц
Как приучить себя к тестам
    #38905490
Фотография Sliva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Везде ли нужны тесты?
Может, в виду того, что я не особо вижу целесообразность в создании тестов я так и не пишу их. Ну и в компании про тесты никто ни слухом, ни духом.
Проекты корпоративные.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38905497
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Тестировать в любом случае надо.
Весь вопрос - как.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38905498
Фотография Sliva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseТестировать в любом случае надо.
Весь вопрос - как.
Бесспорно.
Имелось в виду, к примеру, написание unit тестов.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38905507
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
SlivaeNoseТестировать в любом случае надо.
Весь вопрос - как.
Бесспорно.
Имелось в виду, к примеру, написание unit тестов. если ПО не сильно критичное к ошибкам (не связано напрямую с деньгами, например), то вполне можно "тестировать" и наживую.
естественно, надо смотреть на месте, универсальных рецептов нет.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38905528
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlivaeNoseТестировать в любом случае надо.
Весь вопрос - как.
Бесспорно.
Имелось в виду, к примеру, написание unit тестов.Unit-тесты пишутся разработчиком для того, чтобы убедиться в правильности реализации им некоего функционала.

Если уверены в своей реализации, или предпочитаете другой способ проверки, то не пишите их :)
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38905551
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlivaeNoseТестировать в любом случае надо.
Весь вопрос - как.
Бесспорно.
Имелось в виду, к примеру, написание unit тестов.
Пишем тесты уже 3 года. JUnit+Mockito. Необходимость определяем сами.
Здравый смысл подсказывает что если есть "логика чёрного ящика"
без сложного FSM то мы покрываем "краевые случаи" этого ящика
тестами и 1-2 общих случая. Если аргумент черного ящика это
String переменная - то надо хотя-бы раз дать ей на вход null
и посмотреть что выход черного ящика хотя-бы детерминирован и адекватен.

Если будете внедрять тестирование - то не забывайте про "условное" правило Парето.
На 80% кодинга (по времени) не более 20% написания тестов.
Здесь ничего доказывать не буду - просто эмпирически так выбрано.

+ Самое главное преимущество тестов. По ним можно тут-же писать
документирование модулей. Прямо брать из кода утверждения
и описывать в тексте. И оно будет самым достоверным. "Я гарантирую это".
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38905601
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне юнит-тесты помогают только быстро запустить и отладить некий "хороший" функционал, ну тупо что метод вызвался и что-то сделал, и возвратил не null

потому как 100% покрытия не существует, точнее на него надо затратить адскую уйму времени, один метод с 5-параметрами, и проверка хотя бы null/not-null для каждой комбинации - это 2 в 5 степени = 32 варианта, а если там каждый параметр - объект с 10 полями?

а тестирование, которое покрывает только "хорошие" ситуации - это не тестирование
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38905658
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
17-77а тестирование, которое покрывает только "хорошие" ситуации - это не тестирование

То есть вы не тестируете? Или перебираете комбинации вручную?
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38905697
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77потому как 100% покрытия не существует, точнее на него надо затратить адскую уйму времени, один метод с 5-параметрами, и проверка хотя бы null/not-null для каждой комбинации - это 2 в 5 степени = 32 варианта, а если там каждый параметр - объект с 10 полями?
Подпишусь по поводу 100% покрытия. Его действительно невозможно создать.

Но данный пример с 5-параметрами - неудачен. Во первых 5 параметров это не причина чтобы не писать тест.
Во вторых возможно требуется рефакторинг. Можно объявить 3 параметра одной сущностью и передавать
как 1 параметр + еще 2. На каком основании объявить или сгруппировать сущность это вы сами должны
решать исходя из специфики предметной области. Например две даты java.util.Date (dbegin, dend) можно сгруппировать
в диапазон mayton.util.DateDiapason и передавать.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38905714
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
SlivaВезде ли нужны тесты?

Не везде. Иногда это дорого.

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

Прочитайте какую-нибудь книжку по тестам - как их правильно писать и как правильно рефакторить код по их подсказке.

Некоторые считают, что основная задача тестов - помочь грамотно спроектировать модули (так чтобы они были независимы).

Посмотрите скринкаст

Найдите code cata и попробуйте его решить в стиле TDD (red -> green -> refactor)

Попробуйте для начала тестировать там где легко

Про те модули, которые тестировать трудно, подумайте почему (может, надо отрефакторить, может надо добавить утилит для создания или проверок)
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38905925
Фотография Sliva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#SlivaВезде ли нужны тесты?

Не везде. Иногда это дорого.

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

Прочитайте какую-нибудь книжку по тестам - как их правильно писать и как правильно рефакторить код по их подсказке.

Некоторые считают, что основная задача тестов - помочь грамотно спроектировать модули (так чтобы они были независимы).

Посмотрите скринкаст

Найдите code cata и попробуйте его решить в стиле TDD (red -> green -> refactor)

Попробуйте для начала тестировать там где легко

Про те модули, которые тестировать трудно, подумайте почему (может, надо отрефакторить, может надо добавить утилит для создания или проверок)


а это то, что надо
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906037
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlivaВезде ли нужны тесты?
Правильнее спросить иначе: какие тесты нужны в конкретном случае.

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

SlivaМожет, в виду того, что я не особо вижу целесообразность в создании тестов я так и не пишу их. Ну и в компании про тесты никто ни слухом, ни духом. Проекты корпоративные.
Я... не уверен, что Вам стоит это менять. Сдвигать глыбу "мы так привыкли работать" - тяжело, а когда Вы сами не уверены, не видите целесообразности итп - результат нетрудно предсказать.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906041
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Не везде. Иногда это дорого.
Не согласен.

Дорого - это означает неправильную организацию тестов. Чаще всего - излишний спуск в детали реализации, вторая по распространённости причина - технологические бредни (скажем, попытка "по канонам" выстраивать для каждого независимое окружение). Это не значит, что тесты не нужны, это значит, что их нужно строить адекватно задаче.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906131
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё сильно зависит от предметной области. Какова цена бага в It? Некорректно рисуется интерфейс?
Пустяк. Поправят за 5 минут. Там дольше заявка по flow ходит чем сам фикс.
БД упала... ? Ну... это уже интереснее. Админ посидит 10 минут. Починит.
Архитектурный баг - на много недель всей группой посидеть на митингах.
Выработать сценарий решения. Это уже серъезнее. Можно посчитать в деньгах.

А теперь представте баг в медицине. Аппарат - "искусственная почка" или сердце. Цена бага
это здоровье и жизнь 1 человека. Служебное расследование. Лишение сертификата.

А теперь.... баг в аэрокосмонавтике. Цена этого бага - многие человеческие жизни.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906137
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
softwarerДорого - это означает неправильную организацию тестов.

Если речь идет о юнит тестах, то да. В других случаях может зависеть от окружения.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906172
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Slivaа это то, что надо

То есть Kata
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906200
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#softwarerДорого - это означает неправильную организацию тестов.
Если речь идет о юнит тестах, то да. В других случаях может зависеть от окружения.
Скажу так: вопрос в том, с чем сравнивать это "дорого". Для оценки масштаба можно взять следующие вещи: стоимость ручного тестирования, стоимость проекта в целом, стоимость отсутствия тестирования (то есть проявившихся ошибок). Так вот, я бы сказал, адекватно выстроенные автоматические тесты в любом случае "не дороги" относительно этих показателей. Во всяком случае, исключений я не встречал.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906211
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За последние лет 20 производительность вычислений выросла на два порядка.
(Грубо от 3.5Мгц до 3 Ггц). И это даже без учёта архитектур (разрядность, мульти-тредовость
или мультипроцессность).

А производительность труда человека осталась без изменений. Стоимость "ручного" вмешательства
оператора, админа, VLP, саппорта, тестера и разработчика или аналитика по прежнему стоит
очень дорого. Даже делая скидку на братьев наших китайскиз и индийских. Всё равно дорого.
Поэтому при прочик равных условиях автоматизированный тест (когда он налажен) будет
и стоить дешевле и работать надёжнее.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906260
Фотография Sliva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЯ... не уверен, что Вам стоит это менять. Сдвигать глыбу "мы так привыкли работать" - тяжело, а когда Вы сами не уверены, не видите целесообразности итп - результат нетрудно предсказать.
Сдвигать глыбу не придется.
Не уверен, потому как тесты не писал.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906294
Cpt. Gray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нет времени на полное тестирование, я бы писал тесты только на основные бизнес-процессы

Тесты определенно нужны
Сам в них не верил, пока своим же тестом не откопал один недочет в собственном коде
С тех пор стараюсь всегда писать тесты параллельно коду

Писал лабу для универа, что-то там про количество гласных и согласных букв в словах было..
Написал красивый метод, был уверен в нем на все 100%
Сделал для него простенький тест и откопал интересный момент, что я забыл учесть регистр, и из-за этого не совпадали суммы букв (прописные и заглавные)
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906307
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlivaСдвигать глыбу не придется.
Не уверен, потому как тесты не писал.
Могу рассказать, как я сам начал их писать.

Первый раз это было лет двадцать назад. Я тогда написал парсер SQL-запросов, предназначенный брать произвольный запрос, бить его на части и позволять в дальнейшем скомпоновать эти части с модификациями (скажем, добавить условия в where). И чтобы понять, правильно ли он работает, я написал для него штук тридцать ожидаемых комбинаций вход-выход и сделал подпрограмму, которая их проверяла. И обнаружил, что это удобно, особенно когда парсер начал дописываться и переписываться.

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

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

Ну а дальше... дальше, собственно, я уже чувствовал, какую пользу извлекаю из этих тестов. Особенно при традиционном для наших контор отсутствии тестировщиков.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906311
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cpt. GrayСделал для него простенький тест и откопал интересный момент, что я забыл учесть регистр, и из-за этого не совпадали суммы букв (прописные и заглавные)
Бывает веселее.

Помнится, я на Яве написал некую вещь, использовавшую список. По всему надо было использовать ArrayList. Я подумал: а может ли случиться так, что в некоторых условиях LinkedList будет лучше? И чисто из пижонства написал тест, который сравнивал по времени оба варианта и ругался, если ArrayList оказывался медленнее. Так вот: этот тест сразу же сработал и сказал, что LL в 36 раз быстрее
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906345
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerТак вот: этот тест сразу же сработал и сказал, что LL в 36 раз быстрее
Обычное дело в языках высокого уровня: разработчики затачивают на одно, а пользователи пользуют под совсем другое. Аналогичная история: считал одну конструкию самой супербыстрой, интуитивно так и должно быть, минимум лишних движений, но в реале самая тормозная оказалась даже в тестах. Впомнил потому что на днях переписывал, на реальных данных получил ускорение в 5 раз. Причем заменил на более тормозную по моим понятиям.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38906355
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может кому интересно. Щас такой расколбас на проекте.

Один кодер так любил String.replaceAll(...) что запилил его везде где только руки дотянулись.
Там вобщем-то работа с Apache + XML. У него был реквест вида http://{url}/{path}/{arg1}....
и он реплейсил там OVER9000 аргументов. Самое интересное что и респонс он также разбирал.
Реплейсил теги пока не останется полезное "мясо". Вобщем не в том суть. Он уже далеко в Израиле.
А я рву и метаю. Но даже не втом суть. А в том что в Java replaceAll.... (!) использует механизм
regexp-s для любых самых тривиальных замен.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38909135
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
softwarerТак вот, я бы сказал, адекватно выстроенные автоматические тесты в любом случае "не дороги" относительно этих показателей. Во всяком случае, исключений я не встречал.

У вас 100% покрытие?
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38909338
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, юнит-тесты пишутся, если
а) ты не уверен, что написал какой-то кусок кода правильно
б) написать юнит-тест быстрее, чем протестировать руками
в) есть достаточная уверенность, что в будущем этот кусок кода кто-нибудь нечаянно сломает при доработке
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38920517
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовать или не использовать юнит-тесты - это размышления из области "брони и снаряда"...
scfИМХО, юнит-тесты пишутся, если
а) ты не уверен, что написал какой-то кусок кода правильноВообще-то...
Ну, вот кто бы "поделился уверенностью" (с закладыванием зубов, рук, ног и более других важных частей тела), что в самом юнит-тесте (или даже в тест-фреймворке) банально нет ошибок? Даже при условии, что юнит-тест вообще актуален действующей спецификации на функционал.
scfб) написать юнит-тест быстрее, чем протестировать рукамиТестировать "руками" функционал на несколько десятков входных параметров, каждый из которых может принимать не один десяток вариантов - это нечто... :)
И при этоом даже в идеальном случае хороший юнит-тест написать совсем не проще и точно не быстрее, чем реализовать тестируемый функционал. Преимущество (хороших) юнит-тестов - легко автоматизируется и однажды написаный гарантирует (более/менее) соответствие написанного/отрефакторенного кода заявленной спецификации. Если, конечно, спецификация не слишком часто меняется - это непосредственно ведет к переписыванию соотвествующих юнит-тестов.
scfв) есть достаточная уверенность, что в будущем этот кусок кода кто-нибудь нечаянно сломает при доработке"Доработка"... :)
Банально: меняем целевую платформу/используем новую версию потусторонней библиотеки... Компилируем... Молимся, чтобы ничего не поломалось...

Как резюме: использование или не использование юнит-тестов крайне неоднозначно.
Юнит-тесты "в-целом" хорошо... Но могут быть и исключения... :(
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38920938
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvНу, вот кто бы "поделился уверенностью" (с закладыванием зубов, рук, ног и более других важных частей тела), что в самом юнит-тесте (или даже в тест-фреймворке) банально нет ошибок?
Трюк в том, что такая уверенность не нужна. Достаточно того, чтобы в тесте и в тестируемом функционале не было заложено одинаковой ошибки. Ну а вероятность этого приемлемо мала.

sphinx_mvЕсли, конечно, спецификация не слишком часто меняется - это непосредственно ведет к переписыванию соотвествующих юнит-тестов
Регулярное переписывание тестов - это верный признак того, что тестируется не то, что нужно. Это значит, что тесты излишне опущены в детали реализации.

sphinx_mvКак резюме: использование или не использование юнит-тестов крайне неоднозначно. Юнит-тесты "в-целом" хорошо... Но могут быть и исключения... :(
Я скажу иначе. Автоматические тесты - хорошо. Но далеко не всегда их разумно делать "юнит".
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38920975
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хороший вариант когда 2 разработчика временно разделяют роли писателя софта и тестов.
В этом случае будет больше споров но и уровень "контроля на выходе" будет выше.

В другом скоупе они меняются ролями.
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38925589
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#То есть вы не тестируете? Или перебираете комбинации вручную?
тестирую, но далеко не все ситуации, в основном только "хорошие"

maytonМожно объявить 3 параметра одной сущностью и передавать
как 1 параметр + еще 2.
а что толку - кол-параметров (= кол-во комбинаций) не изменилось, не суть важно - как параметры передаются - каждый по отдельности или в составе класса
...
Рейтинг: 0 / 0
Как приучить себя к тестам
    #38926802
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
[quot 17-77]F#То есть вы не тестируете? Или перебираете комбинации вручную?
тестирую, но далеко не все ситуации, в основном только "хорошие"

17-77а тестирование, которое покрывает только "хорошие" ситуации - это не тестирование

=> это не тестирование => Вы не тестируете
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как приучить себя к тестам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]