Технологии разработки программного обеспечения


Особенности тестирования объектно-ориентированных «модулей»


При рассмотрении объектно-ориентированного ПО меняется понятие модуля. Наименьшим тестируемым элементом теперь является класс (объект). Класс содержит несколько операций и свойств. Поэтому сильно изменяется содержание тестирования модулей.

В данном случае нельзя тестировать отдельную операцию изолированно, как это принято в стандартном подходе к тестированию модулей. Любую операцию приходится рассматривать как часть класса.

Например, представим иерархию классов, в которой операция ОР() определена для суперкласса и наследуется несколькими подклассами. Каждый подкласс использует операцию ОР(), но она применяется в контексте его приватных свойств и операций. Этот контекст меняется, поэтому операцию ОР() надо тестировать в контексте каждого подкласса. Таким образом, изолированное тестирование операции ОР(), являющееся традиционным подходом в тестировании модулей, не имеет смысла в объектно-ориентированной среде.

Выводы:

q       тестированию модулей традиционного ПО соответствует тестирование классов объектно-ориентированного ПО;

q       тестирование традиционных модулей ориентировано на поток управления внутри модуля и поток данных через интерфейс модуля;

q       тестирование классов ориентировано на операции, инкапсулированные в классе, и состояния в пространстве поведения класса.

 



Содержание раздела