Показаны сообщения с ярлыком граничные значения. Показать все сообщения
Показаны сообщения с ярлыком граничные значения. Показать все сообщения

понедельник, 22 июня 2026 г.

Типы границ для классов эквивалентности

 


Ссылка на Хабр


Про типы границ я впервые услышала на тренинге Алексея Баранцева. Зачем они нужны? Да просто чтобы не забыть всё проверить. Написал чек-лист, потом проверяешь себя:

— Все учел? Вот эти классы эквивалентности, какие границы логические? А какие технологические? ...

Так можно вспомнить о проверке, про которую забыл или просто не подумал! Полезная штука.

Алексей дал нам тогда про такую типизацию границ:

  • Физическая — которую физически нельзя преодолеть.

  • Логическая — ограничение, накладываемое логикой, не программой.

  • Технологическая — ограничение, накладываемое используемой технологией.

  • Произвольная — ограничение, наложенное аналитиком или заказчиком.

Лично я предпочитаю совмещать физическую и логическую. Потому что физическая — это то, что мы вообще преодолеть не можем. Например, при всем желании мы не введем строку отрицательной длины, ну никак не сможем.

Но то, что физически сделать нельзя, часто в программе сделать можно. Например, ввести в количество участников митапа «1,5 человека» — физически невозможно, но программа то позволяет. Значит, для программы это уже логическая, мы же понимаем, что это невозможно.

Так что в моей классификации есть всего три типа границ (сокращенно ЛТП):

  1. Логическая — ограничение, накладываемое логикой, не программой.

  2. Технологическая — ограничение, накладываемое используемой технологией.

  3. Произвольная — ограничение, накладываемое аналитиком или разработчиком.

Рассмотрим каждую из них!


среда, 24 сентября 2025 г.

Панбагон. Ошибка печати в кассе, когда ленты нет, но стоит галка "не печатать чек"

У меня тут отличный пример тестирования нижней границы нарисовался! 

Я — ИП, а у ИП должна быть касса. Такая же, как в любом магазине, которая чеки печатает. Правда, моя почти ничего не печатает, так как интегрирована с интернет-магазином и там все чеки приходят клиенту на почту + отправляются в налоговую.

Но иногда надо напечатать чек самой. Это если заказ не через интернет-магазин прошел. Например, когда пришла оплата за съем жилья, или оплата по QR-коду была, или какой-то тестовый платеж...

То есть обычно раз в месяц, когда платят за аренду, я иду и выбиваю чек вручную. Кассе при этом надо закрыть старую смену, открыть новую — на каждое действие она печатает чек. Потом провожу оплату, это ещё один чек, который касса шлет в налоговую.



понедельник, 13 сентября 2021 г.

Чек-лист — как тестировать поиск

Я посмотрела, как тестируют поиск начинающие тестировщики, и решила написать этот чит-лист проверок. Это такая серебряная пуля, которую можно применить на любом проекте, лишь немного варьируя под себя, под свой проект.


Поиск — он же есть практически в каждой системе. Поэтому здорово, когда есть шпаргалка «какие вопросы задать аналитику» и «какие проверки провести». Именно это мы в статье и обсудим. Сначала я дам чек-лист, а потом разберу каждый пункт отдельно.

Ссылка на ХАБР (там кликабельное оглавление)

суббота, 11 июля 2020 г.

Как найти границы на клиенте и сервере

Ссылка на ХАБР (там кликабельное содержание! В блоге такое не сделать)

Как обычно тестировщик ищет границы в поле? Если в ТЗ есть ограничения, то тестирует их. А если их нет? С нижней границей все понятно — это пустое поле. А как найти верхнюю? Вставляем большую строку и смотрим, сколько символов сохранится. И всё…

Но если у нас клиент-серверное приложение, то границы разработчик может поставить на каждом звене!


И тестировщик должен проверить их все. Почему? Потому что когда мы одно значение дублируем несколько раз в разных местах, велик шанс ошибиться. При этом границу на клиенте очень легко снять. Что будет, если пользователь обойдет границу на клиенте? Не сломает ли он нам сайт большой строкой?

В этой статье я расскажу, как искать границы для поля в веб-формочке. Возьмем для примера форму редактирования пользователя в бесплатной системе Users.


воскресенье, 30 июня 2019 г.

Dummy image — как создать тестовую картинку


Ссылка — https://dummyimage.com/

