Санкт-Петербург и Москва

+7 (812) 982-86-69

Регионы РФ

+7 (905) 222-86-69

Электронная почта

info@szexp.ru

Экспертиза соответствия работ по разработке и сопровождению программного обеспечения техническому заданию — исследование программы, ее исходного кода, документации и истории разработки, которое устанавливает, выполнены ли требования договора и технического задания, какой объем работ фактически сделан, какого качества результат и по чьей причине возникли ошибки и срывы сроков.

Споры о разработке программ устроены одинаково. Заказчик заплатил аванс, получил систему с опозданием, и она работает не так, как он ожидал. Исполнитель уверен, что сделал все по заданию, а претензии заказчика касаются новых требований, которых в задании не было. Каждая сторона приносит в суд свою переписку и свое понимание задания. Суд без специальных знаний не может ни прочитать код, ни проверить, выполняет ли программа описанную функцию. Эту задачу решает экспертиза разработки по техническому заданию.

АНО «СЗЭПЦ» проводит экспертизы с 1990 года и относится к первым негосударственным экспертным организациям на территории Российской Федерации. АНО «СЗЭПЦ» — некоммерческое судебное экспертное учреждение, зарегистрировано Министерством юстиции Российской Федерации под учетным номером 7814053482. Заключения АНО принимают арбитражные суды и суды общей юрисдикции более чем в сорока регионах. Ниже описано, что устанавливает экспертиза программного обеспечения по договорам разработки и сопровождения, как эксперт работает с техническим заданием, кодом и репозиторием, как проходят работы по экспертизе, какие вопросы ставить суду и чем эта экспертиза отличается от сертификации в системе Федеральной службы по техническому и экспортному контролю и от метрологической экспертизы.

Что такое экспертиза разработки по техническому заданию

Экспертиза разработки по техническому заданию относится к компьютерно-техническим экспертизам и сочетает программное и информационное направления. Объект исследования — результат работ: программа в исполняемом виде и в исходных текстах, ее документация, а также следы процесса разработки: история изменений в системе контроля версий, задачи в системе управления проектом, протоколы испытаний, акты.

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

Экспертиза программного обеспечения в этом смысле близка к строительно-технической экспертизе качества работ: там проект и нормативы, здесь техническое задание и стандарты. Разница в том, что требования к программе редко описаны так же полно, как требования к зданию, и значительная часть работы эксперта уходит на восстановление того, что именно стороны договорились сделать.

Когда нужна экспертиза программного обеспечения

Типовые ситуации, в которых стороны обращаются к эксперту:

заказчик отказывается принимать работу и подписывать акт, исполнитель требует оплаты и направляет односторонний акт;

заказчик расторгает договор и требует вернуть аванс, исполнитель просит оплатить фактически выполненную часть;

программа сдана, но в эксплуатации выявлены ошибки, и стороны спорят, являются ли они недостатками работ или следствием действий заказчика;

исполнитель не передал исходный код, документацию или права на результат, хотя договор это предусматривал;

подрядчик по сопровождению не укладывается в сроки реакции на инциденты или списывает часы, которые заказчик не признает;

после смены подрядчика новый исполнитель заявляет, что код предыдущего невозможно поддерживать, и нужно установить состояние переданного результата;

государственный или муниципальный заказчик отказывается от приемки по контракту, а исполнитель оспаривает отказ.

Во всех этих случаях экспертиза программного обеспечения дает суду то, чего не дают документы сторон: независимую проверку самого результата.

Техническое задание как эталон

Техническое задание — главный документ, с которым эксперт сравнивает результат. От его качества зависит, насколько категоричными будут выводы.

Для автоматизированных систем структуру технического задания устанавливает ГОСТ 34.602-2020, для отдельных программ — ГОСТ 19.201-78 из Единой системы программной документации. Стандарты требуют описать назначение и цели создания системы, функциональные требования, требования к интерфейсам, производительности, надежности, безопасности, документации, порядок испытаний и приемки. Задание, составленное по такой структуре, эксперт проверяет пункт за пунктом.

На практике задание часто устроено иначе: краткий перечень функций на двух страницах, ссылки на прототип, устные договоренности на встречах. В таких случаях эксперт собирает требования из всех документов, которые стороны признают: договора и приложений, утвержденных макетов интерфейса, протоколов встреч, переписки, комментариев в системе управления задачами. В заключении по каждому требованию указывается источник. Если требование противоречиво или неоднозначно, эксперт это прямо фиксирует и не выбирает толкование за суд.

Изменения требований по ходу работ

Требования меняются почти в каждом проекте. Заказчик просит добавить функцию, исполнитель соглашается в переписке, но дополнительное соглашение не подписывается. В споре заказчик требует выполнить и новую функцию, и старую, а исполнитель считает, что новая заменила старую.

Эксперт восстанавливает хронологию изменений по переписке и задачам и показывает, какие требования действовали к моменту сдачи. Юридическое значение переписки определяет суд, но без хронологии эксперта суду сложно понять, что именно было согласовано.

Гибкая разработка без полного задания

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

Что устанавливает экспертиза

Круг вопросов зависит от спора. Чаще всего экспертиза программного обеспечения устанавливает следующие обстоятельства.

Соответствие функций

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

Объем фактически выполненных работ

