О проверках и бизнес-ценности

/О проверках и бизнес-ценности

О проверках и бизнес-ценности

Сегодня вашему вниманию предлагается статься «О проверках и бизнес-ценности» за авторством Василия Касимого (контакты и явки в конце текста). Приятного прочтения!

В последнее время я часто сталкиваюсь с тестами и проверками от начинающих тестировщиков и хочу рассказать про одну общую ошибку.

Допустим, есть поле, которое надо проверить. У поля есть своя функция – в него записывается адрес. На адрес накладывается ограничение по длине — 60 символов. Минимальным ограничением будем считать строку в один символ, это здравый смысл.

Итак, студенты и новички начинают писать свои проверки. Сначала берут значения внутри интервала: «наб. реки Мойки, 12». Тут все понятно и логично — есть адрес, мы его проверяем. А дальше начинается интереснее. Надо подобрать адрес длиной в 60 символов, и большинство делает так: «наб. реки Мойки, 12наб. реки Мойки, 12наб. реки Мойки, 12 наб. реки Мойки, 12 наб. реки Мойки, 12». То есть теряют бизнес-ценность проверки, когда из адреса делают просто некоторую строку необходимой длины. Надо отметить, что система не скажет, что превышена длина поля, она позволит ввести данные и потом выдаст ошибку, что адрес некорректный. То есть нет различия между ошибками с очень длинным адресом и синтетической строкой «наб. реки Мойки, 12наб. реки Мойки, 12наб. реки Мойки, 12». И после этого систему уже проверяют как-то однобоко, соблюдая формат, но не обращая внимания на то, как будут работать с ней пользователи.

Еще одна задача, которая показывает зашоренность взглядов.

Вводятся четыре прямые. Программа проверяет, дает ли пересечение этих прямых квадрат и, если это возможно, возвращает площадь круга, вписанного в данный квадрат.

Напоминаю, что прямая задается уравнением вида y=kx+b. Нам нужно получить от пользователя четыре прямых, значит, у нас восемь полей ввода: k1..k4, b1..b4.

Сначала давайте представим графически целевое решение, смотрите рисунок.

У нас есть квадрат, и в него можно вписать окружность. Тут все более или менее ясно.

При вопросе о граничных значениях начинается путаница. Сначала все берут «0». Ноль вообще очень любят для проверок и граничных значений. Но в данной задаче «0» — это вполне допустимое значение. Прямая вида y=b (если k=0) — это прямая, параллельная оси Х, на рисунке выше таких две. Даже если взять два нуля (k=0, b=0), то все равно будет прямая. И только, например, две прямых с нулевыми коэффициентами дадут нам вырожденный случай.

Граничные значения здесь такие:

1. Фигура есть, но это не квадрат.

2. Фигура не замкнута, вида.

3. Все прямые параллельны друг другу.

4. Все прямые пересекаются в одной точке, что не дает возможности построить квадрат.

Все описанные выше граничные значения основаны на бизнес-логике (в данном случае работа с прямыми и фигурой квадрата), и чтобы к ним прийти, нужно в этой логике как следует разобраться. Иногда для этого достаточно математических знаний из курса школы, иногда приходится изучить и несколько законов, чтобы понять, как система должна считать больничные листы или пенсию за выслугу лет с учетом работы на крайнем севере. Но подстановка «0» в первый попавшийся коэффициент не всегда приводит к нахождению граничных значений.

И еще одна история про ноль;) Вторая по данной ссылке, про Мёртвое море: ТЫК

 

Контакты автора:

  • Василий Касимов (в ИТ с 2003 года)
  • Телеграмм: @Vasiliy_Kasimov
  • Проект: www.rejose.ru
By | 2020-10-12T09:44:09+00:00 Октябрь 12th, 2020|Заметки, Качество, Профессия, Сообщества|0 Comments

About the Author:

Leave A Comment