Хороший инструмент для проверки граничных значений, если ограничения идет по ширине или высоте. На сайте легко можно создать картинку нужного размера.

Конечно, это не единственный сайт, но довольно популярный. Так что решила написать о нем, добавить в полезные инструменты по тегу 

А про альтернативы мы поговорим в следующий раз.

среда, 16 января 2019 г.

Тестирование производительности, нагрузочное и стресс

Это статья из серии «Теория в картинках». 

Студенты при изучении классификации часто спрашивают, чем отличаются между собой:
  • Тестирование производительности
  • Нагрузочное тестирование
  • Стресс-тестирование
Моя коллега Ольга Алифанова привела прекрасный пример!


1. Производительность: как быстро машина разгонится до сотни



вторник, 28 августа 2018 г.

Мнемоника БМВ для поиска граничных значений

Ссылка на Хабр


Исходно статья опубликована на Хабре, там у нее есть удобное оглавление, чтобы не листать многабукафф, а сразу перейти куда надо. В блоггере такое сделать сложнее, увы и ах 
╮(︶︿︶)╭


Мнемоника — слово или фраза, которая помогает нам что-то запомнить. Самая известная мнемоника — «каждый охотник желает знать, где сидит фазан». Кого не спроси, все с ней знакомы.

А вот в профессиональной сфере все немного грустнее. Спросите товарищей, знают ли они, что такое SPDFOT или RCRCRC. Далеко не факт… А ведь мнемоники помогают нам прогнать тесты, не забыв проверить самое важное. Чек-лист, схлопнутый в одну фразу!

Англоязычные коллеги-тестировщики активно используют мнемоники. Знакомая, читающая иностранные блоги, говорит, что американцы придумывают их чуть ли не на каждый чих.

И я думаю, что это здорово. Чужая мнемоника может не подойти именно под вашу систему или ваши процессы. А свое, родное, напомнит «не продолбать проверить вот это и это» и ограничит количество багов в продакшене.

Сегодня я хочу поделиться с вами своей мнемоникой БМВ для исследования граничных значений. Ее можно:

  • дать джуниору для общего развития в тест-дизайне;
  • использовать на собеседовании — задачу «найди границу в числе» кандидат обычно решает, а вот найдет ли он границу в строке или для загрузки файла?


Мнемоника БМВ



Б — большой
М — маленький
В — в самый раз

БМВ — большой, маленький, в самый раз
Ее легко запомнить. Просто вспоминаешь эту классную машинку и сразу расшифровка готова! Но что она значит и как поможет на собеседованиях?

четверг, 19 апреля 2018 г.

Типы границ на примере стиральной машинки

Это статья из серии «Теория в картинках»

В моей классификации есть всего три типа границ (мнемоника ЛТП):

  • Логическая — ограничение, накладываемое логикой, не программой.
  • Технологическая — ограничение, накладываемое используемой технологией
  • Произвольная — ограничение, накладываемое аналитиком или разработчиком.

(Откуда взялась моя классификация, я тоже напишу, но чуть позднее в другой статье. Скажу лишь, что автор типов — Алексей Баранцев, переиспользовать в книге / статьях разрешение давал)


Типы границ на примере стиральной машинки


(Пример любезно предоставлен Юлией Мироновой)

У вас есть стиральная машинка.

1. Логическая: нельзя засунуть меньше 0 киллограммов белья. Это логика.


четверг, 5 апреля 2018 г.

Классы эквивалентности для строки, которая обозначает дату

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

Но потом доходит до дела и сразу ступор: а как применять классы эквивалентности где-то еще? Ладно, используем правило «ищи число»: если речь идет о поле с символами, берем длину поля (число) и тестируем на границы. Вроде все хорошо, логично и понятно.

Однако на своих студентах я заметила, что это правило стало серебряной пулей. Если это нечисловое поле — по границам тестируем ТОЛЬКО на длину. Точка. Просишь протестировать дату, получаешь примерно такой ответ:
  • Нормальная дата (17.03.2018)
  • Дата «в прошлом» или «в будущем» (смотря что подходит под ваше ПО)
  • Пустое поле
  • Нафигачили туда 100500 символов
  • Ввели «0»
За сим границы и проверены. И даже ноль проверен, чем тренер недоволен? А тренер недоволен тем, что по границам вместо ДАТЫ тестируется СТРОКА. Поэтому я предлагаю написать проверки именно для даты. И прежде, чем читать дальше, отложите книгу в сторону и попробуйте сами набросать эти проверки.  А потом сравните, все ли вы нашли?




