💀
Второй курс РПО
Разработка программных модулей
Разработка программных модулей
  • Модели разработки
  • Ошибки и отладка программ
  • Средства разработки алгоритмов
    • Основные принципы и стадии тестирования
  • Сложностные классы
  • Эмуляторы операционных систем
  • Сложность сортировки
  • Уровни тестирования
  • Задание №1
  • Регрессионное тестирование
  • Тестирование «белым ящиком»
  • Как делать оценку сложности?
  • Алгоритмы и сложность
  • Тестирование "белым ящиком" №2
  • Сложность алгоритмов
  • Тестирование "белым ящиком" №3
  • Тестирование "Чёрным ящиком»" №1
  • Тестирование "Черным ящиком" №2
  • Оценка сложности эвристических алгоритмов
  • Принципы ООП
  • Тестирование "Черным ящиком" №3
  • КТ - В3
  • Модульное тестирование
    • С кодами
  • Модульное тестирование
  • Абстрактные классы и интерфейсы в Python
  • Структуры в Python по аналогии с C++
    • Диалоги гениев
  • Делегаты в Python
    • Ещё более не смешные диалоги
  • Регулярные выражения в Python от простого к сложному
  • Python: Коллекции
  • Параметризованные классы (шаблоны)
  • Указатели и операции со списками в Python
  • Интеграционное тестирование
  • Работа с классами. Перегрузка методов
  • Определение операций в классе.
  • Создание наследованных классов
  • Интеграционное тестирование
  • Работа с объектами через интерфейсы
  • Использование стандартных интерфейсов
  • Работа с типом данных "Структура"
  • Коллекции. Параметризованные классы
  • Использование регулярных выражений
  • Операции со списками
  • Что такое паттерны проектирования?
  • Шпаргалка по шаблонам проектирования
    • [Habr] Шпаргалка
  • UML-диаграммы проектирования
  • Использование основных шаблонов.
  • Использование каких то там шаблонов
  • 15-я Практическая
  • 16-я Практическая
  • Graphviz Online
  • 17-я Практическая
  • Введение в теорию программирования: Объектно-ориентированный подход
  • Документирование софта и стандарты
  • C# Ввод и вывод
  • Оптимизация кода: просто о главном
  • Автоматизация разработки технической документации
  • Автоматизированное документирование и первичные данные
  • ADO.NET что это?
Powered by GitBook
On this page
  • Пример 1. Граничные значения
  • Условие
  • Пример 2. Проверка четности
  • Условие
  • Пример 3. Исключение неверных данных
  • Условие
  • Пример 4. Проверка сложных условий
  • Условие
  • Пример 5. Крайние значения
  • Условие
  • Проведение тестирования
  • Пример 1. Граничные значения
  • Пример 2. Проверка четности
  • Пример 3. Исключение неверных данных
  • Пример 4. Проверка сложных условий
  • Пример 5. Крайние значения

Тестирование "Черным ящиком" №2

04.12.2024

Пример 1. Граничные значения

Условие

Функция принимает число a. Выводит "ok", если число от 1 до 10 включительно, иначе "error".

Python:

py
def f(a):  # def - определение функции
    if 1 <= a <= 10:  # if - условие, проверяет диапазон от 1 до 10
        return "ok"  # return - возвращает "ok" при выполнении условия
    return "error"  # return - возвращает "error" при несоответствии

# Тесты
print(f(1))  # print - вывод результата функции f(1)
print(f(10))  # минимальное и максимальное значения
print(f(0))  # проверка значения ниже диапазона
print(f(11))  # проверка значения выше диапазона

C++:

cpp
#include <iostream>  // include - подключает библиотеку для ввода/вывода
using namespace std;  // using - позволяет использовать стандартное пространство имён

string f(int a) {  // string - возвращаемый тип, int a - входной параметр
    if (a >= 1 && a <= 10) {  // if - проверка диапазона от 1 до 10
        return "ok";  // return - возвращает "ok"
    }
    return "error";  // return - возвращает "error" при несоответствии
}

int main() {  // main - главная функция программы
    cout << f(1) << endl;  // cout - выводит результат f(1)
    cout << f(10) << endl;  // endl - перевод строки
    cout << f(0) << endl;  // проверка значения ниже диапазона
    cout << f(11) << endl;  // проверка значения выше диапазона
    return 0;  // return - завершение программы
}

Пример 2. Проверка четности

Условие

Функция принимает число a. Выводит "even" для чётных чисел, "odd" для нечётных.

