25.07.2017 Views

Intro-CSharp-Book-v2015

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 />

лесно можем да проверим дали резултатът е коректен – трябва картите да

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!