При расторжении договора суду нужен объем выполненного. Эксперт определяет, какие требования реализованы полностью, какие частично, какие не начаты, и может оценить трудоемкость выполненного по объему кода, истории изменений и типовым нормам, если такая методика применима. Стоимость выполненных работ в рублях определяет эксперт-экономист или оценщик на основе установленного объема.

Качество результата

Помимо соответствия функциям, задание обычно содержит требования к качеству: производительность, надежность, удобство использования, защищенность. Эксперт использует модель качества ГОСТ Р ИСО/МЭК 25010-2015 и проверяет измеримые показатели: время отклика, поведение при нагрузке, обработку ошибок, устойчивость к некорректным данным. Если количественные требования в задании не указаны, эксперт оценивает, пригодна ли программа для использования по назначению, и указывает основания такой оценки.

Исходный код и документация

Если договор обязывает передать исходный код, эксперт проверяет, полон ли он: собирается ли из переданного кода та программа, которая работает у заказчика, есть ли все модули, библиотеки, сценарии сборки и настройки. Проверяется и качество кода: структура, наличие комментариев, дублирование, соблюдение принятых стандартов оформления, результаты статического анализа. Документация сравнивается с перечнем, предусмотренным заданием: руководства пользователя и администратора, описание архитектуры, программа и методика испытаний.

Причины ошибок и отказов

Ошибки в работе программы имеют разные причины, и от причины зависит ответственность. Дефект в коде исполнителя, неверная настройка на стороне заказчика, изменение внешнего сервиса, с которым интегрирована система, нехватка ресурсов сервера, изменения, внесенные третьими лицами после сдачи. Эксперт воспроизводит ошибку, анализирует журналы и историю изменений кода и устанавливает, какая из причин действовала.

Экспертиза работ по сопровождению

Сопровождение программы оформляется договором оказания услуг по главе 39 Гражданского кодекса Российской Федерации или смешанным договором. Обычно в нем есть соглашение об уровне обслуживания: категории инцидентов, время реакции и устранения, режим работы поддержки, допустимое время недоступности, порядок учета часов на доработки. Споры возникают, когда заказчик считает, что обязательства нарушены, а исполнитель предъявляет отчеты о выполненных работах.

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

Отдельный вопрос — обновления. Если исполнитель обязан обновлять используемые библиотеки и платформу, эксперт проверяет, делалось ли это, и не стали ли устаревшие компоненты причиной уязвимостей или отказов.

Государственные и муниципальные контракты

Для контрактов по Федеральному закону от 5 апреля 2013 года № 44-ФЗ «О контрактной системе в сфере закупок товаров, работ, услуг для обеспечения государственных и муниципальных нужд» статья 94 обязывает заказчика провести экспертизу результатов исполнения контракта своими силами или с привлечением экспертов и экспертных организаций. По ее итогам заказчик принимает результат или направляет мотивированный отказ.

Экспертиза программного обеспечения по государственному контракту строится так же, как по коммерческому договору, но с учетом двух особенностей. Техническое задание входит в документацию о закупке и не может быть изменено по соглашению сторон вне процедур закона. Заключение приемочной экспертизы становится основанием для приемки или отказа, и при споре суд назначает уже судебную экспертизу, которая проверяет в том числе обоснованность приемочной.

Свободные лицензии и сторонние компоненты

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

Правовые последствия использования компонентов, в том числе вопрос о том, перешли ли права по статье 1296 Гражданского кодекса о программах, созданных по заказу, решает суд. Экспертиза дает ему фактическую основу: что и откуда взято.

Мобильные приложения и веб-сервисы

Разработка мобильного приложения или веб-сервиса добавляет свои требования: поддержка версий операционных систем, отображение на разных экранах, работа без сети, публикация в магазинах приложений, интеграция с платежными системами. Эксперт проверяет приложение на наборе устройств, указанном в задании, а если его нет — на распространенных устройствах, и фиксирует условия проверки. Для веб-сервисов проверяется работа в основных браузерах и на мобильных экранах. Если спор касается только сайта, подробности приведены на странице об экспертизе сайта.

Экспертиза программного продукта и программных комплексов

Экспертиза программного продукта — термин, который используют, когда объект исследования — готовое изделие, передаваемое по лицензии или поставляемое вместе с оборудованием. В отличие от заказной разработки, здесь нет технического задания, написанного под заказчика. Эталоном выбирают документацию производителя, спецификация, условия лицензионного договора или договора поставки. Экспертиза программного продукта устанавливает, соответствуют ли его свойства заявленным, есть ли недостатки и являются ли они существенными для использования по назначению.

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

Программный комплекс экспертиза: распределение ответственности

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

Приемка работ и односторонний акт

По статье 720 Гражданского кодекса заказчик обязан осмотреть и принять выполненную работу, а при обнаружении отступлений от договора немедленно заявить об этом подрядчику. Заказчик, принявший работу без проверки, лишается права ссылаться на явные недостатки, которые могли быть обнаружены при обычном способе приемки. Для программ это правило работает особенно жестко: многие ошибки проявляются только в эксплуатации, и спор о том, были ли они явными при приемке, решается экспертизой.

Если заказчик не подписывает акт и не заявляет мотивированных возражений, исполнитель подписывает акт в одностороннем порядке, и суды в ряде случаев признают его доказательством сдачи. Мотивированный отказ должен содержать конкретные недостатки, и здесь заключение специалиста до суда дает заказчику аргументы, которые суд примет. Экспертиза затем проверяет, были ли указанные в отказе недостатки на момент сдачи и существенны ли они.