Четкий формат дд.мм.гггг



Допустим, я могу ввести в профиле свою дату рождения и система сама посчитает, сколько мне лет. Формат даты известен заранее, на поле стоит маска, дату в другом формате я ввести не смогу.

вторник, 1 августа 2017 г.

Мнемоника БМВ и ее применение (ВИДЕО)


Видео с моего выступления на конференции SQA Days 21
Конспект выступления — Мнемоника БМВ для поиска граничных значений

Аннотация


Знаете ли вы, что такое мнемоники? Какие использовали? Пробовали создавать свои?

На своем докладе я расскажу вам о своей мнемонике для тестирования граничных значений:

Б — большой
М — маленький
В — в самый раз

Звучит просто, не так ли? Но в книгах учат тестировать границы только на числах и калькуляторе, а это далеко не все ее области применения! Давайте посмотрим, куда еще можно копнуть, где применить БМВ. Пройдем от простого к сложному и разбавим примерами багов из реальной жизни.

Примеры

Про простые примеры я расскажу немного позже, ожидайте ツ

Технические примеры:
  • Lucene + nmap → если используется эта связка, на Linux обязательно надо увеличить количество открытых файловых дескриптеров. Иначе на тесте все хорошо, а реальная нагрузка положит приложение.
  • Linux: Redhat 6 ≠ Redhat 7 → абсолютно разные инструкции по настройке
  • Java 6, 7 → дать сразу много памяти не вариант, будут фризы на пустом месте, пока работает garbage collector
  • Логи → проверяйте, что будет, когда ошибок МНОГО, когда в стеке 10 000 ошибок, а не 2 или 3
  • Wildfly → не дает грузить большие файлы, пока не поставишь max-post-size
  • Транслитерация → ОоооООооОООо уводит в цикл
  • Oracle RAC → в каждой ноде свой сиквенс, в итоге получаем неуникальные «уникальные ИД» в базе. Проявляется только под нагрузкой, на тестовом стенде ноды успевают рассказать друг другу, что заняли ИД 
  • Мобилки → свернул приложение, развернул что-то крупное, и у тебя первое упало (не умеет нормально резервировать память)
  • Пустой JSON → если у вас используется библиотечка Axis, пошлите в приложение пустой JSON. Он может повесить все намертво, если не успели обновить либу

Мнемоники помогают взглянуть на свой проект под новым углом или не забыть важные проверки. Я рассказываю о них в Школе для начинающих тестировщиков, мы там даже свои мнемоники придумываем, вот, посмотрите работы ребят, они крутые ツ Присоединяйтесь к нам, у нас весело =)

Ссылочку на видео сохранила на Testbase, в навык выделения классов эквивалентности. Теперь не потеряется!

вторник, 28 февраля 2017 г.

Сколько места в БД выделить названию организации?

Вот у вас есть сайт, на котором могут зарегистрироваться компании. При создании базы сколько места дадите под название организации?

name  NVARCHAR2(100)
name  NVARCHAR2(300)
name  NVARCHAR2(500)

Что привлекательнее? А разумнее? Правильно — ничего Smile :)
Рано или поздно вы огребете что-то типа too large for field 'name' (actual: 340, maximum: 300). 

Потому что в ФНС на название организации ограничений вообще нет. И правильно будет сделать блоб, чтобы уж наверняка. Но если сильно хочется варчар, то хотя бы на 1000 символов.

