Какво е вградено тестване в софтуерното тестване?

⚡ Умно обобщение

Вграденото тестване проверява функционалното и нефункционалното поведение на софтуера и хардуера заедно, защото във вградената система двете са тясно свързани и нито едно от тях не може да бъде валидирано правилно самостоятелно.

  • 🔘 Стегнато свързване: Хардуерът се изгражда паралелно със софтуера, така че истинската тестова среда често пристига късно.
  • ☑️ Пет нива: Тестването на софтуерния модул, интеграцията, системния модул, системната интеграция и валидирането на системата е насочено към различна модулна граница.
  • Залози за безопасност: Медицинските, железопътните, авиационни и автомобилните продукти се нуждаят от стриктно документирано тестване, преди да може да бъде издаден сертификат.
  • 🧪 Предпочитание за сива кутия: Тестването на системни модули наблюдава вътрешни ресурси и RTOS съобщения, така че методите „сива кутия“ са най-подходящи за него.
  • 🛠️ Основни пречки: Ограничен достъп до хардуер, компоненти с отворен код, смесени софтуерни и хардуерни дефекти и дефекти, които са устойчиви на възпроизвеждане.

Вградено тестване на софтуер и хардуер във вградена система

Какво представляват вградените системи?

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

Вградено тестване

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

Тестването на вграден софтуер проверява и гарантира, че съответният софтуер е с добро качество и отговаря на всички изисквания, на които трябва да отговаря. Тестването на вграден софтуер е отличен подход за гарантиране на сигурността в критични приложения като медицинско оборудване, железопътен транспорт, авиация, автомобилна индустрия и др. Стриктното и внимателно тестване е от решаващо значение за получаване на софтуерен сертификат.

Как да извършите тестване на вграден софтуер

Като цяло тествате по четири причини:

  • За намиране на грешки в софтуера
  • Помага за намаляване на риска както за потребителите, така и за компанията
  • Намалете разходите за разработка и поддръжка
  • За подобряване на производителността

При вграденото тестване се извършват следните дейности:

  1. Софтуерът е снабден с някои входни данни.
  2. Изпълнява се част от софтуера.
  3. Състоянието на софтуера се наблюдава и изходите се проверяват за очаквани свойства, като например дали изходът съответства на очаквания резултат, съответствие с изискванията и липса на системни сривове.

Типове тестване на вграден софтуер

По принцип има пет нива на тестване, които могат да се приложат към вграден софтуер.

Тестване на софтуерни единици

Единичният модул е ​​или функция, или клас. Единичното тестване се извършва от екипа за разработка, предимно от разработчика, и обикновено се осъществява по модел на партньорска проверка. Тестовите случаи се разработват въз основа на спецификацията на модула.

Тестване на интеграцията

Интеграционно тестване може да се класифицира в два сегмента:

  • Тестване на софтуерната интеграция
  • Тестване на интеграцията на софтуер/хардуер

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

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

Тестване на системния модул

Сега модулът, който ще бъде тестван, е пълна рамка, която се състои от пълния софтуерен код плюс всички операционна система в реално време (RTOS) и свързани с платформата части, като прекъсвания, механизми за задачи, комуникации и т.н. Протоколът Point of Control вече не е извикване на функция или метод, а по-скоро съобщение, изпратено или получено чрез опашките от съобщения на RTOS.

Системните ресурси се наблюдават, за да се оцени способността на системата да поддържа изпълнение на вградена система. За този аспект, тестване на сива кутия е предпочитаният метод за тестване. В зависимост от организацията, тестването на системните модули е или задължение на разработчика, или на специализиран екип за системна интеграция.

Тестване на системната интеграция

Модулът, който ще бъде тестван, започва с набор от компоненти в рамките на един възел. Точките за контрол и наблюдение (PCO) са комбинация от мрежови комуникационни протоколи и RTOS събития, като например мрежови съобщения. В допълнение към компонента, виртуалният тестер може да играе и ролята на възел.

Тестване за валидиране на системата

Модулът, който ще бъде тестван, е подсистема с пълна имплементация или цялостна вградена система. Целта на този последен тест е да се изпълнят функционалните изисквания на външния обект. Обърнете внимание, че външен обект може да бъде човек, устройство в телекомуникационна мрежа или и двете.

