Как вы генерируете тесты из спецификаций?
Я наткнулся на печатную статью Бертрана Мейера, где он утверждает, что тесты могут быть сгенерированы из спецификаций. Моя команда разработчиков не делает ничего подобного, но это звучит как хорошая техника для рассмотрения. Как вы генерируете тесты из спецификаций? Как бы вы охарактеризовали ваш успех в обнаружении программных ошибок с помощью этого метода?
4 ответа
Существуют всевозможные способы сделать это, начиная от того, что я считаю "формой искусства" (и не обязательно хорошим искусством), и заканчивая математически полученными тестами из формальных спецификаций. В конце концов, ваша команда разработчиков должна определиться с тем, что они могут сделать, основываясь на графике, с которым они работают. При этом, возможность тестировать программное обеспечение на соответствие спецификациям - это хорошо.
Только ваша команда может измерить "глубину" ваших тестов, и это, вероятно, будет зависеть от того, насколько хороши ваши спецификации. Если они скажут что-то вроде "пользовательский интерфейс входа должен предоставить кнопку отмены и кнопку входа, и они должны работать", ваши тесты будут довольно общими. Но имейте в виду, что даже очень общие тесты - это хорошо. Тестирование - это хорошо. Слишком многие разработчики плохо относятся к тестированию, но, в конце концов, вы поставляете программное обеспечение, которое должно работать, и для меня это очень много значит.
Эффективность ваших тестов при обнаружении программных сбоев будет зависеть от того, какие детали вы в них заложили. Что особенно приятно в написании тестовых процедур для спецификаций, так это то, что вы можете тестировать каждую сборку с тем же уровнем детализации, что и предыдущая сборка (обычно называемая регрессионным тестом).
Это может быть ссылка на RSpec, который является действительно умным способом разработки тестов как серии требований. Я все еще привыкаю к этому, но это было очень удобно как для определения того, что мне нужно сделать, так и для обеспечения того, чтобы я это делал.
@ Тим Салливан из Бертран Мейер, это может быть связано только с Эйфелевой:)
Я думаю, что он говорит о ESpec. Учитывая название RSpec от Ruby Folk, я думаю, что мы можем дать им ярлык "сильно вдохновленный".
Я бы сказал, что это зависит от ваших спецификаций. Я еще не работал где-нибудь, где спецификации были достаточно хороши, чтобы создавать полные модульные тесты из спецификаций - уровень детализации просто не был там. Мои менеджеры всегда говорили нам, что если мы укажем до этого уровня, они могут просто отправить спецификации в Индию и получить их по дешевке;)