Несколько приложений на нескольких языках на разных ОС. Должен ли я попробовать единый тестовый жгут? - PullRequest
1 голос
/ 22 декабря 2008

Я - новый участник проекта, который представляет собой смесь различных приложений, написанных на разных языках программирования как в операционных системах Unix, так и в Windows. Мне выпала честь выяснить, как реализовать ночные регрессионные сборки / тесты для всех этих различных приложений.

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

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

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

Будем приветствовать и ценить любые предложения или предложения по быстрому удару головой, задавая этот вопрос:)

Ответы [ 3 ]

1 голос
/ 22 декабря 2008

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

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

0 голосов
/ 25 декабря 2008

Трудно сказать, насколько это было бы возможно в вашем случае ... но было бы здорово, если бы вы могли придумать декларативный механизм описания ваших тестовых случаев, возможно, используя текстовые файлы или XML для детализации ожидаемых параметров выходы, ожидаемые коды возврата и т. д. различных случаев. Таким образом, если эти тестовые примеры действительны для нескольких ОС / сред, вы можете реализовать код для выполнения тестовых примеров один раз для каждой среды, но иметь возможность повторно использовать все тестовые примеры.

Конечно, ваш пробег может варьироваться в зависимости от сложности интерфейсов / скриптов / приложений, которые вы хотите протестировать, и от того, насколько легко было бы выразить тестовые случаи с данными.

Что касается разработки тестовых случаев, я также ранее отвечал за написание тестов для старого, "унаследованного" кода, который не был создан с учетом "тестируемости". Мне нравится предложение Эндрю; использование предыдущих данных об ошибках / регрессии было бы полезно, чтобы определить, какие тесты дадут вам максимальную отдачу от затраченных средств. Также было бы неплохо попытаться внедрить новые инженерные процессы в вашей команде - для каждой новой ошибки / проблемы / регресса, исправленной с этого момента, попробуйте добавить тестовый пример, который бы уловил проблему. Это поможет вам создать набор тестовых случаев, которые доказуемо актуальны ...

0 голосов
/ 22 декабря 2008

Только мои 2 цента стоят ...

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

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

...