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

 
 
> Как тестировать код для встраиваемых систем
Муравей
сообщение Dec 27 2011, 18:50
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 30-11-11
Пользователь №: 68 593



Здравствуйте.
Уже достаточно давно пишу код для всяких контроллеров, но задачи были малой и средней сложности. Хватало функционального тестирования, написал программку, протестировал на весь описанный в ТЗ функционал, прошёлся по всему пользовательскому интерфейсу и Ок. Т.е. программные модули по серьёзному, раздельно, не тестировал, только прошивку целиком прямо на конечной платформе.
Как-то взяло сомнение, что это правильный подход , особенно если сложность задач возрастёт и если в проекте будет больше одного программиста :)
Посмотрел на книгу Мартин Р. - Чистый код. Создание, анализ и рефакторинг (Библиотека программиста) - 2010. Целая теория правильного программирования. Но применима ли эта теория для embedded кода?
В общем посоветуйте плз. какую-то литературку на эту тему, может быть какие-то жизненные советы как повысить качество кода, как гарантировать , что программный модуль будет нормально стыковаться с другими модулями и в случае необходимости портироваться на другие системы, и т.д......
Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AlexandrY
сообщение Dec 27 2011, 20:58
Сообщение #2


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Муравей @ Dec 27 2011, 20:50) *
Посмотрел на книгу Мартин Р. - Чистый код. Создание, анализ и рефакторинг (Библиотека программиста) - 2010. Целая теория правильного программирования. Но применима ли эта теория для embedded кода?


Да книжонка забавная. Но акценты для embedded не совсем актуальны, ИМХО.

Важнее становятся аппаратные ошибки и даже не из-за невнимательности, а из-за не полной документированности аппаратной среды в которой
работает программа.
Скажем что делать когда модуль DMA выдал ошибку доступа к шине, и при этом не известно ни кто ни что там пересылал по DMA, и что пропало и что передалось.
И как правильно построить архитектуру чтобы справляться с такими ошибками и не затормозить систему до нуля, и не дать другим процессам уйти в состояние underflow?

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

Да, а насчет тестирования ничего сказать не могу. Не оправдывается какое-то другое тестирование кроме как на живом объекте.
Лучше сконцентрировать усилия на способах надежного накопления и передачи отладочной информации с объектов и обновления firmware.
Go to the top of the page
 
+Quote Post
neiver
сообщение Dec 28 2011, 08:53
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



По моему одна из лучших книг по тестированию встроенного ПО:
Testing embedded software - Bart Broekman and Edwin Notenboom
Наити ее в свободном доступе не очень просто, если кто не найдет, пишите в личку - вышлю мылом.

Цитата(AlexandrY @ Dec 28 2011, 00:58) *
...
Потом много рассуждений о чистоте кода с точки зрения использования его группой. Тогда каждому участнику надо жертвовать своими предпочтениями ради общих правил. Это снижает производительность однозначно. Лучше думать как максимально изолировать разработчиков друг от друга чем заставлять применять общие стандарты. Во встраиваемых системах это вполне возможно использованием нескольких микроконтроллеров.
Встраиваемый код не такой большой чтобы обращать внимание на его удобочитаемость. Инструменты рефакторинга из любого кода конфетку сделают за считанные часы.
...

