пятница, 29 января 2021 г.

Три имени квадрата и пересечение классов эквивалентности

В книге Юлии Гиппенрейтер «Как учиться с интересом» я нашла такую историю о занятиях Александра Звонкина с детьми:


Обсуждаются сделанные из картона фигуры: квадрат, прямоугольник и неправильный четырехугольник. Мы детально обсуждаем их свойства. Прежде всего, у всех фигурок — по четыре угла. Значит, каждую из них мы можем назвать четырехугольником. Итого: у нас три четырехугольника. 


При этом два из них отличаются тем, что у них все углы прямые. За это их называют прямоугольниками. Один из двух прямоугольников особый: у него все стороны одинакового размера. Его называют квадратом.

У квадрата как бы три имени: его можно назвать и квадратом, и прямоугольником, и четырехугольником — и все будет правильно.

Моя информация встречается не без сопротивления. Дети упорно стремятся мыслить в понятиях непересекающихся классов.

Аналогичный пример — являются ли папы и дедушки мужчинами, а мужчины — людьми?



Мне кажется, это отличная аналогия для классов эквивалентности! В один класс эквивалентности мы собираем все значения, для которых система должна (по нашему мнению) работать одинаково. Простые числа, мужские имена, и так далее. Чтобы не проверять всё множество вариантов, мы проверяем одно значение из класса.

И когда мы пытаемся выделить класссы, мы придумываем разные бизнес-сценарии для поля. Это и будут разные классы, разные строки в нашем чек-листе проверок. Проблема в том, что одно и то же значение может быть в разных классах. Например, имя «Ольга»:

  • Распространенное имя
  • Женское имя
  • Средняя длина строки
  • С буквой, которая одинаково выглядят на русском и на английском
  • ....

И это ступор — как так? Ведь классы не должны пересекаться! Но Ольга может быть женщиной, дочкой, мамой, бабушкой, женой, человеком...   


Классы эквивалентности могут пересекаться. И это нормально. 

При составлении чек-листа проверок наша задача:

  1. Найти как можно больше идей для тестов, выделить разные классы.
  2. Удалить дубли.
Первый шаг — мозговой штурм. Если пытаться сразу и идеи накидывать, и отсекать лишние, придумаете намного меньше, чем могли бы. Стандартные правила мозгового штурма — на этапе генерации идей не отсекаем НИЧЕГО, даже "глупая идея" может по цепочке ассоциаций привести к гениальной. 

Отсекать будем потом. Поэтому на этапе написания чек-листа не переживайте, если примеры для вроде бы разных тестов пересекаются.


См также:

Как накидать тестов на что-нибудь

Где брать идеи для тестов (подборка полезных ссылок)

Классы эквивалентности: будни Золушки


PS — это выдержка из моей книги для начинающих тестировщиков, написана в помощь студентам моей школы для тестировщиков

3 комментария:

  1. У квадрата есть и четвёртое имя - ромб (https://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%BC%D0%B1)

    ОтветитьУдалить
  2. А также пятое - параллелограмм (https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC)

    ОтветитьУдалить
    Ответы
    1. А ещё «фигура» и другие) Но это ведь даже не мой пример, а суть он отражает)

      Удалить