powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / верификация и валидация кода
25 сообщений из 25, страница 1 из 1
верификация и валидация кода
    #39618445
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, есть у кого что сказать по этому поводу?
Я имею в виду, практическое применение вот этих волшебных слов на предприятии.

Чтобы было понятно, о чем я спрашиваю, вот ссылка
http://www.ict.edu.ru/ft/005645/62322e1-st09.pdf
"Методы верификации программного обеспечения"

p.s. я считаю, что это в целом очередное словоблудие. А вот на некоторых предприятиях для начальников ИТ это уже головная боль, в том смысле, что сверху по голове стучат этой верификацией, а как это правильно оформляется - х.з.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618474
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Целиком трактат не асилил, полистал немного, но так понимаю что речь о тестировании кода. ИМХО - надо.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618477
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

на какого ни будь родственника открывается фирма, которая занимается верификацией кода по надуманным правилам, которые естественно никому не сообщаются, работников айти-отдела обязывают все итоговые патчи проводить через неё для получения ЦУ, вот и всё.

Естественно, ответственности эта фирма не несёт никакой
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618479
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan), ничего не понял. Точнее понял что надо формальности соблюсти в какой-то бюрократии.

ИМХО методики прикрывания жоп руководителей ИТ отделов не тема для данного форума.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618574
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, а что непонятного?
сначала спускают что должна быть какая-то фигня, потом скажут что вы нефига не можете и придётся завести вот такой контрактик и "парни вам всё подробно разжуют".

всем деньги нужны, но абсолютно согласен, коррупционные схемы и им подобные лучше обсуждать не в этой ветке.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618582
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvГоспода, есть у кого что сказать по этому поводу?
Я имею в виду, практическое применение вот этих волшебных слов на предприятии.

Чтобы было понятно, о чем я спрашиваю, вот ссылка
http://www.ict.edu.ru/ft/005645/62322e1-st09.pdf
"Методы верификации программного обеспечения"

p.s. я считаю, что это в целом очередное словоблудие. А вот на некоторых предприятиях для начальников ИТ это уже головная боль, в том смысле, что сверху по голове стучат этой верификацией, а как это правильно оформляется - х.з.
Документ хороший. Годный. Несколько улыбнула отсылка к Rational Rose но в целом ок.
О чем это все. Всё я нечитал. Нет времени и по диагонали.

Очень часто кастомер сам требует подключения внешних инструментов верификации.
В основном это требования Security и Compliance. Для банковского аутсорсинга
это требование. Часто issue от SonarQube или Veracode класса security имеет
статус блокера и требует срочного решения.

Поэтому вопрос - "что есть сказать" это вопрос вчерашнего дня. Вопрос
сегодняшний - это как это использовать. И как правильно использовать
с выгодой для себя.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618584
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvГоспода, есть у кого что сказать по этому поводу?
Я имею в виду, практическое применение вот этих волшебных слов на предприятии.Просмотрел список литературы.
Ни одной нормативной ссылки.
Таким образом, в работе изложено частное мнение автора, которое ни к чему не обязывает, ни от чего не защищает и ничего не даёт.

P.S. Хотя ссылка на работу Маркова, опубликованную в известиях императорской академии наук в 1907 году, это - да, это внушает и демонстрирует высокий уровень эрудиции и, вероятно, образованности автора.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618585
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВ основном это требования Security и Compliance.
Для банковского аутсорсинга это требование.
Часто issue от SonarQube или Veracode класса security имеет статус блокера и требует срочного решения.При всём уважении, но, наверное, статус такой не потому, что эти инструменты делали клёвые парни, а потому, что эти инструменты соответствуют каким-то спецификация каких-нибудь PCI-DSS (или как их там) и, весьма вероятно, прошли требуемую сертификацию?
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618642
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovmaytonВ основном это требования Security и Compliance.
Для банковского аутсорсинга это требование.
Часто issue от SonarQube или Veracode класса security имеет статус блокера и требует срочного решения.При всём уважении, но, наверное, статус такой не потому, что эти инструменты делали клёвые парни, а потому, что эти инструменты соответствуют каким-то спецификация каких-нибудь PCI-DSS (или как их там) и, весьма вероятно, прошли требуемую сертификацию?
1) Не только карточных продуктов но и банковской деятельности в целом. Это ведь не только карточки.
2) Насчет конкретных ISO и прочих документов я точно не скажу. Надо искать. Скорее всего ISO содержит
общие слова касающиеся организации процессов. А Sonar и Veracode - это уже конкретные программные продукты
которые где-то в стеке разработки решают какой-то один пункт из организации процессов.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618655
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разумеется, ISO, как и любой стандарт, "содержит общие слова". "Но есть ньюанс".

