2016-11-01 1 views
1

Если проект проходит тесты в Ruby 2.0.0-p648 и Ruby 2.3.1, имеет ли смысл также тестировать версии, такие как 2.1.8 и 2.2.3?Имеет ли смысл тестировать промежуточные версии Ruby?

Были ли какие-либо функции языка, которые работали в Ruby 2.0 и Ruby 2.3, но временно не работали или работали иначе, например Ruby 2.2?

ответ

1

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

Логически, тестирование на ранних и последних версиях должно охватывать большинство сценариев сбоев в отношении языковых функций (хотя не обязательно все языковые ошибки, поскольку новые могут быть введены). Насколько я знаю, не было функции Ruby, которая была намеренно добавлена ​​или удалена в одной версии, а затем это решение было отменено в более поздней версии. Если: Возможно, в вашем производственном коде вы обнаруживаете существование функции, а затем полностью используете эту функцию - в этом случае промежуточная версия Ruby, которая имеет функцию, но не в ее последнем состоянии, может выйти из строя.

Могут быть и другие оговорки, и философски говоря, когда вы начинаете тестирование, вы хотите избежать слишком логичного «это должно работать, потому что ...» мышления. Точка тестирования - , продемонстрируйте, что ваш код не подводит вас так, как вы его охватили (ну, есть больше глубины, чем это, но ответ будет слишком длинным, если он вступит в тестовые философии). Если вы хотите объявить «работает во всех версиях Ruby MRI от 2.0.0 до 2.3.1», тогда вы будете чувствовать себя более безопасным, если вы его протестировали. Фактически, когда вы делаете такое заявление в публичном месте, я обычно просто говорю что-то ближе к необработанному факту - «проверен в версиях 2.0.0, 2.1.4 и 2.3.1».

Очевидно, что убытки возвращаются. Если у вас нет проблем в 2.1.9, очень маловероятно, что у вас возникнет проблема в 2.1.10 - в какой-то момент вам будет стоить больше, чтобы проверить все незначительные вариации, даже просто посмотреть результаты теста, чем преимущество дополнительного покрытия.

Обычный ответ на эту проблему состоит в том, чтобы протестировать столько вариаций, которые могут обрабатывать ваши автоматизированные тестовые среды, и вы можете быть обеспокоены настройкой и обслуживанием. Если использование нескольких версий Ruby выполняется для вас параллельно вашим поставщиком тестовых услуг - например, вы используете Travis - тогда относительно дешево тестировать несколько версий. Таким образом, вы можете получить как можно больше информации об изменениях окружающей среды, которые вы ожидаете увидеть «в дикой природе», так как вас могут беспокоить.

Смежные вопросы