Типовые недостатки разработки и их оценка

На практике недостатки разработки повторяются, и у каждого свое значение для спора.

Функция не реализована. Самый простой случай: требование есть, а функции в программе нет. Вывод категорический.

Функция реализована с отклонениями. Работает, но не так: иной порядок действий, другие поля, иной формат отчета. Эксперт описывает отклонение и указывает, препятствует ли оно использованию.

Ошибки при нестандартных данных. Программа работает на демонстрационных примерах, но ломается на реальных объемах или необычных значениях. Если задание содержало требования к объемам данных, проверка ведется по ним.

Недостаточная производительность. Операции выполняются, но слишком долго для рабочего процесса. Вывод зависит от наличия количественных требований в задании.

Незащищенность. Программа не защищает данные так, как требовало задание: хранит пароли в открытом виде, не разграничивает права, уязвима к типовым атакам. Выявленные уязвимости эксперт описывает без инструкций по их использованию.

Неполная передача. Нет исходного кода части модулей, документации, инструкций по сборке, прав администратора на серверы.

Технический долг. Код работает, но устроен так, что его дорогая поддержка неизбежна: дублирование, отсутствие тестов, запутанная структура. Если задание не содержало требований к качеству кода, эксперт описывает состояние кода, но не называет его недостатком по договору.

Смена подрядчика и передача проекта

Когда заказчик расторгает договор и передает проект новому исполнителю, возникают два спора: с прежним подрядчиком о результате и с новым о том, что он получил. Новый исполнитель часто заявляет, что прежний код невозможно развивать, и предлагает переписать систему заново за полную стоимость.

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

Программная экспертиза и экспертиза программных средств

Программная экспертиза — общее название исследований, объект которых программа. В классификации компьютерно-технических экспертиз она называется программно-компьютерной, или компьютерно программной экспертизой. Экспертиза соответствия работ техническому заданию — ее частный случай, сосредоточенный на договорных спорах. Если вопрос касается назначения программы, ее функций вне связи с договором, наличия недокументированных возможностей, общий обзор приведен на странице о программно-компьютерной экспертизе.

Экспертиза программных средств — термин из нормативных документов и стандартов, где программным средством называют программу вместе с документацией. Экспертиза программных средств охватывает и сам код, и эксплуатационную документацию, и программу испытаний. Для договорных споров это существенно: недостаток документации тоже может быть недостатком результата, если задание ее предусматривало.

Компьютерно программная экспертиза в судах назначается под разными названиями, и это не влияет на допустимость заключения. Важно, чтобы в определении был понятен предмет и вопросы относились к специальным знаниям эксперта в области программирования и программной инженерии. Программная экспертиза, экспертиза программных средств и компьютерно программная экспертиза, поставленные в определении, будут выполнены одним экспертом по одной методике.

Экспертиза процесса программного обеспечения

Иногда спорят не о результате, а о том, как он создавался. Договор предусматривал определенную методологию: этапы, отчетность, испытания каждого этапа, код-ревью, автоматическое тестирование. Заказчик утверждает, что исполнитель методологию нарушал, и это привело к срывам. Экспертиза процесса программного обеспечения устанавливает, соблюдался ли согласованный порядок работ.

Процессы жизненного цикла программ описывает ГОСТ Р ИСО/МЭК 12207-2010, процессы тестирования — стандарты серии ГОСТ Р 56920. Эксперт сопоставляет требования договора к процессу с фактическими следами: историей коммитов и веток в системе контроля версий, задачами и их статусами, протоколами испытаний этапов, отчетами. Экспертиза процесса программного обеспечения показывает, например, что тестирование этапа не проводилось, а акт подписан, или что исполнитель выпускал версии без согласованных испытаний.

Экспертиза процесса программного обеспечения в более широком смысле, включая использование программ в организации, описана на странице об экспертизе процесса разработки и использования программного обеспечения.

Независимая экспертиза программного обеспечения

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

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

Техническая экспертиза программного обеспечения

Техническая экспертиза программного обеспечения — синоним исследования программы с технической стороны: код, архитектура, производительность, надежность, безопасность. Термин часто используют, чтобы отличить такую экспертизу от юридической проверки лицензий или экономической оценки стоимости разработки. Техническая экспертиза программного обеспечения отвечает на вопросы о работоспособности, дефектах, качестве кода, а в договорном споре — о соответствии заданию.

В составе технической экспертизы программного обеспечения эксперт применяет статический анализ кода, динамическое тестирование, нагрузочные испытания, анализ журналов и архитектуры. Выбор методов зависит от вопросов суда и указывается в заключении.

Судебная экспертиза программное обеспечение: особенности назначения

Судебная экспертиза программное обеспечение как объект получает через суд. Это важная деталь: программа, развернутая у заказчика, продолжает работать и меняться, а исходный код часто хранится только у исполнителя. В определении суда нужно указать, какая версия программы исследуется, где она находится, кто обязан предоставить эксперту доступ к серверу, исходный код и репозиторий.

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

Работы по экспертизе: как проводится исследование

Работы по экспертизе программы проходят несколько этапов, и порядок их выполнения определяет, насколько устойчивыми будут выводы.

Получение и фиксация объектов

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

Сборка и развертывание

Эксперт собирает программу из переданного исходного кода по инструкции исполнителя и сравнивает результат с программой, которая работает у заказчика. Если собрать не удается, это самостоятельный вывод: переданный код неполон или инструкция неверна. Собранная программа разворачивается в изолированной тестовой среде, чтобы проверки не затронули реальные данные.

