В настоящее время встроенное программное обеспечение (ПО), незаметное пользователю, используется в самых разных устройствах, от обычной бытовой техники, стиральных машин и микроволновок до сложного медицинского оборудования, автомобильных двигателей и систем летной авионики. В 2015 году объем мирового рынка встроенного ПО оценивался в 10,46 млрд. долл., а прогнозируемый среднегодовой темп роста в 2016-2023 годах будет составлять 7%, говорится в отчете Global Market Insights.
В то время как рынок увеличивается в объеме, встроенное ПО становится все сложнее, порой требуя написания миллионов строк кода. Зачастую встроенное ПО выполняет критически важные функции — обеспечивает безопасность людей или даже спасает им жизни. Даже мелкие дефекты могут нарушить надежность всей системы и поставить под угрозу здоровье и жизнедеятельность людей, поэтому переоценить значимость тестирования встроенного программного обеспечения практически невозможно.
В течение многих лет тестирование встроенного ПО было одной из сильных сторон экспертизы Ауриги. Недавно мы решили провести собственное исследование и обратились к 55 компаниям-разработчикам встроенного ПО с просьбой оценить их подход к тестированию. Независимая исследовательская компания LTM Research помогла нам проанализировать их ответы, и мы готовы представить результаты нашим читателям. Вкратце, ключевыми темами оказались автоматизация, непрерывная интеграция и прямой доступ к аппаратным средствам.
Подходы к тестированию встроенного ПО
33% компаний, принявших участие в нашем опросе, оценивают свой подход к тестированию встроенного ПО как «отличный» и образуют группу Лидеров. Большинство респондентов (38%) считают процессы тестирования в своих компаниях «хорошими» – назовем их Претендентами. Остальные 29% компаний – это Последователи, оценивающие свой подход как «средний» или ниже.

Каковы же главные компоненты отличного подхода к тестированию встроенного ПО? Наши респонденты выделяют три из них:
Четкая стратегия тестирования
94% Лидеров заявляют, что имеют четкую стратегию тестирования встроенного ПО. Лишь 63% Претендентов могут похвастаться тем же, а 13% Последователей вообще не имеют определенной стратегии тестирования.
Степень автоматизации процесса тестирования
78% Лидеров автоматизировали более половины процесса тестирования встроенного ПО. Только 57% Претендентов и 31% Последователей удалось достичь такого же уровня автоматизации.
Доступ к аппаратным средствам
Большинство Лидеров (89%) и Претендентов (81%) утверждают, что их команды всегда имеют доступ к аппаратным средствам. Команды большинства Последователей (38%) имеют доступ к аппаратным средствам лишь иногда.
В то же время существует немало барьеров, препятствующих эффективному тестированию ПО. Исследование показывает, что самая трудная задача – это обеспечение доступа к нужным версиям программного и аппаратного обеспечения для тестирования и отладки. Выявить среду (настройки и взаимосвязь устройств), вызывающую ошибку, и воспроизвести последовательность событий, приводящих к ошибке, удается легче.
Методы тестирования программного обеспечения
Существует огромное множество методов и техник тестирования, но важно понимать, какие из них работают эффективнее при тестировании встроенного ПО. Согласно результатам нашего исследования, воспроизведение ошибки в случае встроенного ПО обычно связано с взаимодействием нескольких устройств. Почти 40% респондентов заметили, что сложные сценарии, включающие взаимодействие различных устройств, являются более распространенными, чем большие базы данных и сценарии, состоящие из длинных последовательностей событий.
Наиболее часто используемые методы тестирования, которые могут превратить Претендента или Последователя в Лидера, включают автоматизированную среду тестирования (3-я сторона или in-house), удаленно доступную тестовую лабораторию с необходимыми аппаратными средствами и непрерывную интеграцию с автоматизированными тестами и отчетами для каждой сборки.

Интересно, что в среднем наименее используемые методы тоже включают в себя непрерывную интеграцию и удаленные тестовые лаборатории, а также автоматизацию smoke тестов для каждой сборки исходного кода.
Тестируйте рано, тестируйте часто
Относительная стоимость устранения ошибки резко возрастает по мере цикла разработки программного обеспечения – это известно любому ИТ-специалисту. Но пробовали ли вы когда-нибудь выяснить точную стоимость ошибок, исправленных на поздних этапах проекта? Наши подсчеты заставили нас поволноваться: мы, конечно, предполагали, что ближе к концу проекта цена ошибки растет, но чтобы настолько!

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