Основы тестирования программного обеспечения


Особенности интеграционного тестирования для объектно-ориентированного программирования - часть 3


Дуги данной ГМП (вызовы методов) могут быть образованы двумя способами:

  • Прямым вызовом одного метода из кода другого, в случае, если вызываемый метод виден (не закрыт для доступа средствами языка программирования) из класса, содержащего вызывающий метод, присвоим такой конструкции название Р-путь (P-path, Procedure path, процедурный путь).
  • Обработкой сообщения, когда явного вызова метода нет, но в результате работы "вызывающего" метода порождается сообщение, которое должно быть обработано "вызываемым" методом.

Для второго случая "вызываемый" метод может породить другое сообщение, что приводит к возникновению цепочки исполнения последовательности методов, связанных сообщениями. Подобная цепочка носит название ММ-путь (MM-path, Metod/Message path, путь метод/сообщение) [23]. ММ-путь заканчивается, когда достигается метод, который при отработке не вырабатывает новых сообщений (т. е. вырабатывает "сообщение покоя").

Пример ММ-путей приведен в примере 5.4. Данная конструкция отражает событийно управляемую природу объектно-ориентированного программирования и может быть взята в качестве основы для построения графовой модели класса или объектно-ориентированной программы в целом. В примере 5.4 можно выделить четыре ММ-пути (1-4) и один P-путь (5):

  1. msg a
    метод 3
    msg 3
    метод 4
    msg d
  2. msg b
    метод 1
    msg 1
    метод 4
    msg d
  3. msg b
    метод 1
    msg 2
    метод 5
  4. msg c
    метод 2
  5. call
    метод 5

Здесь класс изображен как объединенное множество методов.

Введем следующие обозначения:

Kmsg- число методов класса, обрабатывающих различные сообщения;

Kem- число методов класса, которые не закрыты от прямого вызова из других классов программы.

Пример MM-путей и P-путей в графовой модели класса

Рис. 6.1.  Пример MM-путей и P-путей в графовой модели класса

Если рассматривать класс как программу P, то можно выделить следующие отличия от программы, построенной по процедурному принципу:

  • Значение Kext (число точек входа, которые могут быть вызваны извне) определяется как сумма методов - обработчиков сообщений Kmsg (например, в MS Visual C++ обозначаются зарезервированным словом afx_msg и используются для работы с картой сообщений класса) и тех методов, которые могут быть вызваны из других классов программы Kem.


    - Начало -  - Назад -  - Вперед -



    Книжный магазин