Если об организации известно, что она сертифицирована по ISO-/ГОСТ-XXXX, то "все заинтересованные" прекрасно понимают, о чём идёт речь.

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

Следовательно, если владельцу бизнеса или архитектору проекта вожжа под хвост попала, то в правилах разработки может быть прописана разная ерунда разной степени обоснованности.
Будет ли толк от этих прописей - вопрос совершенно отдельный.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618659
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Речь идёт не о толке а скорее о минимизации рисков.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618670
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Риски бывают разные.
От самых чувствительных (административный и уголовный кодексы) частное мнение какого-то перца - ни разу не защищает.

P.S. Давным-давно юрист конторы в которой я работал сказала примерно следующее: "Комментарии в Консультанте/Гаранте вещь, конечно, хорошая, но в суд надо идти с НПА, а не с частным мнением (даже) профессионального юриста".
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618729
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618758
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39618763
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78почитайте лучше это: 10 правил, которые позволяют NASA писать миллионы строк кода с минимальными ошибками улыбнуло, в таких рамках умрёт практически любой кровавый интерпрайз
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39619165
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)tip78почитайте лучше это: 10 правил, которые позволяют NASA писать миллионы строк кода с минимальными ошибками улыбнуло, в таких рамках умрёт практически любой кровавый интерпрайз
когда ориентируешься на что-то ГЛОБАЛЬНО крутое, то все попутные мелочи становятся гораздо проще
например, поставишь цель - $ярд и как-то уже пофиг, айфон у тебя или xiaomi. Кеды или сапоги из крокодила.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39619169
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)tip78почитайте лучше это: 10 правил, которые позволяют NASA писать миллионы строк кода с минимальными ошибками улыбнуло, в таких рамках умрёт практически любой кровавый интерпрайз
Я-бы откоментил некоторые выдержки.
Нужно сильно ограничивать ветвления и условия. Не использовать goto, setjmp или longjmp, не использовать прямую или косвенную рекурсию.
Я привык использовать рекурсию при работе с файловой системой и древовидными
структурами данных.

Не совсем понятно как можно не использовать рекурсию. Возможножно NASA подразумевает под
этим некий узкий круг задач. А если трансформировать рекурсию в FSM с очередью (Queue)
то вряд-ли это увеличит надежность ПО. Ну .. с точки зрения цены сопровождения такого кода.
Любая функция должна уместиться на одном стандартном листе бумаги, одно выражение на строку и одна строка на определение. Обычно это означает, что функция не должна быть длиннее 60 строк.
60 строк для чего? Ассемблер что-ли? Я-бы уменьшил до 7-14 строк если речь идет о ЯВУ.

Должно быть не более двух ассертов на функцию. Ассерты используются для проверки аномальных условий, которые не могут произойти при реальном запуске. Ассерты не должны содержать сайд-эффектов, и по формату должны быть Boolean-тестами. Когда ассерт падает, должно запуститься специальное действие по восстановлению, например, возврат условия падения обратно в вызывающую функцию. Если проверяющая программа доказывает, что ассерт никогда не фейлится или никогда не удовлетворяется, то правило считается нарушенным. (Нельзя обойти это правило с помощью бессмысленных “assert(true)”).

Здесь - непонятно. Если ассерт никогда не фейлится то я считаю что все ОК и оставляю его в покое.
Пускай себе будет в отладочной версии кода. Или в тексте не совсем корректный перевод.
Использование указателей должно быть ограничено. Допустимо не больше одного уровня разыменования. Операторы разыменования не должны быть скрыты в макро определениях или внутри typedef. Указатели на функции запрещены.

Почему указатели не функции запрещены? Это полезный механизм полиморфизма. Или они его
принципиально не используют? На что заменяют? (Речь идет о Си).
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39619174
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

тема real-time программ уже разжёвывалась же несколько раз.
никаких указателей, никаких динамических выделений памяти, никакой рекурсии

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

при таком раскладе вся даже чуть-чуть "оптимистично-настроенная логика" идёт лесом.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39619180
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonДолжно быть не более двух ассертов на функцию. Ассерты используются для проверки аномальных условий, которые не могут произойти при реальном запуске. Ассерты не должны содержать сайд-эффектов, и по формату должны быть Boolean-тестами. Когда ассерт падает, должно запуститься специальное действие по восстановлению, например, возврат условия падения обратно в вызывающую функцию. Если проверяющая программа доказывает, что ассерт никогда не фейлится или никогда не удовлетворяется, то правило считается нарушенным. (Нельзя обойти это правило с помощью бессмысленных “assert(true)”).