Проверка требований

Для каждого требования составляется сценарий проверки. Эксперт выполняет сценарии, фиксирует результат снимками экрана, видеозаписью и журналами, сравнивает фактическое поведение с описанным. Работы по экспертизе на этом этапе самые объемные: в среднем проекте проверяются сотни требований.

Анализ кода и истории разработки

Код проверяется средствами статического анализа, выборочным чтением модулей, связанных с ошибками и спорными функциями. История системы контроля версий показывает, кто и когда вносил изменения, в каком порядке реализовывались функции, были ли изменения после сдачи. Система управления задачами показывает, какие задачи ставились и как закрывались.

Оформление

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

Программное обеспечение проведения экспертиз

Программное обеспечение проведения экспертиз — это инструменты, которыми эксперт исследует программу: среды сборки, средства статического анализа, системы автоматизированного тестирования, средства нагрузочного тестирования, анализаторы сетевого трафика, средства сравнения исходных текстов, виртуальные машины для изолированной среды. Заключение обязано перечислить использованное программное обеспечение проведения экспертиз с версиями. Если инструмент применялся без законных прав на его использование, оппонент получит повод оспорить заключение, поэтому АНО «СЗЭПЦ» использует только лицензионные или свободно распространяемые средства.

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

Экспертиза ФСТЭК программное обеспечение: чем сертификация отличается от экспертизы

Экспертиза ФСТЭК программное обеспечение — так называют проверку программ на соответствие требованиям безопасности информации в системе сертификации Федеральной службы по техническому и экспортному контролю. Порядок установлен Положением о системе сертификации средств защиты информации, утвержденным приказом ФСТЭК России от 3 апреля 2018 года № 55. Испытания проводят испытательные лаборатории, аккредитованные службой, решение о сертификате принимает сама служба. Сертифицированные средства защиты нужны для государственных информационных систем, систем обработки персональных данных определенных уровней, значимых объектов критической информационной инфраструктуры.

Судебная экспертиза может понадобиться, когда договор требовал поставить сертифицированное средство или разработать систему, пригодную к сертификации, а заказчик получил иное. Эксперт устанавливает технические факты: наличие действующего сертификата на поставленную версию, соответствие установленной версии сертифицированной, выполнение требований задания к защите информации. Вопрос о том, прошла бы система сертификацию, решается только в процедуре сертификации. Экспертиза ФСТЭК программное обеспечение и судебная экспертиза, таким образом, не заменяют друг друга.

Метрологическая экспертиза программное обеспечение средств измерений

Метрологическая экспертиза программное обеспечение средств измерений проверяет по правилам Федерального закона от 26 июня 2008 года № 102-ФЗ «Об обеспечении единства измерений». Статья 14 закона относит метрологическую экспертизу к формам государственного регулирования, а требования к программному обеспечению средств измерений, в том числе к защите от несанкционированного изменения и к идентификации версий, установлены ГОСТ Р 8.654-2015. Метрологическую экспертизу и испытания для утверждения типа проводят аккредитованные в области обеспечения единства измерений организации.

Метрологическая экспертиза программное обеспечение средств измерений оценивает в порядке закона № 102-ФЗ, и ее проводят аккредитованные метрологические организации. В судебном споре, например о поставке измерительной системы, эксперт может установить, какая версия программы установлена, совпадает ли ее идентификация с указанной в описании типа, вносились ли изменения. Метрологическая экспертиза программное обеспечение средства измерения в смысле закона № 102-ФЗ и судебная экспертиза фактов — разные процедуры.

Разграничение со смежными исследованиями

Экспертиза заимствования исходного кода отвечает, скопирована ли программа или ее части из чужой программы. В договорном споре этот вопрос возникает, когда исполнитель передал заказчику код, взятый из другого проекта, или когда заказчик после расторжения договора продолжил разработку на коде исполнителя. Методика сравнения исходных текстов описана на странице о компьютерно-технической экспертизе, а правовые вопросы исключительных прав решаются в рамках экспертизы объектов интеллектуальной собственности и судом.

Экспертиза 1С исследует системы на платформе «1С:Предприятие» и учитывает особенности этой платформы: журнал регистрации, механизм проведения документов, сравнение с типовой конфигурацией. Если спор касается внедрения или доработки 1С, нужна именно она.

Экспертиза и аудит информационной безопасности оценивают защищенность системы. Если задание содержало требования к безопасности, их проверка входит в экспертизу соответствия заданию. Если спор касается инцидента, взлома или утечки, нужна экспертиза инцидента.

Экономическая экспертиза и оценка определяют стоимость работ, размер убытков, упущенную выгоду. Компьютерно-технический эксперт устанавливает объем и качество, экономист переводит их в деньги. В споре о возврате аванса за частично выполненную разработку обычно назначается комплексная экспертиза.

Приемочные испытания по договору — процедура сторон, а не экспертиза. Их результат, протокол испытаний, может стать объектом исследования: эксперт проверит, по какой программе и методике проводились испытания и соответствуют ли их результаты фактическому состоянию программы.

Где применяется заключение АНО «СЗЭПЦ»

АНО «СЗЭПЦ» проводит экспертизу программного обеспечения по договорам разработки и сопровождения в гражданском, арбитражном и административном судопроизводстве, по делам об административных правонарушениях и во внесудебном порядке: для досудебного урегулирования, обоснования претензии, внутренней проверки и подготовки к процессу.

