Правила за съставяне на тестове
С цел да се трасира програма, трябва да се провери, че работи по някои от входните данни. Поради това тези входове трябва по някакъв начин да вдигнеш. После, след изпълнението на програмата на следните входове, което трябва да се сравнят резултатите с тези, трябва да се получи, ако програмата работи правилно. Този процес се нарича тестване.
Имайте предвид, че ако резултатът е различен от стандартния, изпитването се счита за успешен (!), Тъй като това помага да открием грешката. И ако отговорът е получен съвпада с право - твърде рано да се радваме. Един тест не може да бъде направено пълно потвърждаване на цялата програма, грешката може лесно да се скрие в частта, която остана неизпълнено в този момент. За да се провери цялата програма, проверете всички възможни специални случаи, да съставлява повече от един тест, а пакета тест.
В тази връзка има следните правила.
Правило 1. Всеки тест трябва да се състои не само от вложените материали, но също така и на съответния изход. Защото, за да се разбере правилно или грешно резултат, който е дал програма, което трябва да знаете правилния отговор, за да.
Проверете инструкциите тестове, в която сте отстраняване на грешки в програма. Малцина могат да бъдат постигнати, ако програмата, издаден от верния отговор, мислите, че наред и продължи да търси несъществуващи грешки. Дори по-лошо - ако все още се постигне работата на програма, както се очаква ви грешни резултати, обясни неправилното поведение на други тестове, ще бъде още по-трудно.
Последните два параграфа предполага един много важен извод: не е възможно да се изгради тестове с помощта на генератор на случайни числа. Разбира се, можете да направите случайна входни данни, но какво да кажем за правилния отговор? Къде да го вземе, ако се нямате представа, че има вход?
Правило 2. След програма старт функция правилно на един или на няколко прости тестове, усложни задачата, въведете тестовите условия гранични или теста, който съдържа стойностите, които излизат извън формата за въвеждане на данни. Понякога грешката може да се крие в тези части от програмата, които изглежда да е най-прозрачната. Например, за да проверите броя на променливи за равенство между тях. Ако до сега всички променливи в тестовете са различни, се опитват да се отърват от програмата чрез тестове, които сравняват стойности са едни и същи - всички наведнъж или само някои от тях в различни комбинации.
Правило 3. Не само изглежда като тестове.
Всички тестове могат да бъдат разделени в три групи: редовни. граница и критичен. Например, като се имат предвид ограниченията на параметъра 0 <= x <= 100 регулярными будут все тесты, где 1 <= x <= 99; граничными, где х = 0 и х = 100; остальные - критическими. Если ваша программа правильно работает для пяти-шести тестов из какой-либо группы, можно предположить, что она выдаст правильный результат и для всех остальных тестов из этой группы.
В комплекта тест, съставен от за проверка на програмите трябва да присъстват изпитания на първите две групи, както и за тестване на "безопасен" (виж глава 14.) - и третият също. Ако няколко входни параметри - комбинират! Да предположим, че в един и същи тест Първият параметър е границата, а вторият - редовна, а третият - от решаващо значение. Винаги е интересно да се види дали вашата програма е достатъчно стабилна, независимо дали това е да се справят с подобна задача.
Една добра и надеждна програма винаги трябва да напише чек, който съществува входния файл, не е празна и съдържа данни в правилния формат, както се чете от данните за входен файл е писано в определен диапазон от условия на проблема.
Правило 4: Корекция на програмата, която може да повлияе на резултатите от няколко изследвания.
След като сте намерили и коригират грешките, повторно изпълнение на програмата във всички тези тестове, които преди това не са били успешни (тоест, да се даде верен отговор) - и изведнъж има нов бъг?
Като цяло, обаче, изчерпателен тест апартамента за тестване на всяка програма - задачата е много тривиални, често се нуждаят от математически доказателства за пълнота.