Вы водите машину или пользуетесь смартфоном? Если да, то каждый день вы запускаете огромное количество программного обеспечения — более 100 миллионов строк кода. Мы живем в мире, в котором доминирует программное обеспечение, и с ростом ИИ, беспилотных транспортных средств и стремительного роста IoT (Интернета вещей) потребуется разработать огромное количество программного обеспечения.

Это программное обеспечение также должно быть тщательно проверено на ошибки программирования, но написание тестов программного обеспечения утомительно, требует много времени и подвержено ошибкам. Разработчики тратят 30% своего времени на написание тестов и 25% на исправление ошибок, которые эти тесты пропустили.

Я верю, что в будущем машины будут писать большинство тестов программного обеспечения — то, что я называю автоматизированной генерацией тестов, — и я основал Fuzz Stati0n, чтобы создавать и управлять этим будущим.

Я основал компанию в 2016 году — наш первоначальный продукт находил ошибки только в приложениях на C и C++. После запуска было очень мало тяги — я совершил классическую ошибку, не сделав то, что нужно людям. Итак, вернемся к чертежной доске: пора менять направление.

Вернуться к доске для рисования

При отличной поддержке и советах от Santa Cruz Accelerates (Fuzz Stati0n только что окончил первую группу акселераторов) я изучил и протестировал на рынке несколько идей и решил переориентировать компанию на очень интересный и гораздо более крупный растущий рынок: серверный JavaScript. Приложения.

Наш новый продукт находит критические ошибки в JavaScript-приложениях, написанных для платформы Node JS. Node JS позволяет разработчикам писать веб-серверы и другие серверные приложения на JavaScript (первоначально JavaScript был предназначен только для веб-браузеров).

Я многому научился во время первой итерации продукта и внес три ключевых изменения:

  • Размер рынка. Рынок JavaScript/Node JS намного больше, чем рынок C/C++. Разработчиков Node JS насчитывается 11 миллионов человек, и это число удваивается каждый год.
  • Запатентованная интеллектуальная собственность. Первоначальная версия Fuzz Stati0n была основана на программном обеспечении с открытым исходным кодом. Я разработал технологию автоматического создания тестов с нуля, включая проприетарные алгоритмы, предназначенные для запуска определенных типов ошибок.
  • Низкая адаптация: Fuzz Stati0n будет предлагаться в виде недорогой подписки SaaS (программное обеспечение как услуга). Нашим клиентам требуется всего несколько минут, чтобы установить и интегрировать его в свои циклы сборки и тестирования.

Особенности и преимущества Fuzz Stati0n:

  • Находит необработанные исключения и другие ошибки, приводящие к сбою сервера, пропущенные модульными тестами, линтерами и инструментами статического анализа.
  • Расширяет охват рукописных модульных тестов, раскрывая больше путей в приложении.
  • Ноль ложных срабатываний. Каждая обнаруженная ошибка воспроизводима, и мы автоматически предоставляем код для ее воспроизведения.
  • Никаких изменений кода, аннотаций или настроек не требуется — все работает.

Несмотря на то, что нет сопоставимых предложений, существует конкуренция — передовые технологии всегда конкурируют со статус-кво. Сегодня критические ошибки в приложениях Node JS могут вызвать сбой рабочих серверов — эти текущие подходы к тестированию не учитывают эти ошибки:

  • Рукописные модульные тесты. Людям очень трудно думать обо всех различных вещах, которые могут пойти не так с частью программного обеспечения — никогда не будет достаточно рукописных тестов, чтобы охватить все крайние случаи.
  • Службы линтинга и статического анализа. JavaScript — очень динамичный язык. Это означает, что многие важные аспекты программы не определены до времени выполнения, и поэтому инструменты сканирования исходного кода не могут помочь.

Ядро системы было разработано и доказало свою эффективность при поиске критических ошибок в крупных проектах с открытым исходным кодом. Очень скоро мы запустим бета-версию программы и запустим ее весной.

Если вы заинтересованы в поиске критически важных ошибок в приложениях Node JS, подпишитесь на нашу рассылку на нашем веб-сайте.