You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
972 Въведение в програмирането със C#<br />
За съжаление много програмисти спират с тестването в този момент. Някои<br />
по-неопитни програмисти правят дори нещо по-лошо: измислят какъв да е<br />
пример (който е прост частен случай на задачата), не го тестват на хартия,<br />
пишат някакъв код и накрая като тръгне този пример, решават, че са<br />
приключили. Не правете така! Това е като да ремонтираш лека кола и<br />
когато си готов, без да запалиш двигателя да пуснеш колата леко по някой<br />
наклон и ако случайно тръгне надолу да се произнесеш компетентно и<br />
безотговорно: "Готова е колата. Ето, движи се надолу без никакъв<br />
проблем."<br />
Какво още да тестваме?<br />
Тестването на примера, който сте проиграли на хартия е едва първата<br />
стъпка от тестването на програмата. Следва да извършите още няколко<br />
задължителни теста, с които да се убедите, че програмата ви работи<br />
коректно:<br />
- Сериозен тест за обичайния случай. Целта на този тест е да провери<br />
дали за по-голям и по-сложен пример вашата програма работи<br />
коректно. За нашата задача с разбъркването на картите такъв тест<br />
може да е тесте от 52 карти.<br />
- Тестове за граничните случаи. Те проверяват дали вашата програма<br />
работи коректно при необичаен вход на границата на допустимото. За<br />
нашата задача такъв пример е разбъркването на тесте, което се<br />
състои само от една карта.<br />
- Тестове за бързодействие. Тези тестове поставят програмата в<br />
екстремални условия като й подават големи по размерност входни<br />
данни и проверяват бързодействието.<br />
Нека разгледаме горните групи тестове една по една.<br />
Сериозен тест на обичайния случай<br />
Вече сме тествали програмата за един случай, който сме измислили на ръка<br />
и сме проиграли на хартия. Тя работи коректно. Този случай покрива<br />
типичния сценарий за употреба на програмата. Какво повече трябва да<br />
тестваме? Ами много просто, възможно е програмата да е грешна, но да<br />
работи по случайност за нашия случай.<br />
Как да подготвим по-сериозен тест? Това зависи много от самата задача.<br />
Тестът хем трябва да е с по-голям обем данни, отколкото ръчния тест, но<br />
все пак трябва да можем да проверим дали изхода от програмата е<br />
коректен.<br />
За нашия пример с разбъркването на карти в случаен ред е нормално да<br />
тестваме с пълно тесте от 52 карти. Лесно можем да произведем такъв<br />
входен тест с два вложени цикъла. След изпълнение на програмата също<br />
лесно можем да проверим дали резултатът е коректен – трябва картите да