Здесь - непонятно. Если ассерт никогда не фейлится то я считаю что все ОК и оставляю его в покое.
Пускай себе будет в отладочной версии кода. Или в тексте не совсем корректный перевод.

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

Плюс тут перевод неверный, правильный начинается с: Правило 5: Плотность assert-ов в коде должна быть не менее двух assert-ов на каждую функцию.
В этом контексте становится понятно, для чего пишут про "assert(true)" и про "никогда не фейлится или всегда выполняется" - чтобы не добавляли недостающие 2 assert-а тупыми "assert(true)".


Меня смущает другое, выше написано, что ассерт не должен всегда не происходить . А затем пишут:
"Assert-ы должны использоваться для проверки аномальных условий, которые никогда не должны происходить при реальных запусках. "
Если никогда происходить не должен, то он всегда будет не происходить, но всегда не происходить он тоже не должен.
Выделенное противоречило бы друг другу, если бы не было приписка "при реальных запусках" (that should never happen in real-life executions). Но нет определения что такое "при реальных запусках" или есть?
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39619430
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася УткинМеня смущает другое, выше написано, что ассерт не должен всегда не происходить . А затем пишут: "Assert-ы должны использоваться для проверки аномальных условий, которые никогда не должны происходить при реальных запусках. "
Имхо, всё логично. Ассерты должны накрывать ситуации, которые в рамках программы технически возможны, а в рамках реальности - нет. Скажем, int32 переменная "скорость" технически способна иметь значение 1'000'000 км/с, но практически при реальном запуске такого происходить не должно.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39619546
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvГоспода, есть у кого что сказать по этому поводу?
Я имею в виду, практическое применение вот этих волшебных слов на предприятии.

Чтобы было понятно, о чем я спрашиваю, вот ссылка
http://www.ict.edu.ru/ft/005645/62322e1-st09.pdf
"Методы верификации программного обеспечения"

p.s. я считаю, что это в целом очередное словоблудие. А вот на некоторых предприятиях для начальников ИТ это уже головная боль, в том смысле, что сверху по голове стучат этой верификацией, а как это правильно оформляется - х.з.
Нормальное наукообразное описание комплексного подхода для надежной разработки (по диагонали даже еще и неполное).
Лишнюю для себя воду - вычеркнуть.

Например, Весь Хабр залит рекламой и примерами применения статического анализатора кода.

Я для себя бы - взял и прогнал по своим софтинам. А дальше посмотрел на результат.

Главное - в доказательства правильности алгоритмов не влезть =)
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39620673
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglГлавное - в доказательства правильности алгоритмов не влезть =)

Прочитайте Дейкстру он как раз очень любил доказывать правильность программ.
Можно в комментариях прописать инварианты циклов, входные и выходные параметры. Если всё аккуратно сделать - вот оно и доказательство )
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39620793
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unregesteredSiemarglГлавное - в доказательства правильности алгоритмов не влезть =)

Прочитайте Дейкстру он как раз очень любил доказывать правильность программ.Я читал.unregesteredМожно в комментариях прописать инварианты циклов, входные и выходные параметры. Если всё аккуратно сделать - вот оно и доказательство )Это не доказательство,а только Design by contract - тоже кусочек мозаики.
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39620804
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unregesteredSiemarglГлавное - в доказательства правильности алгоритмов не влезть =)

Прочитайте Дейкстру он как раз очень любил доказывать правильность программ.
Можно в комментариях прописать инварианты циклов, входные и выходные параметры. Если всё аккуратно сделать - вот оно и доказательство )
Я думаю что между кодом и каментом будет некая.. Натяжка :)
...
Рейтинг: 0 / 0
верификация и валидация кода
    #39620806
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonunregesteredпропущено...


Прочитайте Дейкстру он как раз очень любил доказывать правильность программ.
Можно в комментариях прописать инварианты циклов, входные и выходные параметры. Если всё аккуратно сделать - вот оно и доказательство )
Я думаю что между кодом и каментом будет некая.. Натяжка :)
Конечно, про комменты прозевал - примитив. Должны быть или ассерты или нативная поддержка DbC языком.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / верификация и валидация кода
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]