Python:

py
def f(a):  # def - определение функции
    if a % 2 == 0:  # % - проверка остатка от деления
        return "even"  # return - возвращает "even" для чётных
    return "odd"  # return - возвращает "odd" для нечётных

# Тесты
print(f(2))  # вызов функции с чётным числом
print(f(3))  # вызов функции с нечётным числом

C++:

c++
#include <iostream>  // include - подключает библиотеку для ввода/вывода
using namespace std;

string f(int a) {  // string - тип возвращаемого значения
    if (a % 2 == 0) {  // % - проверка остатка от деления
        return "even";  // return - возвращает "even" для чётных
    }
    return "odd";  // return - возвращает "odd" для нечётных
}

int main() {
    cout << f(2) << endl;  // вывод результата для чётного числа
    cout << f(3) << endl;  // вывод результата для нечётного числа
    return 0;
}

Пример 3. Исключение неверных данных

Условие

Функция принимает число a. Если a — целое число, выводитa * 2. Иначе возвращает "error".

Python:

py
def f(a):  # def - определение функции
    if not isinstance(a, int):  # isinstance - проверяет тип данных
        return "error"  # return - возвращает "error" при ошибке
    return a * 2  # * - умножение, возвращает результат

# Тесты
print(f(5))  # вызов функции с корректным числом
print(f("test"))  # вызов функции с некорректным значением

Пример 4. Проверка сложных условий

Условие

Функция принимает числа a и b. Выводит "ok", если a > 0 и b < 0, иначе "error".

Python:

py
def f(a, b):  # def - определение функции с двумя параметрами
    if a > 0 and b < 0:  # and - логическое И, проверка двух условий
        return "ok"  # return - возвращает "ok", если условия выполнены
    return "error"  # return - возвращает "error", если условия не выполнены

# Тесты
print(f(1, -1))  # вызов функции с выполнением обоих условий
print(f(0, -1))  # первое условие не выполнено
print(f(1, 1))  # второе условие не выполнено

Пример 5. Крайние значения

Условие

Функция принимает число a. Если a < 1_000_000, возвращает a + 1. Иначе выводит "overflow".

Python:

py
def f(a):  # def - определение функции
    if a < 1_000_000:  # < - проверка, что число меньше миллиона
        return a + 1  # + - сложение, возвращает число увеличенное на 1
    return "overflow"  # return - возвращает "overflow" при превышении

# Тесты
print(f(999999))  # вызов функции для числа в пределах диапазона
print(f(1_000_000))  # вызов функции для числа вне диапазона

Проведение тестирования

Пример 1. Граничные значения

Условие:

Функция принимает число a. Возвращает "ok", если число от 1 до 10 включительно, иначе "error".

Тестовые данные:

Входное значение a

Ожидаемый результат

Результат выполнения

1

"ok"

"ok"

10

"ok"

"ok"

0

"error"

"error"

11

"error"

"error"

Вывод:

Тесты успешно пройдены.


Пример 2. Проверка четности

Условие:

Функция принимает число a. Возвращает "even" для чётных чисел, "odd" для нечётных.

Тестовые данные:

Входное значение a

Ожидаемый результат

Результат выполнения

2

"even"

"even"

3

"odd"

"odd"

Вывод:

Тесты успешно пройдены.


Пример 3. Исключение неверных данных

Условие:

Функция принимает число a. Если a — целое число, возвращает a * 2. Иначе возвращает "error".

Тестовые данные:

Входное значение a

Ожидаемый результат

Результат выполнения

5

10

10

"test"

"error"

"error"

Вывод:

Тесты успешно пройдены.


Пример 4. Проверка сложных условий

Условие:

Функция принимает числа a и b. Возвращает "ok", если a > 0 и b < 0, иначе "error".

Тестовые данные:

Входные значения a, b

Ожидаемый результат

Результат выполнения

1, -1

"ok"

"ok"

0, -1

"error"

"error"

1, 1

"error"

"error"

Вывод:

Тесты успешно пройдены.


Пример 5. Крайние значения

Условие:

Функция принимает число a. Если a < 1_000_000, возвращает a + 1. Иначе возвращает "overflow".

Тестовые данные:

Входное значение a

Ожидаемый результат

Результат выполнения

999999

1000000

1000000

1_000_000

"overflow"

"overflow"

Вывод:

Тесты успешно пройдены.

PreviousТестирование "Чёрным ящиком»" №1NextОценка сложности эвристических алгоритмов

Last updated 5 months ago