Пример для теста из реальной жизни — 876 символов (ИНН 5406649116, проверьте на https://egrul.nalog.ru/):

ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ СИБИРСКИЕ ТРАДИЦИИ В КОМПЛЕКСНОМ ПРАВОВОМ (ЮРИДИЧЕСКОМ) ОБЕСПЕЧЕНИИ ГРАЖДАН И ЮРИДИЧЕСКИХ ЛИЦ ВСЕХ ГРАЖДАНСКО-ПРАВОВЫХ ФОРМ И ВСЕХ СФЕР ХОЗЯЙСТВЕННОЙ ДЕЯТЕЛЬНОСТИ НА ТЕРРИТОРИИ Г. НОВОСИБИРСКА, НОВОСИБИРСКОЙ ОБЛАСТИ В ЦЕЛОМ, В ТОМ ЧИСЛЕ СУДЕБНОЕ И ДОСУДЕБНОЕ СОПРОВОЖДЕНИЕ ИНТЕРЕСОВ КЛИЕНТА, А ИМЕННО: ПРЕДОСТАВЛЕНИЕ ПИСЬМЕННЫХ ИЛИ УСТНЫХ КОНСУЛЬТАЦИЙ И ЗАКЛЮЧЕНИЙ ПО ПРАВОВЫМ ВОПРОСАМ В СФЕРЕ БИЗНЕСА (ПРАВОВОЙ АУДИТ); СОСТАВЛЕНИЕ ДОКУМЕНТОВ ПРАВОВОГО ХАРАКТЕРА (ЗАЯВЛЕНИЯ, ЖАЛОБЫ И Т.П.), В ТОМ ЧИСЛЕ ПРОЕКТОВ ГРАЖДАНСКО-ПРАВОВЫХ И ИНЫХ ДОГОВОРОВ; ОСУЩЕСТВЛЕНИЕ ЭКСПЕРТИЗЫ ПРЕДСТАВЛЕННЫХ ЮРИДИЧЕСКИХ ДОКУМЕНТОВ НА ПРЕДМЕТ ИХ СООТВЕТСТВИЯ ИНТЕРЕСАМ КЛИЕНТА И ПОЛОЖЕНИЯМ ДЕЙСТВУЮЩЕГО ЗАКОНОДАТЕЛЬСТВА; ОКАЗАНИЕ ПРАВОВОЙ ПОМОЩИ ПРИ ПРОВЕДЕНИИ ПЕРЕГОВОРОВ; ПРЕДСТАВЛЕНИЕ ИНТЕРЕСОВ КЛИЕНТА В АДМИНИСТРАТИВНЫХ И ИНЫХ ОРГАНАХ (УЧРЕЖДЕНИЯХ);



Если у вас есть поиск по названию — проверьте, что будет, если имя длинное (вон как ФНС его отображает, в такой дли-и-и-и-и-и-и-инный столбик).

Если название выводится в личном кабинете — проверьте, не обрезается ли оно там?

Если название светится еще где-то в системе, всегда полезное проверить, что будет, если оно длинное? Влезет ли? 

понедельник, 21 декабря 2015 г.

Зачем тестировать граничные значения? © Разработчик

В пятницу я тестировала модуль, который надо было срочно отгрузить Заказчику — близился deadline. Давайте преположим, что у нас приложение, в котором можно увидеть информацию по жильцам дома. У каждого жильца могут быть кошечки и собачки, дети, семья...
Будем тестировать кошечек!

Информация по проживающим загружается из файлов в виде внешних справочников. Справочники могут быть разных форматов. Модуль загрузки в систему уже есть, он готовый. Фактически надо просмотреть существующие справочники и настроить их обработку — xml конвертируем в scv, оттуда считываем в систему. Есть и ограничения, на одну квартиру может быть:

  • 10 жильцов. Если больше, берем первые 10.
  • 5 кошечек. Если больше 5, берем первые 5.
  • 10 рыбок. Ну вы поняли.
Справочники загружаются в систему и домовладелец может искать по жильцу или кличке кота. Если результат найден в справочнике — возвращается номер квартиры.

понедельник, 14 сентября 2015 г.

Технологическая граница в подсказках по ЮЛ

На моем курсе студенты тестируют реальный проект. Там нет багов, внедренных специально под них. Иногда ребятам везет попасть на день выкладки свежего билда, вот где глазки то разгораются! В остальные дни баги искать тяжеловато, особенно новичкам.

Нас часто спрашивают — «Какие баги мы не нашли?». Сегодня я хочу рассказать о баге, который нашелся в подсказках Дадаты, и который хорошо показывает, зачем и как пытаться искать технологические границы.

Для поиска технологической границы надо пихать «Войну и мир» во все доступные для ввода поля. ВО ВСЕ!

Стоит там ограничение или нет → все равно пытаемся пропихнуть.
Взять ту же форму регистрации.

Искать границу надо только там, где нет ограничений?

Поле «Имя» ограничено по вводу, поля пароля — нет. Это не значит, что «Войну и мир» надо вставлять только в пароль. В имя тоже пытаемся. Можно ли ввести больше N символов? А если вкопипастить? А если посмотреть на HTML и снять ограничение по длине?