Като част от моята лекция в C ++ учениците щетрябва да решат задачи. Всяко решение трябва да изпълнява същите функции със същата функционалност и същите параметри (име на функцията, връщаща стойност, преминаващи параметри). Само кода вътре е различен.
Така че мисля за начин да тествам всички решения(около 30) по ефективен начин. Може би най-добрият начин е да напишете тест за единица, както и скрипт (или нещо подобно), който компилира всяко решение веднъж с теста на устройството и го изпълнява.
Но може би има друго и много по-добро решение на този проблем.
Отговори:
1 за отговор № 1Причината, поради която единичните тестове са едни от най-важнитеефективните видове автоматизирани тестове са, защото възвръщаемостта на инвестициите е сравнително малка (в сравнение с други видове тестове), затова е абсолютно уместно да напиша проверка на тестовете.
Може дори да стигнете дотам, че да дадете на ученицитетестов пакет вместо спецификация, написана в проза. Това би могло да ги въведе в концепцията за развитие на тестовете (въпреки че обикновено сме склонни да пишем тестове итеративно, а не на партиди).
1 за отговор № 2
да, единичните тестове са очевидно решение за повечето случаи.
предупрежденията на компилатора и статичния анализ също са полезни.
времето на изпълнение на програмата, дадено като набор от параметри, е друга сравнително автоматизирана опция - зависи от това, което ви интересува да оцените.
създаване на базови класове с добра диагностика(което можете да замените с приложението за оценката си, ако предпочитате) е друга опция. можете също да предоставите интерфейсите, които трябва да използват, и да имате две реализации. след това упражнявате програмите, както обикновено, с помощта на диагностичното изпълнение. това зависи от това, което търсите.
0 за отговор № 3
Може би ми липсва нещо очевидно, но не би било достатъчно просто да се стартира кода няколко пъти с гранични стойности на параметрите за тестване?