/ / Ефективне тестування кількох студентів програмних рішень - c + +, одиничне тестування, автоматизовані тести

Ефективне тестування кількох студентів програмних рішень - c + +, одиничне тестування, автоматизовані тести

У рамках моєї лекції в C ++ студенти будутьдоводиться вирішувати завдання. Кожне рішення повинно виконувати ті ж функції з однаковою функціональністю і тими ж параметрами (ім'я функції, повернення значення, передавання параметрів). Тільки код усередині - інший.

Отже, я думаю про те, як протестувати всі рішення(близько 30) ефективним способом. Може бути, найкращий спосіб полягає в тому, щоб написати єдиний тест, а також скрипт оболонки (або щось подібне), яке копіює кожне рішення одноразово за допомогою модульного тесту і запускає його.

Але, можливо, існує інше і набагато краще рішення цієї проблеми.

Відповіді:

1 для відповіді № 1

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

Ви навіть можете йти так далеко, щоб дати студентамтестовий комплект замість специфікації, написаної в прозі. Це може ознайомити їх з концепцією тестового розвитку (хоча ми зазвичай схильні писати тести ітераційно, а не партіями).


1 для відповіді № 2

Так, одиничні тести є очевидним рішенням у більшості випадків.

Компілятор попереджень і статичний аналіз також корисний.

Час виконання програми за заданим набором параметрів - ще один досить автоматичний варіант - залежно від того, що ви зацікавлені в оцінці.

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


0 для відповіді № 3

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