Исследование ведется на версии программы, указанной в определении, с исходным кодом и историей разработки, переданными сторонами или истребованными судом. Заключение описывает соответствие результата требованиям договора, объем и качество работ, а вывод об исполнении обязательств и переходе прав делает суд. Денежная оценка выполненных работ проводится вместе с экономической экспертизой.

Нормативная база

Процессуальная основа экспертизы — Федеральный закон от 31 мая 2001 года № 73-ФЗ «О государственной судебно-экспертной деятельности в Российской Федерации», требования которого по статье 41 распространяются на негосударственных экспертов, а также главы об экспертизе процессуальных кодексов: статьи 79–87 Гражданского процессуального кодекса Российской Федерации и статьи 82–87 Арбитражного процессуального кодекса Российской Федерации. Большинство споров о разработке рассматривают арбитражные суды, поэтому значимы разъяснения постановления Пленума Высшего Арбитражного Суда Российской Федерации от 4 апреля 2014 года № 23 о выборе эксперта, вопросах и оценке заключения.

Договорные отношения. Разработка программы по заданию квалифицируется как подряд (глава 37 Гражданского кодекса Российской Федерации, статьи 702, 720, 721, 723) либо как выполнение научно-исследовательских, опытно-конструкторских и технологических работ (глава 38, статьи 769, 773–778). Сопровождение — как возмездное оказание услуг (глава 39). Права на программу, созданную по заказу, регулирует статья 1296 Гражданского кодекса, охрану программ как объектов авторского права — статьи 1259 и 1261. Для государственных контрактов действует статья 94 закона № 44-ФЗ об экспертизе результатов исполнения контракта.

Стандарты. ГОСТ 34.602-2020 о техническом задании на автоматизированную систему, ГОСТ 19.201-78 о техническом задании на программу, ГОСТ Р ИСО/МЭК 12207-2010 о процессах жизненного цикла программных средств, стандарты серии ГОСТ Р 56920 о тестировании, ГОСТ Р ИСО/МЭК 25010-2015 о модели качества, ГОСТ Р 34.11-2012 о функции хэширования для контроля неизменности объектов. Для средств защиты информации — приказ ФСТЭК России № 55, для программного обеспечения средств измерений — закон № 102-ФЗ и ГОСТ Р 8.654-2015.

Назначение экспертизы в суде

Суд назначает экспертизу по ходатайству стороны. В споре о разработке ходатайство обычно заявляет та сторона, которой выгоден независимый взгляд на результат: заказчик, отказавшийся от приемки, или исполнитель, чей односторонний акт оспаривается. К ходатайству прилагаются вопросы, сведения об экспертной организации и кандидатурах экспертов, письмо о сроке и стоимости.

Главная практическая трудность — доступ к объектам. Работающая версия программы находится у заказчика, исходный код и репозиторий у исполнителя, тестовые стенды иногда у третьих лиц, например у облачного провайдера. Чтобы эксперт получил все необходимое, в ходатайстве следует просить суд:

указать в определении, какая версия программы исследуется, по состоянию на какую дату;

обязать заказчика предоставить доступ к рабочей или тестовой среде, а исполнителя — передать исходный код, репозиторий с историей изменений и инструкцию по сборке;

истребовать у третьих лиц сведения, если программа размещена у них;

запретить сторонам изменять программу до окончания экспертизы либо обязать их сохранить копию на дату спора.

Если одна из сторон уклоняется от передачи объектов, суд вправе признать факт, для выяснения которого назначалась экспертиза, установленным или опровергнутым по части 3 статьи 79 Гражданского процессуального кодекса. В арбитражном процессе аналогичные последствия суд учитывает при оценке доказательств.

Вопросы эксперту

Вопросы должны касаться фактов, ссылаться на конкретные документы и версии программы и не содержать правовой оценки. Ниже приведены формулировки, которые нужно адаптировать к делу.

Вопросы о соответствии и объеме работ

Соответствует ли программа версии, указанной в определении, требованиям технического задания и приложений к договору? Если нет, какие требования не выполнены или выполнены с отклонениями?

Какой объем работ, предусмотренных договором и техническим заданием, фактически выполнен на указанную дату?

Являются ли выявленные недостатки препятствием для использования программы по назначению, указанному в задании?

Возможно ли устранение выявленных недостатков без переработки программы в целом?

Вопросы о коде и передаче результата

Позволяет ли переданный исходный код собрать исполняемую программу, идентичную работающей у заказчика?

Передана ли документация, предусмотренная техническим заданием, в полном объеме?

Какие сторонние компоненты входят в состав программы, под какими лицензиями они распространяются?

Вносились ли изменения в исходный код после передачи результата заказчику? Если да, кем и когда?

Вопросы о причинах ошибок

Каковы причины указанных ошибок в работе программы?

Связаны ли ошибки с кодом, разработанным исполнителем, с настройками или действиями заказчика, с изменениями внешних сервисов, с состоянием оборудования?

Соответствуют ли показатели производительности требованиям технического задания?

Вопросы о сопровождении

Соответствовали ли сроки реакции и устранения инцидентов в указанный период требованиям соглашения об уровне обслуживания?

Соответствует ли объем изменений, внесенных в программу в рамках сопровождения, часам, указанным в отчетах исполнителя, с учетом обычной трудоемкости таких работ?

Вопросы о процессе разработки

