Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 13 14 15 16 17 18 19 20 21 [22]
 Re: unit-тестирование  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17568
mayton
Но мой вопрос по сценарию воспроизведения так и остался висеть в воздухе.

Подумайте.
а что тут думать....
есть трёхзвенка - есть бага, скока вариантов по определению её места? вагон и маленькая тележка...
10 мар 20, 15:58    [22096265]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8475
asv79
смотря насколько качественно и полно описаны описаны юзкейсы в тестах

Давайте возьмем простейший случай. Простешая функция:

public long add( long a, long b );

Юз кейс: функция должна возвратить сумму двух чисел, по правилам описанных в учебниках математики/арифметики начальной школы (imho 1-3 класс).

Нужно написать unit test который бы 100% проверил, что ф-ция работает и в ней нет багов. Текст функции не показывается )))

вадя
PetroNotC Sharp
ты счас рассказал про работу тех поддержки. Девочек на телефоне.
да, но с этого и начинается....


Мне расказывали реальный случай: запись в журнале заявок - "отчет такой-то не печатается". Девочка на техподдержки выяснила, что там во всем подразделении (здании) света (вольтов в розетках) нету )))
10 мар 20, 15:59    [22096267]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17568
Leonid Kudryavtsev
Мне расказывали реальный случай: запись в журнале заявок - "отчет такой-то не печатается". Девочка на техподдержки выяснила, что там во всем подразделении (здании) света (вольтов в розетках) нету )))
умная девочка в техподдержке оказалась.
10 мар 20, 16:01    [22096269]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
вадя
mayton
Но мой вопрос по сценарию воспроизведения так и остался висеть в воздухе.

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

Я не знаю. А что не бывает бага который стоит на границе двух звеньев? Я думаю бывает.
Яркий пример - перформанс баги. Это то что я говорил. Кто-то забыл обернуть SQL-запрос
catch - блоком с commit/rollback транзакции. Строчка осталась заблокированной. Другие
транзакции попробовали ее обновить. Поймали бесконечный (99% вангую что так) таймаут
и дальше поведение вашей системы - непредсказуемо. От замороженного интерфейса - до OutOf
memory exception. А всё начиналось с причины - с пустяка вобщем-то. И техподдержка
будет видеть только Java OOM.
10 мар 20, 16:13    [22096274]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Leonid Kudryavtsev

Давайте возьмем простейший случай. Простешая функция:

public long add( long a, long b );

Юз кейс: функция должна возвратить сумму двух чисел, по правилам описанных в учебниках математики/арифметики начальной школы (imho 1-3 класс).

Этож классика. Кажется Фаулер об этом писал.
10 мар 20, 16:14    [22096275]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17568
mayton
Я не знаю. А что не бывает бага который стоит на границе двух звеньев? Я думаю бывает.
Яркий пример - перформанс баги. Это то что я говорил. Кто-то забыл обернуть SQL-запрос
catch - блоком с commit/rollback транзакции. Строчка осталась заблокированной. Другие
транзакции попробовали ее обновить. Поймали бесконечный (99% вангую что так) таймаут
и дальше поведение вашей системы - непредсказуемо. От замороженного интерфейса - до OutOf
memory exception. А всё начиналось с причины - с пустяка вобщем-то. И техподдержка
будет видеть только Java OOM.
один из кучи вариантов.
10 мар 20, 16:24    [22096286]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Если честно - я не знаю что делать. Я-бы просто включил log4j=TRACE и наблюдал за логами следующие сутки.
Если дефект был - он оставит больше следов в логах и можно провести расследование. Уровни логгеров
можно включать в онлайне и на проде и на UAT/QA/DEV вообще на всех средах.

Далее - по ситуации. Если дефект снова был но сведений недостаточно - я-бы собрал отдельный билд
для детализации TRACE материала который по стеку предшествует багу.

Вот как-то так. Надеюсь у коллег тоже будут какие-то рецепты. Но флаки-дефекты это самые сложные
в поиске. Они как квантовый эффект. Когда на них смотришь или их изменяешь через JProf/JMX/Debugger
то их не видно. Они как бы прячутся. Потом снова отключился от наблюдения - они воспроизводятся.
10 мар 20, 16:30    [22096289]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Leonid Kudryavtsev


Текст функции не показывается )))

очень смешно - а если там внутри входные лонги делят на 0? как можно написать тест не видя что внутри лежит?
а если говорить про методологию TDD то при описании функции суммирования будет return a+b и тут надо лишь предусмотреть крайнии значния
10 мар 20, 16:56    [22096299]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8475
а что в этом случае будет "крайнии значния"?
10 мар 20, 16:59    [22096304]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Leonid Kudryavtsev
а что в этом случае будет "крайнии значния"?

минус будет
10 мар 20, 17:04    [22096305]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
https://docs.oracle.com/javase/8/docs/api/java/lang/StrictMath.html#addExact-long-long-
10 мар 20, 18:31    [22096366]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
Valentin Kolesnikov
Member

Откуда:
Сообщений: 3267
11 мар 20, 09:17    [22096577]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Вот еще один кабанчик борется с ошибкой ценой в миллиард.

https://www.sql.ru/forum/1324163/strannyy-npe-to-poyavlyaetsya-to-ischezaet

(я здесь буду вести летопись NPE)
8 апр 20, 11:41    [22112712]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
Zzz79
Member

Откуда:
Сообщений: 66
mayton,я только сейчас оценил откуда ты))
когда уже дочитал почти блинова - и дошел до темы InetAdress))
8 апр 20, 20:36    [22113094]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
А что в этой теме? Напомни плиз.
8 апр 20, 20:58    [22113119]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 13 14 15 16 17 18 19 20 21 [22]
Все форумы / Java Ответить