У рамках моєї лекції в C ++ студенти будутьдоводиться вирішувати завдання. Кожне рішення повинно виконувати ті ж функції з однаковою функціональністю і тими ж параметрами (ім'я функції, повернення значення, передавання параметрів). Тільки код усередині - інший.
Отже, я думаю про те, як протестувати всі рішення(близько 30) ефективним способом. Може бути, найкращий спосіб полягає в тому, щоб написати єдиний тест, а також скрипт оболонки (або щось подібне), яке копіює кожне рішення одноразово за допомогою модульного тесту і запускає його.
Але, можливо, існує інше і набагато краще рішення цієї проблеми.
Відповіді:
1 для відповіді № 1Причина, чому одиничні тести є однією з найбільшихЕфективні типи автоматизованого тестування полягають у тому, що повернення інвестицій є порівняно невеликим (порівняно з іншими видами тестування), тому для мене є доцільно написати набір перевірок для тестів.
Ви навіть можете йти так далеко, щоб дати студентамтестовий комплект замість специфікації, написаної в прозі. Це може ознайомити їх з концепцією тестового розвитку (хоча ми зазвичай схильні писати тести ітераційно, а не партіями).
1 для відповіді № 2
Так, одиничні тести є очевидним рішенням у більшості випадків.
Компілятор попереджень і статичний аналіз також корисний.
Час виконання програми за заданим набором параметрів - ще один досить автоматичний варіант - залежно від того, що ви зацікавлені в оцінці.
створення базових класів з гарною діагностикою(який ви можете замінити реалізацію для вашої оцінки, якщо ви віддаєте перевагу) є ще одним варіантом. ви також можете надати інтерфейси, які вони повинні використовувати, і тримати дві реалізації. потім виконуйте програми як завжди, використовуючи діагностичну реалізацію. це залежить від того, що ви шукаєте.
0 для відповіді № 3
Може бути, я пропускаю щось очевидне, але не буде достатньо просто запустити код кілька разів з граничними значеннями параметрів параметрів?