Выбрать главу

Автосигнализация утратила свою эффективность, поскольку перестала быть необычной. Однако, отключаясь от нее, мы упускаем из виду по-настоящему важные сигналы – а это может привести к значительным ошибкам.

Наверняка машина для голосования тестировалась тысячи раз, а затем сотни раз использовалась на региональных выборах без каких-либо проблем. Тем не менее проблема возникла, и это изрядно замедлило процесс выбора следующего лидера свободного мира. Если же мы с вами посмотрим на внутреннюю кухню отрасли по разработке программного обеспечения, то легко поймем, почему серьезные программные сбои часто не привлекают внимания. Программы создаются разработчиками, то есть людьми, производящими множество страниц с логическими инструкциями, которые машина затем интерпретирует и в соответствии с которыми работает. В большинстве компаний-разработчиков готовый программный продукт проверяется тестерами – людьми, которые смотрят на программу со всех сторон в надежде найти ошибки. Тестеры делают то, что делали бы на их месте обычные пользователи. Они нажимают на большие кнопки, выбирают самые типичные опции, открывают и закрывают файлы и т. д. Проблема состоит в том, что зачастую пути, по которым идут обычные пользователи, не всегда позволяют выявить сбои или ошибки в программе. Какие-то проблемы выявляются, однако способность тестеров найти сбои быстро достигает уровня плато – система, по сути, приобретает иммунитет к стандартным техникам тестирования. Однако многие ошибки, упускаемые из внимания, оказываются потом чуть ли не самыми важными (минус 16 тысяч 22 голоса – это серьезно). То есть обычный метод охоты за сбоями несовершенен и позволяет упускать именно те важнейшие ошибки, которые как раз и необходимо найти.

Процессу тестирования программ необходим шок, позволяющий предупредить парадокс пестицидов и пробиться сквозь создаваемое сбоями плато. Решение этой проблемы может состоять в использовании подхода, известного в наши дни под названием «фаззинг» и способного справиться почти с любым плато, вызванным акклиматизацией.

вернуться

23

Оценка уязвимости машин для голосования – одно из любимых хобби Хью. Он даже снялся для документального фильма Hacking Democracy, номинанта на премию «Эмми», и детально рассказал о технологических недостатках имеющихся систем. Узнать больше об этом фильме можно на сайте www.hackingdemocracy.com. См. также: Dana Milbank, Tragicomedy of Errors Fuels Volusia Recount, The Washington Post, November 12, 2000.

вернуться

24

Boris Beizer, Software Testing Techniques, 2nd ed. (London: International Thomson Computer Press, 1990).

вернуться

25

Отличное описание фаззинга с технической точки зрения приведено в книге Ari Takanen, Jared DeMott, Charlie Miller, Fuzzing for Software Security Testing и Quality Assurance (Norwood, MA: Artech House Inc., 2008).