Проводились ли испытания этапов работ в порядке, предусмотренном договором?

Соответствовал ли фактический процесс разработки методологии, согласованной сторонами?

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

Что передать для экспертизы

Для предварительного анализа достаточно договора, технического задания, актов и описания спора. Для экспертизы понадобятся:

договор со всеми приложениями и дополнительными соглашениями, техническое задание в последней согласованной редакции и все предыдущие редакции;

утвержденные макеты интерфейса, прототипы, описания интерфейсов взаимодействия с другими системами;

переписка о требованиях, замечаниях и изменениях, протоколы встреч, записи демонстраций;

акты этапов, подписанные и неподписанные, мотивированные отказы от приемки, протоколы испытаний;

доступ к рабочей или тестовой среде либо резервная копия серверной части и базы данных;

исходный код с историей изменений из системы контроля версий, инструкции по сборке и развертыванию;

выгрузка из системы управления задачами за период работ;

отчеты исполнителя о выполненных работах и списанных часах, данные системы учета обращений, если спор о сопровождении.

Чем раньше стороны сохранят репозиторий и копию программы на дату спора, тем меньше риск, что последующие изменения смешаются со спорными.

Заключение специалиста до суда

Внесудебное исследование программы проводится по договору до суда: при подготовке мотивированного отказа от приемки, претензии, ответа на претензию, перед сменой подрядчика. Его результат, заключение специалиста, фиксирует состояние программы на дату исследования и показывает, есть ли у стороны основания для спора.

Для программ такое исследование особенно ценно при смене исполнителя. Новый подрядчик начнет менять код, и через месяц установить, в каком состоянии предыдущий исполнитель передал результат, будет трудно. Копия кода и программы с контрольными значениями, описанная специалистом, сохраняет это состояние для суда.

Суд принимает заключение специалиста как письменное доказательство. Если оппонент его оспаривает, оно становится обоснованием ходатайства о судебной экспертизе и подсказывает вопросы. Специалист может быть вызван в заседание для консультации.

Структура заключения

Кроме реквизитов, обязательных для любого заключения по статье 25 закона № 73-ФЗ, заключение по программе должно содержать сведения, без которых его нельзя проверить. Идентификация объекта: версия программы, контрольные значения архивов кода и исполняемых файлов, дата и способ получения доступа к среде. Эталон: перечень требований с указанием, из какого документа взято каждое. Условия проверки: конфигурация тестовой среды, версии операционной системы, браузеров, внешних сервисов. Инструменты: программное обеспечение, использованное для анализа, с версиями. Ход и результаты по каждому требованию и каждому вопросу. Выводы по вопросам в порядке их постановки.

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

Экспертиза по государственному контракту и по коммерческому договору: что различается на практике

Экспертиза по договору между коммерческими организациями опирается на то, что стороны согласовали сами, включая переписку и изменения по ходу проекта. Экспертиза по государственному контракту жестче привязана к документации о закупке: требования технического задания изменяются только в порядке, предусмотренном законом № 44-ФЗ, а переписка о новых функциях без дополнительного соглашения не меняет предмет контракта. Поэтому в споре по контракту эксперт сравнивает результат прежде всего с заданием из документации о закупке и отдельно указывает, какие выполненные работы выходят за его пределы.

Вторая разница — приемочная экспертиза. По контракту она уже проводилась заказчиком, и судебная экспертиза по делу проверяет в том числе ее выводы: по каким требованиям заказчик отказал в приемке, подтверждаются ли недостатки. Экспертиза программных комплексов для государственных информационных систем нередко требует учитывать и требования к защите информации, которые входят в техническое задание.

Как оценить готовое заключение по программе

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

Компьютерно программная экспертиза, выполненная без перечисленных сведений, плохо переносит допрос эксперта в заседании: на вопрос оппонента, какую версию он проверял и в какой среде, эксперт должен отвечать по заключению, а не по памяти. Экспертиза разработки по договору, где эти сведения есть, выдерживает и рецензию, и допрос.

Сроки

Срок зависит от объема технического задания, числа требований, сложности развертывания и доступности объектов. Экспертиза соответствия программного обеспечения техническому заданию занимает 10–20 дней: задание на несколько десятков требований укладывается в нижнюю границу, программный комплекс с сотнями требований и интеграциями требует верхней. Столько же занимает исследование причин ошибок и отказов программного комплекса. Определение объема выполненных работ и экспертиза работ по сопровождению требуют 5–10 дней, экспертиза качества кода и документации, исследование полноты передачи результата и экспертиза процесса разработки — 5–15 дней. Рецензия на чужое заключение готовится за 5–10 дней. Если эксперт ждет исходный код, доступ к среде или истребованные судом материалы, срок продлевается на время их получения.

Повторная экспертиза и рецензия

Неполное заключение восполняется дополнительной экспертизой, сомнительное — повторной, которую суд поручает другому эксперту по статье 87 процессуальных кодексов. Суд назначает ее, когда видит конкретные дефекты. Типичные дефекты заключений по программам: эксперт исследовал не ту версию или не указал, какую; не описал условия тестовой среды; оценивал удобство или качество по собственным представлениям при отсутствии требований в задании; не проверил, собирается ли программа из переданного кода; сделал правовой вывод об исполнении договора. Такие дефекты показывает рецензия специалиста. Верховный Суд в определении Судебной коллегии по экономическим спорам от 25 января 2018 года по делу № 305-ЭС17-11486 указал, что рецензию суд обязан рассматривать как мотивированное возражение стороны.

