Эффективное тестирование программных решений для нескольких студентов - PullRequest
1 голос
/ 26 апреля 2011

В рамках моей лекции по C ++ студенты должны будут выполнять задания.Каждое решение должно реализовывать одинаковые функции с одинаковыми функциональными возможностями и одинаковыми параметрами (имя функции, возвращаемое значение, передаваемые параметры).Отличается только код внутри.

Так что я думаю о том, как эффективно протестировать все решения (около 30).Возможно, лучший способ - написать модульный тест, а также сценарий оболочки (или что-то подобное), который компилирует каждое решение один раз с модульным тестом и запускает его.

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

Ответы [ 3 ]

1 голос
/ 26 апреля 2011

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

Вы можете даже пойти так далеко, чтобы дать студентам набор тестов вместо спецификации, написанной в прозе.Это может познакомить их с концепцией разработки через тестирование (хотя мы обычно пишем тесты итеративно, а не партиями).

1 голос
/ 26 апреля 2011

да, модульные тесты являются очевидным решением для большинства случаев.

предупреждения компилятора и статический анализ также полезны.

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

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

0 голосов
/ 26 апреля 2011

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

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