Эта публикация цитируется в
1 статье
Использование симуляции сбоев при тестировании компонентов ядра ОС Linux
А. В. Цываревa,
А. В. Хорошиловabcd a Институт системного программирования РАН
b Московский физико-технический институт (государственный университет)
c Национальный исследовательский университет "Высшая школа экономики"
d Московский государственный университет имени М.В. Ломоносова
Аннотация:
В статье рассматриваются методы тестирования компонентов ядра ОС Linux с использованием симуляции сбоев. Основная цель таких методов – проверка поведения модуля при возникновении нештатных ситуаций, таких как сбои в аппаратуре или нехватка ресурсов.
Эти ситуации на практике встречаются достаточно редко и непредсказуемо, что существенно затрудняет их обнаружение и локализацию.
Единственным распространённым подходом к поиску таких проблем является случайное внесение сбоев в ходе выполнения обычных тестов.
Но из-за недетерминированной природы такой способ тестирования не обеспечивает достаточной воспроизводимости тестовых сценариев, что не позволяет давать никаких гарантий корректности поведения драйвера даже в случае успешного выполнения всех тестов.
В статье предлагаются новые методы систематического тестирования устойчивости к сбоям, решающие проблему воспроизводимости тестирования.
В основе этих методов лежит систематический перебор точек для симуляции сбоев с отбрасыванием потенциально "неинтересных" тестов, которые не проверяют ничего нового по сравнению с другими тестами. Применимость и эффективность конкретного систематического метода зависит от способа определения "неинтересных" тестов: это может быть как ручное выделение уникальных участков базовых тестов, ограничивающих множество точек для симуляции сбоев, так и автоматическое определение дублирующих точек по стеку вызовов функций тестируемого модуля. Была проведена апробация предложенных систематических методов на одном из драйверов Linux и двух тестовых наборах. Результаты апробации показывают, что систематические методы не уступают по эффективности методу со случайным внесением сбоев, а в чем-то и превосходят его.
Ключевые слова:
Linux, компоненты ядра Linux, драйвер, тестирование, симуляция сбоев.
DOI:
10.15514/ISPRAS-2015-27(5)-9