Тестирование софта - статьи


Примеры - часть 2


Object put(Integer key, Boolean value); // Метод удаляет ключ key из отображения. // Возможно удаление только неактивного идентификатора. // Возвращает true, если ключ успешно удален // или не присутствовал в отображении; иначе возвращает false. boolean remove(Integer key);

Тестовые ситуации для метода put:

  1. отображение пусто;
  2. отображение не пусто:
    1. добавляемый идентификатор присутствует в отображении:
      1. присутствующий идентификатор активен:
        1. добавляемый идентификатор активен;
        2. добавляемый идентификатор не активен;
      2. присутствующий идентификатор неактивен:
        1. добавляемый идентификатор активен;
        2. добавляемый идентификатор не активен;
    2. добавляемый идентификатор отсутствует в отображении:
      1. добавляемый идентификатор активен;
      2. добавляемый идентификатор не активен.

Тестовые ситуации для метода remove:

  1. отображение пусто;
  2. отображение содержит единственный идентификатор:
    1. удаляемый идентификатор присутствует в отображении:
      1. удаляемый идентификатор активен;
      2. удаляемый идентификатор не активен;
    2. удаляемый идентификатор отсутствует в отображении:
      1. удаляемый идентификатор активен;
      2. удаляемый идентификатор не активен;
  3. отображение содержит более одного идентификатора:
    1. удаляемый идентификатор присутствует в отображении:
      1. удаляемый идентификатор активен;
      2. удаляемый идентификатор не активен;
    2. удаляемый идентификатор отсутствует в отображении:
      1. удаляемый идентификатор активен;
      2. удаляемый идентификатор не активен.

Обобщенное состояние - IntPairGenState, параметры конструктора - размер отображения и количество активных идентификаторов. Количество активных идентификаторов - это обобщенное состояние, которое получено выделением из отображения элементов, обладающих свойством активности. Таким образом, в этом примере применяются три паттерна: размер отображения, выделение элементов и декартово произведение. Для ограничения количества состояний в сценарий добавляется переменная int maxSize.

Для методов put и remove итерируются ветви функциональности. Для метода put выделим шесть ветвей функциональности:

  1. отсутствует, добавляем активный;
  2. отсутствует, добавляем неактивный;
  3. присутствует активный, добавляем активный;
  4. присутствует активный, добавляем неактивный;
  5. присутствует неактивный, добавляем активный;
  6. присутствует неактивный, добавляем неактивный.

Для метода remove:

  1. отсутствует;
  2. присутствует активный;
  3. присутствует неактивный.

Для каждой ветви перебираются идентификаторы до тех пор, пока не будет найден идентификатор, попадающий в выбранную ветвь функциональности.


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



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