10. Тестване и настройка
#include "sq_root.cpp"
/* Тестващо
гнездо */
int main()
{ double x;
while (cin >> x)
{ double y = squareroot(x);
cout <<
"squareroot of " << x << " = " << y << "\n";
}
return 0;
}
25
squareroot of 25 = 5 3 squareroot of 3 = 1.73205 q |
* Втори пример - входните стойности на функцията се генерират от цикъл.
// sqrtest2.cpp
#include <iostream>
#include <cmath>
using namespace std;
#include "sq_root.cpp"
/* Тестващо
гнездо */
int main()
{ double x;
for (x = 0; x <= 2; x
+= 0.5)
{ double y = squareroot(x);
cout <<
"squareroot of " << x << " = " << y << "\n";
}
return 0;
}
squareroot of 0 = 0
squareroot of 0.5 = 0.707107 squareroot of 1 = 1 squareroot of 1.5 = 1.22474 squareroot of 2 = 1.41421 |
* Трети пример - входните стойности се получават от генератор за случайни
числа.
// sqrtest3.cpp
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <ctime>
using namespace std;
#include "sq_root.cpp"
void rand_seed()
{
int seed = static_cast<int>(time(0));
srand(seed);
}
double rand_double(double a, double b)
{ return a + (b - a) * rand()*(1.0/RAND_MAX);
}
/* Тестващо
гнездо */
int main()
{ rand_seed();
int i;
for (i = 1; i <= 4; i++)
{ double x = rand_double(0,
1E6);
double
y = squareroot(x);
cout <<
"squareroot of " << x << " = " << y << "\n";
}
return 0;
}
squareroot of 185949 = 431.218
squareroot of 680715 = 825.055 squareroot of 17883.8 = 133.73 squareroot of 238868 = 488.742 |
Подбор на
тестови примери.
1. Докато се пише програмата, трябва да имаме прост тестов пример,
на който знаем решението.
2. Програмата се проверява с други тестови примери, също с известни
решения - позитивни тестове.
3. Включват се и граничните случаи. Например за функцията squareroot
това са 0, големи числа (напр. 1Е20) и
числа, близки до 0 (напр.1е-20). Целта е да се определят
границите на параметрите, за които функцията работи вярно.
4. Функцията се проверява с негативни тестови примери - некоректни
входни данни. Такива за squareroot
са отрицателни стойности на параметъра.