Перейти к содержанию

4.2 Базовые техники тестирования

Классы эквивалентности

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

Например

Вход на сайт разрешен только пользователям от 18 до 65 лет. Получается, что диапазон 18-65 это один класс эквивалентности.
Числа до 18 и после 65 - это другой класс эквивалентности.

testing-class-equivalence

Граничные условия

Границы, где один набор данных переходит в другой.

Например

Вход на сайт разрешен только пользователям от 18 до 65 лет. В этом случае граничные значения это 17, 18, 65, 66.

testing-baundaries

Задание на комбинацию КЭ и ГЗ

Функция принимает строку и возвращает true или false.
Длина: 3-20 символов
Допустимые символы: числа, нижнее подчеркивание, английские буквы в нижнем и верхнем регистре.

Классы эквивалентности длины:

  • 3-20 (валидная длина)
  • 0-2 (невалидная длина)
  • 21+ (невалидная длина)

Граничные условия длины:

  • 2
  • 3
  • 20
  • 21

Классы эквивалентности символов:

  • валидные:
    • a-z
    • A-Z
    • 0-9
    • _
  • невалидные

Комбинация классов эквивалентности и граничных условий:

  • Валидная длина + валидные символы: ABC, ABCDEFGHIJKLMNOPQRST, abc_12_def
  • Невалидная длина + валидные символы: AA, AAAAAAAAAAAAAAAAAAAAA (21 символ)
  • Валидная длина + невалидные символы: Abcd#12345%^&*#

Всего получилось 7 тестов, вместо бесконечного множества.

Функциональный подход

Думать о функциях приложения: что приложение должно делать (а что нет) в каких-то ситуациях.

Дано 2 поля даты (начало и конец отпуска)

1) Какие специальные требования к полям? (Возможно в разных странах разные правила заполнения дат отпусков)
2) Какая реакция на валидные и невалидные данные?
3) Могут ли она значения быть в прошлом? Или будущем?
4) Какая реакция на пустые значения?
5) Что будет если указать дату начала и конца одинаковой?
6) Какая максимальная и минимальная длина отпуска?
7) Могут ли даты начала и конца выпадать на выходные/праздничные дни?
8) ...

Рекомендация к прочтению книг:
- A Practitioner's Guide to Software Test Design. Lee Copeland
- Black-Box Testing: Techniques for Functional Testing of Software and Systems. Boris Beizer