Проверка и тестване на входните подпрограми
Съдържание
Помислете за проблема:
Опишете процедурата Означава(X, Y, AMean, GMean) изчисляване на средната аритметична стойност AMean = (х+Y.)/2 и средната геометрична стойност GMean = (х·Y.) 1/2 от две положителни числа х и Y. (х и Y. - вход, AMean и GMean - изходни параметри от реален тип).
Моля, обърнете внимание, че положителността на параметрите X и Y е необходима за изчисляване на геометричната средна стойност, която се появява в средната процедура. Никой не гарантира, че само правилните входни данни ще бъдат предадени на процедурата, но правилната работа на самата процедура е грижа на разработчика на тази процедура. Той трябва да се "защити" срещу неправилни входни данни, така че проверката им трябва да бъде точно вътре в процедурата Означава .
Ние знаем как да проверим въведеното: можете да използвате изявлението Assert. Препоръчително е да използвате инструкцията Assert за всеки параметър отделно. Тоест, този пример трябва да има два оператора:
Красотата на алгоритъма в подпрограмата е, че той може лесно да бъде извикан няколко пъти с различни входни стойности. Това ни позволява да преминем към по-надежден начин за тестване. Сега можем да „пришием“ извикванията на подпрограмата с необходимите тестови стойности в основната програма.
Така че, нека бъде написана средната процедура. Той има два входни и два изходни параметъра. Означава всеки тестов случай трябва да провери дали дадените стойности X и Y и двата изходни параметъра имат очаквани стойности. Т.е.:
- трябва да зададете стойностите на входните параметри (X, Y);
- извикайте средната процедура, като й предадете тези входни стойности;
- проверете дали стойностите на изходните параметри (AMean, GMean) са същите, както се очаква.
Нека се опитаме да го програмираме. Нека започнем с най-простия пример: за X, Y | Трябва да се получат стойности X = Y AMean = X, GMean = X .
Въпрос: как ще извършим проверката (стъпка 3)? Спомнете си, че при решаване на проблеми със серии, вече сме извършили проверка на намерената стойност, използвайки инструкцията Assert. Като параметър трябва да предадете логически израз, чиято стойност е вярна, ако решението е правилно. Трябва да проверим дали AMean = X, GMean = X. Може би така?