Не понятно.
При тестировании алгоритмов все прозрачно.
В криптографии как?
Допустим тот же шифр “Цезаря”, при не известном значении сдвига как протестировать код на наличие ошибок или уязвимостей?
Если например тестируется какой-то рандом, то можно seed генератора задавать.
А безопасность это уже другой вопрос (но тоже можно в т.ч. и какие-нибудь опасные параметры для теста придумать), для начала хватит убедиться, что хотя бы просто работает на нескольких примерах ) Тем более в учебной задаче.
Ну и в целом цель создания автоматических тестов обычно — просто упростить работу человека, чтобы не вбивать всё руками 100500 раз в день после каждого изменения кода. Автоматизированное тестирование https://ru.hexlet.io/blog/posts/how-to-test-code
Так то уже работа тестировщика, пусть вбивает. Ему деньги за работу платят, и не малые…
А вопрос поставил не исходя из учебного задания.
Интересен прцесс тестирования не известного…
В данном случае алгоритм шифрования “Цезарь”.
P. S.
Я к тому что берем не тестировшика в “белом” ящике, а юзерерский подход “черного” ящика.
Т. е. для тестирования данного метода что предпримем?
Метод перебора символов - ничего не даст. Просто потратим временной ресурс…
ИМХО. Здесь скорее перебор и сравнение со словарным запасом подойдет.
Возьмите и сами проверьте свой код. У вас маленькие и большие символы сваливаются в цифры и смешиваются, так что при декодировании их раскодировать не получится. Что касается как поправить это зависит от условия задания. Но я бы добавил chr(‘A’) и chr(‘a’).
А вопрос поставил не исходя из учебного задания.
Интересен прцесс тестирования не известного…
В данном случае алгоритм шифрования “Цезарь”.
Если Вас интересует криптоанализ. То первое, что смотрим это распределение символов. Блочные шрифты и архивы имеют равномерное распределение. Архивы zip/7zip вылавливаются по макркерной комбинации бит.
Что касается текста Цезаря. То там достаточно найти наиболее частый символ это будет пробел.
Далее проверка по словарю.
Если у нас шифр просто за ксорин с паролем. То это вычисляется путем поиска пар символов(n-грамм) которые встречаются и не встречаются в обычных текстах. К примеру в русском языке нет слов на ь и ъ соответственно " ь" и " ъ" подсчитывается статистика, и если он
Добрый вечер! Выдает данную ошибку:not all arguments converted during string formatting Это к строке где ciphertext = ciphertext + chr(ord(i)… Я не совсем понимаю, что нужно исправлять в таком случае
Не везде они есть, и нельзя ж каждое изменение так прогонять — написать код и сразу кидать тестировщику. Время разработки сильно растянется. Тестировщику обычно периодически дают более-менее готовый релиз с менее очевидными багами.
Как вариант — зашифровать, расшифровать, проверить, что получилось исходное. (ну и что сразу после зашифровки не оно)
Еще можно один раз вручную проверить результат шифрования, сохранить, и в тесте просто проверять, что получается это же. Для популярных алгоритмов можно взять из тестов других известных реализаций.