Возражения оппонента

«Эксперт проверял программу не в той среде». Ответ дает описание условий проверки в заключении и их сопоставление с требованиями задания к среде.

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

«Требование было изменено в переписке». Эксперт приводит хронологию изменений требований с указанием документов, а юридическое значение переписки оценивает суд.

«Код передан полностью, заказчик не умеет собирать». Эксперт собирает программу по инструкции исполнителя и фиксирует результат.

Стоимость и сроки

Цена экспертизы складывается из объема технического задания, числа проверяемых требований, сложности развертывания и количества вопросов. Сумма и срок называются после бесплатного предварительного анализа и указываются в письме для суда.

Вид исследования или услугиСтоимостьСрок
Предварительный анализ материалов и оценка задачибесплатно1 день
Экспертиза соответствия программного обеспечения техническому заданиюот 75 000 ₽10–20 дней
Определение объема фактически выполненных работ по разработкеот 65 000 ₽5–10 дней
Экспертиза качества исходного кода и документацииот 80 000 ₽5–15 дней
Исследование полноты передачи исходного кода и результата работот 80 000 ₽5–15 дней
Исследование причин ошибок и отказов программного комплексаот 95 000 ₽10–20 дней
Экспертиза работ по сопровождению: инциденты, сроки, учет часовот 65 000 ₽5–10 дней
Экспертиза процесса разработки на соответствие согласованной методологииот 75 000 ₽5–15 дней
Рецензия на заключение экспертизы программного обеспеченияот 50 000 ₽5–10 дней
Подготовка ходатайства о назначении или повторной экспертизе12 000 ₽от 1 дня
Подготовка вопросов для допроса экспертаот 20 000 ₽1–3 рабочих дня
Участие специалиста в судебном заседанииот 20 000 ₽по согласованию
Срочное исследованиеплюс 50 % к базовой ценепо согласованию

Типичные ошибки сторон

Техническое задание не составлено или состоит из общих фраз, и эксперту не с чем сравнить результат.

Изменения требований согласуются устно или в мессенджерах без фиксации.

Заказчик подписывает акты этапов без проверки, а затем заявляет о недостатках, которые можно было выявить при приемке.

Исходный код хранится только у исполнителя, договор не обязывает передавать его по этапам.

После начала спора стороны продолжают менять программу, и спорная версия не сохраняется.

Новый подрядчик переписывает систему до экспертизы.

В ходатайстве не указано, какая версия программы исследуется и кто обеспечивает доступ.

Вопросы о стоимости работ ставятся компьютерно-техническому эксперту, а о качестве кода — экономисту.

Распространенные заблуждения

Заблуждение первое: без подробного технического задания экспертиза невозможна. Эксперт восстановит требования по договору, макетам, переписке и задачам. Выводы будут тем категоричнее, чем больше согласованных документов.

Заблуждение второе: программа работает, значит, работа выполнена. Работа главного сценария не означает выполнения всех требований. Экспертиза проверяет каждое.

Заблуждение третье: плохой код — всегда недостаток работ. Если задание не содержало требований к качеству кода, его состояние описывается, но недостатком по договору не признается.

Заблуждение четвертое: исходный код принадлежит заказчику автоматически. Права на программу, созданную по заказу, определяются договором и статьей 1296 Гражданского кодекса, а обязанность передать код должна быть предусмотрена договором.

Заблуждение пятое: сертификат соответствия требованиям безопасности подтверждает соответствие техническому заданию. Сертификат касается требований безопасности информации и конкретной версии, а не функций, заказанных по договору.

Заблуждение шестое: эксперт решит, кто прав. Эксперт устанавливает факты о программе. Вывод об исполнении договора и распределении ответственности делает суд.

Что делать, если подрядчик сдал программу с недостатками

Шаг первый. Не подписывайте акт без проверки. Проведите испытания по сценариям, основанным на техническом задании, и зафиксируйте результаты.

Шаг второй. Сохраните сданную версию: исполняемые файлы, копию серверной части и базы, исходный код, если он передан. Вычислите контрольные значения или поручите это специалисту.

Шаг третий. Получите предварительный анализ специалиста. Он оценит, какие недостатки существенны и какие доказательства нужны. При необходимости закажите заключение специалиста.

Шаг четвертый. Направьте исполнителю мотивированный отказ от приемки с перечнем конкретных недостатков и ссылками на пункты задания.

Шаг пятый. Если спор дошел до суда, заявите ходатайство о назначении экспертизы с вопросами, указанием версии программы и порядка доступа к объектам, приложите письмо экспертной организации.

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

Частые вопросы

Что устанавливает экспертиза программного обеспечения по договору разработки?

Соответствует ли программа техническому заданию, какой объем работ выполнен, каково качество результата, полностью ли переданы код и документация, в чем причины ошибок и по чьей вине они возникли.

Можно ли провести экспертизу разработки по техническому заданию, если задание неполное?

Да. Эксперт восстанавливает требования по договору, макетам, переписке и задачам и указывает источник каждого. Неоднозначные требования фиксируются как неоднозначные, толкование остается за судом.

Что делать, если исполнитель не передал исходный код?

Проверить, предусматривал ли договор его передачу. В суде заявить ходатайство об истребовании кода. Экспертиза установит, позволяет ли переданное собрать работающую программу.

Чем независимая экспертиза программного обеспечения отличается от судебной?

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

