Практическая работа №7. Написание тестов
![]()
|
НАПИСАНИЕ ТЕСТОВ "Нельзя считать хорошей общественную практику, поощряющую внедрение технологий, которые в один прекрасный день могут обернуться полицейским государством". Брюс Шнайер, "Секреты и ложь" Нельзя быть абсолютно уверенным в том, что программы всегда будут работать правильно, если только не протестировать функции encryptMessage () и decryptMessage () со всеми возможными видами сообщений и значениями ключа. Но на это уйдет масса времени, так как придется набирать текст сообщения в программе шифрования, устанавливать ключ, запускать программу, копировать шифрротекст в программу де- шифрования, задавать ключ там и запускать дешифрование. Причем все это придется делать многократно с различными ключами и сообщениями, а это огромный объем утомительной работы! Вместо этого мы напишем другую программу, которая будет генерировать случайные сообщения и случайные ключи для тестирования программ шифрования. Эта программа будет шифровать сообщение с помощью функции encryptMessage () из программы transpositionEncrypt.py, а затем передавать шифротекст функции decryptMessage () из программы transpositionDecrypt.py. Если простой текст, возвращенный функцией decryptMessage (), совпадет с оригинальным сообщением, то программа-тестер будет знать, что программы шифрования и дешифрования работают нормально. Процесс автоматического тестирования программы с помощью другой программы называется автоматизированным тестированием. Испытанию должны подвергнуться многочисленные комбинации сообщений и ключей, и с тестированием тысяч таких комбинаций компьютер справится всего за одну-две минуты. Если все тесты будут пройдены успешно, то можно быть уверены в том, что наш код работает правильно. Исходный код программы Transposition Test ![]() Работа программы-тестера начинается с импорта программ transpositionEncrypt.ру и transpositionDecrypt.ру как модулей. Из них будут вызываться функции encryptMessage () и decryptMessage (). Далее программа-тестер создает случайное сообщение и случайный ключ. Тот факт, что это сообщение представляет собой лишь случайный набор букв, не имеет никакого значения, так как программе нужно всего-навсего проверить, что в результате шифрования и последующего дешифрования сообщения мы получим его исходную версию. Программа повторяет этот тест в цикле 20 раз. Если на каком-то этапе окажется, что строка, возвращенная функцией transpositionDecrypt (), не совпадает с исходным сообщением, программа выдаст сообщение об ошибке и заверщит работу. Практическая работа №7 Задание 1: Что выведет на экран следующая программа? ![]() Задание 2: Что выведет на экран следующая программа? ![]() Задание 3: Проверьте работоспособность программы-тестера (добавьте скриншот) |