Разлика: Вградено тестване и Тестване на софтуер

Таблицата по-долу сравнява вграденото тестване с конвенционалното тестване на софтуер.

Тестване на софтуер Вградено тестване
Софтуерното тестване е свързано само със софтуера. Вграденото тестване е свързано както със софтуер, така и с хардуер.
Средно 90% от тестовете, извършвани по света, са изцяло ръчни. тестване на черна кутия. Вграденото тестване се извършва на вградени системи или чипове и може да бъде тип „черна кутия“ или тестване на бяла кутия.
Основните области на тестване са GUI проверки, функционалност, валидиране и известно ниво на тестване на база данни. Основните области на тестване са поведението на хардуера спрямо броя на подадените му входни данни.
Софтуерното тестване се извършва предимно на клиент-сървър, уеб и мобилни приложения. Вграденото тестване обикновено се извършва на хардуера.
например, Google Mail, Yahoo Mail, Android приложения. напр. машини в областта на здравеопазването, микроконтролери, използвани в компютрите.

Предизвикателства: Тестване на вграден софтуер

Някои от предизвикателствата, с които човек може да се сблъска по време на тестване на вграден софтуер:

Хардуерна зависимост

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

Софтуер с отворен код

По-голямата част от вградените софтуерни компоненти са с отворен код, не са създадени вътрешно и нямат пълен набор от тестове за тях. Съществува широк набор от комбинации от тестове и произтичащи от тях сценарии.

Софтуер срещу хардуерни дефекти

Друг аспект е разработването на софтуер за новосъздаден хардуер. По време на този процес може да се открие висок процент хардуерни дефекти. Откритият дефект не се ограничава само до софтуера. Той може да е свързан и с хардуера.

Възпроизводими дефекти

В случай на вградена система, дефектите са по-трудни за възпроизвеждане или пресъздаване. Това принуждава процедурата за тестване на вградени системи да оценява всяко появяване на дефект значително по-високо, отколкото в стандартен случай, и да събира колкото се може повече данни, колкото е разумно необходимо, за да се открие първопричината за дефекта.

Непрекъснати софтуерни актуализации

Вградените системи изискват редовни актуализации на софтуера, като например надстройки на ядрото, корекции на сигурността, различни драйвери на устройства и др. Ограниченията, свързани с актуализациите на софтуера, затрудняват идентифицирането на грешки. Освен това, това увеличава значението на процедурата по изграждане и внедряване.

Въпроси и Отговори

Типичните стекове комбинират статичен анализ, модули за тестване на модули за C и C++, анализатори на шини, tracелектронно-съвместими дебъгери и хардуерно-инсталирани платформи, плюс автоматизация на тестове така че регресионните пакети работят без надзор.

Хардуерът в контура (HIL) изпълнява реален фърмуер на реалния контролер, докато симулатор подава сигналите, които околната инсталация би произвела, упражнявайки условия на повреда, които е опасно да се създадат физически.

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

IEC 61508 е общият стандарт за функционална безопасност. Секторните версии включват ISO 26262 за пътни превозни средства, DO-178C за бордов софтуер, IEC 62304 за медицински устройства и EN 50128 за железопътен контрол.

Моделите с изкуствен интелект сортират големия дневник и tracобемите, произвеждани от една платформа, групиране на повтарящи се повреди и класиране на регресионните тестове, които да се проведат първо върху оскъден хардуер. Преценката за безопасност остава на инженера.

Копилот на GitHub изготвя тестови снопове и щепселни кабели за C или C++ модули и ускорява повтарящите се подигравки. Регистърното поведение и времевите ограничения, които никога не е виждал, все още се нуждаят от проверка.

Чрез анализ на времето за изпълнение в най-лошия случай, инструментализиран trace върху целта, а стресът работи при пиково натоварване. Пропусканията на крайни срокове и латентността на прекъсванията се измерват на реален хардуер, който хост компилациите не могат да възпроизведат.

Четене C и C++, умения за работа със схеми и логически анализатори, познаване на RTOS концепциите и шинните протоколи, както и писане на скриптове. Свързана работа като IoT тестване черпи от една и съща основа.

Обобщете тази публикация с: