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

Ефективно тестване на множество програми за програмиране - c ++, тестване на единица, автоматизирани тестове

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

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

Но може би има друго и много по-добро решение на този проблем.

Отговори:

1 за отговор № 1

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

Може дори да стигнете дотам, че да дадете на ученицитетестов пакет вместо спецификация, написана в проза. Това би могло да ги въведе в концепцията за развитие на тестовете (въпреки че обикновено сме склонни да пишем тестове итеративно, а не на партиди).


1 за отговор № 2

да, единичните тестове са очевидно решение за повечето случаи.

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

времето на изпълнение на програмата, дадено като набор от параметри, е друга сравнително автоматизирана опция - зависи от това, което ви интересува да оцените.

създаване на базови класове с добра диагностика(което можете да замените с приложението за оценката си, ако предпочитате) е друга опция. можете също да предоставите интерфейсите, които трябва да използват, и да имате две реализации. след това упражнявате програмите, както обикновено, с помощта на диагностичното изпълнение. това зависи от това, което търсите.


0 за отговор № 3

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