847

Помогу бесплатно: Java и SQL

Помогу советом изучающим Java и SQL или начинающим программистам.


Не решаю задачи, не делаю ДЗ. Только объясняю что, как и почему устроено.


Рейтинг в топку, просто хочу помочь.

Помощники

243 поста785 подписчиков

Правила сообщества

Нельзя обсуждать Политику.
Ругаться и оскорблять.

Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий
А как с тестированием на java, по простому как нибудь объяснить ,принцип построения тестов.
раскрыть ветку (4)
2
DELETED
Автор поста оценил этот комментарий

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


Скажем если у вас есть функция которая рассчитывает площадь квадрата по длине его стороны, то для длины стороны 1 , ожидаемый результат результата вычисления площади - тоже 1, 0 -> 0, 2 -> 4, при отрицательном параметре должна случиться ошибка вычисления - это тоже вариант результата и ее нужно сравнить с ожидаемой ошибкой.


Фреймворки/библиотеки (junit, testng, assertj и т.п.) для тестирования упрощают подстановку разных параметров, проверку совпадения результата с ожидаемым, запуск различных тестов и построение отчетов.


Результатом выполнения кода может является не только возвращаемое значение, но и изменения в состоянии системы. Когда тесты смотрят только на возвращаемое значение, то это тестирование типа "непрозрачный ящик", если тесты сравнивают еще и изменения в состоянии системы актуальные с ожидаемыми, то это тестирование типа "прозрачный ящик". Под изменением состояния например понимается ситуация когда вызванный код делает запись в базу данных, или на диск что-то пишет, тогда можно проверить что было записано на диск или в базу.


Обычно хочется тестировать каждым тестом как можно меньше кода, поэтому если тестируемая функция вызывает другую функцию, то мы этого на самом деле хотели бы избежать, для этого существуют так называемые моки - способ сфальсифицировать какую-то функцию. А иногда хочется проверить какие параметры были переданны в эту внутреннюю функцию - для этого используются "шпионы". Шпионы и моки создаются с помощью специальных библиотек типа PowerMock или Mockito. Но вообще в широком смысле вызов функции это и например рест вызов какого-то сервиса, тогда придется его тоже сфальсифицировать - подменить специальным сервисом который создан всецело для целей тестирования, а не осуществления какой-то работы.


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

1
DELETED
Автор поста оценил этот комментарий
Какие тесты вы имеете ввиду? Unit? Api? UI?
1
Автор поста оценил этот комментарий
Есть принцип Arrange Act Assert или подготовка, действие, проверка. На этом и строятся тесты, подготавливаешь данные, среду или еще что, производишь какие либо действия и сравниваешь фактический и ожидаемый результат.

Плюс что за тестирование? Есть разработка через тестирование, есть ui тесты, есть API тесты, есть когда сценарии по bdd пишут
1
Автор поста оценил этот комментарий

К тестированию лучше подходить с точки зрения, что любое ПО постоянно меняется. Не всегда в лучшую сторону, но меняется постоянно.

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

Первый вариант - ручное тестирование. Когда изменения в программе становятся небольшими, по сравнению со всей программой, то ручное тестирование начинает занимать в разы большее время по сравнению с самой разработкой.

Вот тут мы приходим к тому, что нужно этот процесс автоматизировать.

Суть простая - на каждый метод каждого класса создаётся тест - то есть вызывается этот метод и мы знаем, что должны получить.

Желательно запускать с неправильными данными: передавать отрицательные числа, нули или очень большие значения и смотреть, что произойдёт.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества