
ЛР4 Ихсанова
.docxЛабораторная работа 4
Постановка задачи
Придумать задачу, аналогичную разобранной задаче. Написать программу. Провести ее тестирование методом классов эквивалентностей и граничных значений. При обнаружении ошибок в программе провести регрессионное тестирование.
Придуманная программа: Предположим, у нас есть программа для расчета скидки на билеты в кинотеатре. Программа должна принимать на вход два параметра: стоимость билета и возраст клиента. В соответствии с заданными условиями, программа должна выдавать значение скидки:
1. Если возраст клиента составляет от 18 до 30 лет (включительно), то скидка должна составлять 10% от общей стоимости билета.
2. Если возраст клиента составляет от 31 до 50 лет (включительно), то скидка должна составлять 5% от общей стоимости билета.
3. Если возраст клиента меньше 18 лет или больше 50 лет, то скидка не предоставляется.
Код программы
#include <iostream>
using namespace std;
int main() {
double totalCost;
int age;
setlocale(LC_ALL, "rus");
cout << "Введите стоимость билета: ";
cin >> totalCost;
cout << "Введите возраст клиента: ";
cin >> age;
double discount = 0;
if (age >= 18 && age <= 30) {
discount = 0.1 * totalCost;
}
else if (age >= 31 && age <= 50) {
discount = 0.05 * totalCost;
}
cout << "Скидка составляет: " << discount << endl;
return 0;
}
Классы эквивалентности и тестирование граничных условий
Классы эквивалентности:
Возраст клиента [18; 30] - ожидается скидка в размере 10%.
Возраст клиента [31; 50] - ожидается скидка в размере 5%.
Возраст клиента [0; 18] - ожидается отсутствие скидки.
Возраст клиента [50; 100] - ожидается отсутствие скидки.
Тестирование:
№ теста |
Возраст |
Сумма |
Расчет скидки |
Ожидаемый результат |
Результат |
1 |
19 |
250 |
10% |
Скидка есть |
|
2 |
41 |
300 |
5% |
Скидка есть |
|
3 |
15 |
150 |
0 |
Скидки нет |
|
4 |
55 |
300 |
0 |
Скидки нет |
|
Добавлена проверка на положительные значения возраста и стоимости билета.
№ теста |
Возраст |
Сумма |
Расчет скидки |
Ожидаемый результат |
Результат |
1 |
19 |
-250 |
10% |
Ошибка |
|
2 |
-22 |
300 |
10% |
Ошибка |
|
Тестирование граничных условий:
Проведем тесты по граничным значениям.
№ теста |
Возраст |
Сумма |
Расчет скидки |
Ожидаемый результат |
Результат |
1 |
18 |
300 |
10% |
Скидка есть |
|
2 |
30 |
300 |
10% |
Скидка есть |
|
3 |
50 |
300 |
5% |
Скидка есть |
|
4 |
0 |
300 |
0 |
Скидки нет |
|
5 |
100 |
300 |
0 |
Скидки нет |
|
Тестирование граничных условий не выявило ошибок.
Код программы после устранения ошибок
#include <iostream>
using namespace std;
int main() {
double totalCost;
int age;
setlocale(LC_ALL, "rus");
cout << "Введите стоимость билета: ";
cin >> totalCost;
cout << "Введите возраст клиента: ";
cin >> age;
if (age < 0) {
cout << "Ошибка в возрасте" << endl;
system("pause");
}
double discount = 0;
if (totalCost < 0) {
cout << "Ошибка в стоимости билета" << endl;
system("pause");
}
if (age >= 18 && age <= 30) {
discount = 0.1 * totalCost;
cout << "Скидка есть = 10%!" << endl;
}
else if (age >= 31 && age <= 50) {
discount = 0.05 * totalCost;
cout << "Скидка есть = 5%!" << endl;
}
else {
cout << "Скидки нет!" << endl;
}
cout << "Скидка составляет: " << discount << endl;
return 0;
}
С
криншоты
программы
Выводы
Было изучено тестирование методами «черного ящика», классы эквивалентности и тестирование граничных условий, регрессионное тестирование.
Была разработана программа для анализа скидок по возрасту. Для нее были проведены тестирования по классам эквивалентности и тестирование граничных условий. После выявления ошибок были проведены регрессионные тестирования.