💀
Второй курс РПО
Разработка программных модулей
Разработка программных модулей
  • Модели разработки
  • Ошибки и отладка программ
  • Средства разработки алгоритмов
    • Основные принципы и стадии тестирования
  • Сложностные классы
  • Эмуляторы операционных систем
  • Сложность сортировки
  • Уровни тестирования
  • Задание №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. Модульное тестирование

С кодами

Пример кода с тестированием частей

Большой код программы

# Основной код с несколькими модулями

# Калькулятор: сложение, вычитание, умножение, деление
def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

def multiply(a, b):
    return a * b

def divide(a, b):
    if b == 0:
        raise ValueError("Деление на ноль невозможно")
    return a / b

# Работа с текстами: подсчет слов и символов
def count_words(text):
    return len(text.split())

def count_characters(text):
    return len(text)

# Преобразование данных: перевод строки в заглавные буквы
def to_uppercase(text):
    return text.upper()

Тестирование отдельных модулей

# Тестирование функций калькулятора
def test_calculator():
    assert add(2, 3) == 5, "Сложение"
    assert subtract(5, 3) == 2, "Вычитание"
    assert multiply(2, 3) == 6, "Умножение"
    try:
        divide(10, 0)
    except ValueError:
        pass  # Деление на 0 должно вызвать ошибку
    else:
        assert False, "Деление на ноль не вызвало ошибку"
    assert divide(10, 2) == 5, "Деление"

# Тестирование работы с текстами
def test_text_processing():
    assert count_words("Hello world") == 2, "Подсчет слов"
    assert count_words("") == 0, "Пустой текст"
    assert count_characters("abc") == 3, "Подсчет символов"
    assert count_characters("") == 0, "Подсчет символов в пустой строке"

# Тестирование преобразования данных
def test_transformations():
    assert to_uppercase("hello") == "HELLO", "Перевод в верхний регистр"
    assert to_uppercase("") == "", "Пустая строка в верхнем регистре"

Запуск тестов

if __name__ == "__main__":
    # Тестируем отдельные части программы
    test_calculator()
    test_text_processing()
    test_transformations()
    print("Все тесты пройдены!")

Пояснение

  1. Основной код: Содержит модули, которые решают конкретные задачи: математические операции, обработка текстов, преобразование данных.

  2. Тесты: Проверяют каждый модуль на корректность. Например:

    • В калькуляторе тестируем все базовые операции, включая деление на ноль.

    • В текстах проверяем работу на строках разной длины.

    • В преобразованиях убеждаемся, что строки корректно переводятся в верхний регистр.


Преимущества

  1. Связь с программными модулями: Каждый модуль из большого кода можно тестировать отдельно.

  2. Гибкость: Легко дополнять тесты при добавлении новых модулей.

  3. Простота поиска ошибок: Если тест "падает", сразу видно, где искать проблему.

PreviousМодульное тестированиеNextМодульное тестирование

Last updated 5 months ago