Можно ли определить объем выполненных работ при расторжении договора?

Да. Эксперт определяет, какие требования реализованы полностью, частично или не начаты. Стоимость выполненного в рублях определяет эксперт-экономист.

Можно ли установить, что ошибки возникли из-за действий заказчика?

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

Как проходят работы по экспертизе программного комплекса из нескольких подсистем?

Эксперт исследует каждую подсистему, затем проверяет взаимодействие по согласованным описаниям интерфейсов и сквозные сценарии. Причина отказа устанавливается по журналам обмена.

Проводится ли экспертиза работ по сопровождению?

Да. Эксперт сопоставляет отчеты исполнителя с системой учета обращений, журналами и историей изменений кода и проверяет соблюдение сроков соглашения об уровне обслуживания.

Сколько стоит экспертиза программного обеспечения на соответствие техническому заданию?

От 75 000 ₽, срок 10–20 дней. Цена зависит от числа требований в задании, сложности развертывания тестовой среды и количества интеграций с другими системами.

Сколько стоит определение объема выполненных работ по разработке?

От 65 000 ₽, срок 5–10 дней. Эксперт устанавливает, какие требования реализованы полностью, частично или не начаты; денежную оценку выполненного дает эксперт-экономист.

Сколько стоит экспертиза качества исходного кода и полноты его передачи?

Каждое из этих исследований стоит от 80 000 ₽, срок 5–15 дней. В работу входит сборка программы из переданного кода, статический анализ и проверка комплектности документации.

Сколько стоит исследование причин ошибок и отказов программного комплекса?

От 95 000 ₽, срок 10–20 дней. Это самая трудоемкая позиция: эксперт воспроизводит ошибки, анализирует журналы и историю изменений и распределяет причины между участниками разработки.

Сколько стоит экспертиза работ по сопровождению?

От 65 000 ₽, срок 5–10 дней. Эксперт проверяет соблюдение сроков реакции на инциденты и соответствие списанных часов фактическим изменениям в программе.

Сколько стоит рецензия на заключение экспертизы программного обеспечения?

От 50 000 ₽, срок 5–10 дней. Цена зависит от объема заключения и приложений и от того, нужно ли повторно проверять сборку программы.

Основные термины

Техническое задание: документ с требованиями к программе или системе, с которым сравнивается результат работ.

Программное средство: программа вместе с документацией.

Программный комплекс: совокупность взаимодействующих программ и подсистем, решающих общую задачу.

Исходный код: текст программы на языке программирования до преобразования в исполняемый вид.

Система контроля версий: система, хранящая историю изменений кода с авторами и датами.

Сборка: преобразование исходного кода в исполняемую программу по установленной процедуре.

Тестовая среда: отдельная копия системы, на которой проверяются функции без влияния на рабочие данные.

Сценарий проверки: последовательность действий и ожидаемый результат, по которым проверяется выполнение требования.

Статический анализ: проверка исходного кода без его выполнения для выявления ошибок и нарушений правил оформления.

Соглашение об уровне обслуживания: часть договора сопровождения с нормативами времени реакции и устранения инцидентов.

Сторонний компонент: библиотека или модуль, созданный не исполнителем и включенный в программу по лицензии.

Приемочные испытания: проверка результата работ сторонами по согласованной программе и методике перед подписанием акта.

Коротко о главном

Экспертиза соответствия работ по разработке и сопровождению программного обеспечения техническому заданию проверяет результат относительно согласованных требований: какие функции реализованы, какой объем выполнен, каково качество, полностью ли передан код, по чьей причине возникли ошибки.

Эталоном служит техническое задание, а при его неполноте — все согласованные сторонами документы. Выводы тем надежнее, чем раньше сохранены спорная версия программы, код с историей изменений и переписка.

Экспертиза программного продукта, программных комплексов, работ по сопровождению и процесса разработки строится на одной методике: фиксация объектов, сборка, проверка требований по сценариям, анализ кода и истории. Сертификация в системе Федеральной службы по техническому и экспортному контролю и метрологическая экспертиза — самостоятельные процедуры, которые судебная экспертиза не заменяет.

Правовая оценка исполнения договора и перехода прав остается за судом, стоимость работ определяет экономист.

Об АНО «СЗЭПЦ»

АНО «Северо-Западный экспертно-правовой центр» проводит экспертизы с 1990 года и относится к первым негосударственным экспертным организациям России. Головной офис расположен в Санкт-Петербурге, представительства работают в Москве, Екатеринбурге, Новосибирске, Казани, Краснодаре, Нижнем Новгороде и Ростове-на-Дону. Заключения АНО «СЗЭПЦ» принимают арбитражные суды и суды общей юрисдикции более чем в сорока регионах.

По экспертизе программного обеспечения АНО «СЗЭПЦ» проводит судебные экспертизы по определениям судов, в том числе комплексные с экономической экспертизой, готовит заключения специалиста до суда и рецензии на чужие заключения. Штатный юридический отдел помогает сформулировать вопросы и подготовить ходатайство. Предварительный анализ материалов бесплатный.

Направьте описание задачи и договор на info@szexp.ru или позвоните: +7 (812) 982-86-69 (Санкт-Петербург и Москва), +7 (905) 222-86-69 (регионы Российской Федерации) — АНО «СЗЭПЦ» проведет предварительный анализ и подготовит письмо для суда о сроке и стоимости экспертизы.

Узнать стоимость экспертизы