Я бы к вам не пошел работать. На проекте, где я сейчас работаю, диаметрально противоположная организация рабочего процесса. Идёт постоянный обмен опытом и ротация зон ответственности, чтоб ни один сотрудник не становился незаменимым носителем уникальных знаний. Даже если половина сотрудников отдела пойдёт в отпуск или заболеет, оставшиеся смогут выполнить их работу, пусть и медленнее.
А с такой организацией труда как вы описываете, я имел "счастье" сталкиваться на прошлой работе. Больше не хочется.
Этот подход работает в небольших локализованных компаниях, а в более-менее крупных и тем более распределённых, не работает даже на простых проектах.
С наступающим Вас! santa2.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Муравей   Как тестировать код для встраиваемых систем   Dec 27 2011, 18:50
- - Idle   Цитата(Муравей @ Dec 27 2011, 21:50) Здра...   Dec 28 2011, 06:45
- - Danis   Цитата(Муравей @ Dec 27 2011, 22:50) В об...   Jan 15 2012, 08:20
- - cg_shura   Смотрите в сторону юнит-тестирования, я для юнит-т...   Dec 4 2013, 17:47
|- - demiurg_spb   Так уж сложилось, что не привык писать юнит-тесты....   Dec 5 2013, 06:11
|- - vanner   Цитата(demiurg_spb @ Dec 5 2013, 10:11) Т...   Dec 6 2013, 14:08
|- - demiurg_spb   Цитата(vanner @ Dec 6 2013, 18:08) А я и ...   Dec 7 2013, 11:29
||- - vanner   Цитата(demiurg_spb @ Dec 7 2013, 15:29) А...   Dec 9 2013, 07:27
||- - kolobok0   Цитата(vanner @ Dec 9 2013, 11:27) ..зада...   Dec 9 2013, 22:35
||- - vanner   Цитата(kolobok0 @ Dec 10 2013, 02:35) ну ...   Dec 10 2013, 06:05
|- - kolobok0   Цитата(vanner @ Dec 6 2013, 18:08) .. юни...   Dec 7 2013, 22:07
- - andrewlekar   Цитатану а теперь объясните тупому, как Вы предлаг...   Dec 10 2013, 04:33
|- - kolobok0   Цитата(andrewlekar @ Dec 10 2013, 08:33) ...   Dec 11 2013, 18:11
- - andrewlekar   ЦитатаЭто типа программист который реализует код и...   Dec 11 2013, 19:07
|- - kolobok0   Цитата(andrewlekar @ Dec 11 2013, 23:07) ...   Dec 11 2013, 21:36
|- - vanner   Цитата(kolobok0 @ Dec 12 2013, 01:36) Объ...   Dec 14 2013, 14:52
||- - AlexandrY   Цитата(vanner @ Dec 14 2013, 16:52) Да, а...   Dec 14 2013, 20:13
|- - Idle   Цитата(kolobok0 @ Dec 12 2013, 01:36) кач...   Dec 17 2013, 07:08
|- - kolobok0   Цитата(Idle @ Dec 17 2013, 11:08) ...пров...   Dec 17 2013, 22:35
|- - Idle   Цитата(kolobok0 @ Dec 18 2013, 02:35) бер...   Dec 18 2013, 06:02
|- - AlexandrY   Цитата(Idle @ Dec 18 2013, 08:02) Вы про ...   Dec 18 2013, 07:38
|- - Idle   Цитата(AlexandrY @ Dec 18 2013, 11:38) Эт...   Dec 18 2013, 08:28
|- - XVR   Цитата(AlexandrY @ Dec 18 2013, 11:38) Эк...   Dec 18 2013, 15:09
- - XVR   Юнит тестирование применяется в больших иерархичес...   Dec 16 2013, 09:38
|- - AlexandrY   Цитата(XVR @ Dec 16 2013, 11:38) Очень сл...   Dec 16 2013, 10:01
|- - XVR   Цитата(AlexandrY @ Dec 16 2013, 14:01) И ...   Dec 16 2013, 11:16
||- - AlexandrY   Цитата(XVR @ Dec 16 2013, 13:16) Если они...   Dec 16 2013, 11:29
||- - XVR   Цитата(AlexandrY @ Dec 16 2013, 15:29) Ну...   Dec 16 2013, 13:14
||- - AlexandrY   Цитата(XVR @ Dec 16 2013, 15:14) Угу. Вид...   Dec 16 2013, 13:45
|- - cg_shura   Цитата(AlexandrY @ Dec 16 2013, 12:01) Ес...   Dec 19 2013, 09:10
|- - AlexandrY   Цитата(cg_shura @ Dec 19 2013, 11:10) Это...   Dec 19 2013, 09:50
- - ZASADA   AlexandrY , спасибо за ссылку на тойоту, весьма по...   Dec 18 2013, 08:56
- - Idle   Вообще-то да, не пишите тесты, не. Чем меньше рыно...   Dec 18 2013, 09:04
- - ZASADA   главное не наличие товара, а чтобы покупатели наш...   Dec 18 2013, 09:12
|- - Idle   Цитата(ZASADA @ Dec 18 2013, 13:12) главн...   Dec 18 2013, 10:10
- - Idle   Да, ни юнит-тестирование, ни TDD не гарантируют от...   Dec 18 2013, 16:47


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 07:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01435 секунд с 7
ELECTRONIX ©2004-2016