Задание по курсу "Технологии программирования" ФИВТ МФТИ, 1 курс, 2019 год
"Шифратор" - программа, которая шифрует/дешифрует тексты на латинице шифром Цезаря и шифром Виженера. Кроме того, по предложенному для обработки тексту Шифратор можно обучить частотам встречаемости отдельных символов в тексте и по построенной модели взломать шифр Цезаря.
Требования:
- Шифрование оставляет нетронутыми знаки препинания, пробелы и переносы строк.
- Заглавные буквы шифрование переводит в заглавные и наоборот.
Для проверки корректности работы алгоритмов используется юнит-тестирование.
Чтобы можно было провести нагрузочное и стресс-тестирование, сформулируем нагрузочные требования к программе:
- Время работы каждой операции не превосходит 1 секунды
- Размер текстов, с которыми работает программа, не превышает 5*10^5 символов.
В части проекта, отвечающей за нагрузочное тестирование, проверяется соответствие заявленным требованиям при нагрузке ниже предельного значения. В частности, генерируется текст максимально допустимого размера, на котором проверяется корректность работы и замеряется время. Помимо того, используется реальный текст из 5*10^9 - 1 символа, с которым также выполняются все операции (такой текст нужен для тестирования взлома шифра).
В части проекта, отвечающей за стресс-тестирование, исследуется поведение программы при нагрузках, превышающих предельное значение. Тем самым, проверяется потенциальная возможность увеличить требования к нагрузке на систему. Корректность работы программы рассматривается на примере текста из 51906498 символов.
В случае данного проекта успешный результат юзабилити-тестирования означает удобство пользовательского интерфейса.
По результатам опроса тестировщиков-пользователей:
Плюсы программы:
- При неправильном вводе параметров пользователь видит, что конкретно сделано не так.
- Для ничего не знающего о программе пользователя есть возможность вывести подсказку по работе с программой с помощью параметра —help, где отражены описания каждого параметра и метода.
- При неправильном вводе работа программы сразу прекращается, поэтому нельзя получить некорректный результат.
Минусы программы:
- Запуск программы происходит из терминала, что является своего рода преградой для обычных пользователей - мало кто пользуется терминалом, поэтому имело бы смысл сделать визуальный интерфейс