Ленивое систематическое модульное тестирование


Ленивое систематическое модульное тестирование [1] — это метод модульного тестирования программного обеспечения , основанный на двух понятиях: ленивая спецификация , способность делать выводы о развивающейся спецификации модуля «на лету» посредством динамического анализа, и систематическое тестирование , способность исследовать и тщательно протестировать пространство состояний модуля на ограниченную глубину. Для поддержки ленивого систематического модульного тестирования на языке программирования Java существует набор инструментов тестирования JWalk . [2]

Ленивая спецификация относится к гибкому подходу к спецификации программного обеспечения , при котором спецификация быстро развивается параллельно с часто изменяемым кодом. [1] Спецификация получена на основе полуавтоматического анализа прототипа программного модуля. Это может включать статический анализ (интерфейса устройства) и динамический анализ (поведения устройства). Динамический анализ обычно дополняется ограниченным взаимодействием с программистом.

Термин «ленивая спецификация» придуман по аналогии с ленивым вычислением в функциональном программировании . Последний описывает отложенную оценку подвыражений, которые оцениваются только по требованию. Аналогия проводится с поздней стабилизацией спецификации, которая развивается параллельно с изменением кода, пока она не будет признана стабильной.

Систематическое тестирование относится к полному подходу к тестированию на соответствие тестированию программного обеспечения , при котором тестируемый модуль полностью соответствует спецификации, вплоть до допущений тестирования. [3] Это контрастирует с исследовательскими, неполными или случайными формами тестирования. Цель состоит в том, чтобы предоставить повторяемые гарантии правильности после завершения тестирования.

Примеры методов систематического тестирования включают метод тестирования Stream X-Machine [4] и тестирование разделов эквивалентности с полным анализом граничных значений .