Программа установлена, но заказчик не может выполнить нужную операцию; разработчик показывает работающую демонстрацию и считает результат переданным. Экспертиза программного обеспечения помогает разобраться, какую версию передали, что она делает в проверяемых условиях и соответствует ли её работа согласованным требованиям. Исследуют сам продукт, исходный код, настройки и связанные с ними документы — в объёме, необходимом для ответа на вопросы.
До полного внесудебного исследования можно согласовать предварительный прогноз после изучения достаточного объёма материалов: к каким выводам, вероятнее всего, приведёт исследование, насколько уверенно их можно сделать и каких данных пока не хватает. Оценка может оказаться неблагоприятной или показать, что ответ получить нельзя. Если судебная экспертиза уже назначена, назначенный эксперт не даёт одной стороне частный прогноз по объекту дела; вопросы и дополнительные материалы передают через суд или орган расследования.
Когда нужно исследовать программу
Обращаться имеет смысл, когда спор можно связать с конкретным продуктом, версией, действием и ожидаемым результатом. Фразы «система неудобная» или «код плохой» сами по себе не задают проверяемых условий. Подготовьте пример операции, исходные данные и документ, в котором описан нужный результат.
- Приёмка разработки: часть функций отсутствует, данные обрабатываются иначе, чем предусмотрено заданием, либо переданный комплект не позволяет установить и запустить продукт.
- Разные версии у сторон: в репозитории есть функция, которой нет в установленной программе, или показанная демонстрация не соответствует переданному релизу.
- Сбои и потеря данных: нужно проверить последовательность операций, возможную техническую причину отказа и влияние настроек, внешних сервисов или инфраструктуры.
- Медленная работа: требуется измерить время ответа при заданной нагрузке и определить, что ограничивает скорость работы: программа, сервер, база данных или сеть.
- Изменения и скрытые функции: нужно установить различия между версиями, проверить обращения к внешним адресам, обработку данных и действия, не описанные в документации.
- Спор о происхождении кода: исследуют совпадения и различия, сторонние компоненты, историю изменений и технические сведения о сборке.
Для исследования учётной системы, обмена между подразделениями и переноса данных подходит экспертиза корпоративных информационных систем. Если спор касается сроков, этапов, организации работ и фактического объёма разработки, обратитесь к разделу об экспертизе процесса разработки ПО. В одном деле могут потребоваться оба исследования, но объект и вопросы у них различаются.
Что может установить эксперт
Технический вывод относится к исследованному экземпляру программы и установленным условиям проверки. Эксперт может описать назначение и реализованные функции, воспроизвести недостаток, проверить комплектность, сравнить версии и объяснить подтверждённую материалами причину сбоя. Каждый вывод связывают с исследованными объектами, требованиями и наблюдениями.
Соответствие заданию проверяют по отдельным требованиям. Для каждого указывают документ и его редакцию, сценарий, входные данные, ожидаемый и фактический результат. Если требование неоднозначно, эксперт описывает возможные технические толкования и их влияние на проверку. Какой документ определяет обязанности сторон и нарушен ли договор, решает суд.
Сходство фрагментов кода не устанавливает автоматически авторство конкретного человека или принадлежность исключительного права. Запись в истории изменений содержит заявленные сведения об авторе и времени изменения; их сопоставляют с другими материалами. Библиотеки, шаблоны и сгенерированные файлы могут совпадать по причинам, не связанным с копированием самостоятельной разработки. Внутреннее устройство, поддерживаемость и реализацию требований рассматривают при экспертизе качества исходного кода. Отдельные вопросы о заимствовании рассматриваются при исследовании плагиата исходного кода.
Эксперт не определяет виновность, умысел, правомерность использования программы и юридическую ответственность разработчика. Он может установить состав компонентов, наличие текстов лицензий, механизм передачи данных и технические условия доступа. Юрист и суд оценивают права, условия лицензирования и правовые последствия. Чтобы определить стоимость разработки или устранения недостатков либо размер убытков, нужны отдельное задание и специалист соответствующего профиля; количество строк кода само по себе такую стоимость не определяет.
Какие материалы подготовить
Для первого обращения достаточно описания спора и перечня сохранившихся материалов. Не отправляйте через общую форму пароли, ключи, полную клиентскую базу или коммерческие секреты. Сначала согласуйте способ передачи и допустимый объём раскрытия. Для исследования обычно нужны:
- Договор, техническое задание и согласованные изменения, спецификации, макеты, документы приёмки и перечень спорных требований.
- Переданный дистрибутив, исполняемые файлы, образ виртуальной машины или иной сохранённый экземпляр программы с указанием источника и даты получения.
- Исходные тексты, история версий, инструкции по сборке, сведения о компиляторе, зависимостях, параметрах и внешних компонентах — когда это необходимо для ответа на поставленные вопросы.
- Настройки, схема размещения, версии операционной системы и базы данных, характеристики оборудования, сведения о внешних сервисах и доступных ролях пользователей.
- Входные данные и последовательность действий, при которых возникает проблема, ожидаемый результат, сообщения об ошибках и результаты прежних испытаний.
- Журналы приложения, сервера, базы данных и средств развёртывания за спорный период; сведения о часовом поясе и настройке времени.
- Переписка о требованиях и недостатках, заявки в системе учёта ошибок, резервные копии и документы о передаче релизов.
Нужен именно экземпляр спорного периода. Более новая рабочая версия не доказывает, что та же функция присутствовала и работала при приёмке. Если старой версии нет, эксперт оценивает сохранившиеся файлы, резервные копии, журналы и документы и указывает, какие обстоятельства ими подтверждаются, а какие восстановить нельзя.
Если исходный код недоступен
На часть вопросов можно ответить, исследуя исполняемую программу: проверить операции через интерфейс, результаты расчётов, обработку файлов, время ответа или сетевые обращения. Без кода обычно сложнее объяснить внутренний механизм дефекта, сравнить реализацию и проверить происхождение компонентов. Возможность конкретного ответа зависит от объекта и доступных наблюдений; отсутствие кода не означает ни автоматического отказа, ни возможности решить все вопросы.
Для облачного сервиса отдельно фиксируют дату, адрес, доступные роли и признаки версии. При наблюдении за работающим сервисом фиксируют его состояние на тот момент. Когда нужна оценка прошлого периода, запрашивают сохранённые выгрузки, журналы и сведения поставщика. Ограничения SaaS и распределение доступа подробнее разобраны в разделе об экспертизе облачных сервисов.
Как сохранить данные и не остановить работу
До обновления, переустановки или исправления ошибки сохраните доступные исходные файлы и журналы. Зафиксируйте, откуда и когда получена копия, кто её подготовил, какие действия выполнялись и что могло измениться. Контрольная сумма помогает проверить неизменность копии после фиксации, но сама по себе не подтверждает достоверность её содержимого или дату создания.
Нагрузочные, разрушающие и другие опасные проверки рабочей системы требуют предварительного согласования. По возможности исследуют изолированную копию с зафиксированными настройками. Обезличивание и замена данных тоже могут изменить поведение программы: способ подготовки тестового набора описывают, а влияние отличий оценивают. Если копия не воспроизводит существенные условия, это ограничение отражают в выводах.
Доступ согласуют с уполномоченным владельцем: определяют среду, разрешённые действия, срок и права отдельной учётной записи. Назначенный судебный эксперт получает объекты и уточняет условия доступа через назначивший орган. Если сторона сама собрала дополнительные материалы, передать их назначенному эксперту всё равно нужно в установленном процессуальном порядке.
Как проверяют функции, ошибки и производительность
Сначала описывают полученные объекты и их связь с предметом спора. Название файла или метка версии не гарантируют, что у сторон один и тот же продукт: сопоставляют состав поставки, контрольные суммы, сведения о сборке, настройки и доступные журналы передачи. Затем выбирают методы, которые позволяют ответить на поставленные вопросы.
Проверка требований и воспроизведение дефекта
При функциональном испытании фиксируют исходное состояние, роль пользователя, входные данные и шаги проверки. Полученный результат сопоставляют с требованием. В описании проверки указывают ошибку и условия её возникновения. Если воспроизвести ошибку не удалось, изучают прежние журналы и условия возникновения; один успешный запуск не опровергает все прежние отказы.
Не каждый обнаруженный недостаток связан с реализацией программы. Например, отказ обмена может быть вызван изменённым форматом входного файла, недоступным внешним сервисом или правами учётной записи. Проверяют альтернативные объяснения. Для анализа структуры, запросов и целостности данных может потребоваться экспертиза базы данных и СУБД.
Исследование исходных текстов и сборки
Исходный код изучают, когда нужно объяснить алгоритм, выяснить, как программа обрабатывает спорный случай, сопоставить версии или состав компонентов. Результаты автоматического анализатора проверяет специалист: предупреждение инструмента ещё не доказывает дефект, а отсутствие предупреждений не подтверждает отсутствие всех ошибок.
При проверке сборки фиксируют инструменты, зависимости, параметры и внешние ресурсы. Успешная сборка показывает, что в указанных условиях из представленного комплекта удалось получить исполняемые файлы. Работоспособность проверяют отдельно — запуском и испытаниями. Побайтовое несовпадение с переданным файлом не всегда означает другой код: на результат могут влиять метки времени, подпись и параметры сборки. Причины различий устанавливают исследованием; одного сравнения файлов для этого недостаточно.
Нагрузка, безопасность и изменения
Для оценки производительности заранее определяют операцию, объём данных, число одновременных обращений, допустимое время ответа и конфигурацию среды. Сравнивают результаты повторных измерений и наблюдают загрузку ресурсов. Результат испытания на небольшой базе нельзя без обоснования распространить на рабочую нагрузку или любое число пользователей в будущем.
По вопросам безопасности исследуют конкретные механизмы: права доступа, обработку входных данных, обращения к внешним адресам, хранение секретов, состав зависимостей. Проверки проводят в согласованных границах. Если обнаружена функция передачи данных, устанавливают, что именно, куда и при каких условиях передаётся; это ещё не вывод о злонамеренности автора. Проверка известных сценариев не гарантирует отсутствия всех уязвимостей и скрытых функций.
Хронологию изменений сопоставляют по нескольким источникам. Временные метки файлов и записи репозитория могут зависеть от настроек часов и действий пользователей. Когда материалы не позволяют связать изменение с определённой датой или лицом, эксперт прямо указывает это. Учётная запись сама по себе не позволяет установить, кто лично выполнил действие.
Можно ли заранее оценить возможный результат
При внесудебном обращении после первичного изучения достаточных материалов можно оценить, к каким выводам, вероятнее всего, приведёт исследование: например, воспроизводится ли заявленный недостаток, достаточно ли материалов для проверки спорной версии и какие альтернативные причины нужно исследовать. Сначала определяют, достаточно ли материалов и относится ли задача к компетенции специалиста; для содержательного прогноза изучают сами материалы. Его формат, глубину, стоимость и срок согласуют отдельно.
Прогноз помогает решить, продолжать ли полное исследование и какие данные искать. Он может показать, что претензия технически не подтверждается или что доступного объёма недостаточно. После получения новых версий, журналов и результатов испытаний оценка может измениться. Окончательные ответы эксперт даёт после полного исследования согласованного комплекта, без гарантии нужного вывода и исхода спора.
Для назначения судебной экспертизы можно запросить информационное письмо о возможности исследования, кандидатуре специалиста, материалах, ориентировочной стоимости и сроке работы. Такое письмо не подменяет исследование и не содержит частного прогноза назначенного эксперта по существу дела.
Примеры вопросов на экспертизу программного обеспечения
Вопросы привязывают к определённому объекту, версии, периоду и документам. Вместо общей оценки «качественно ли сделана программа» полезно указать спорную функцию, условия её выполнения и требование, с которым нужно сопоставить результат. При подготовке ходатайства можно обсудить, на какие вопросы удастся ответить техническими методами; окончательный круг и редакцию определяет суд или иной назначивший орган.
Ниже приведены примеры для разных задач. В конкретном деле выбирают те, которые относятся к предмету спора и для которых есть необходимые материалы; весь список в задание переносить не требуется.
- Каково назначение представленной версии программы и какие функции в ней реализованы?
- Какие результаты даёт программа при выполнении указанных сценариев на представленных данных и соответствуют ли они перечисленным требованиям технического задания?
- Какие компоненты содержит переданный комплект и достаточно ли их для установки и запуска в предусмотренной документацией среде?
- Воспроизводится ли описанный отказ при указанных настройках, входных данных и последовательности действий?
- Какие технические обстоятельства подтверждают причину отказа и какие альтернативные объяснения можно проверить по представленным материалам?
- Как выявленный недостаток влияет на выполнение конкретных операций и использование программы по указанному назначению?
- Можно ли собрать программу из переданных исходных текстов в описанной среде и чем полученный результат отличается от представленного исполняемого экземпляра?
- Какие различия имеются между представленными версиями, в том числе в алгоритмах обработки данных и составе компонентов?
- Какие операции чтения, изменения и передачи данных выполняет исследуемая программа в проверенных сценариях?
- Каковы показатели времени ответа при заданном объёме данных и нагрузке; какие технические ограничения установлены?
- Какие совпадения и различия обнаружены в сравниваемых фрагментах кода с учётом библиотек, шаблонов и автоматически созданных файлов?
- Какие обстоятельства изменения программы подтверждаются представленными журналами, версиями и иными материалами, а какие установить нельзя?
Вопросы о том, кто нарушил договор, кому принадлежат права и должен ли разработчик возместить убытки, требуют правовой оценки. Техническое исследование предоставляет факты для этой оценки. Если нужно рассчитать стоимость работ или ущерб, предмет и состав специалистов определяют отдельно.
Форматы работы и использование результата
Судебную экспертизу проводят после процессуального назначения. Эксперт работает с поставленными вопросами и переданными объектами, ходатайствует о недостающих материалах через назначивший орган и направляет ему заключение. Сведения о квалификации, опыте по нужной технологии и отсутствии конфликта интересов проверяют при выборе исполнителя; оплата стороной не определяет содержание выводов.
Внесудебное исследование заказывают по договору, например для переговоров, претензии или подготовки позиции по спору. В письменном документе описывают объекты, требования, методы, условия испытаний, результаты, ограничения и ответы. Порядок представления и статус документа зависят от вида судопроизводства. Суд решает вопрос о приобщении и оценивает документ.
Если заключение уже подготовлено, рецензия позволяет проверить достаточность исходных данных, применимость методов и связь результатов с выводами. Она не отменяет заключение и не заменяет испытание программы. Консультация и справка помогают разобрать отдельный технический вопрос и спланировать дальнейшую работу. Предварительную оценку нельзя выдавать за окончательный результат полной экспертизы.
Из заключения должно быть понятно, как исследование полученного экземпляра и проверка требований привели к ответам на вопросы. Для этого приводят сведения о версиях, настройках, входных данных и проверках, иллюстрации или протоколы результатов, а также условия, при которых вывод применим. При необходимости суд вызывает эксперта для пояснений; вопросы о дополнительной или повторной экспертизе разрешаются в установленном процессуальном порядке. Основные обязанности и ограничения эксперта изложены в Федеральном законе от 31 мая 2001 года № 73-ФЗ с учётом применимости его положений к конкретному исполнителю и процессу.
Стоимость, сроки и первое обращение
Ориентиры по форматам: судебная экспертиза — от 100 000 ₽, срок от 10 рабочих дней; внесудебное исследование — от 100 000 ₽, срок от 10 рабочих дней; рецензия — от 80 000 ₽, срок 10 рабочих дней; консультация и справка — от 20 000 ₽, срок 2–3 рабочих дня. Точный расчёт зависит от вопросов, числа версий и сред, объёма кода и данных, необходимости восстановить окружение, провести нагрузочные проверки или привлечь нескольких специалистов.
Дистанционная работа возможна, если согласованный доступ и копии обеспечивают нужные условия исследования. Выезд, работа с закрытой сетью и возможность срочного выполнения обсуждаются после изучения задачи; обещать полный объём испытаний к нужной дате до этого нельзя. Порядок хранения материалов, доступа к ним, возврата носителей и удаления рабочих копий согласуют заранее, с учётом назначения экспертизы и обязанностей по сохранению материалов.
Кратко опишите спор, назовите программу и версию, объясните, что требуется установить, и перечислите доступные материалы. Для связи используйте форму обращения или телефон 8 (800) 333-24-09. Передачу полных архивов и предоставление доступа к системе согласуйте заранее. Если экспертиза уже назначена, сообщите об этом сразу: дальнейшую передачу объектов организуют через назначивший орган.
Проведение экспертизы по уголовному делу
Судебная экспертиза по уголовному делу производится государственными судебными экспертами и иными экспертами из числа лиц, обладающих специальными знаниями.
Согласно постановлению Пленума Верховного Суда Российской Федерации от 21 декабря 2010 г. № 28 «О судебной экспертизе по уголовным делам», негосударственными судебно-экспертными учреждениями признаются некоммерческие организации, созданные на основании Гражданского кодекса Российской Федерации и Федерального закона «О некоммерческих организациях» и ведущие судебно-экспертную деятельность согласно своим уставам.
По сведениям организации, проведение судебных экспертиз предусмотрено её уставом (см. действующую редакцию в разделе «Документы организации»). Это само по себе не означает автоматического поручения любой экспертизы. Возможность поручить конкретное исследование определяет назначающий орган.
В случаях, перечисленных пунктом 5 постановления № 28, когда экспертизу по уголовному делу назначает суд, ему следует мотивировать в определении или постановлении поручение исследования учреждению либо конкретному лицу. Пункт 5 постановления № 28 связывает выбор негосударственного учреждения с невозможностью провести исследование в государственном учреждении, обслуживающем соответствующую территорию: например, из-за отсутствия нужного специалиста, материально-технической базы или специальных условий, либо с отводом компетентных государственных учреждений. Дополнительно учитываются квалификация эксперта, основания для отвода и действующий перечень экспертиз, выполняемых только государственными судебно-экспертными организациями.