Несколько приложений на разных языках в разных ОС. Должен ли я попробовать унифицированную тестовую систему?

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

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

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

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

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


person Chris    schedule 22.12.2008    source источник


Ответы (3)


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

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

person Andrew Cowenhoven    schedule 22.12.2008

Всего лишь мои 2 цента...

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

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

person Ola Eldøy    schedule 22.12.2008

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

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

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

person reuben    schedule 25.12.2008